10 Тестирование

Практическая работа №10
«Разработка проекта ТЕСТ ПО ФИЗИКЕ»

Постановка задачи
Создать программу, выполняющую следующие действия.
После запуска программы появляется изображение аналогичное рисунку. Пользователь, перемещаясь с помощью клавиш-стрелок по левому списку "Физических величин", выбирает любое слово, нажав клавишу Enter.
Затем пользователь переходит в правый список "Названий физических величин" и выбирает соответствующее название ранее выбранной физической величины.


Если выбрано правильное название величины, то под словом “ОЦЕНКА” появляется одобрительная реплика: Правильно, если выбрано неправильное слово, то - Ошибка. Снова можно выбрать физическую величину и найти ей правильное название до тех пор, пока не будет найдено соответствие всех  физических величин и их названий.
Новым в этой работе является: 
взаимодействие двух списков ListBox на основе свойств Items и ItemIndex,
создание многострочных надписей в компоненте Label.

Общие положения
Delphi – интегрированная среда разработки ( IDE– Integrated Development Environment), используемая для создания и поддержки приложений, которые могут работать под любой 32 разрядной операционной системой типа Windows 95, 98, 2000, NT.  
Delphi дает возможность создавать программы в стиле визуального конструирования,  т.е. пользователь оформляет свою будущую программу, и видит результаты своей работы еще до запуска самой программы. 
Это довольно легкая в изучении среда, и в то же время довольно сложная. 
Delphi имеет пользовательский графический интерфейс, подобный Visual Basic и C++. На данный момент множество фирм приняло за стандарт данный интерфейс для собственных приложений.
Весь исходный текст программ на Delphi пишется на языке Object Pascal, практически ничем не отличающимся от принципов, заложенных в Turbo Pascal. Синтаксис, принцип модуля, процедуры, функции, все взято за основу.
Процесс написания приложения разделяется на две части:
Первая часть - программист располагает на окна своей программы необходимые элементы, позиционирует их, устанавливает нужные размеры, меняет свойства;
Вторая часть - собственно, написание программного кода, описание свойств элементов, доступных только во время работы приложения, описание реакций на событие появление окна, нажатия на кнопку и др.
План разработки программы, №8
1. Открыть новый проект.  2. Разместить в форме компоненты в соответствии с рисунком и присвоить заголовки меткам. Обратите внимание, что заголовки меток Физическая величина и Название величины состоят из двух строк и отцентрированы. Для вывода многострочных надписей в Label задайте:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Label1
Properties
AutoSize (изменение размера в зависимости от текста в Caption)
False



WordWrap (разрыв строки) 
True



Height Width
Установить подходящие размеры



Alignment (выравнивание текста)
taCenter

 3. Установить кнопку выхода из программы:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

BitBtn1
 
Properties
 
Caption
&Выход



Kind
bkCancel


Events
BitBtn1Click
Close;

 4. Сохранить код программы и проект под именами, например, Unit8.pas и Pr8.dpr.
5. Запустить программу, затем закрыть окно проекта кнопкой Выход. 6. Выделить ListBox1, в Object Inspector найти свойство Items, справа от него нажать на кнопку с тремя точками. В появившемся окне встроенного редактора ввести физические величины, каждую на новой строке: Ватт
Ом Вольт Ампер
Сохраните набранный текст под именем Fiz1.txt. Для этого нажмите правую клавишу мыши и выберите режим Save. Для выхода из встроенного редактора нажмите клавишу OK. 7. Выделить Listbox2 и проделать с ним аналогичную работу, введя названия физических величин: 
Напряжение Сопротивление Сила тока Мощность
Сохраните набранный текст под именем Fiz2.txt. 8. Выполнить следующие действия: 
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

ListBox1
Events
OnKeyPress
If key=#13 then Num1:=ListBox1.ItemIndex;

ListBox2
Events
OnKeyPress
If key=#13 then begin case ListBox2.ItemIndex of 0: Num2:= 2; 1: Num2:= 1; 2: Num2:= 3; 3: Num2:= 0; end; if Num1=Num2 then  begin Label4.Caption:='Правильно'; CountR:=CountR+1 End Else Label4.Caption:= 'Ошибка'; If CountR=5 then  ShowMessage( Тест окончен! ); 

 В разделе Var переменные Num1, Num2 и CountR объявите как целочисленные перед разделом implementation.
Задание для самостоятельного выполнения, №8
 
Задание
Подсказка

1
Списки ListBox1 и ListBox2 сделать поочередно доступными после нажатия клавиши Enter.
В Object Inspector свойству Enabled компонента ListBox2 придать значение False, а в процедуру KeyPressed, относящуюся к ListBox1, включить строки:
ListBox2.Enabled := True; ListBox1.Enabled := False; Form1.ActiveControl := ListBox2;

2
Выполнить проект так, чтобы при правильном выборе названия физической величины слово в левом списке исчезало. 
В процедуру KeyPressed, относящуюся к ListBox2, там, где обрабатывается правильный ответ, включить:
ListBox1.Items.Delete(Num1); ListBox1.Items.Insert(Num1, ’); 

3
Расширить количество физических величин до 10. Внести необходимые изменения в программу.
 

9. Сохранить проект окончательно, запустить и протестировать его.
u Листинг программы, №8
nit Unit7; interface uses Windows,
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·f key=#13 then begin case form1.ListBox2.ItemIndex of 0:num2:=2; 1:num2:=4; 2:num2:=7; 3:num2:=0; 4:num2:=3; 5:num2:=1; 6:num2:=6; 7:num2:=8; 8:num2:=5; 9:num2:=9; end; if num1=num2 then begin form1.Label4.Caption:='Верно!'; r:=r+1 end else form1.Label4.Caption:='Ошибка!'; c:=c+1; form1.ListBox1.Items.Delete(num1); form1.ListBox1.Items.Insert(num1,''); if c=10 then showmessage('Тест окончен. Оценка:'+ inttostr (r div 2 + ord(r div 2<1))+' (правильных ответов: '+inttostr(r)+')'); form1.ListBox1.Enabled:=0=0; form1.ListBox2.Enabled:=0=0; form1.ActiveControl:=listbox1 end end; procedure TForm1.BitBtn2Click(Sender: TObject); begin c:=0; r:=0; num1:= -1; num2:= -1; form1.ListBox1.Items.LoadFromFile('fiz1.txt'); end; end.

Содержание файла 'fiz1.txt'

Содержание файла 'fiz2.txt'

Вольт Ньютон Метр Ватт Джоуль Вебер  Кулон Герц Секунда Ампер

Длина Работа Частота Напряжение Мощность Сила Заряд Время Индуктивность Сила тока


«Разработка проекта ТЕСТ ПО ИНФОРМАТИКЕ»
Постановка задачи
Создать программу, выполняющую следующие действия.
После запуска программы появляется изображение аналогичное рисунку 16. Пользователь по своему усмотрению выбирает один из переключателей в группе. В зависимости от правильности ответов появляется одно из сообщений "Плохо", "Удовлетворительно", "Хорошо", "Отлично".

Новым в этой работе являются: 
группа переключателей RadioGroup на странице палитры компонентов Standard,
 оператор вывода сообщений ShowMessage.

План разработки программы, №9
1. Открыть новый проект.  2. Разместить в форме компоненты в соответствии с рисунком  и присвоить заголовки меткам и панелям 3. Выполнить следующие действия:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Label1
Properties
Caption
Первая советская вычислительная машина

Label2
Properties
Caption
Основоположник алгебры логики

Label3
Properties
Caption
Объем блока начальной загрузки

Label4
Properties
Caption
Автор первого счетного устройства

Label5
Properties
Caption
Энергозависимая память

RadioGroup1
Properties
Caption
Удалить заголовок



Columns
5



Items
Вызвать String List Editor, дважды щелкнув мышкой рядом со свойством Items. Ввести 5 строк: Урал-1 М-20 ЭВ-60 МЭСМ БЭСМ Введенный текст сохранить в файле t1.txt.

RadioGroup2
Properties
Caption
Удалить заголовок



Columns
4



Items
Ввести 4 строки: Лейбниц Буль Нейман Паскаль  Введенный текст сохранить в файле t2.txt.

RadioGroup3
Properties
Caption
Удалить заголовок



Columns
4



Items
Ввести 4 строки: 1024 байт 512 байт 1.5 Кбайт 2 Кбайт Введенный текст сохранить в файле t3.txt.

RadioGroup4
Properties
Caption
Удалить заголовок



Columns
5



Items
Ввести 4 строки: Бэббидж Паскаль Нейман Лавлейс Введенный текст сохранить в файле t4.txt.

RadioGroup5
Properties
Caption
Удалить заголовок



Columns
3



Items
Ввести 3 строки: ПЗУ ОЗУ Внешняя  Введенный текст сохранить в файле t5.txt.

4. Сохранить проект под именем, например, Unit8.pas и Pr8.dpr. 5. Для суммирования набираемых пользователем баллов выполните следующие действия:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

RadioGroup1
Events
OnClick
sum:=0; If RadioGroup1.ItemIndex=3 Then sum:=Sum+1;
Пояснение: Индекс первого переключателя равен 0. Правильный ответ содержит переключатель с меткой МЭСМ, имеющий индекс 3.

Целочисленную переменную sum необходимо объявить в разделе Var перед разделом implementation. 6. Вставить в обработчик событий RadioGroup2.OnClick, RadioGroup3.OnClick, RadioGroup4.OnClick, RadioGroup5.OnClick аналогичные коды, с учетом правильных ответов, но без обнуления переменной sum, так как оно необходимо лишь один раз перед началом суммирования. 7. Выведем на контрольную панель итоговое сообщение в зависимости от набранной суммы баллов.
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

RadioGroup5
Events
OnClick
Case sum of 0..2: Panel1.Caption:='Плохо!'; 3: Panel1.Caption:='Удовлетворительно!'; 4: Panel1.Caption:='Хорошо!'; 5: Panel1.Caption:='Отлично!'; end;

8. Вывести сообщение об окончании тестирования, добавив в обработчик событий RadioGroup5.OnClick код:
ShowMessage('Конец теста');
9. Сохранить проект окончательно, запустить и протестировать его.
Задание для самостоятельного выполнения, №9
 
Задание
Подсказка

1
Для контроля правильности работы программы вывести на панель набранную пользователем сумму баллов.
Заголовку соответствующей панели (или метки) присвоить значение IntToStr(sum).

2
Запустите программу и убедитесь, что верная сумма баллов получается лишь при последовательном выборе переключателей сначала из RadioGroup1, затем из RadioGroup2 и т.д. Если порядок нарушен, то результат может быть неверным. Чтобы этого не случилось, вставьте дополнительную кнопку и сделайте подсчет баллов только после ее нажатия
 

3
Сделайте возможным повторный запуск программы. 
 

4
Для наглядности вывести результат разным цветом. 
В оператор Case при выводе результата задать свойству Font.Color выбранный цвет. Например:
Panel1.Font.Color:=clRed;

 5
Усовершенствуйте программу, введя в раздел описания массив констант с номерами правильных ответов, а в программе только сравнивайте индекс переключателя со значением константы.
 

Листинг программы, №9
unit unit8; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Fo
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
· баллов.Плохо!'; end; 3: begin Panel1.Font.Color:=$0000FF; Panel1.Caption:=IntToStr(sum)+' баллов.Удолетворительно!'; end; 4: begin Panel1.Font.Color:=$00FF00; Panel1.Caption:=IntToStr(sum)+' баллов.Хорошо!'; end; 5:begin Panel1.Font.Color:=$FF0000; Panel1.Caption:=IntToStr(sum)+' баллов.Отлично!'; end; end; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin RadioGroup1.ItemIndex:= -1; RadioGroup2.ItemIndex:= -1; RadioGroup3.ItemIndex:= -1; RadioGroup4.ItemIndex:= -1; RadioGroup5.ItemIndex:= -1; Panel1.Caption:=''; end; end.


«Разработка проекта ТЕСТ ПО ГЕОГРАФИИ»
Постановка задачи
Создать проект, состоящий из нескольких форм: титульной формы, формы меню, формы помощи и формы непосредственно теста.  В зависимости от правильности ответов на тест, который состоит из нескольких разделов (в свою очередь в разделе может быть несколько вопросов), подсчитывается результат и выставляется оценка по каждому разделу.

Новыми в этой программе являются:
 использование в проекте нескольких форм и организация вызова этих форм, 
использование шаблона формы Tabbed pages из окна New Items вкладки Forms,
компонента MainMenu (главное меню формы), 
компонента Memo (многострочный текстовый редактор), 
компонента Image (графический объект) со страницы палитры компонентов Additional,
компонента PageControl (набор панелей с закладками).

План разработки, №10
2. Создать титульную форму 
2.1. Дать название форме Тест по Географии.
2.2. Разместить в форме метки в соответствии с рисунком и присвоить заголовки им. 2.3. Разместить в форме компонент Image (графический объект), который находится на странице палитры компонентов Additional.  Выделить Image, в Object Inspector найти свойство Picture, справа от него нажать на кнопку с тремя точками. В появившемся окне встроенного редактора Picture Editor нажать кнопку Load, которая вызывает появление окна для выбора заголовка графического файла. Выбранная картинка появится вначале в служебном окне, и если пользователь подтвердит (нажав кнопку OK), то картинка появится и в окне формы.
2.4. Разместить в форме кнопку Выход, обеспечивающую прекращение выполнения задачи. 
2.5. Разместить в форме кнопку Продолжить. Пока не задаем действия, которые будут выполняться по нажатию этой кнопки.
2.6. Сохранить форму под именем, например, F_Tit
·ul.pas и проект – Pr_Test.dpr.
3. Создать форму меню (U_Menu)
3.1. Командой File, New Form создать новую форму. Выполнить следующие действия.
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Form2
Properties
Caption
Меню



Name
U_Menu установка имени формы, под которым компонент будет известен программе.

3.2. Создать меню с помощью компонента MainMenu, который находится на странице палитры компонентов Standard. Теперь необходимо создать его опции. Дважды щелкните на появившейся пиктограмме MainMenu или, выделив компонент MainMenu, щелкните по кнопке в правой половине строки Items Object Inspector. И в том и в другом случае на экране появится окно с заголовком Form2.MainMenu1.  Установите в качестве значения свойства Caption название первого пункта меню Тест. Оно запишется в синем прямоугольнике слева на полосе меню. Нажмите клавишу Enter. Теперь опция готова и можно переходить к созданию следующей.  Каждая опция главного меню может содержать список подопций. Для создания подопций щелкнуть мышью по строке ниже опции и введите первую подопцию. Продолжать ввод, пока не будет создан весь список подопций. В названиях опций, являющихся значениями свойства Caption, можно указать символ "&" перед тем символом, который будет использоваться для быстрого выбора опции. В нашем примере для опции Тест можно выбрать сочетание клавиш Alt+T. Для этого в строке Caption указать &Тест. 
Опция Тест  должна содержать подопции Тестирование, Результат, Выход.
Опция Помощь не должна содержать подопций.
Для реализации подопции Выход выполните следующие команды:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Выход
Events
OnClick
Close;

 3.3. Сохранить форму под именем F_Menu.pas. 4. Создать переход с Титульной формы на форму Меню. Для этого нужно перейти на Титульную форму и выполнить следующие действия:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Продолжить (кнопка)
Events
OnClick
U_Menu.ShowModal;
Кроме того, нужно описать в модуле F_Title.pas внешнее имя F_Menu, разместив его в блоке реализации (implementation):
uses F_Menu;

5. Сохранить выполненный проект (File, Save All). Запустить программу на выполнение и проверить правильность ее работы:
перейти с Титульной формы на форму Меню;
выйти из проекта.
6. Создание формы помощи (U_Instr)
6.1. Командой File, New, Other открыть окно New Items, при помощи которого можно создать новую форму. 

На вкладке Forms выбрать форму Tabbed pages. Появится стандартное окно новой формы Tabbed Notebook Dialog.

Вызвать и рассмотреть список  объектов, содержащихся на форме.  Форма построена на основе компоненты TPageControl и содержит несколько перекрывающих друг друга панелей класса TTabSheet. Каждая вкладка может содержать свой набор помещенных на нее компонентов.   Чтобы на этапе конструирования добавить новую панель или выбрать ранее вставленную, надо щелкнуть на объекте правой кнопкой мыши и выбрать New Page (новая панель), Next Page (следующая панель) или Previous Page (предыдущая панель). Смена панелей идет циклически.
6.2. Удалить объекты-кнопки OK и Help. 
6.3. Заменить название кнопки Cancel на Выход и установить для нее действие  Close;
6.4. Изменить название формы, для чего в Object Inspector откройте список объектов, выбрать PagesDlg1:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

PagesDlg1
Properties
Caption
Помощь



Name
U_Instr установка имени формы, под которым компонент будет известен программе.

6.5. Дать страницам названия Правила работы, Тематика теста, Авторские права, для этого в свойстве Caption замените соответственно TabSheet1, TabSheet2, TabSheet3.
6.6. Заполнить страницы формы Tabbed Notebook Dialog текстом инструкции, для чего на каждую страницу добавьте экземпляр компонента Memo из вкладки Standard палитры компонентов.  Для ввода текста в объект Memo щелкнуть на кнопке с тремя точками  свойства Lines. В появившемся окне встроенного редактора ввести необходимый текст.
Для того чтобы вставленный объект совпадал по цвету с формой, выполните следующие действия:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Memo
Properties
Color
clBtnFace Установка значения свойства для совпадения по цвету с фоном формы.



Ct3D
False Установка значения свойства отмены трехмерного эффекта объекта.



BorderStyle
bsNone Установка значения свойства отмены рамки.



Font
Установка значения свойства выбор нужного шрифта.



Alignment
Установка значения свойства выравнивания текста.

6.7. Сохранить созданную форму под именем F_Instr.pas. 6.8. Создать переход с формы Меню на форму Помощь. Для этого перейти на форму Меню, установить курсор на опцию Помощь, щелкнуть мышью и внести изменения в процедуру обработки:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Помощь (опция)
Events
OnClick
U_Instr.ShowModal;
Кроме того, описать в модуле F_Menu.pas внешнее имя F_Instr, разместив его в блоке реализации  (implementation):
uses F_Instr;

6.9. Сохранить выполненную работу (File, Save All). Запустить программу на выполнение и проверить правильность ее работы:
перейти с Титульной формы на форму Меню;
перейти с формы Меню на форму Помощь;
выйти из проекта.
7. Создать форму Тестирование (U_Test)
7.1. Построить форму Тестирование на основе стандартной формы Tabbed Notebook Dialog и включить в нее 5 вопросов (5 вкладок TtabSheet).
Пример теста по географии:
1) За начало отсчета географической долготы места принят:
Экватор
Меридиан 180 '
Нулевой меридиан
Северный полюс
2) Линии, соединяющие на климатических картах точки с одинаковым атмосферным давлением, называются:
Горизонталями
Изометмами
Изобарами
Изогиетами
3) Артезианскими называются воды:
Почвенные
Грунтовые
Межпластовые ненапорные
Межпластовые напорные
4) Основным географическим следствием шарообразной формы Земли являются:
Смена дня и ночи
Смена времени года
Широтная зональность
Высотная поясность
5) Образование пояса низкого атмосферного давления в экваториальных широтах обусловлено прежде всего:
Низкими температурами воздуха
Высокими температурами воздуха
Деятельностью циклонов
Деятельностью антициклонов
7.2. Самостоятельно создать форму Тестирования и переход на нее из формы Меню. Для этого повторить все шаги, которые были сделаны при создании формы Помощь ([ Cкачайте файл, чтобы посмотреть ссылку ]). Сохранить созданную форму под именем F_Test.pas.
7.3. Для правильного контроля выполнения тестирования сделайте так, чтобы последовательно были доступны сначала только первый вопрос, затем только второй и т.д. Для этого предусмотреть дополнительную кнопку завершения тестирования каждого вопроса.
7.4. Сохранить выполненную работу (File, Save All). Запустить программу на выполнение и проверить правильность ее работы:
перейти с Титульной формы на форму Меню;
перейти с формы Меню на форму Тестирования;
выполнить тестирования;
выйти из проекта
7.5. Для подсчета результата введем переменную Ball, которую необходимо объявить в разделе Var формы Результат. Внесnb изменения в программу для подсчета баллов.
8. Создать форму Результат (U_Res)
Форма Результат должна содержать оценку тестирования и кнопку Выход.
8.1. Самостоятельно создать форму Результат и переход на нее из формы Меню. Для этого повторите все шаги, которые были сделаны при создании формы Помощь ([ Cкачайте файл, чтобы посмотреть ссылку ]).
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
 
Задание

1
Создайте тестирующую программу по истории, литературе, математике или какому-либо другому предмету.

2
Дополните программу разделом "Содержание изучаемой темы".

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

4
Для наглядности вывести результат разным цветом. 

 5
Усовершенствуйте программу, введя в раздел описания массив констант с номерами правильных ответов, а в программе только сравнивайте индекс переключателя со значением константы.

Листинг программы, №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.


Разработал студент группы 2А1
Смирнов Иван

Разработал студент группы 2А1
Смирнов Иван



Рисунок 9 Заголовок 2 Заголовок 315

Приложенные файлы

  • doc 26606558
    Размер файла: 245 kB Загрузок: 0

Добавить комментарий