Смекни!
smekni.com

База данных Расписание поездов (стр. 1 из 2)

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

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

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

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

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

Выполнил студент гр. 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.



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;{Процедура добавления в базу данных}