Практическая работа № 35
«Тест»
Цель работы - создать программу, которая тестирует учащегося по информатике и математике. Проект должен содержать последовательность форм, реализующих диалог с тестируемым учащимся. На первой форме происходит регистрация учащегося.
Фрагмент программы (unit1): uses Unit2; {$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject); Begin Close; end;
procedure TForm1.Button1Click(Sender: TObject); Begin Form2.Label3.Caption:=Form1.Edit1.Text; Form2.ShowModal; end;
Фрагмент программы (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; На третьей форме предлагается проути тест по информатике.
Фрагмент программы (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; На следующей форме отображается результат тестирования и предложение о промотре ответа.
Фрагмент программы (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; На следующей форме отображаются правильные ответы.
Фрагмент программы (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; Если учащийся выбрал тест по математике, то ему предлагается проверить свои знания таблицы умножения. На следующей форме случайным образом выбираются числа. Учащийся должен ввести значение произведения в текстовое поле. С помощью кнопки «проверка» выясняется правильность введенного ответа. Если ответ правильный, то можно сгенерировать следующий пример. После нескольких примеров можно проверить свой рейтинг.
Фрагмент программы (unit6): uses Unit7, Unit1; {$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject); var n,i:integer; Begin randomize; a:=random(10)-0; b:=random(10)-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; При нажатии на кнопке «Ваш рейтинг» на следующей форме появляется результаты рейтенга. Тестирование можно завершить.
Фрагмент программы (unit7): uses Unit6; {$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject); Begin Form7.Close; Form6.Close; end; Обратите внимание на подключение модулей в строке Uses. Таким образом, происходит обращение к соответствующей форме. Для отображения формы используется функция function ShowModal: Integer; Данная функция позволяет показывать форму в работе режима диалога.
|