База данных Расписание поездов

Санкт-Петербургский государственный политехнический университет

Факультет инноватики

Курсовая работа

Дисциплина: Теория и технология программирования

Тема: База данных “Расписание поездов”

Выполнил студент гр. 2221/1

Керсанова Л. В ________________

(подпись)

Селиванова С. В ________________

(подпись)

Преподаватель:К. т. н., доц. Культин Н. Б.
“__” ____________ 2008

Санкт-Петербург

2008

Оглавление

Постановка задачи……………………………………………………………………… 2 Структура данных……………………………………………………………………… 3 Алгоритм……………………………………………………………………………….. 3 Интерфейс……………………………………………………………………………… 6 Процедуры и функции………………………………………………………………… 7 Листинги………………………………………………………………………………… 7 Выводы…………………………………………………………………………………. 9 Литература……………………………………………………………………………… 10

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

Написать программу работы с базой данных “Расписание поездов” (рис. 1).

АдресТелефонРайон
ДМШ № 19Рижский пр. д.82596342Адмиралтейский
ДМШ № 31Наб. Обводного канала д. 123-б3161201Адмиралтейский
ДМШ им. ЛяховильцкойСадовая ул. д. 323100456Адмиралтейский
Вдохновение4-я линия д.293237377Василеостровский
ДМШ № 38Ул. Симонова д. 85154003Выборгский
ДМШ им. БородинаПр. Просвещения д. 825944645Калининский
ДМШ № 9Ул. Гладкова д. 37865058Кировский
ДМШ № 41Ул. Косыгина д. 285241562Красногвардейский

Рис. 1. База данных, представленная в виде таблицы

Программа должна обеспечить решение следующих задач:

– Подготовку файла данных;

– Вывод информации на экран;

– Поиск информации в базе данных;

– Добавление записей в базу данных;

– Взаимодействие с пользователем через меню.

Запрос в базе данных выполняется по району, в котором расположена музыкальная школа. Результатом является вывод на экран полной информации о школах запрашиваемого района (название школы, адрес, телефон).

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

На диске компьютера база данных представляет собой текстовый файл. (Листинг 1).

Листинг 1. Файл данных:

ДМШ № 19

Рижский пр. д.8

2596342

Адмиралтейский

ДМШ № 31

Наб. Обводного канала д. 123-б

3161201

Адмиралтейский

ДМШ им. Ляховильцкой

Садовая ул. д. 32

3100456

Адмиралтейский

Вдохновение

4-я линия д.29

3237377

Василеостровский

ДМШ № 38

Ул. Симонова д. 8

5154003

Выборгский

ДМШ им. Бородина

Пр. Просвещения д. 82

5944645

В оперативной памяти база данных представлена в виде совокупности массивов:

Name:array [1..HB] of string[25];

Adres: array [1..HB] of string[60];

Phone: array [1..HB] of string[10];

Rayon: array [1..HB] of string[20];

3. Алгоритм

Алгоритм программы приведен на рис. 2.

Com=1 com=3

Com=2

Нет Да

Рис. 2.1. Алгоритм программы

True

False

Рис. 2.2. Алгоритм загрузки БД

4. Интерфейс

Взаимодействие с пользователем осуществляется при помощи меню и диалогов.

(Рис. 3.1 – Рис. 3.3)

Рис. 3.1. Главное меню

Рис. 3.2. Диалоги ввода информации

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

5. Процедуры и функции

Таблица 1. Процедуры и функции.

Процедура (функция)ОписаниеРазработчик
FunctionMenuМеню базы данныхКерсанова Л. В.
ProcedureLoadDBЗагрузка БД из файлаКерсанова Л. В
ProcedureShowDBПросмотр информацииКерсанова Л. В
ProcedureSearchDBПоиск в БДСеливанова С. В
ProcedureAddDBДобавление данных в БДКеросанова Л. В
ProcedureSaveСохранение БД

СелтвановаС. В

Оформительская работаОформление отчетаСеливанова С. В

6. Листинги

В листингах приведены процедуры загрузки БД из файла, просмотра информации, поиска в БД и добавления информации в БД.

Листинг 6.1. Процедура загрузки БД из файла

Procedure LoadDB;{Процедура загрузки данных из файла}

Var

F:text;

Begin

Assign(f,’c:\tp7\School. txt’);{Указание пути к файлу}

Reset(f); {открыть файл для чтения}

NRec:=0; {количество записей}

While not EOF(f) do{пока не будет достигнут конец файла выполняется цикл}

Begin

NRec:= nRec+1;

Readln(f, name[nRec]);

Readln(f, adres[nRec]);

Readln(f, phone[nRec]);

Readln(f, rayon[nRec]);

End;

Close(f);{Закрытие файла}

Clrscr;{Очистка экрана}

End;

Листинг 6.2 . Процедура просмотра информации

ProcedureShowDB;{Процедура вывода на экран}

Var

I:integer;

Begin

Writeln (‘Nazvanie_____________|Adres___________________________|Phone____|Rayon_______________’);

For i:=1 to nRec do {Вывод всех записей-цикл выполняется столько

Раз сколько было найдено записей в базе данных}

Begin

Write (name[i]:20,’ | ‘);

Write (adres[i]:30,’ | ‘);

Write (phone[i]:7,’ | ‘);

Writeln (rayon[i]:15);

End;

Readln;

End;

Листинг 6.3. Процедура поиска в БД

ProcedureSearch;{Процедура поиска}

Var

Words:string;{Переменная для поиска слова}

I:INTEGER;

Found:boolean;

Begin

Found:=FALSE;

Writeln(‘Поиск по району’);

Write(‘Введите район:_’);

Readln(Words);

For i:=1 to nRec do

If rayon[i]=Words{Если элемент массива year совподет

Со значением поискового слова то выполнится действие вывода на

Экран а переменная found примит значение TRUE}

Then

Begin

Writeln(‘В базе данных найдены сведения ‘) ;

Writeln(name[i],’ | ‘,adres[i],’ | ‘,phone[i],’ | ‘,rayon[i]);

Writeln;

Found:=True;

I:=i+1;

End;

Readln;

If found=False then{Если переменная found не была изенена на

Значение TRUE (то есть поиск закончился неудачей, то будет

Выведено сообщение что такого элемента найдено не было}

Begin

Writeln(‘В базе данных не найдено сведений об этом районе’);

Readln;

End;

End;

Листинг 6.4. Процедура добавления информации в БД

ProcedureAddDB;{Процедура добавления в базу данных}

Var

F:text;

Begin

NRec:=nRec+1;{Увеличиваем значение записей на единицу}

Write(‘Введите назване: ‘);

Readln(name[nRec]);

Write(‘Введите адрес: ‘);

Readln(adres[nRec]);

Write(‘Введите телефон: ‘);

Readln(phone[nRec]);

Write(‘Введите район: ‘);

Readln(rayon[nRec]);

End;

7. Выводы

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

8. Литература

1. Культин Н. Б. ” Программирование в Turbo Pascal 7.0 и Delphi”: 3-е изд. – СПб.: БХВ – Петербург, 2007.

2. Вирт Н. “Алгоритмы и структуры данных”: пер. с англ. – М.: Мир, 1989. 360 с.

3. Гринзоу Лу. “Философия программирования для Windows 95/NT”: пер. с англ. – СПб.: Символ-Плюс, 1997. – 640 с.

4. Зелковиц М., Шоу А, Гэннон Дж. “Принципы разработки программного обеспечения”: пер. с англ. – М.: Мир, 1982. 368 с.

5. Фокс Дж. “Программное обеспечение и его разработка”: пер. с англ. – М.: Мир, 1985. 368 с.


1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (No Ratings Yet)
Loading...

Зараз ви читаєте: База данных Расписание поездов