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

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

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





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


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


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



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

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

(подпись)

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

(подпись)

Преподаватель:

к.т.н., доц. Культин Н.Б.


«__» ____________ 2008









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

2008

Оглавление


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

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

  3. Алгоритм……………………………………………………………………………….. 3

  4. Интерфейс……………………………………………………………………………… 6

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

  6. Листинги………………………………………………………………………………... 7

  7. Выводы…………………………………………………………………………………. 9

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











































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


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


Адрес

Телефон

Район

ДМШ № 19

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

2596342

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

ДМШ № 31

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

3161201

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

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

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

3100456

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

Вдохновение

4-я линия д.29

3237377

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

ДМШ № 38

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

5154003

Выборгский

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

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

5944645

Калининский

ДМШ № 9

ул. Гладкова д. 3

7865058

Кировский

ДМШ № 41

ул. Косыгина д. 28

5241562

Красногвардейский


Рис. 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.







LoadBD







Меню




com




com=1 com=3

com=2

showDB



AddDB





Search












com=0?




Нет Да




SaveDB











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






Reset(f)







EOF(F)



true



false

(name[i]);

(adres[i]);

(phone[i]);

(rayon[i])
































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

  1. Интерфейс


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

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






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








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






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










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


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

Процедура (функция)

Описание

Разработчик

Function Menu

Меню базы данных

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

Procedure LoadDB

Загрузка БД из файла

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

Procedure ShowDB

Просмотр информации

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

Procedure SearchDB

Поиск в БД

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

Procedure AddDB

Добавление данных в БД

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

Procedure Save

Сохранение БД


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

Оформительская работа

Оформление отчета

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








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. Процедура просмотра информации


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

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. Процедура поиска в БД


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

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. Процедура добавления информации в БД


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

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.


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

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

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

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


Нравится материал? Поддержи автора!

Ещё документы из категории информатика:

X Код для использования на сайте:
Ширина блока px

Скопируйте этот код и вставьте себе на сайт

X

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

После чего кнопка «СКАЧАТЬ» станет доступной!

Кнопочки находятся чуть ниже. Спасибо!

Кнопки:

Скачать документ