Смекни!
smekni.com

Разработка программы учета абитуриентов (стр. 2 из 4)

Основной функционал приложения реализован с помощью sql запросов:

1) selects.s_code, count (a.a_id) totalfromabiturientsa, specialitiesswherea.a_s_id=s.s_idgroupbys.s_id,s_code – считает сколько абитуриентов поступает на каждую специальность.

2) Selecta.a_surname, sum(a_math+a_physic+a_composition) summa,s.s_code,s.s_facultyfromabiturientsa, specialitiesswherea.a_s_id=s.s_idgroupbys_code,s_faculty,a_surnameorderbysummades – этот запрос выполняет сортировку абитуриентов по убыванию суммы баллов с группировкой по факультетам и специальностям.

Рисунок 5. Выбрана специальность code2

4. Структура пользовательского интерфейса

Программа данного курсового проекта состоит из четырех форм, каждая из которых появляется при нажатии на определенную кнопку. Столь малое число форм обусловлено тщательным дизайном программы с целью уменьшения количества файлов связанных с формами.

На главной форме представлены все элементы пользовательского интерфейса, требуемые для удобной работы пользователя.

Две формы выделены на отчеты.

Диаграммы строятся и выводятся в отчетах и располагаются на тех же формах.

Четвертая форма – AboutBox – предоставляет сведения о разработчике программы.


Рисунок 6. Структура пользовательского интерфейса.

Таблица 1. Назначение элементов управления главной формы (a_f)

Элемент управления Имя (идентификатор) Надпись Назначение, имя процедуры
Метка Label3 Выполнить SQL запрос Считывает текст, введенный в поле редактирования, записывает его как sql выражение и выполняет.Label3Click;
Метка Label4 Фильтровать Считывает текст, введенный в поле редактирования, записывает его как условие фильтрования. Меняет фильтр у таблицы.Label4Click;
Сетка DBGrid2 (Данные БД) Обрабатывает щелчок по полю сетки. Вызывает процедуру сортировки данных выбранного поля. Работает с таблицей абитуриентов.DBGrid2TitleClick
Селектор выбора из базы данных DBLookupComboBox1 (Данные БД) Обрабатывает выбор данных из списка. Подробнее - смотреть раздел 3.DBLookupComboBox1CloseUp;DBLookupComboBox1Enter;
Группа радиокнопок RadioGroup1 Отчет Определяет, как из кнопок связанных с выбором условия фильтрации выбрана и в зависимости от этого выбирается условие фильтрации. Сама процедура фильтрации выполняется при нажатии метки Label4.
Поле ввода Edit2 (Текст SQL запроса) В это поле вводится текст sql запроса. После нажатия метки Label3 он выполнится, если не было ошибок.
Сетка DBGrid3 (Данные запросов) В этой сетке выводятся результаты всех непредопределенных sql запросов.
Сетка DBGrid1 (Данные запросов) Работает с таблицей специальностей.
Метка Label6 Отчет Выводит детализированный отчет.Label6Click
Метка Label8 Выход Завершает работу программы, сохраняя измененные таблицы, если они действительно были изменены.Label8Click
Метка Label9 Отчет2 Выводит отчет с отсортированными данными.Label9Click
Метка Label7 О программе… Выводит форму со сведениями разработчика приложения.Label7Click
Навигатор базы данных DBNavigator1 (управление таблицей базы данных) Управление данными в таблице специальностей.
Навигатор базы данных DBNavigator2 (управление таблицей базы данных) Управление данными в таблице абитуриентов.
Кнопка Button1 Количество по специальностям Запускает процедуру вывода количества абитуриентов по каждой специальности. Реализуется с помощью выполнения sql запроса с выводом результата в сетке DBGrid3.Button1Click

Таблица 2. Назначение элементов управления формы (AboutBox)

Элемент управления Имя (идентификатор) Надпись Назначение, имя процедуры
Кнопка OKButton OK Закрывает форму «О программе»

5. Структура программы


Рисунок 6. Иерархическая модель программы.

Все функции программы реализованы при помощи свойств компонент Delphi и не требуют специального программного кода, описывающего алгоритм. Навигация по базе данных выполняется при помощи навигаторов баз данных.

В случае возникновения исключительных ситуаций выводятся сообщения об ошибках, рекомендуемые действия пользователя и программа отменяет все изменения в таблице, выполненные до сохранения.

В приведенной в приложении А схеме данных показан технологический процесс обработки данных. Данные из двух таблиц используются для выполнения выборок данных при помощи специальных sql запросов.

6. Описание программы

Разработанная программа предназначена для ведения базы данных типа Paradox для учета движения товаров. Она содержит 2 связанных таблиц, 4 формы и один модуль данных. Все компоненты связанные с базой данных собраны в одном модуле данных DM. Текст модуля находится в файле dm_u.pas. Полный текст программы находится в приложении.

Перечень файлов проекта:

a.dcu

a.dfm

a.pas

a_about.dcu

a_about.dfm

a_about.pas

a_p.cfg

a_p.dof

a_p.dpr

a_p.res

a_r.dcu

a_r.dfm

a_r.pas

a_r2.dcu

a_r2.dfm

a_r2.pas

dm_u.dcu

dm_u.dfm

dm_u.dti

dm_u.pas


Рисунок 8 – схема взаимодействия компонентов с файлами БД

7. Тестирование программы

Одна из причин сложности программы заключается в большом количестве способов, с помощью которых могут взаимодействовать ее компоненты, а уж программы полны и компонентами, и взаимосвязями между ними. Многие технологии пытаются сократить связи между компонентами, чтобы уменьшить количество взаимодействий: например, используется сокрытие информации, абстрагирование и интерфейсы, а также все возможности языков, способствующие этим технологиям. Существуют также технологии для проверки целостности архитектуры программы: доказательства корректности программ, моделирование, анализ требований, формальные проверки. Ни одна из перечисленных технологий не изменила радикально способа создания программ: они работают лишь на небольших задачах. В реальности всегда будут ошибки, которые мы находим с помощью тестирования и устраняем с помощью отладки.

Отладка сложна и может занимать непредсказуемо долгое время, поэтому цель в том, чтобы миновать большую ее часть. Технические приемы, которые помогут уменьшить время отладки, включают хороший дизайн, хороший стиль, проверку граничных условий, проверку правильности (исходных) утверждений и разумности кода, защитное программирование, хорошо разработанные интерфейсы, ограниченное использование глобальных данных, средства контроля и проверки.

Основной движущей силой в эволюции языков программирования была попытка предотвратить ошибки с помощью возможностей языка. Некоторые такие возможности уменьшают шанс появления целых классов ошибок: проверка диапазонов индексов, ограничение использование указателей или полный отказ от них, сборка мусора, строковые типы данных, типизированный ввод/вывод, строгая проверка типов. Однако, некоторые возможности языка напрашиваются на ошибку, например оператор goto, глобальные переменные, свободно используемые указатели, автоматические преобразования типов. Программистам следует знать зоны повышенного риска в своих языках и быть особенно осторожными при их использовании. Следует также включить все проверки компилятора и слушаться его предупреждений.

Компиляторы основных языков программирования обычно поставляются со сложными отладчиками, часто входящими в состав среды программирования, которая объединяет в себе создание и редактирование исходного кода, компиляцию, выполнение и отладку. Отладчики включают в себя графический интерфейс для пошагового выполнения программы, оператор за оператором или функция за функцией, с остановками на конкретных строках программы или при достижении какого условия. Они также предоставляют возможность форматирования и отображения значений переменных.

Но у отладчиков есть и минусы. Часть менее распространенных языков программирования не имеет отладчиков или обеспечивает лишь рудиментарные возможности отладки. Отладчики системно-зависимы. Некоторые программы не очень хорошо поддаются отладке: многопроцессные или многонитевые (многопоточные) программы, операционные системы, распределенные системы зачастую должны отлаживаться более низкоуровневыми средствами. В таких ситуациях возможно полагаться только на себя, и немногие вещи могут помочь: операторы выдачи сообщений на экран, личный опыт и способность рассуждать, глядя на код.