3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
1

GroupBox подсчет ответов

13.05.2015, 23:28. Показов 2277. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как в GroupBox подсчитать количество правильных ответов из 3 вариантов...

Добавлено через 1 час 11 минут
помогите пожалуйста подсчитать прав ответы...
Delphi
1
2
3
4
otvetstr:=(quest.ReadString(diff[QuestionNum],'otvet',''));
  RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'otvet',''));
  RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'var2',''));
  RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'var1',''));
otvetstr - это какой ответ верный и на чем должен вестись счетчик...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2015, 23:28
Ответы с готовыми решениями:

Подсчет верных ответов в RadioGroup
У меня программа тестировщик. В одну RadioGroup последовательно выводятся ответы, нужно подсчитать...

нужно сделать подсчет правельных ответов
нужо чтоб подсчитывало количество правельных\неправельных ответов... кнопка сделана осталось...

Подсчет количества верных ответов
Доброго времени суток! Помогите, пожалуйста, разобраться, почему выводит неверный результат. Числа...

Подсчет ответов
Народ что то не могу понять как обработать данные с radio button? Подскажите как сделать...

22
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
13.05.2015, 23:36 2
Как-то вы странно очень вопрос сформулировали=) Причем тут вообще GroupBox?)

Может это нужно?)
Delphi
1
2
3
4
5
6
7
8
9
10
...
private 
    AnwsersCount:integer;// Счетчик
..
procedure TForm1.FormCreate(Sender: TObject);
begin
   AnwsersCount := 0;
end;
... // При "Ответе (в ваше процедуре)"
if RadioGroup1.Items[RadioGroup1.ItemIndex] = otvetstr then inc(AnwsersCount );
1
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 00:01  [ТС] 3
GreeNicee, да извините перепутал)))) ну да примерно такое только он выводит (List Index out of bounds(-1)), когда переключаю дальше...
0
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,248
14.05.2015, 00:08 4
Цитата Сообщение от manchester_alan Посмотреть сообщение
только он выводит (List Index out of bounds(-1)), когда переключаю дальше...
Кто он? Враг?
Ты бы код привел, который выдает эту ошибку.
0
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 00:30  [ТС] 5
Ну программа, вы же и так поняли ну..))
А ошибку я уже понял почему но не знаю как исправить... Это он жалуется на то что в программе я не выбрал из radiogroup ничего, то есть itemindex =-1, и кстати сама по себе программа запускается, просто в ней самой выскакивает такая ошибка... Это я заполнил как товарищ сверху посоветовал...
0
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,248
14.05.2015, 00:38 6
Цитата Сообщение от manchester_alan Посмотреть сообщение
но не знаю как исправить
Цитата Сообщение от manchester_alan Посмотреть сообщение
Это я заполнил как товарищ сверху посоветовал.
Ну и где код?
"Не робей, краса младая". Показывай.
0
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 00:45  [ТС] 7
northener,
Код
procedure TForm1.Button2Click(Sender: TObject);
var i:Integer;
begin
  inc(question);
  Inc(ButClickNum);

   if ButClickNum < 11 then
   begin
  lbl1.Visible:=true;
  Button2.Caption:='Далее';
  GroupBox1.Color:=clYellow;
  QuestionNum:=Random(diff.Count);
  GroupBox1.Caption:='Вопрос №'+inttostr(question);
  memo1.Lines.Clear;
  memo1.Lines.Add(quest.ReadString(diff[QuestionNum],'quest',''));
  otvetstr:=(quest.ReadString(diff[QuestionNum],'otvet',''));
  RadioGroup1.Items.Clear;
  RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'otvet',''));
  RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'var2',''));
  RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'var1',''));;
  with RadioGroup1.Items do for i:=0 to Count-1 do Exchange(Random(count),Random(count));
  if question=10 then Button2.Caption:='Конец теста';
  diff.Delete(QuestionNum);
  if RadioGroup1.Items[RadioGroup1.ItemIndex]=otvetstr then inc(k);
  end
  else
  begin
     Button2.Caption:='Конец теста';
     MessageDlg('Тест окончен :)'+#13+'Количество правильных ответов:  '+inttostr(k),mtInformation,[mbOK],0);
     Button2.Caption:='Начать тест';
     GroupBox1.Caption:='Вопрос';
     memo1.Text:='';
     RadioGroup1.Items.Clear;
     RadioGroup1.Items.Add('Вариант ответа 1');
     RadioGroup1.Items.Add('Вариант ответа 2');
     RadioGroup1.Items.Add('Вариант ответа 3');
     question:=0; ButClickNum:=0; k:=0;
     lbl1.Visible:=False;
     GroupBox1.Color:=clBtnHighlight;
     diff:=TStringList.Create;
     quest:=TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'вопросы ответы.ini');
     quest.ReadSections(diff);
     end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   GroupBox1.Caption:='Вопрос';
   RadioGroup1.Items.Add('Вариант ответа 1');
   RadioGroup1.Items.Add('Вариант ответа 2');
   RadioGroup1.Items.Add('Вариант ответа 3');
   k:=0; question:=0;
   Button2.Caption:='Начать тест';
   lbl1.Visible:=False;
   diff:=TStringList.Create;
   quest:=TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'вопросы ответы.ini');
   quest.ReadSections(diff);
   ButClickNum := 0;
end;

procedure TForm1.Button3Click(Sender: TObject);
var rez:TModalResult;
begin
 rez:=MessageDlg('Выход :(' +#13+ 'Вы уверены?',mtWarning,[mbYes,mbNo],0);
 if rez=mryes then close;
end;
0
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,248
14.05.2015, 00:56 8
Нда.
Есть чему стыдиться. Но не всё так безнадежно.
24-ю строчку надо вставить перед 4-й.
0
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 07:58  [ТС] 9
northener, понятно спасибо)

Добавлено через 6 часов 58 минут
переставил...а все равно выдает такую ошибку перед началом теста....
0
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
14.05.2015, 14:53 10
ItemIndex у радиогруппы изначально равен -1 , вполне возможно, что на это и критует=)
0
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 15:00  [ТС] 11
GreeNicee, да кстати программа именно на это и ругается)) но перед началом теста же и надо чтобы ничего не было выбрано.... Как в таком случае быть..?(
0
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
14.05.2015, 15:23 12
Ну как вариант :_: чтобы не выглядело криво - сделать ЧЕТВЕРТЫЙ RadioButton НЕВИДИМЫЙ и выбирать его))
Delphi
1
2
3
4
5
procedure TForm1.FormCreate(Sender: TObject);
begin
RadioGroup1.ItemIndex := 3 // с 0 если не ошибаюсь начинается отсчет
//И в кнопку ответа В САМОЕ НАЧАЛО я бы еще добавил условие
if RadioGroup1.ItemIndex <> 3 then
0
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 15:29  [ТС] 13
А как сделать невидимым в radiogroup 4 item...?
0
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
14.05.2015, 15:37 14
Delphi
1
radiobutton4.visible := false;
//никогда с radioGROUP не работал, там же вроде каждый айтэм - это радиобаттон.)если так то код выше)

Добавлено через 34 секунды
ладно щас посмотрю

Добавлено через 1 минуту
хмм а нет там только строки _) и по индексу к свойству visible не обратиться
0
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 15:38  [ТС] 15
GreeNicee, ну ладно, домой приду скажу..))) я с телефона просто.. все равно спасибо от души))
0
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
14.05.2015, 15:41 16
попробуй так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
procedure TForm1.Button2Click(Sender: TObject);
var i:Integer;
begin
  if RadioGroup1.ItemIndex <> -1 then
  begin
    inc(question);
    Inc(ButClickNum);
 
    if ButClickNum < 11 then
    begin
    lbl1.Visible:=true;
    Button2.Caption:='Далее';
    GroupBox1.Color:=clYellow;
    QuestionNum:=Random(diff.Count);
    GroupBox1.Caption:='Вопрос №'+inttostr(question);
    memo1.Lines.Clear;
    memo1.Lines.Add(quest.ReadString(diff[QuestionNum],'quest',''));
    otvetstr:=(quest.ReadString(diff[QuestionNum],'otvet',''));
    RadioGroup1.Items.Clear;
    RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'otvet',''));
    RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'var2',''));
    RadioGroup1.Items.Add(quest.ReadString(diff[QuestionNum],'var1',''));;
    with RadioGroup1.Items do for i:=0 to Count-1 do Exchange(Random(count),Random(count));
    if question=10 then Button2.Caption:='Конец теста';
    diff.Delete(QuestionNum);
    if RadioGroup1.Items[RadioGroup1.ItemIndex]=otvetstr then inc(k);
    end
    else
    begin
      Button2.Caption:='Конец теста';
      MessageDlg('Тест окончен :)'+#13+'Количество правильных ответов:  '+inttostr(k),mtInformation,[mbOK],0);
      Button2.Caption:='Начать тест';
      GroupBox1.Caption:='Вопрос';
      memo1.Text:='';
      RadioGroup1.Items.Clear;
      RadioGroup1.Items.Add('Вариант ответа 1');
      RadioGroup1.Items.Add('Вариант ответа 2');
      RadioGroup1.Items.Add('Вариант ответа 3');
      question:=0; ButClickNum:=0; k:=0;
      lbl1.Visible:=False;
      GroupBox1.Color:=clBtnHighlight;
      diff:=TStringList.Create;
      quest:=TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'вопросы ответы.ini');
      quest.ReadSections(diff);
    end;
  end;
end;
1
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 17:13  [ТС] 17
Нее.. Так тогда вообще не начинает...

Добавлено через 4 минуты
Такой вариант с 4 кнопкой не думаю что верный...
0
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
14.05.2015, 18:14 18
вариант выше без 4 кнопки - если вы не выбрали ответ то не пойдет проверки и не будет крита, а если выбрали то крита быть не должно)
0
3 / 4 / 1
Регистрация: 05.01.2015
Сообщений: 465
14.05.2015, 18:17  [ТС] 19
Извините, а крит это что значит?)))
0
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
14.05.2015, 18:55 20
Не запоминайте ошибок быть не должно)что у вас происходит с вариантом выше?)
0
14.05.2015, 18:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2015, 18:55
Помогаю со студенческими работами здесь

подсчет правильных ответов
Сделал в html страничку. на ней 5 вопросов по 4 radio для каждого. &lt;input name=&quot;vybor&quot;...

Подсчет правильных ответов
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int funct () { ...

Подсчет ответов со всех окон
Подскажите пожалуйста! У меня есть тест из &quot;radiobutton&quot;, в каждом окне по вопросу. Вопрос: как...

Подсчет правильный и не правильных ответов
Случилась проблема, не могу придумать,как подсчитать правильные и не правильные ответы. Знаю,что...

Подсчет ответов в программе тестирования
У меня дана задача в Турбо паскале.Надо сделать тест из обычного бумажного вида в электронном.дано...

Подсчет результатов количества ответов по баллам
Привет всем. В чем проблема после подверждения количество ответов пишет 1 а там 5 тестов .Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru