Российской Федерации
Хабаровский Государственный Технический УниверситетКафедра: «Программное обеспечение»
КУРСОВАЯ РАБОТАПо теме «Разработка базы данных,
отражающей учет успеваемости студентов»
Выполнил студентгр. ПО-02 Самойленко П. Р.
Проверил преподаватель
Белоусова Людмила
Васильевна
Хабаровск 2001
Содержание:
1. Задание на разработку, постановка задачи.
2. Описание базы данных.
3. Описание средств, используемых при создании программы.
4. Первоначальные данные.
5. Интерфейс программы.
6. Описание используемых переменных и процедур.
7. Возможности полученного программного продукта.
Постановка задачи.
Построить систему управления базой данных (в дальнейшем-СУБД), отражающую учет успеваемости студентов вуза. При этом надо предусмотреть, что данные могут вноситься разными людьми. Построить базу данных, которая была бы максимально гибкой. В базе данных должны содержаться данные о студентах, оценках, преподавателях и предметах.
Описание базы данных.
База данных нормализована и состоит из четырех таблиц. Она разбита на четыре таблицы, дабы быть максимально гибкой. При этом разные таблицы могут заполняться разными людьми, а потом объединяться в одну общую базу данных. Например, таблицу о студентах заполняют на кафедре, на которой учиться студент, таблицу о преподавателе и предметах – на кафедре этих преподавателей, а оценки ставит преподаватель.
Структура таблиц
Название столбца Описание Таблица студентов (tt1) T1 Номер студенческого билета T2 Фамилия студента T3 Имя T4 Отчество T5 Стипендия Таблица предметов(tt2) T1 Номер предмета T2 Название предмета T3 Номер преподавателя T4 Часы T5 Курс Таблица преподавателей(tt3) T1 Номер учителя T2 Фамилия учителя T3 Его имя T4 Отчество T5 Дата принятия преподавателя на работу Таблица успеваемости(tt4) T1 Код факта сдачи учебной дисциплины T2 Оценка T3 Дата сдачи T4 Номер студенческого билета T5 Код учебного предметаВсе атрибуты имеют строковый тип данных. Причем столбец T1 у каждой из таблиц является первичным ключом, то есть данные в нем уникальны.
Изобразим связь между таблицами:
Связь эта осуществляется через уникальные поля каждой из таблиц. Из схемы видно, что связь между преподавателями и например, студентами, осуществляется только через таблицу предметов. Такая организация базы данных позволяет избежать дублирования данных. Например, если бы у нас таблица предметов была объединена с таблицей преподавателей, то мог выползти такой случай – один преподаватель ведет два предмета, следовательно его фамилия, имя и отчество будут повторятся в таблице дважды. А это уже называется избыточностью данных.
Описание средств, используемых при создании программыДанный программный продукт работает в текстовом режиме, периодически меняя цвет выводимых символов с помощью процедуры textcolor(). Эта процедура принадлежит модулю crt. Помимо нее из этого модуля используется еще две процедуры: clrscr – для отчистки экрана, да gotoxy – для перехода на заданные координаты экрана.
В программе используются списки, записи, собственные модули. Какие же преимущества дают использованные средства?
Списки позволяют рационально использовать память компьютера и выделять ее динамически, не занимая ее попусту. Правда при использовании списков я заметил значительное увеличение кода программы по сравнению со случаем, если бы мы использовали массивы и записи. Но работать с записями намного эффективнее, особенно при создании баз данных. При работе над данной СУБД я использовал стандартные процедуры для работы с указателями:
New() – выделение памяти для переменной
Dispose() - Возвращение памяти в кучу.
Указатель в моем случае указывает на следующий кортеж в данной таблице.
Четыре таблицы хранятся в динамическом списке. Список заканчивается, как только следующий элемент принимает значение nil, то есть ни на что не указывает.
Записи помогают структурировать данные, избежать избыточности.
Модуль я использую для предопределения в нем типов и заполнения записей, значения которых будут потом использованы в основной программе. В этих записях я храню массивы строк – строк меню. Таким образом, этот код не «захламляет» код основной программы. И добавлять новые элементы в меню намного проще – не надо переделывать всю программу.
Первоначальные данные
Для примера я ввел некоторые данные и сохранил в файле pasha. Вот эти данные, выведенные с помощью команды – «Сохр. в текст. файл»:
Студенты
+--------------------------------------------------------------------------+
¦ Студенческий¦ Фамилия¦ Имя¦ Отчество¦ Стипендия¦
+--------------+--------------+--------------+--------------+--------------¦
¦ 3412¦ Поляков¦ Анатолий¦ Алексеевич¦ 54.50¦
¦ 3413¦ Старова¦ Любовь¦ Михайловна¦ 17.00¦
¦ 3414¦ Гриценко¦ Владимир¦ Николаевич¦ 0.00¦
¦ 3415¦ Котенко¦ Анатолий¦ Николаевич¦ 0.00¦
¦ 3416¦ Нагорный¦ Евгений¦ Васильевич¦ 25.50¦
+--------------------------------------------------------------------------+
Предметы
+--------------------------------------------------------------------------+
¦ Код предмета¦ Название¦ Код преподав.¦ Время учебы¦ Курс¦
+--------------+--------------+--------------+--------------+--------------¦
¦ 2001¦ Физика¦ 4001¦ 34¦ 1¦
¦ 2002¦ Химия¦ 4002¦ 68¦ 1¦
¦ 2003¦ Математика¦ 4003¦ 68¦ 1¦
¦ 2004¦ Философия¦ 4005¦ 17¦ 2¦
¦ 2005¦ Экономика¦ 4004¦ 17¦ 3¦
+--------------------------------------------------------------------------+
Преподаватели
+--------------------------------------------------------------------------+
¦ Код преподав.¦ Фамилия¦ Имя¦ Отчество¦ Начало работы¦
+--------------+--------------+--------------+--------------+--------------¦
¦ 4001¦ Викулина¦ Валентина¦ Ивановна¦ 01/04/1984¦
¦ 4002¦ Костыркин¦ Олег¦ Владимирович¦ 01/09/1997¦
¦ 4003¦ Казанко¦ Виталий¦ Владимирович¦ 01/09/1988¦
¦ 4004¦ Позднякова¦ Любовь¦ Алексеевна¦ 01/09/1998¦
¦ 4005¦ Загарийчук¦ Игорь¦ Дмитриевич¦ 10/05/1989¦
+--------------------------------------------------------------------------+
Оценки
+--------------------------------------------------------------------------+
¦ Код сдачи¦ Оценка¦ Дата сдачи¦ Студенческий¦ Код предмета¦
+--------------+--------------+--------------+--------------+--------------¦
¦ 1001¦ 5¦ 10/06/1999¦ 3412¦ 2001¦
¦ 1002¦ 4¦ 10/06/1999¦ 3413¦ 2003¦
¦ 1003¦ 3¦ 11/06/1999¦ 3414¦ 2005¦
¦ 1004¦ 4¦ 12/06/1999¦ 3412¦ 2003¦
¦ 1005¦ 5¦ 12/06/1999¦ 3416¦ 2004¦
+--------------------------------------------------------------------------+
Эти данные будут использоваться в примерах.
Интерфейс программыДля того, чтоб понять, что делает программа рассмотрим ее меню:
На рисунке 1 представлено главное меню программы, которое появляется при ее запуске. Тут:
«Загрузка» - ввод базы данных из типизированного файла.
«Сохр. в тип. файл» - сохранение базы данных в типизированном файле.
«Сохр. в текст. файл» - сохранение выбранной таблицы в текстовой файл.
«Просмотр» - просмотр данных таблиц.
«Корректировка» - изменение записей таблиц.
«Сортировка» - сортировка записей по определенному полю.
«Запросы» - поиск данных в четырех таблицах, соответствующие заданному условию.
«Выход» - выход из программы.