Главная страница
Навигация по странице:

  • Анализ задания

  • Постановка задачи

  • Код Сотрудника ФИО Возраст Пол Адрес

  • Код должности Наименование должности Оклад Обязанности

  • Структура данных Название структуры в

  • 4. Разработка структуры программы Подпрограмма чтения из файлаОсновная программа ОП Подпрограмм добавления записей

  • курсач. Бд проката автомобилей


    Скачать 0.97 Mb.
    НазваниеБд проката автомобилей
    Дата27.02.2019
    Размер0.97 Mb.
    Формат файлаdocx
    Имя файлакурсач.docx
    ТипПояснительная записка
    #69005
    страница2 из 5
    1   2   3   4   5

    Введение



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


      1. Анализ задания


    Для реализации задания требуется:

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

    - выполнение определенных функций с помощью меню: вывод таблицы на экран, добавление записи, удаление записи, сохранение таблицы, использование фильтров;

    - использование подпрограмм для улучшения структуры программы;

    - для представления таблиц в программе будут использоваться массивы записей;

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


      1. Постановка задачи


    2.1 Определение функций программы

    • чтение таблицы из файла;

    • система меню;

    • вывод таблицы на экран;

    • добавление записей в таблицу;

    • удаление записей из таблицы;

    • сохранение таблицы в файле;

    • выполнение запросов, связанных с поиском требуемой информации в связанных таблицах;

    • фильтровать информацию, полученную в ходе выполнения запроса;



    2.2 Определение интерфейса программы


    Интерфейс программы будет представлен в виде меню с основными пунктами (функциями описанными выше).
    Меню представлено на Рисунке 1 и Рисунок 2.

    Рисунок 1 – Главное меню Рисунок 2 – Подменю
    2.3 Выбор структур данных

    Исходные (вводимые) данные будут храниться и обрабатываться в виде массива записей. Например структура первой таблицы «Сотрудники» представлена на рисунках 2.1(на языке Pascal) и 2.2(на языке C).


    Рисунок 2.1- на Pascal




    Рисунок 2.2(на С)

    Каждой такой таблице будет соответствовать свой текстовый файл, который указывается в коде программы.
    2.4 Выбор метода решения

    Ввод данных.

    Открывается файл на чтение. Если его не существует, то создается новый при попытке записи. Построчно считывается информация и обрабатывается в соответствии со структурой данной таблицы.

    Вывод таблицы.

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

    Добавление записи.

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

    Выполнение запросов.

    Связь таблиц происходит по одному общему полю.

    Рассмотрим подробно первый запрос, который связавает таблицы «Сотрудники» и «Должности» по полю «Код должности». В данном случае

    «Должности» - главная таблица, а «Сотрудники» - подчиненная таблица. Поле «Код должности» в таблице «Должности» является первичным ключом, а в таблице «Сотрудники» это поле является вторичным ключом. Так каждому Сотруднику будет соответсвовать «Код должности», который также указан в другой таблице и однозначно определяет занимаемую должность.

    Таблица «Сотрудники»

    Код Сотрудника

    ФИО

    Возраст

    Пол

    Адрес

    Тел.

    Паспорт. дан.

    Код Должности

    1

    Анищенко И.Г.

    25

    Ж

    г. Рязань

    89206578435

    -----------

    3

    2

    Сафронов И.С.

    32

    М

    г. Рязань

    89103245685

    -----------

    1

    3

    Летов Г.Л.

    26

    М

    г. Рязань

    89106253432

    -----------

    2

    . . .




    Таблица «Должности»

    Код должности

    Наименование должности

    Оклад

    Обязанности

    Требования

    1

    Управляющий

    60000

    --------------

    --------------

    2

    Менеджер

    40000

    --------------

    --------------

    3

    Секретарь

    30000

    --------------

    --------------

    . . .

    Рисунок 3- запрос 1
    Фильтр информации.

    Выводит определенную информацию на основе запросов.

    Фильтр 1 отображает сотрудников отдельных должностей. Пусть нам необходимо по наименованию должности отобразить полную информацию о сотрудниках которые ее занимают.

    Выполнение Фильтра 1 по ранее представленному запросу(Рис 4):

    1. Вводим с клавиатуры наименование должности, которое помещается в переменную строкового типа. Например “Диспетчер”  str. Производим поиск этого наименования в поле «Наименование должности» в таблице «Должности».

    2. Когда мы нашли запись, поле которой содержит данное наименование, необходимо зафиксировать «Код должности» соответствующее этому наименованию. Например b:= «Код должности».

    3. Далее необходимо поизвести поиск этого b ( кода должности) в поле «Код должности» таблице «Сотрудники».

    4. Когда мы нашли запись с нужным кодом, выводим соответствующую запись на экран.


    Рисунок 4 – фильтр 1

    Удаление записи.

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

    Меню.

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


      1. Структура данных

    Название структуры в Pascal

    Название структуры в С

    Предназначение

    procedure read_tables;

    void read_tables(void)

    Функция выполняет чтение таблиц из файла.


    procedure write_table(n: byte);

    void write_table(int n)

    Процедура выполняет запись таблиц в файл. Входная переменная – номер таблицы


    procedure print_table(n: byte);

    void print_table(int n)

    Процедура выполняет вывод таблиц на экран. Входная переменная – номер таблицы


    procedure add_record(n: byte);

    void add_record(int n)

    Процедура выполняет добавление одной новой запись в таблицу. Входная переменная – номер таблицы.


    procedure delete_record(n: byte);

    void delete_record(int n)

    Процедура выполняет удаление записи из таблицы.

    Входная переменная – номер таблицы.

    procedure main_menu(pm:integer); procedure sub_menu(sm: integer);

    void main_menu(int pm)

    void sub_menu(int sm)

    Процедуры выполняющие реализацию интерфейса.

    Вывод главного меню и подменю на экран

    procedure f1;

    procedure f2;

    procedure f3;

    procedure f4;

    procedure f5;

    procedure f6;



    void f1(void)

    void f2(void)

    void f3(void)

    void f4(void)

    void f5(void)

    void f6(void)

    Процедуры выполняющие запросы в соответствии с заданием.

    4. Разработка структуры программы

    Подпрограмма чтения из файла

    Основная программа

    ОП

    Подпрограмм добавления записей

    Файл с данными

    Список записей

    Список записей

    Список записей

    Подпрограмма записи в файл

    Подпрограмма вывода записей

    Подпрограммы фильтров

    Подпрограмма удаления записей

    1   2   3   4   5


    написать администратору сайта