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 варианта ответов;
- korans: byte – содержит вариант правильного ответа (его номер в массиве ans).
Для формирования базы ответов создан метод AddTest (_vopr, _ans0, _ans1, _ans2, _ans3:string; _korans:byte), которому в качестве параметров передаются вопрос, четыре варианта ответов и номер правильного ответа, а в теле метода происходит увеличение длины массива с тестами на единицу и текущий тест записывается в конец массива.
Второй метод класса CVoprosi. Mix предназначен для перемешивания базы вопросов. В нём организован цикл, в теле которого генерируются два произвольных числа i1 и i2 в интервале от 0 до количества вопросов в базе каждое. После чего вопросы с номерами i1 и i2 меняются местами.
В разработанной программе содержится описание пользовательских процедур и обработчиков событий, которые приведены в таблице 3.2.
Таблица 3.2. Пользовательские процедуры и обработчики событий
Наименование | Обр-к | Назначение | Строки |
BitBtnStartClick | + | переход на форму тестов после нажатия «НАЧАТЬ» | 26–32 |
FormCreate | + | формирование базы вопросов при создании фомры тестирования | 108–156 |
FormActivate | + | инициализация тестирования (перемешивание, сброс количества ответов и номера текущего вопроса, вывод первого вопроса) при активизации формы тестирования | 157–182 |
BitBtn1Click | + | анализ введенного ответа и вывод очередного вопроса или итоговой оценки | 183–228 |
BNewTestClick | + | закрытие формы тестов и переход на форму авторизации при нажатии на «Начать заново» | 229–235 |
AddTest |
| добавление нового теста в базу | 78–90 |
Mix | перемешивание базы тестов случайным образом | 91–107 |
Процедура BitBtn1Click предназначена для анализа ответа и вывода очередного вопроса или итоговой оценки. Алгоритм выполнения процедуры приведен на рисунке А.2 приложения А.
В теле процедуры выполняются следующие действия: Если текущий номер вопроса меньше общего количества вопросов, то формируется строка S c вопросом и выбранным ответом и записывается в файл протоколов f. Сравнивается выбранный номер ответа (RGroup1. ItemIndex) с номером правильного ответа (BasaV.test[curN].Korans) и, если он совпадает, то наращивается количество правильных ответов Ratio. Наращивается номер текущего вопроса curN. И очередной вопрос с вариантами ответов выводится на форму.
Если все вопросы были заданы (curN равно количеству вопросов), то рассчитывается итоговая оценка как (Ratio*12)/(общее количество вопросов) и записывается в файл протокола, а также выводится сообщение в виде диалогового окна с оценкой. Также становится видимой кнопка BNewtest c надписью «Начать заново», позволяющая перейти на форму авторизации. Во избежание подбора ответов выводится только последняя итоговая оценка без указания в каких вопросах были сделаны ошибки.
... курс. - М.: Нолидж, 2000. 4. Фаронов В.В. «DELPHI. Программирование на языке высокого уровня». – Питер, 2005. 5. Дятченко Д.А. Методические указания к выполнению курсовой работы по дисциплине «Программирование и алгоритмические языки»– Северодонецк, 2005. ПРИЛОЖЕНИЕ А Алгоритм программы Рисунок А.1 – Обработка событий главной формы программы Рисунок А.2 – ...
... к сожалению, обратное утверждение не верно. C++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG - редактору интерфейса и пр. Delphi — язык программирования, который используется в одноимённой среде разработки. Сначала язык назывался Object Pascal. Начиная со среды разработки Delphi ...
... . И хотя, используя недокументированные возможности и определённые ухищрения, всё это можно реализовать и на VB; пользоваться этими трюками гораздо сложнее, чем, например, на Delphi. 4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI 4.1 Задача 1. Примитивный калькулятор 1. Войдите в среду Delphi, дважды щелкнув мышью на пиктограмму Delphi или через меню “ ...
... из 1 откомпилированного exe файла – Метод Симпсона.exe и rar-архива содержащего все компоненты программы написанных на языке программирования – Delphi 7.0. 1. Запуск программы осуществляется путем открытия файла Метод Симпсона .exe. Рис 1. 2. Ввод значений производится следующим образом: Рис 2. Ввод функции f(x) – в данное ...
0 комментариев