Лабораторная работа №25. Тест




Цель работы - создать программу, которая тестирует учащегося по информатике и математике.

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

На первой форме происходит регистрация учащегося.

Рис. 25.1

 

Фрагмент программы (unitl): uses Unit2; {$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin Close;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.Label3.Caption:=Form l.Editl.Text;

Form2.ShowModal;

end;

На второй форме предлагается выбрать один из тестов.

Рис. 25.2

Фрагмент программы (unit2):

uses Unit3, Unit6; {$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

begin

Form3.ShowModal;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Form2.Close;

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

Form6.Edit2.Text:=";

Form6.ShowModal;

end;

 

На третьей форме предлагается проути тест по информатике.

 

Рис. 25.3

 

Фрагмент программы (unit3): uses Unit4, Unit2; {$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin

k:=0;

if (Form3.Edit1.Text='монитор') or (Form3.Edit1.Text='Монитор') or

(Form3.Edit1.Text='МОНИТОР') then k:=k+1; if (Form3.Edit2.Text='Клавиатура') or (Form3.Edit2.Text='клавиатура')

or (Form3.Edit2.Text='КЛАВИАТУРА') then k:=k+1; if Form3.Edit3.Text='8' then k:=k+1; Form4.Label2.Caption:=IntToStr(k); if k=0 then Form4.Label1.Caption:='Очень плохо' else

if k=1 then Form4.Label1.Caption:='Плохо' else

if k=2 then Form4.Label1.Caption:='Хорошо' else

if k=3 then Form4.Label1.Caption:='Очень хорошо';

Form3.Edit1.Text:='';

Form3.Edit2.Text:='';

Form3.Edit3.Text:='';

Form4.ShowModal;

end;

procedure TForm3.Button2Click(Sender: TObject);

begin

Form3.Close;

end;

На следующей форме отображается результат тестирования и предложение о просмотре ответа.

Рис. 25.4

 

Фрагмент программы (unit4): uses Unit1, Unit5, Unit3, Unit2; {$R *.dfm}

procedure TForm4.Button2Click(Sender: TObject);

begin

Form4.Close;

end;

procedure TForm4.Button1Click(Sender: TObject);

begin

Form4.Close;

Form3.Close;

end;

procedure TForm4.Button3Click(Sender: TObject);

begin

Form5.ShowModal;

end;

На следующей форме отображаются правильные ответы.

Рис. 25.5

 

Фрагмент программы (unit5):

uses Unit4, Unit3, Unit2, Unit1;

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);

begin

Form4.Close;

Form3.Close;

Form2.Close;

Form1.Close;

Form5.Close;

end;

Если учащийся выбрал тест по математике, то ему предлагается проверить свои знания таблицы умножения. На следующей форме случайным образом выбираются числа. Учащийся должен ввести значение произведения в текстовое поле. С помощью кнопки "проверка" выясняется правильность введенного ответа. Если ответ правильный, то можно сгенерировать следующий пример. После нескольких примеров можно проверить свой рейтинг.

Рис. 25.6

 

Фрагмент программы (unit6): uses Unit7, Unitl; {$R *.dfm}

procedure TForm6.Button1Click(Sender: TObject);

var n,i:integer;

begin

randomize;

a:=random(10)-0;

b:=random(l0)-0;

Form6.Label1.Caption:=IntToStr(a);

Form6.Label2.Caption:=IntToStr(b);

Form6.Edit2.Text:-'; Form6.Label6.Caption:='';

end;

procedure TForm6.Button2Click(Sender: TObject);

begin

if (a*b=StrToInt(Form6.Edit2.Text)) then begin

Form6.Label6.Caption:='Правильно';

m:=m+1;

r:=r+1;

q:=q+1;

end else begin

Form6.Label6.Caption:='Не правильно'; r:=r-1;

q:=q+1;

end;

Form6.Label1.Caption:=''; Form6.Label2.Caption:='';

end;

procedure TForm6.Button3Click(Sender: TObject); var

c:real;

begin

Form7.Label2.Caption:=Form1.Edit1.Text;

Form7.Label1.Caption:='Вы ответили на '+IntToStr(q)+' вопросов, из них правильно '+IntToStr(m);

Form7.Label4.Caption:='Ваш рейтинг = '+IntToStr(r);

c:=m/q;

if c=0 then Form7.Label3.Caption:='Очень плохо' else if (c>0)and(c<0.5) then Form7.Label3.Caption:='Плохо' else if c=0.5 then Form7.Label3.Caption:='Надо доучить' else if (c>0.5) and (c<1) then Form7.Label3.Caption:='Хорошо' else if c=1 then Form7.Label3.Caption:='Молодец!'; Form7.ShowModal;

end;

При нажатии на кнопке "Ваш рейтинг" на следующей форме появляется результаты рейтенга. Тестирование можно завершить.

 

Рис. 25.7

 

Фрагмент программы (unit7): uses Unit6; {$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);

begin

Form7.Close;

Form6.Close;

end;

Обратите внимание на подключение модулей в строке Uses. Таким образом, происходит обращение к соответствующей форме. Для отображения формы используется функция

function ShowModal: Integer;

Данная функция позволяет показывать форму в работе режима диалога.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-12-05 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: