курсач. Бд проката автомобилей
Скачать 0.97 Mb.
|
ВведениеЦелью данного проекта является программная реализация базы данных, которая хранит данные в таблицах таким образом, чтобы они могли быть найдены и обработаны в соответствие с заданием.
Для реализации задания требуется: - организовать ввод данных в программу. Во-первых, это считывание данных из фалов, в которых лежат таблицы. Во-вторых, это ввод новых записей с помощью периферийного устройства (клавиатура); - выполнение определенных функций с помощью меню: вывод таблицы на экран, добавление записи, удаление записи, сохранение таблицы, использование фильтров; - использование подпрограмм для улучшения структуры программы; - для представления таблиц в программе будут использоваться массивы записей; - связь таблиц. В каждой таблице имеется поле содержащее первичный ключ по которому можно однозначно идентифицировать запись. В таблицах имеется вторичный ключ для связи нескольких таблиц.
2.1 Определение функций программы
2.2 Определение интерфейса программыИнтерфейс программы будет представлен в виде меню с основными пунктами (функциями описанными выше). Меню представлено на Рисунке 1 и Рисунок 2. Рисунок 1 – Главное меню Рисунок 2 – Подменю 2.3 Выбор структур данных Исходные (вводимые) данные будут храниться и обрабатываться в виде массива записей. Например структура первой таблицы «Сотрудники» представлена на рисунках 2.1(на языке Pascal) и 2.2(на языке C).
Каждой такой таблице будет соответствовать свой текстовый файл, который указывается в коде программы. 2.4 Выбор метода решения Ввод данных. Открывается файл на чтение. Если его не существует, то создается новый при попытке записи. Построчно считывается информация и обрабатывается в соответствии со структурой данной таблицы. Вывод таблицы. Каждая строчка – поле таблицы. Из массива, в котором хранятся ее данные, выводятся в строчку данные каждой записи, принадлежащие данному полю, затем идет переход на новую строку и вывод данных следующего поля и т.д. Добавление записи. В конец массива записей требуемой таблицы добавляется новый элемент, данные для которого берутся с входного потока консоли (пользователь вручную их вводит с клавиатуры). Так как количество записей ограничено, то при достижении максимального количества выводится предупреждение о достижении максимума записей, в этом случае добавление новой записи не происходит. Выполнение запросов. Связь таблиц происходит по одному общему полю. Рассмотрим подробно первый запрос, который связавает таблицы «Сотрудники» и «Должности» по полю «Код должности». В данном случае «Должности» - главная таблица, а «Сотрудники» - подчиненная таблица. Поле «Код должности» в таблице «Должности» является первичным ключом, а в таблице «Сотрудники» это поле является вторичным ключом. Так каждому Сотруднику будет соответсвовать «Код должности», который также указан в другой таблице и однозначно определяет занимаемую должность.
Рисунок 3- запрос 1 Фильтр информации. Выводит определенную информацию на основе запросов. Фильтр 1 отображает сотрудников отдельных должностей. Пусть нам необходимо по наименованию должности отобразить полную информацию о сотрудниках которые ее занимают. Выполнение Фильтра 1 по ранее представленному запросу(Рис 4):
Рисунок 4 – фильтр 1 Удаление записи. Пользователь вводит номер записи, которую хочет удалить. Если он вводит номер, которого нет, то программа информирует его об этом. Если соответствие есть, то начиная со следующего номера каждая запись перезаписывается на место предыдущей, в случае, если требуемая запись является последней, то переменная содержащая количество текущих элементов таблицы уменьшается на 1. Меню. Создается массив, содержащий названия элементов меню. Существут переменная point (sub_point для подменю), которая указывает на котором элементе меню сейчас находится пользователь. Построчно выводятся элементы массива, подсвечивая цветом тот элемент, который соответствует point. Программа находится в ожидании введения символа, при нажатии стрелок, point уменьшается (стрелка вверх) или увеличивается на единицу (стрелка вниз), при этом на point стоит ограниччение, переменная не может принять значение выходящее за пределы диапозона количества элементов массива.
4. Разработка структуры программы Подпрограмма чтения из файла Основная программа ОП Подпрограмм добавления записей Файл с данными Список записей Список записей Список записей Подпрограмма записи в файл Подпрограмма вывода записей Подпрограммы фильтров Подпрограмма удаления записей |