ПРАКТИЧЕСКАЯ РАБОТА №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. Результат показать преподавателю.