Создать форму Тестирование (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. |