Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Павел785
2 / 2 / 0
Регистрация: 25.10.2010
Сообщений: 56
1

разобраться в коде..программа тестирования

28.05.2011, 18:07. Просмотров 1685. Ответов 7
Метки нет (Все метки)

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
const
  TestName='Test_'; // имя файла теста
  max=1000; // максимальное количесво вопросов
var
  Form1: TForm1;
  QuestionText: array [0..max] of string; // текст вопроса
  AnswerQuestion: array [0..max] of byte; // правильный вариант ответа
  QuestionText1: array [0..max] of string;// первый вопрос
  QuestionText2: array [0..max] of string;// второй вопрос
  QuestionText3: array [0..max] of string;// третий вопрос
 
  Ball: integer=0;                        // оценка
  now: integer=0;                         // текущий вопрос
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if AnswerQuestion[now]=AnswerGroup.ItemIndex+1 then  // сравниваем значение ответа и выбранного значения
  inc(ball);
  AnswerGroup.ItemIndex:=-1;  // убираем выдаление с группы ответов
  inc(now);                   // увеличиваем вопрос на 1+
  LoadQuestion(now);          // загружаем его
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
  s: Tstrings;
  i: Integer;
begin
  i:=0;
  while FileExists(ExtractFilePath(application.ExeName)+TestName+inttostr(i)+'.txt') do  // проверяем файлы тестов
  begin
  application.ProcessMessages;  // что б не тормозило
  s:=tstringlist.Create;        // создаем переменную
  s.LoadFromFile(ExtractFilePath(application.ExeName)+TestName+inttostr(i)+'.txt'); // загружаем файл
    if s.Text<>'' then  // если не пуст то
    TestBox.Items.Add(s.Strings[0]); // добавляем в группу тестов название теста
  s.Free;  // уничтожаем переменную
  inc(i);  // увеличиваем счетчик
  end;
end;
 
procedure TForm1.LoadTest(Index: integer);   // загружаем выбранный тест
var
  s: Tstrings;
  j, h: Integer;
begin
  h:=0;
  s:=tstringlist.Create;  // создаем переменную
  s.LoadFromFile(ExtractFilePath(application.ExeName)+TestName+inttostr(Index)+'.txt'); // загружаем
    if s.Text<>'' then  // если не пустая то
    begin
    form1.Caption:=s.Strings[0]; // название теста
      for j := 1 to s.Count - 1 do // начинаем присваивать значения
      begin
        if s.Strings[j]='__________' then  // это разделитель который мы ищем
        begin
        QuestionText[h]:=s.Strings[j+1]; // текст вопроса
        QuestionText1[h]:=s.Strings[j+2];// текст первого вариант ответа
        QuestionText2[h]:=s.Strings[j+3];// текст второго варианта ответа
        QuestionText3[h]:=s.Strings[j+4];// текст третьего варианта ответа
 
        AnswerQuestion[h]:=strtoint(s.Strings[j+5]); // номер ответа
        inc(h); // увеличиваем счетчик для того что бы записывать в новый элемент массива
        end;
      end;
    end;
  s.Free; // уничтожаем переменную
  LoadQuestion(now);// загружаем вопрос здесь он всегда = 0
end;
 
procedure TForm1.TestBoxCloseUp(Sender: TObject);
begin
  // при выборе теста обнуляем все значения
  ball:=0;
  now:=0;
  button1.Enabled:=true;
  LoadTest(TestBox.ItemIndex);// загружаем выбранный тест
end;
 
procedure TForm1.LoadQuestion(Index: integer);
begin
  if QuestionText[Index]<>'' then// если выбранный вопрос существует то грузим его
  begin
  AnswerGroup.Items.Clear;// очищаем поле ответов
  Question.Caption:=QuestionText[Index];// задаем запрос
  AnswerGroup.Items.Add(QuestionText1[index]);// добавляем ответы
  AnswerGroup.Items.Add(QuestionText2[index]);
  AnswerGroup.Items.Add(QuestionText3[index]);
 
  end
  else // иначе сообщаем что тест завершен
  begin
  showmessage('Тест завершен'+#13+'Правильных ответов: '+inttostr(ball)); // сообщение что типа тест окончен и выдаем количесво правильных ответов
  button1.Enabled:=false; // делаем неактивной кнопку что бы не тыкали
  end;
end;
 
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Close;
end;
 
end.

ЦЕЛЬ:
1) как сделать так, чтобы задавалось четыре варианта ответа, а не три;
2) как сделать так, чтобы в конце теста выводилась оценка за тестирование;
3) если возможно чтобы оценка записывалась в базу данных(БД уже создана)

 Комментарий модератора 
Сообщение изменено модератором.
Для кода программ есть специальные теги в редакторе сообщений.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 18:07
Ответы с готовыми решениями:

Программа тестирования
Добрый вечер Я написал программу тест, теперь нужно поставить таймер с...

Программа тестирования
Здравствуйте программистам! Такая вот задачка у меня: нужно сделать простую...

Разобраться в коде
Я чайник в программировании и я надеюсь, что этот сайт поможет мне научится...

Программа тестирования знаний
Доброго времени суток, тема курсовой работы разработать программу оценки...

Программа для тестирования
Создать элементарную программу тестирования. Файл тестовых заданий должен иметь...

7
Kovax
23 / 23 / 10
Регистрация: 17.10.2010
Сообщений: 76
29.05.2011, 02:41 2
Господи, тут всё элементарное, если вы это изначально сами писали то никаких вопросов нет, а если с интернета скачали - в интернете куча книг, где разбираются всякие тесты и так далее.


Delphi
1
2
3
QuestionText1: array [0..max] of string;// первый вопрос
 QuestionText2: array [0..max] of string;// второй вопрос
 QuestionText3: array [0..max] of string;// третий вопрос
Добавить массив типа string под 4ый вопрос/ответ
Delphi
1
QuestionText4: array [0..max] of string;
Delphi
1
2
3
4
5
begin
 QuestionText[h]:=s.Strings[j+1]; // текст вопроса
 QuestionText1[h]:=s.Strings[j+2];// текст первого вариант ответа
 QuestionText2[h]:=s.Strings[j+3];// текст второго варианта ответа
 QuestionText3[h]:=s.Strings[j+4];// текст третьего варианта ответа
в этом отрывке нужно дописать:
Delphi
1
2
QuestionText4[h]:=s.Strings[j+5];
AnswerQuestion[h]:=strtoint(s.Strings[j+6]); // номер ответа
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.LoadQuestion(Index: integer);
 begin
 if QuestionText[Index]<>'' then// если выбранный вопрос существует то грузим его
 begin
 AnswerGroup.Items.Clear;// очищаем поле ответов
 Question.Caption:=QuestionText[Index];// задаем запрос
 AnswerGroup.Items.Add(QuestionText1[index]);// добавляем ответы
 AnswerGroup.Items.Add(QuestionText2[index]);
 AnswerGroup.Items.Add(QuestionText3[index]);
На добавление 4го варианта ответа нужно дописать:
Delphi
1
AnswerGroup.Items.Add(QuestionText4[index]);
1
Павел785
2 / 2 / 0
Регистрация: 25.10.2010
Сообщений: 56
29.05.2011, 13:24  [ТС] 3
а как сделать так, чтобы можно было выбирать два ответа, а не один.. подскажите!!
0
Romantik_FM
310 / 306 / 80
Регистрация: 03.03.2010
Сообщений: 1,328
29.05.2011, 14:30 4
Используйте CheckBox
1
Павел785
2 / 2 / 0
Регистрация: 25.10.2010
Сообщений: 56
29.05.2011, 16:53  [ТС] 5
т.е заменить вообще на checkbox всё?
0
Arcor
5035 / 1912 / 407
Регистрация: 20.11.2009
Сообщений: 6,249
Записей в блоге: 1
29.05.2011, 16:58 6
тут недавно один участник тоже составлял на подобии программу, он использовал CheckListBox, попробуйте и вы его использовать в вашем случае
1
Павел785
2 / 2 / 0
Регистрация: 25.10.2010
Сообщений: 56
29.05.2011, 17:07  [ТС] 7
я бы с радостью, но как сделать/подключить то я не знаю(((
0
Romantik_FM
310 / 306 / 80
Регистрация: 03.03.2010
Сообщений: 1,328
29.05.2011, 17:14 8
вот тебе архивы с программой для тестирования и составления тестов из книги Флёнова
Разбирайся. Книга "Библия Delphi"
2
Вложения
Тип файла: rar построитель тестов.rar (490.4 Кб, 101 просмотров)
Тип файла: rar Программа для тестирования.rar (253.2 Кб, 114 просмотров)
29.05.2011, 17:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 17:14

Программа для тестирования
Здравствуйте! У меня есть программа для тестирования, но там результат в...

Программа для тестирования
Здравствуйте. У меня тема программы &quot;Тестирование по теме множества&quot;. Все...

Программа для тестирования
Пишу программу для тестирования, есть форма, которая имеет свойста StayOnTop,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru