2. В случае невозможности построения ответов по указанной в п.1 схеме, недостающее число ответов необходимо дополнить ответами, которые противоречат здравому смыслу. Отбрасывание данных ответов учащимися может трактоваться как наличие определенных знаний, интуиции приобретённой в результате целенаправленной работы в процессе обучения.
3. Ответы могут быть подобраны и таким образом, что все ответы являются правильными, но - частично! И лишь один ответ является полным, а следовательно и правильным. ( Обычно такая сетка ответов конструируется при проверке теоретической базы знаний).
1. Листинг первой формы: Старт
unit Unit2;
interface
uses
{использованныебиблиотеки}
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, Menus, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
Button2: TButton;
Button3: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
Image1: TImage;
Panel2: TPanel;
Memo1: TMemo;
Image2: TImage;
Image3: TImage;
{Описаниепроцедур}
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1, Unit3, Unit4, Unit5;
{$R *.dfm}
//------------------------------------------------------------------
{выход}
procedure TForm2.Button3Click(Sender: TObject);
begin
application.Terminate;
end;
//--------------------------------------------------------------------
{отображение формы с тестом, скрытие главной формы}
procedure TForm2.Button2Click(Sender: TObject);
begin
form3.show;
form2.Hide;
end;
//------------------------------------------------------------------------
{отображение формы "об авторе", скрытие главной формы}
procedure TForm2.N6Click(Sender: TObject);
begin
AboutBox.show;
form2.Hide;
end;
end.
2. Листинг второй формы: Тест
unit Unit3;
interface
uses
{библиотеки использованные при создании данного модуля}
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, ExtCtrls, jpeg;
type
{Описание объектов имеющихся на форме}
TForm3 = class(TForm)
Button2: TButton;
Button3: TButton;
Panel1: TPanel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Button1: TButton;
Panel2: TPanel;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button4: TButton;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Memo1: TMemo;
Timer1: TTimer;
Image1: TImage;
Image2: TImage;
Label2: TLabel;
{Описаниепроцедур}
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure theend;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2, Unit1;
//--------------------------------------------------------
{вводглобальныхпеременных}
var
f:textfile;
s,d:string;
z,g,j,i:integer;
min,sek:byte;
{$R *.dfm}
//-----------------------------------------------------
{процедура для начала и выполнения теста}
procedure TForm3.Button1Click(Sender: TObject);
begin
if timer1.enabled=false then timer1.Enabled:=true;
if s<>''then
if z=strtoint(s)
then g:=g+1;
radiobutton1.visible:=true;
radiobutton2.visible:=true;
radiobutton3.visible:=true;
button2.visible:=true;
button1.caption:='Следующийвопрос';
{если не выбран не один ответ программа выдает соответствующее сообщение}
if (radiobutton1.Checked=false)
and (radiobutton2.Checked=false)
and (radiobutton3.Checked=false)
then showmessage ('Выберитеодинизвариантовответа')
else
{иначе выдает следующий вопрос,очищает "радиобаттоны"
и считает кол-во вопросов}
begin
radiobutton1.Checked:=false;
radiobutton3.Checked:=false;
radiobutton2.Checked:=false;
i:=i+1;
if i=16 then theend
else
begin
{в этой процедуре переключателям присваиваются варианты ответов}
readln(f,s);
memo1.Text:=s;
readln(f,s);
radiobutton1.caption:=s;
readln(f,s);
radiobutton2.caption:=s;
readln(f,s);
radiobutton3.caption:=s;
readln(f,s);
radiobutton1.Checked:=false;
end;
end;
end;
//------------------------------------------------------
{процедура для коррекного закрытия программы}
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form3.Button3.Click;
end;
//------------------------------------------------------------
{процедура перехода на главную форму}
procedure TForm3.Button2Click(Sender: TObject);
begin
{скрытие теста}
form3.Hide;
{открытие главной формы}
form2.show;
end;
//---------------------------------------------------------
{выход}
procedure TForm3.Button3Click(Sender: TObject);
begin
application.Terminate;
end;
//----------------------------------------------------------------
{проверка активности переключателя и присвоение ему определенного значения}
procedure TForm3.RadioButton1Click(Sender: TObject);
begin
z:=1;
{if radiobutton1.Checked then z:=1;
if radiobutton2.Checked then z:=2;
if radiobutton3.Checked then z:=3;}
end;
//----------------------------------------------------------------
{проверка активности переключателя и присвоение ему определенного значения}
procedure TForm3.RadioButton2Click(Sender: TObject);
begin
z:=2;
{if radiobutton1.Checked then z:=1;
if radiobutton2.Checked then z:=2;
if radiobutton3.Checked then z:=3; }
end;
//-----------------------------------------------------------------------
{проверка активности переключателя и присвоение ему определенного значения}
procedure TForm3.RadioButton3Click(Sender: TObject);
begin
z:=3;
{if radiobutton1.Checked then z:=1;
if radiobutton2.Checked then z:=2;
if radiobutton3.Checked then z:=3;}
end;
//-------------------------------------------------------------------------
{открытие файла с вопросами и ответами для теста на чтение}
procedure TForm3.FormActivate(Sender: TObject);
begin
assignfile(f,'Test.txt');
reset(f);
end;
//-------------------------------------------------------------------------
{процедура для повторного тестирования}
procedure TForm3.Button4Click(Sender: TObject);
begin
form3.Hide;
form2.Show;
form2.Hide;
form3.Show;
g:=0;
j:=0;
i:=0;
sek:=0;
min:=0;
radiobutton1.Checked:=true;
label1.Caption:='Тест';
button1.caption:='Начатьтест';
Edit1.Visible:=false;
Edit2.Visible:=false;
Edit3.Visible:=false;
Edit4.Visible:=false;
Edit5.Visible:=false;
Edit6.Visible:=false;
Edit7.Visible:=false;
button1.Visible:=true;
button4.Visible:=false;
end;
//--------------------------------------------------------------------------
procedure TForm3.Timer1Timer(Sender: TObject);
begin
sek:=sek+1;
if sek=60 then begin
sek:=0;
min:=min+1;
end;
if min<10 then label2.Caption:='0'+inttostr(min)+':'
else label2.Caption:=inttostr(min)+':';
if sek<10 then label2.Caption:=label2.Caption+'0'+inttostr(sek)
else label2.Caption:=label2.Caption+inttostr(sek);
if min=8 then theend;
end;
procedure tform3.theend;
begin
timer1.Enabled:=false;
radiobutton1.Visible:=false;
radiobutton2.Visible:=false;
radiobutton3.Visible:=false;
memo1.Text:='РЕЗУЛЬТАТТЕСТИРОВАНИЯ';
Edit1.Visible:=True;
Edit2.Visible:=True;
Edit2.Text:=inttostr(i-1);
Edit3.Visible:=True;
Edit4.Visible:=True;
Edit5.Visible:=True;
Edit5.Text:=inttostr(g);
Edit6.Visible:=True;
Edit7.Visible:=True;
Edit7.Text:=inttostr(i-g-1);
closefile(f);
button1.Visible:=false;
button4.Visible:=true;
end;
end.
3. Листинг третьей формы: Об авторе
unit Unit4;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, jpeg;
type
TAboutBox = class(TForm)
OKButton: TButton;
Panel2: TPanel;
Memo1: TMemo;
Image1: TImage;
Image2: TImage;
procedure OKButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox: TAboutBox;
implementation
uses Unit2;
{$R *.dfm}
procedure TAboutBox.OKButtonClick(Sender: TObject);
{переход на главную форму и скрытие окна "об авторе"}
begin
AboutBox.Hide;
form2.show;
end;
end.
В ходе тестирования были проверены требования к программному продукту (тест).
Было протестировано правильность работ все командных кнопок, теста программы, и подсчет, вывод результата. В ходе тестирования были выявлены ошибки. Со временем они были устранены.
Вопросы и правильные ответы к ним:
Пояснение: жирным шрифтом выделены правильные ответы.
№ | Вопрос | 1 ответ | 2 ответ | 3 ответ |
1 | Название компонента который создает текстовую метку (надпись) на форме? | Button. | Panel. | Label. |
2 | Контейнер для компонентов, по своим свойствам похожий на форму (укажите компонент)? | Frames. | Memo. | Button |
3 | Простая командная кнопка (укажите компонент)? | Memo. | Items. | Button. |
4 | Список строк с возможностью выбора нескольких из них (укажите компонент)? | TImageList | ListBox | ActionList |
5 | компонент который может служить либо для отрисовки текста (встроенная возможность) либо контейнером для других компонентов? | GroupBox | Panel | Bitmap |
6 | Компонент для создания и централизованного управления методами, ассоциируемыми с обработчиками событий компонентов? | Sorted. | ActionList. | Columns. |
7 | как выглядит компонент MainMenu после помещения его на форму? | В виде значка | В виде главного меню в верхней части формы | Компонент не отоброжается |
8 | чем различаются компоненты Label и Edit? | Максимальным размером вводимого текста. | Текст в Label нельзя редактировать во время работы программы. | Компонент Edit служит для ввода чисел. |
9 | чем различаются компоненты CheckBox и RadioButton? | CheckBox не содержит пояснительной части | RadioButton не содержит поля выбора | RadioButton исключает выбор двух значений в одном блоке переключателей |
10 | Свойство ReadOnly позволяет? | Настроить регистр вводимых символов | Настроить содержимое текстового поля | запретить редактирование текста в поле |
11 | Как задается содержимое компонента Memo при создании программы? | Вводится в специальном окне | Вводится в отдельном окне, так и в редакторе кода | Вводится в редакторе кода |
12 | как отображается компонент PopupMenu после помещения его на форму? | В виде значка | В виде контейнера | Компонент не отоброжается |
13 | Контекстное меню (укажите компонент)? | Memo | popupmenu | Items |
14 | Однострочное текстовое поле для ввода данных (укажите компонент)? | Text | Memo | Edit |
15 | Многострочное текстовое поле (укажите компонент)? | Frames | Memo | Align |
Тестирование: Выбор всех правильных вариантов ответов
Пояснение: выбранные ответы подчеркнуты, верные ответы также остаются выделенными жирным шрифтом.
№ | Вопрос | 1 ответ | 2 ответ | 3 ответ |
1 | Название компонента который создает текстовую метку (надпись) на форме? | Button. | Panel. | Label. |
2 | Контейнер для компонентов, по своим свойствам похожий на форму (укажите компонент)? | Frames. | Memo. | Button |
3 | Простая командная кнопка (укажите компонент)? | Memo. | Items. | Button. |
4 | Список строк с возможностью выбора нескольких из них (укажите компонент)? | TImageList | ListBox | ActionList |
5 | компонент который может служить либо для отрисовки текста (встроенная возможность) либо контейнером для других компонентов? | GroupBox | Panel | Bitmap |
6 | Компонент для создания и централизованного управления методами, ассоциируемыми с обработчиками событий компонентов? | Sorted. | ActionList. | Columns. |
7 | как выглядит компонент MainMenu после помещения его на форму? | В виде значка | В виде главного меню в верхней части формы | Компонент не отоброжается |
8 | чем различаются компоненты Label и Edit? | Максимальным размером вводимого текста. | Текст в Label нельзя редактировать во время работы программы. | Компонент Edit служит для ввода чисел. |
9 | чем различаются компоненты CheckBox и RadioButton? | CheckBox не содержит пояснительной части | RadioButton не содержит поля выбора | RadioButton исключает выбор двух значений в одном блоке переключателей |
10 | Свойство ReadOnly позволяет? | Настроить регистр вводимых символов | Настроить содержимое текстового поля | запретить редактирование текста в поле |
11 | Как задается содержимое компонента Memo при создании программы? | Вводится в специальном окне | Вводится в отдельном окне, так и в редакторе кода | Вводится в редакторе кода |
12 | как отображается компонент PopupMenu после помещения его на форму? | В виде значка | В виде контейнера | Компонент не отоброжается |
13 | Контекстное меню (укажите компонент)? | Memo | popupmenu | Items |
14 | Однострочное текстовое поле для ввода данных (укажите компонент)? | Text | Memo | Edit |
15 | Многострочное текстовое поле (укажите компонент)? | Frames | Memo | Align |
Результат тестирования в итоге был положительным, т.е. правильно ответили на 15 вопросов.