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

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

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

Практическая работа № 35 Тест

Рис. 65.

Фрагмент программы (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;

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

Практическая работа № 35 Тест

Рис. 66.

Фрагмент программы (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;

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

Практическая работа № 35 Тест

Рис. 67.

Фрагмент программы (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;

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

Практическая работа № 35 Тест

Рис. 68.

Фрагмент программы (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;

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

Практическая работа № 35 Тест

Рис. 69.

Фрагмент программы (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;

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

Практическая работа № 35 Тест

Рис. 70.

Фрагмент программы (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;

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

Практическая работа № 35 Тест

Рис. 71.

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

procedure TForm7.Button1Click(Sender: TObject);
begin
Form7.Close;
Form6.Close;
end;

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

function ShowModal: Integer;

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

Практическая работа № 34 "Игра" || Оглавление || Практическая работа № 36 "Проигрыватель"


Практикум по Delphi для решения прикладных задач



Новости за месяц

  • Сентябрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс