Смекни!
smekni.com

Создание проекта для тестирования знаний студентов по языку программирования Delphi по теме "Назначение и основные свойства палитры компонентов "Standard" (стр. 4 из 5)

2. В случае невозможности построения ответов по указанной в п.1 схеме, недостающее число ответов необходимо дополнить ответами, которые противоречат здравому смыслу. Отбрасывание данных ответов учащимися может трактоваться как наличие определенных знаний, интуиции приобретённой в результате целенаправленной работы в процессе обучения.

3. Ответы могут быть подобраны и таким образом, что все ответы являются правильными, но - частично! И лишь один ответ является полным, а следовательно и правильным. ( Обычно такая сетка ответов конструируется при проверке теоретической базы знаний).

2.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.

2.4 Тестирование программы

В ходе тестирования были проверены требования к программному продукту (тест).

Было протестировано правильность работ все командных кнопок, теста программы, и подсчет, вывод результата. В ходе тестирования были выявлены ошибки. Со временем они были устранены.

Вопросы и правильные ответы к ним:

Пояснение: жирным шрифтом выделены правильные ответы.

Вопрос 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 вопросов.