46261 (607807)
Текст из файла
Министерство образования
Российской Федерации
Хабаровский Государственный Технический Университет
Кафедра: «Программное обеспечение»
КУРСОВАЯ РАБОТА
По теме «Разработка базы данных,
отражающей учет успеваемости студентов»
Выполнил студент
гр. ПО-02 Самойленко П. Р.
Проверил преподаватель
Белоусова Людмила
Васильевна
Хабаровск 2001
Содержание:
-
Задание на разработку, постановка задачи.
-
Описание базы данных.
-
Описание средств, используемых при создании программы.
-
Первоначальные данные.
-
Интерфейс программы.
-
Описание используемых переменных и процедур.
-
Возможности полученного программного продукта.
Постановка задачи.
Построить систему управления базой данных (в дальнейшем-СУБД), отражающую учет успеваемости студентов вуза. При этом надо предусмотреть, что данные могут вноситься разными людьми. Построить базу данных, которая была бы максимально гибкой. В базе данных должны содержаться данные о студентах, оценках, преподавателях и предметах.
Описание базы данных.
База данных нормализована и состоит из четырех таблиц. Она разбита на четыре таблицы, дабы быть максимально гибкой. При этом разные таблицы могут заполняться разными людьми, а потом объединяться в одну общую базу данных. Например, таблицу о студентах заполняют на кафедре, на которой учиться студент, таблицу о преподавателе и предметах – на кафедре этих преподавателей, а оценки ставит преподаватель.
Структура таблиц
Название столбца | Описание |
Таблица студентов (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 представлено главное меню программы, которое появляется при ее запуске. Тут:
«Загрузка » - ввод базы данных из типизированного файла.
«Сохр. в тип. файл » - сохранение базы данных в типизированном файле.
«Сохр. в текст. файл » - сохранение выбранной таблицы в текстовой файл.
«Просмотр » - просмотр данных таблиц.
«Корректировка » - изменение записей таблиц.
«Сортировка » - сортировка записей по определенному полю.
«Запросы » - поиск данных в четырех таблицах, соответствующие заданному условию.
«Выход » - выход из программы.
Г
лавное меню содержит вложенные. Например на 2 рисунке показано меню, служащее для выбора таблицы (одной из четырех). Вход в него может быть осуществлен по разному. То есть это меню вы будете проходить при просмотре данных, при корректировке и при сохранении в текстовой файл. Это меню в комментариях не нуждается.
П
ри выборе «Корректировка» вы перейдете к меню, показанному на рисунке 3.
«Добавление » - добавление нового кортежа в заданную с помощью предыдущего меню таблицу.
«Удаление » - удаление строки из таблицы, причем запись в таблице ищется по первому столбцу.
«Изменение » - изменение свойств существующей в базе данных строки.
Последнее подменю – это подменю запросов, на котором надо остановиться поподробнее. Рассмотрим рисунок:
«
Найти оценку» - найти оценку студента по его фамилии и предмету, который он сдавал.
«Кто принимал экзамен» - фамилия преподавателя, принимавшего данный предмет.
«Найти размер стипендии» - размер стипендии выбранного студента.
«Вывод по оценке» - показать всех студентов, получивших данную оценку.
«Дата сдачи экзамена» - найти даты, когда принимался данный предмет.
В запросах используются реальные названия предметов, фамилии студентов, а не их номера (для студентов например номер соответствует номеру студенческого билета).
Б ольше в программе меню такого типа нет, но есть много строчного ввода, например выполним запрос с поиском оценок. После запроса экран будет выглядеть так (искали четверочников):
Результат запроса отображается красным цветом.
Описание используемых процедур.
В приложении используются как глобальные, так и локальные переменные. К глобальным переменным относятся:
1) names,namer:string[10] – строковые переменные, которые вынесены в глобальные, чтобы сделать программу более компактной. Иначе бы в разных процедурах надо было вводить аналогичные типы данных, а так можно обойтись лишь парой глобальных переменных.
2) key,kr:char – символьные переменные. В переменной key хранится код нажатой клавиши. А в переменной kr находится текущее положение звездочки. Звездочка будет рассмотрена ниже.
3) tek,i,j,izm:integer – целочисленные переменные. Из них i и j –циклические, временные переменные. Tek и izm показывают, какое меню активно в текущий момент. Они помогают понять программе от какого меню к какому перешли, тоесть помогает восстановить последовательность действий.
4) exist,vfile,issor:boolean – Логические переменные. Exist – служит для выхода из программы. Vfile – позволяет пускать одну процедуру по двум путям – либо выводить данные на экран, либо в файл. Issor – показывает меню выбора таблиц, что следующим шагом должна быть сортировка данной таблицы.
5) nast:pered – Типизированная переменная, в которой хранятся строки текущего меню. Описание типа pered имеется в модуле:
pered=record
st:array[1..12] of string;
m:byte; {количество строк в меню}
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.