Казахстан, Костанайский гос. университет имени А.Байтурсынова

 

Знакомство с визуальными компонентами на примере лабораторной работы «Создания тестирующей программы»

 

Ильницкий В.Г.  старший преподаватель кафедры программного обеспечения

 

Тема:  Создание тестирующей программы

 

 

 

 

 

 

 

 

 

 

 


Задание:  Создать тестирующую программу. Тестовые вопросы хранятся в HTML файлах с названиями  1.HTM, 2.HTM,… 15.HTM. Ответы хранятся в файле otwet.txt

  При запуске программы, при нажатии на кнопку «Начать тестирование»  за каждой кнопкой закрепляется случайным образом выбранный вопрос. При нажатии на кнопку с номером задания в WebBrowser отображается соответствующий вопрос. При ответе на вопрос, программа запоминает ответы, а при нажатии на «Закончить тестирование» проверяется правильность ответов и подведение итогов.

Ход работы:

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

 

Var     a: array [1..20,1..2] of integer; kol_vo, nom,i,j,werno:integer;

 

Процедура нажатия на кнопку «Начать тестирование»

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  ListBox1.Items.LoadFromFile('otwet.txt';

 kol_vo:=ListBox1.Count;    werno:=0;   net:=0;  Randomize;

  for i:=1 to 20 do               

    a[i,1]:=random(kol_vo)+1;

  StatusBar1.Panels[0].Text:='  Начало - '+TimeToStr(Time);

end;

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

 

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

  nom:=StrToInt((Sender as TBitBtn).Caption);

  (Sender as TBitBtn).Font.Color:=clRed;

  WebBrowser1.Navigate(GetCurrentDir+'\'+IntToStr(a[nom,1])+'.htm');

  if a[nom,2]<>0 then  Edit1.Text:=Chr(64+a[nom,2])  // буква ответа /

                                                                   //определяется по коду + 64

                 else  Edit1.Text:='';           

end;

 

При щелчке по кнопке выбора ответа, номер ответа запоминается в массив

 

procedure TForm1.Button3Click(Sender: TObject);

begin

  a[nom,2]:=1; Edit1.Text:='A';

end;

 

При щелчке по кнопке «Закончить тестирование» проверяются правильность ответов учащегося путем сравнения данных из массива и сверяя их с i-той строкой из списка.

 

procedure TForm1.Button2Click(Sender: TObject);

begin

 for i:=1 to 20 do

  begin

   if (a[i,2]=1)and (pos('A',ListBox1.Items.Strings[a[i,1]-1])<>0)

   then werno:=werno+1;

   if (a[i,2]=2)and (pos('B',ListBox1.Items.Strings[a[i,1]-1])<>0)

   then werno:=werno+1;

   if (a[i,2]=3)and (pos('C',ListBox1.Items.Strings[a[i,1]-1])<>0)

   then werno:=werno+1;

   if (a[i,2]=4)and (pos('D',ListBox1.Items.Strings[a[i,1]-1])<>0)

   then werno:=werno+1;

   if (a[i,2]=5)and (pos('E',ListBox1.Items.Strings[a[i,1]-1])<>0)

   then werno:=werno+1;

  end;

 ShowMessage('Ваша осенка - '+FloatToStr(5*werno/20);

end;