Курсовая работа: Разработка программы с помощью языка программирования Delphi
– принимать ответы учащегося;
– анализировать правильность ответов и рассчитывать итоговый балл пропорционально количеству правильных ответов;
– вести протоколирование ответов и записывать их в файле на жестком диске;
– по окончании тестирования выводить правильную оценку;
– предусмотреть перемешивание вопросов, чтобы при повторных запусках порядок следования вопросов был различным.
Последующие разделы будут посвящены решению поставленных задач и разработке приложения с вышеперечисленными функциями.
2. Разработка экранных форм и алгоритма программы
В предыдущем разделе было сказано, что процесс решения поставленной задачи разбивается на 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. Также в алгоритме следует предусмотреть, что в начале тестирования кнопка с надписью «Начать заново» должна быть невидимой, и должна появляться только после ответа на все вопросы и вывода итоговой оценки.
Анализируя все вышеизложенные предположения и разработанные формы, можем составить словесные алгоритмы приложения.
1. Запустить экранную форму авторизации FormAvto
2. При нажатии на кнопку «Начать» следует выполнить действия:
2.1 Сгенерировать базу вопросов, и перемешать их случайным образом;
2.2 Сформировать имя файла из имени студента и его группы и открыть файл для записи;
2.3 Обнулить количество правильных ответов;
2.4 Установить номер текущего вопроса на первый вопрос;
2.5 Скрыть форму FormAvto и показать форму с тестами FormTest;
2.6 Показать первый вопрос и варианты его ответов на форме FormTest;
2.7 Ожидать нажатия на кнопку «Принять ответ».