Разработка базы данных,отражающей учет успеваемости студентов

Рефераты, курсовые, дипломные, контрольные (предпросмотр)

Тип: Курсовая работа. Файл: Word (.doc) в архиве zip. Категория: Информатика, IT
Адрес этого реферата http://referat-kursovaya.repetitor.info/?essayId=24823 или
Загрузить
В режиме предпросмотра не отображаются таблицы, графики и иллюстрации. Для получения полной версии нажмите кнопку «Загрузить». Рефераты, контрольные, дипломные, курсовые работы предоставляются в ознакомительных целях, не для плагиата.
Страница 1 из 2 [Всего 2 записей]1 2 »

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

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

Описание базы данных.

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

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

Изобразим связь между таблицами:

Связь эта осуществляется через уникальные поля каждой из таблиц. Из схемы видно, что связь между преподавателями и например, студентами, осуществляется только через таблицу предметов. Такая организация базы данных позволяет избежать дублирования данных. Например, если бы у нас таблица предметов была объединена с таблицей преподавателей, то мог выползти такой случай - один преподаватель ведет два предмета, следовательно его фамилия, имя и отчество будут повторятся в таблице дважды. А это уже называется избыточностью данных.

Описание средств, используемых при создании программы

Данный программный продукт работает в текстовом режиме, периодически меняя цвет выводимых символов с помощью процедуры textcolor(). Эта процедура принадлежит модулю crt. Помимо нее из этого модуля используется еще две процедуры: clrscr - для отчистки экрана, да gotoxy - для перехода на заданные координаты экрана.

В программе используются списки, записи, собственные модули. Какие же преимущества дают использованные средства?

Списки позволяют рационально использовать память компьютера и выделять ее динамически, не занимая ее попусту. Правда при использовании списков я заметил значительное увеличение кода программы по сравнению со случаем, если бы мы использовали массивы и записи. Но работать с записями намного эффективнее, особенно при создании баз данных. При работе над данной СУБД я использовал стандартные процедуры для работы с указателями:

New() - выделение памяти для переменной

Dispose() - Возвращение памяти в кучу.

Указатель в моем случае указывает на следующий кортеж в данной таблице.

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

Записи помогают структурировать данные, избежать избыточности.

Модуль я использую для предопределения в нем типов и заполнения записей, значения которых будут потом использованы в основной программе. В этих записях я храню массивы строк - строк меню. Таким образом, этот код не "захламляет" код основной программы. И добавлять новые элементы в меню намного проще - не надо переделывать всю программу.

Первоначальные данные

Для примера я ввел некоторые данные и сохранил в файле pasha. Вот эти данные, выведенные с помощью команды - "Сохр. в текст. файл":

На рисунке 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 имеется в модуле:

Программа отвечает на то, какую клавишу нажал пользователь и передает управление процедуре main. Процедура readkey используется в основном блоке программы. Для работы с управляющими клавишами используются их коды в таблице ISCII. Тут:

80 - курсор вверх

72 - курсор вниз

27 - ESC

13 - Enter

При нажатии на клавишу "Ввод" управление передается продцедуре main. При этом используются глобальные переменные.

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

Интерфейсная часть программы состоит из трех процедур:

RSSСтраница 1 из 2 [Всего 2 записей]1 2 »


При любом использовании материалов сайта обязательна гиперссылка на сайт «Репетитор».
Разработка и Дизайн компании Awelan
www.megastock.ru
Проверить аттестат