Создать форму Тестирование (U_Test)

7.1. Построить форму Тестирование на основе стандартной формы Tabbed Notebook Dialog и включить в нее 5 вопросов (5 вкладок TtabSheet).

Пример теста по географии:

1) За начало отсчета географической долготы места принят:

· Экватор

· Меридиан 180 '

· Нулевой меридиан

· Северный полюс

2) Линии, соединяющие на климатических картах точки с одинаковым атмосферным давлением, называются:

· Горизонталями

· Изометмами

· Изобарами

· Изогиетами

3) Артезианскими называются воды:

· Почвенные

· Грунтовые

· Межпластовые ненапорные

· Межпластовые напорные

4) Основным географическим следствием шарообразной формы Земли являются:

· Смена дня и ночи

· Смена времени года

· Широтная зональность

· Высотная поясность

5) Образование пояса низкого атмосферного давления в экваториальных широтах обусловлено прежде всего:

· Низкими температурами воздуха

· Высокими температурами воздуха

· Деятельностью циклонов

· Деятельностью антициклонов

7.2. Самостоятельно создать форму Тестирования и переход на нее из формы Меню. Для этого повторить все шаги, которые были сделаны при создании формы Помощь (см. пункт 6). Сохранить созданную форму под именем F_Test.pas.

7.3. Для правильного контроля выполнения тестирования сделайте так, чтобы последовательно были доступны сначала только первый вопрос, затем только второй и т.д. Для этого предусмотреть дополнительную кнопку завершения тестирования каждого вопроса.

7.4. Сохранить выполненную работу (File, Save All). Запустить программу на выполнение и проверить правильность ее работы:

· перейти с Титульной формы на форму Меню;

· перейти с формы Меню на форму Тестирования;

· выполнить тестирования;

· выйти из проекта

7.5. Для подсчета результата введем переменную Ball, которую необходимо объявить в разделе Var формы Результат. Внесnb изменения в программу для подсчета баллов.

Создать форму Результат (U_Res)

Форма Результат должна содержать оценку тестирования и кнопку Выход.

8.1. Самостоятельно создать форму Результат и переход на нее из формы Меню. Для этого повторите все шаги, которые были сделаны при создании формы Помощь (см. пункт 6).

8.2. Сохранить созданную форму под именемF_Res.pas.

8.3. Создать переход с формы Меню на форму Результат. Для этого нужно перейти на форму Меню и установить курсор на опции Результат, щелкнуть мышью и внести изменения в процедуру обработки:

Выделенный объект Вкладка окна Object Inspector Имя свойства/ Имя события Значение/Действие
Результат (опция) Events OnClick U_Res.Label1.Caption:='Ваш результат: '+ IntToStr(Ball); U_Res.ShowModal; Кроме того, нужно описать в модуле F_Menu.pas внешнее имя F_Res, разместив его в блоке реализации (implementation): uses F_Res;

9. Проверьте правильность работы программы.

Задание для самостоятельного выполнения, №10

  Задание
Создайте тестирующую программу по истории, литературе, математике или какому-либо другому предмету.
Дополните программу разделом "Содержание изучаемой темы".
Внесите изменения в программу так, чтобы в начале запрашивалось Имя тестируемого, которое выводилось бы на экран при выдаче результата прохождения теста.
Для наглядности вывести результат разным цветом.
Усовершенствуйте программу, введя в раздел описания массив констант с номерами правильных ответов, а в программе только сравнивайте индекс переключателя со значением константы.

Листинг программы, №10

Титульная форма.

unit F_Titul; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons,F_Menu; type TForm1 = class(TForm) Image1: TImage; Label1: TLabel; Label2: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Label2.Caption:='Разработал ученик '#13'10 класса школы №444'#13'Давыдов Александр'; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin Close; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin U_Menu.ShowModal; end; end.

Форма "Меню"

unit F_Menu; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus,F_Instr,F_Test,F_Res; type TU_Menu = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; procedure N4Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var U_Menu: TU_Menu; implementation {$R *.DFM} procedure TU_Menu.N4Click(Sender: TObject); begin Close; end; procedure TU_Menu.N5Click(Sender: TObject); begin U_Instr.ShowModal end; procedure TU_Menu.N2Click(Sender: TObject); begin nm := InputBox('Начало тестирования','Введите имя',''); U_Test.RadioGroup1.ItemIndex:=-1; U_Test.RadioGroup2.ItemIndex:=-1; U_Test.RadioGroup3.ItemIndex:=-1; U_Test.RadioGroup4.ItemIndex:=-1; U_Test.RadioGroup5.ItemIndex:=-1; U_Test.PageControl1.ActivePage:=U_Test.TabSheet1; U_Test.ShowModal; end; procedure TU_Menu.N3Click(Sender: TObject); begin U_Res.Label1.Caption:=nm+' Ваш результат :'+IntToStr(Ball); U_Res.ShowModal; end; end.

Форма "Помощь"

unit F_Instr; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ComCtrls, ExtCtrls; type TU_Instr = class(TForm) Panel1: TPanel; Panel2: TPanel; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; CancelBtn: TButton; Memo3: TMemo; procedure CancelBtnClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var U_Instr: TU_Instr; implementation {$R *.DFM} procedure TU_Instr.CancelBtnClick(Sender: TObject); begin Close; end; end.

Форма "Результат"

unit F_Res; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls; type TU_Res = class(TForm) OKBtn: TButton; Label1: TLabel; private { Private declarations } public { Public declarations } end; type T1=array[1..5,0..3] of byte; const otv:T1=((0,0,1,0),(0,0,1,0),(0,1,0,0),(0,0,1,0),(0,1,0,0)); var U_Res: TU_Res; Ball:Byte; Nm:String; implementation {$R *.DFM} end.

Форма "Тестирование"

unit F_Test; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ComCtrls, ExtCtrls,F_Res; type TU_Test = class(TForm) Panel1: TPanel; Panel2: TPanel; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; OKBtn: TButton; CancelBtn: TButton; TabSheet4: TTabSheet; TabSheet5: TTabSheet; RadioGroup1: TRadioGroup; RadioGroup2: TRadioGroup; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; RadioGroup3: TRadioGroup; RadioGroup4: TRadioGroup; RadioGroup5: TRadioGroup; Label7: TLabel; procedure OKBtnClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var U_Test: TU_Test; implementation {$R *.DFM} procedure TU_Test.OKBtnClick(Sender: TObject); begin Ball:=otv[1,RadioGroup1.ItemIndex]+ otv[2,RadioGroup2.ItemIndex]+ otv[3,RadioGroup3.ItemIndex]+ otv[4,RadioGroup4.ItemIndex]+ otv[5,RadioGroup5.ItemIndex]; end; end.