- •Введение
- •Общие указания к выполнению практических работ
- •Практическая работа №1
- •Теоретическая часть
- •Пример выполнения задания
- •Задание:
- •Спецификация программы:
- •Постановка задачи:
- •Блок-схема алгоритма программы
- •Варианты заданий
- •Контрольные вопросы
- •Практическая работа №2
- •Теоретическая часть
- •Методы стратегии ‘белого ящика’
- •Метод покрытия операторов
- •Метод покрытия решений (покрытия переходов)
- •1.3 Метод покрытия условий
- •1.4 Критерий решений (условий)
- •1.5 Метод комбинаторного покрытия условий
- •Порядок выполнения практической работы
- •Контрольные вопросы
- •Практическая работа №3
- •Теоретические часть
- •Задание 1
- •Задание 2
- •Контрольные вопросы
- •Практическая работа №6
- •Описание практической работы Теоретические сведения
- •Операторы обнаружения и обработки исключений
- •Задание 1
- •Задание 2
- •Задание 2
- •Контрольные вопросы
- •Практическая работа №8
- •Описание лабораторной работы Задание 1
- •Задание 2
- •Методы компонента tMemo
- •Задание 1
- •Задание 2
- •Задание 3
- •Контрольные вопросы
- •Практическая работа №10
- •Теоретическая часть
- •Класс Tstrings
- •Задание 1
- •Задание 2
- •Задание 3
- •Основные свойства компонента StringGrid
- •Описание лабораторной работы Задани 1
- •Задание 2
- •Задание 1
- •Контрольные вопросы
- •Практическая работа №13
- •Теоретическая часть
- •Описание лабораторной работы
- •Контрольные вопросы
- •Практическая работа №14
- •Теоретическая часть RadioGroup, RadioButton и GroupBox - группы радиокнопок
- •Свойства компонента CheckBox
- •Свойства компонента RadioButton
- •Button и BitBtn - управляющие кнопки
- •Свойства компонента BitBtn
- •Задание 1
- •Свойства компонента SpeedButton
- •Компонент UpDown
- •Описание лабораторной работы Задание 1
- •Задание 2
- •Задание 3
- •TrackBar и ScrollBar - ползунки и полосы прокрутки
- •Контрольные вопросы
- •Практическая работа №15
- •Теоретические сведения
- •Описание лабораторной работы Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Панели общего назначения — компоненты Panel, GroupBox, Bevel, Splitter
- •Задание 1
- •Задание 2
- •Компонент PageControl
- •Задание 3
- •Задание 4
- •Контрольные вопросы
- •Практическая работа №17
- •Теоретические сведения
- •Описание практическая работы Задание 1
- •Контрольные вопросы
- •Практическая работа №18
- •Теоретические сведения Компонент MainMenu - главное меню
- •Описание лабораторной работы Задание 1
- •Контрольные вопросы
- •Практическая работа №19
- •Теоретические сведения Стандартные диалоги и их фрагменты
- •Задание 1
- •Задание 2
- •Задание 3
- •Контрольные вопросы
- •Практическая работа №20
- •Теоретические сведения
- •I способ
- •II способ
- •Свойства компонента TreeViewl
- •Задание
- •Контрольные вопросы
- •Практическая работа №21
- •Теоретические сведения Компонент tImage
- •Задание 1
- •Ход выполнения
- •Задание 2
- •Ход выполнения
- •Задание 3
- •Задание 4
- •Задание 1
- •Задание 3
- •Задание 4
- •Контрольные вопросы
- •Практическая работа №23
- •Теоретические сведения
- •Практическая работа №24
- •Теоретические сведения Компонент построения графиков и диаграмм Chart
- •Свойства компонента Chart
- •Задание 1
- •Задание 2
- •Контрольные вопросы
- •Практическая работа №25
- •Прием перетаскиваемых объектов
- •Задание 1
- •Контрольные вопросы
Задание 3
Разработаем программу для тестирования знаний.
Каждая страница блокнота (закладка) содержит один вопрос с возможными вариантами ответа. Обучаемый должен выбрать правильный (по его мнению) вариант ответа, щелкнув мышью по нужному переключателю. Количество вопросов, в принципе, не ограничено, но мы создадим только пять вариантов закладок. Число возможных вариантов ответа на закладке так же неограниченно, но целесообразно помещать на страницу от трех до десяти – двенадцати вариантов.
Результаты теста с выставлением оценки выводятся щелчком по кнопке «Результаты опроса». Внешний вид окна приложения приведен на рис. 2.
Рис. 2. Окно разрабатываемого приложения «Тест»
Установите на форму компонент PageControl со страницы Win32 и задайте ему необходимые размеры.
Щелкнув в поле компонента PageControl правой клавишей мыши, откройте всплывающее меню, в котором выберете пункт New Page. Появится первая закладка блокнота, озаглавленная TabSheet1.
внимательно изучите свойства компонента TabSheet, доступные в Инспекторе Объектов, согласно таблице 2.
Измените название закладки на «1 вопрос» (свойство Caption компонента TabSheet1).
Обратите внимание, что компонент PageControl является контейнером, содержащим несколько компонентов TabSheet, поэтому следует правильно активизировать нужную закладку мышью, чтобы иметь доступ к её свойствам в Инспекторе Объектов.
Установите еще 3-5 закладок, проделав аналогичные операции;
Установите два компонента Button, согласно рис. 5.2, дав им названия «Результаты опроса» и «Выход»;
Сохраните приложение в отдельной папке командой File/Save All;
Запустите проект и убедитесь, что закладки уже работают. Закройте проект.
Поместите на первую закладку компонент RadioGroup со страницы Additional.
Установите заголовку группы (свойство Caption для компонента RadiоGroup) значение “Автор произведения “Война и мир”:”.
Дважды щелкнув мышью в поле свойства Items для компонента RadioGroup, раскройте диалоговое окно специального редактора строк StringListEditor для ввода вариантов ответа. Число введенных строк будет соответствовать числу компонентов RadioButton в группе. Введите в столбик следующие значения: Пушкин А. С., Лермонтов М. Ю., Гоголь Н. В., Толстой Л. Н., Достоевский Ф. М.
Свойству Tag для компонента RadioGroup в Инспекторе Объектов задайте значение 3. Это номер правильного ответа, считая с нуля.
Самостоятельно напишите код обработчика для кнопки «Выход»;
Для того, чтобы при запуске приложения активизировалась нужная (первая) закладка, следует написать следующий обработчик события OnActivate для самой формы:
PageControl1.ActivePage:=TabSheet1;
Для кнопки «Результаты опроса» код обработчика Button1Click приведен ниже.
int Z=5; // Количество вопросов в варианте (число закладок)
int Verno,Neverno,Bal;
Verno:=0; // Счетчик верных ответов
Neverno:=0; // Счетчик неверных ответов
// Обработка 1 вопроса
if (RadioGroup1−>ItemIndex==RadioGroup1−>Tag)
Verno++;
else
Neverno++;
// Обработка 2 вопроса
if (RadioGroup2−>ItemIndex==RadioGroup2−>Tag)
Verno++;
else
Neverno++;
//И так далее
// Обработка результата теста
Bal=Verno/Z;
if (Bal<2)
Bal=2;
// Вывод результата
MessageDlg("Верных ответов: " +IntToStr(Verno) +#13+
"Неверных ответов: "+IntToStr(Neverno)+#13+
"ОЦЕНКА: "+IntToStr(Bal),mtInformation,[mbOk],0);
