Курсовая работа: Разработка программы с помощью языка программирования Delphi
3.1 Проанализировать выбранный вариант ответа и сравнить его с правильным, и если ответ правильный, то нарастить количество правильных ответов на 1;
3.2 Записать в файл протокола текущий вопрос и вариант, который выбрал пользователь в качестве ответа;
3.3 Если номер текущего вопроса меньше общего количества вопросов в базе, то нарастить номер на 1, вывести очередной вопрос на форму и перейти к началу пункта 3.
3.4 Если номер текущего вопроса равен количеству вопросов в базе, то:
3.4.1.подсчитать оценку пропорционально количеству правильных ответов;
3.4.2.показать сообщение с оценкой;
3.4.3.сделать кнопку «Начать заново» видимой
4. При нажатии кнопки «Начать заново» закрыть форму с тестами FormTest и показать форму авторизации FormAvto.
Анализируя требования к функциям разрабатываемого приложения под разработанные экранные формы и словесный алгоритм, можно выделить следующие программные модули:
1) Генерация базы вопросов;
2) Перемешивание базы вопросов случайным образом;
3) Анализ текущего ответа и переход на следующий вопрос, если вопрос не последний либо вывод результатов тестирования при достижении последнего вопроса;
4) Модули перехода между экранными формами авторизации и тестирования.
Каждый из вышеприведенных модулей реализуем при помощи процедуры. Модуль 1 целесообразно запускать один раз при создании формы с тестами. Модуль 2 следует запускать каждый раз при начале нового теста, то есть при активизации формы с тестами. Модель 3 должен запускаться каждый раз при нажатии на кнопку «Принять ответ». Модули 4 должны быть обработчиками нажатий на кнопку «Начать» экранной формы авторизации и кнопку «Начать заново» экранной формы тестирования.
Составим алгоритм приложения, который представлен в приложении на рисунке A.1. На алгоритме приведены основные события экранных форм. В этом алгоритме:
Блок №4 реализован процедурой FormAvto, BitBtnStartClick,
блок №5 – процедурой FormTest. FormCreate,
блок №6 – процедурой FormTest. FormActivate,
блок№7 – процедуройFormTestBNewTestClick,
блок№8 реализованпроцедуройFormTest. BitBtn1Click.
Детальное описание разработанной программы, алгоритмов и их программной реализации приведено в последующих разделах.
3. Описание программных модулей
3.1 Описание переменных и объектов
В программе используется переменная FormAvto , которая представляет собой экранную форму. Объекты экранной формы были приведены в таблице 2.1. У формы имеется лишь один обработчик нажатия на кнопку BitBtnStart. Текст обработчика приведен в строках 26–32 листинга из приложения Б. В теле обработчика происходит считывание введенных имени и фамилии учащегося и его группы в переменные, после чего исходная форма скрывается и активизируется форма тестирования.
Переменная FormTest , представляет собой экранную форму, объекты которой приведены в таблице 2.2.
В разделе var опишем переменные, приведенные в таблице 3.1
Таблица 3.1 – Переменные программы
Наименование | Тип | Назначение |
SFam, SGr | String | хранение фамилии и группы учащегося |
fName | String | имя текстового файла для записи протокола |
f | TextFile | переменная для работы с текстовым файлом |
BasaV | CVoprosi | класс, хранящий базу вопросов и ответы |
CurN | byte | номер текущего вопроса из базы |
Ratio | byte | количество правильных ответов |
Для хранения базы вопросов разработаем пользовательский класс CVoprosi. В классе содержится одно поле и два метода. Поле test – это динамический массив, в котором хранятся вопросы и ответы. При это каждый тест храниться в виде записи типа TTest со следующими полями:
- Vopr: string – содержит вопрос теста;
- ans : array [0..3] of string – содержит 4 варианта ответов;