Разработка экранных форм и алгоритма программы
Каждый из вышеприведенных модулей реализуем при помощи процедуры. Модуль 1 целесообразно запускать один раз при создании формы с тестами. Модуль 2 следует запускать каждый раз при начале нового теста, то есть при активизации формы с тестами. Модель 3 должен запускаться каждый раз при нажатии на кнопку «Принять ответ». Модули 4 должны быть обработчиками нажатий на кнопку «Начать» экранной формы… Читать ещё >
Разработка экранных форм и алгоритма программы (реферат, курсовая, диплом, контрольная)
В предыдущем разделе было сказано, что процесс решения поставленной задачи разбивается на 3 этапа, первый из которых заключается в построении интерфейса с пользователем на основе экранных форм и визуальных объектов проектирования.
По сформулированной в предыдущем задании постановке должна иметься возможность авторизации тестируемого учащегося — ввода его фамилии и группы. Для этого предусмотрим отдельную форму авторизации FormAvto. Для возможности ввода данных об учащемся поместим на форме поля ввода типа TEdit и соответствующие метки описания к ним. Список объектов экранной формы приведен в таблице 2.1.
Таблица 2.1 — Объекты экранной формы FormAvto.
Имя. | Тип. | Назначение. |
Label1. | TLabel. | надпись «Задайте фамилию, инициалы и группу учащегося». |
Label2. | TLabel. | надпись «Фамилия». |
Label3. | TLabel. | надпись «Имя». |
Efam. | TEdit. | поле для вода фамилии учащегося. |
EGroup. | TEdit. | поле для ввода группы учащегося. |
BitBtnStart. | TBitBtn. | кнопка для начала теста с надписью «НАЧАТЬ». |
Для начала теста предусмотрена кнопка типа TBitBtn, который в отличие от обычных кнопок типа TButton позволяет задавать не только текст, но и изображение. В обработчике нажатия на эту кнопку должна выводиться форма с вопросами. Внешний вид спроектированной формы приведен на рисунке 2.1.
Рисунок 2.1 — Внешний вид формы FormAvto.
Для вывода вопросов, ввода ответов пользователя предусмотрим отдельную форму FormTest. Список объектов, используемых в форме приведен в таблице 2.2, а внешний вид приведен на рисунке 2.2.
Таблица 2.2 — Объекты экранной формы FormTest.
Имя. | Тип. | Назначение. |
Label1. | TLabel. | надпись «Текущий вопрос». |
LbNom. | TLabel. | надпись, в которой будет выводиться номер текущего вопроса. |
StaticText1. | TStaticText. | поле, в котором будет выводиться очередной вопрос. |
RGroup1. | TRadioGroup. | поля для вывода вариантов ответов и их указания студентом. |
BitBtn1. | TBitBtn. | кнопка «Принять ответ» для анализа ответа и перехода к следующему вопросу. |
BNewTest. | TButton. | кнопка для закрытия формы тестов и перехода на форму авторизации (для новой попытки тестирования). |
При построении формы предполагалось, что база вопросов будет построєна таким образом, чтобы ответ предполагал выбор только одного из перечисленных четырех вариантов ответов. То есть, база не должна содержать вопросов с множественным выбором, либо вариантов без правильного ответа. Также не должно быть вопросов, требующих ввода ответа в текстовом виде (например, ответ вычисленной формулы или правильное написание ключевого слова).
Рисунок 2.2 — Внешний вид формы FormTest.
Во избежание кратковременного завершения теста скроем системное меню окна, установив параметр формы FormTest. BorderIcons biSystemMenu равным false. Также в алгоритме следует предусмотреть, что в начале тестирования кнопка с надписью «Начать заново» должна быть невидимой, и должна появляться только после ответа на все вопросы и вывода итоговой оценки.
Анализируя все вышеизложенные предположения и разработанные формы, можем составить словесные алгоритмы приложения.
Запустить экранную форму авторизации FormAvto.
При нажатии на кнопку «Начать» следует выполнить действия:
Сгенерировать базу вопросов, и перемешать их случайным образом;
Сформировать имя файла из имени студента и его группы и открыть файл для записи;
Обнулить количество правильных ответов;
Установить номер текущего вопроса на первый вопрос;
Скрыть форму FormAvto и показать форму с тестами FormTest;
Показать первый вопрос и варианты его ответов на форме FormTest;
Ожидать нажатия на кнопку «Принять ответ».
При нажатии на кнопку «Принять ответ» следует выполнить действия:
Проанализировать выбранный вариант ответа и сравнить его с правильным, и если ответ правильный, то нарастить количество правильных ответов на 1;
Записать в файл протокола текущий вопрос и вариант, который выбрал пользователь в качестве ответа;
Если номер текущего вопроса меньше общего количества вопросов в базе, то нарастить номер на 1, вывести очередной вопрос на форму и перейти к началу пункта 3.
Если номер текущего вопроса равен количеству вопросов в базе, то:
подсчитать оценку пропорционально количеству правильных ответов;
показать сообщение с оценкой;
сделать кнопку «Начать заново» видимой При нажатии кнопки «Начать заново» закрыть форму с тестами FormTest и показать форму авторизации FormAvto.
Анализируя требования к функциям разрабатываемого приложения под разработанные экранные формы и словесный алгоритм, можно выделить следующие программные модули:
Генерация базы вопросов;
Перемешивание базы вопросов случайным образом;
Анализ текущего ответа и переход на следующий вопрос, если вопрос не последний либо вывод результатов тестирования при достижении последнего вопроса;
Модули перехода между экранными формами авторизации и тестирования.
Каждый из вышеприведенных модулей реализуем при помощи процедуры. Модуль 1 целесообразно запускать один раз при создании формы с тестами. Модуль 2 следует запускать каждый раз при начале нового теста, то есть при активизации формы с тестами. Модель 3 должен запускаться каждый раз при нажатии на кнопку «Принять ответ». Модули 4 должны быть обработчиками нажатий на кнопку «Начать» экранной формы авторизации и кнопку «Начать заново» экранной формы тестирования.
Составим алгоритм приложения, который представлен в приложении на рисунке A.1. На алгоритме приведены основные события экранных форм. В этом алгоритме:
Блок № 4 реализован процедурой FormAvto, BitBtnStartClick,.
блок № 5 — процедурой FormTest. FormCreate,.
блок № 6 — процедурой FormTest. FormActivate,.
блок № 7 — процедурой FormTest BNewTestClick,.
блок № 8 реализован процедурой FormTest. BitBtn1Click.
Детальное описание разработанной программы, алгоритмов и их программной реализации приведено в последующих разделах.