2. Описание структуры программы
Главным модулем является модуль Form4. В этом модуле предусмотрен переход к другим модулям, с помощью объектов Command. При нажатии на любую кнопку главная форма скрывается и ее заменяет другая форма которую вызывает событие Click данной кнопки. На форме также предусмотрена кнопка выхода, в которой предусмотрено случайное нажатие кнопки. Например, если пользователь, случайно, нажмет на кнопку выхода появится окно, которое будет запрашивать подтверждение на выход. Данная опция описана с помощью команды MesageBox.
Рис. 3. Структура программы
3. Описание программного модуля №1 (Form1)
3.1Входные и выходные данные
В качестве входных данных используется таблица spesial, используется атрибут names данной таблицы, который содержит названия специальностей. Сама таблица содержит атрибуты kodspec который является первичным ключом, и names в котором и содержатся названия. Выходными данными служит объект ListBox расположенный на этой форме, в него записываются дисциплины которые закреплены за выбранной специальностью.
3.2 Процессы обработки и методы решения
Данный модуль вызывается при нажатии на кнопку «просмотр дисциплин изучаемых по специальности» из главной формы. В данном модуле на форме размещены два объекта label для надписи. Также размещен объект ComboBox в котором находится список всех специальностей из таблицы special с помощью свойств: RowSourceTyp=6–Fields, RowSource=special.name, style=2-DropdownList. По умолчанию уже выбран объект – первый из списка в таблице. Для объекта ComboBox используется событие InteractiveChange. На форме размещен объект ListBox, он используется для отображения дисциплин которые выводятся с помощью события InteractiveChange объекта ComboBox. Также на форме размещен объект command, который служит для перехода к главной форме «Гланое меню». Для него используется событие Click.
Рис. 4. Форма – Просмотр дисциплин изучаемых по специальности
В данной экранной форме используются следующие события:
Form1.Init:
В данном событии предусматривается автоматический выбор значения из объекта ComboBox содержащего список специальностей. Так же в этом событии обрабатывается заполнения объекта ListBox используя специальность выбранную по умолчанию в объекте ComboBox, для этого вызывается событие ThisForm.Combo1.InteractiveChange.
Combo1.InteractiveChange:
Данное событие выводит в ListBox дисциплины которые изучаются по специальности, выбранной в объекте ComboBox. Для этого сначала ListBox очищается командой Clear, после этого с помощью команды поиска Lokate в таблице special осуществляется поиск кода выбранной специальности. Сравнение производится с названием специальности записанной в данный момент в объекте ComboBox. По коду в таблице specdis спомощью все той же команды поиска Lokate находится первый код дисциплины, и по коду дисциплин в таблице disiples с помощью все той же команды Lokate осуществляется поиск названия дисциплин по данному коду и с помощью команды List1.AddItem добавляется в ListBox. После этого используется команда Continue которая продолжает поиск в таблицах. Весь процесс поиска осуществляется с помощью цикла Do while и условия not eof() – пока не конец файла.
Command1.Click:
Данное событие делает переход к окну «Главное меню», скрывая при этом видимую в момент до нажатия форму. Это происходит с помощью команд скрытия и отображения форм, а именно show и hide.
3.3 Обеспечение надежности и удобства эксплуатации
Для выбора специальностей используется объект ComboBox. Для надежности работы программы и избавления ее от ошибок. В ComboBox используется свойство Style=2-DropdownList, дающее пользователю возможность только выбирать данные из списка и не дающего вводить с клавиатуры.
Для удобства используется объект ComboBox который позволяет пользователю выбирать готовые данные из раскрывающегося списка. Что позволяет визуально просмотреть имеющиеся в базе данных специальности.
3.4 Программа тестирования
Для тестирования модуля можно попробовать использовать незаполненную базу данных. Но в этом случае никакой ошибки не произойдет, поскольку если в базе данных не найдется значений – списка специальностей, тогда поиск дисциплин просто не будет вестись и в объект ListBox ничего не выведется, а если в базе данных не найдется дисциплин, то они также не будут выведены. Ошибки обрабатываются в ходе исполнения программы.
В качестве входных данных на форме, ничего не используется.
4. Описание программного модуля №2 (Form2)
4.1 Входные и выходные данные
В качестве входных данных используется таблица spesial, используется атрибут names данной таблицы, который содержит названия специальностей. Сама таблица содержит атрибуты kodspec который является первичным ключом, и names в котором и содержатся названия. Также в качестве входных данных используется информация в объектах TextBox вводимая пользователем. В качестве выходных данных используются таблицы disciples и specdis. в таблицу disiples в атрибут name записывается новая дисциплина из одного из объектов TextBox. В таблицу specdis записывается информация о коде специальности и дисциплины, которая пренадлежит этой специальности а также дополнительная информация с формы.
4.2 Процессы обработки и методы решения
Данный модуль вызывается из главной формы при нажатии на кнопку «Закрепление дисциплин». В данном модуле на форме размещены пять объектов label для надписи и 4 объекта TextBox для записи. Также размещен объект ComboBox в котором находится список всех специальностей из таблицы special с помощью свойств: RowSourceTyp=6–Fields, RowSource=special.name, style=2-DropdownList. По умолчанию уже выбран объект – первый из списка в таблице. Для объекта ComboBox используется событие InteractiveChange. Также размещен объект Command для перехода на форму «Главное меню».
Рис. 5. Форма – Закрепление дисциплин
В данной экранной форме используются следующие события:
Form2.Init:
В данном событии предусматривается автоматический выбор значения из объекта ComboBox содержащего список специальностей. Для этого в коде свойству ListIndex объекта ComboBox присваивается значение 1
Command1.Click:
Данное событие добавляет в таблицу disiples название дисциплины, которую ввел пользователь для закрепления, автоматически генерируя код дисциплины. Данная процедура сначала проверяет, введена ли дисциплина и если нет, то выводится соответствующее сообщение с помощью команды MessageBox. Если дисциплина введена то с помощью команды Recount проверяется кол-во записей в таблице и следующий номер будет являться ключом для этой таблицы. С помощью команды replace в таблицу добовляется новая запись с полученным кодом и названием дисциплины, которая должна быть введена в объекте TextBox. Далее команда locate осуществляет поиск кода специальности в таблице special по названию специальности в объекте ComboBox. Затем используя команду replace, в таблицу specdis записываю полученный код дисциплины и код специальности. Также в эту таблицу записывается кол-во часов на дисциплину, на каком курсе и в каком семестре она проходится. Данные поля не являются обязательными для заполнения и если при нажатии кнопки эти поля будут пустыми или не будут соответствовать типу, то команда перефода текста числа в строку запишет в таблицу значение 0. Для того чтобы пользователь понял что запись добавлена после добавления записи в таблицу, появится диалоговое окно с сообщением об успешном добавлении записи.
Command2.Click:
Данное событие делает переход к окну «Главное меню», скрывая при этом видимую в момент до нажатия форму. Это происходит с помощью команд скрытия и отображения форм, а именно show и hide.
4.3 Обеспечение надежности и удобства эксплуатации
Для выбора специальностей используется объект ComboBox. Для надежности работы программы и избавления ее от ошибок. В ComboBox используется свойство Style=2-DropdownList, дающее пользователю возможность только выбирать данные из списка и не дающего вводить с клавиатуры. Для того чтобы в базу данных ввелась дисциплина ее нужно сначала написать, для этого при обработке события Click требуется обязательное заполнение поля, если поле не будет заполнено об этом выведется сведение и информация не будет добавлена в базу данных.
Для удобства используется объект ComboBox который позволяет пользователю выбирать готовые данные из раскрывающегося списка. Что позволяет визуально просмотреть имеющиеся в базе данных специальности.
4.4 Программа тестирования
Для тестирования можно попробовать ввести в объекты TextBox не числовые значения, которые требуются для базы данных, а например какой либо текст. В этом случае ничего страшного не произойдет, поскольку используется функцию val, которая переводит строковое значение в число и если там не будет значения или будет не числовое значение, то функция просто возвратит 0, и нужные атрибуты базы данных заполнятся нулями.
5. Описание программного модуля №3 (Form3)
5.1 Входные и выходные данные
В качестве входных данных используется таблица specdis со всеми атрибутами, а также используются таблицы diciples и special. В качестве входных данных таблиц diсiples и special используестя названия дисциплин и специальностей. Выходным данным служит объект grid который связан с таблицей specdis, diciples и special.