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

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

28.05.2011, 18:07. Просмотров 1660. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос разобраться в коде..программа тестирования (Delphi):

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

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

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

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

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

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

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 / 3
Регистрация: 25.10.2010
Сообщений: 56
29.05.2011, 13:24  [ТС] #3
а как сделать так, чтобы можно было выбирать два ответа, а не один.. подскажите!!
0
Romantik_FM
309 / 305 / 80
Регистрация: 03.03.2010
Сообщений: 1,328
29.05.2011, 14:30 #4
Используйте CheckBox
1
Павел785
2 / 2 / 3
Регистрация: 25.10.2010
Сообщений: 56
29.05.2011, 16:53  [ТС] #5
т.е заменить вообще на checkbox всё?
0
Arcor
4816 / 1817 / 380
Регистрация: 20.11.2009
Сообщений: 5,797
Записей в блоге: 1
29.05.2011, 16:58 #6
тут недавно один участник тоже составлял на подобии программу, он использовал CheckListBox, попробуйте и вы его использовать в вашем случае
1
Павел785
2 / 2 / 3
Регистрация: 25.10.2010
Сообщений: 56
29.05.2011, 17:07  [ТС] #7
я бы с радостью, но как сделать/подключить то я не знаю(((
0
Romantik_FM
309 / 305 / 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