ПРАКТИЧЕСКАЯ РАБОТА №14
Тема:Разработка тестового приложения.
Цель работы:Закрепить навыки программирования в Delphi.
Постановка задачи:
Текстовый файл содержит несколько вопросов и 4 варианта ответа, из которых только один ответ верный(помечен символом +). Файл имеет следующую структуру:
Тема теста (дисциплина)
/вопрос 1
- ответ 1
+ ответ 2
- ответ 3
- ответ 4
/вопрос 2
+ вопрос 1
- вопрос 2
- вопрос 3
- вопрос 4
. . .
Создать текстовый файл с тестом из 5 вопросов в соответствии с заданной структурой.
Разработать приложение, которое позволяет выбирать файл с тестовыми заданиями и проводить последовательное тестирование.
Предусмотреть вывод результат тестирования на экран
Порядок выполнения:
1. Загрузить Delphi;
2. Установить на форму следующие объекты и изменить им свойства (см. таблицу), объявить используемые переменные как глобальные.
объект | свойство | значение |
Label | Name | Label1 |
WordWrap | True | |
RadioButton | Name | RadioButton1 |
Button | Name | Button1 |
Caption | Далее | |
OpenDialog | Name | OpenFile |
3. Для формы выбрать событие Create и ввести код для создания массива радиокнопок и объявить необходимые переменные:
For i:=1 to 4 Do
Begin
otv[i] := TRadioButton.Create(RadioButton1) ;
otv [i].Parent := Form1;
otv[i].Left := RadioButton1.Left;
otv[i].Top:= RadioButton1.Top+i*40;
otv [i].Visible :=true;
otv [i].Width := RadioButton1.Width ;
otv [i].Height := RadioButton1.Height ;
otv [i].Color := RadioButton1.Color ;
otv[i].Checked :=false;
otv[i].Font := RadioButton1.font;
end;
RadioButton1.Visible :=false;
4.Добавить на форму меню из двух пунктов Файл / ОткрытьиВыход
5. Для пункта Открыть ввести код:
If openfile.Execute Then
Begin
assignfile(f1,openfile.FileName);
reset(f1);
readln(f1,s);
form1.Caption :=s; {тема теста}
verno:=0;//кол-во верных ответов
n:=0; //номер текущего вопроса
button1.Enabled :=true;
label1.Caption :='';
for i:=1 to 4 do
begin
otv[i].Caption :='';
otv[i].Checked :=false;
end;
end;
6. Для кнопки Далее ввести код:
if n>0 then {проверим ответ на предыдущий вопрос}
for i:=1 to 4 do
if (otv[i].Checked =true) and (otv[i].tag=1) then verno:=verno+1;
if eof(f1) then {если тест закончен}
begin
showmessage(' кол-во верных ответов='+inttostr(verno));
closefile(f1);
button1.Enabled :=false;
exit;
end;
n:=n+1;
{÷читаем следующий вопрос}
readln(f1,s);
delete(s,1,1);
label1.Caption :=s;
for i:=1 to 4 do {варианты ответов}
begin
readln(f1,s);
otv[i].Checked :=false;
otv[i].Tag:=0;
if s[1]='+' then otv[i].Tag:=1;{запомним верный ответ}
delete(s,1,1);
otv[i].Caption :=s;
end;;
7. Проверить работу приложения.
8. Модернизировать приложение: вывод каждого вопроса должен сопровождаться отображением картинки, имя графического файла для каждого вопроса записать в строке, следующей за вопросом.
9. Результат показать преподавателю.