- •Содержание
- •Задание на проектирование
- •Введение
- •Основная часть
- •Назначение разрабатываемой программы
- •Описание структуры программы
- •Описание процедур и функций
- •3.4 Руководство пользователю
- •Заключение
- •Список использованных источников
- •Приложение 1. Текст программы
- •Приложение 2. Результаты работы программы
3.4 Руководство пользователю
Для корректной работы программы, необходимо правильно указывать путь к файлу БД, например c:\poezd.dat или если файл находится в каталоге программы, то просто poezd.dat.
При выборе пятого пункта меню «Поиск поездов останавливающихся в городе», текстовый файл создается с тем же именем и по тому же пути, который был указан при запуске программы в качестве файла БД, меняется только расширение файла на txt. Текстовый файл создается в кодировке DOS, поэтому чтобы он корректно отображался его нужно открывать в редакторах, которые понимают DOS – кодировку.
-
Заключение
В процессе работы над данным курсовым проектом была освоена работа со структурными данными и файлами в языке программирования Турбо Паскаль. Закреплен пройденный материал по дисциплине «Информационные технологии обработки данных».
-
Список использованных источников
1. «Информационные технологии обработки данных», В. В. Коробова, учебное пособие, Томск, 2000 г.
-
Приложение 1. Текст программы
program RPoezd;
uses Crt;
type Poezd = record
Number : integer;
KP : string[20];
DN : string[15];
Time : string[10];
KOst : integer;
Ost : array[1..100] of string;
end;
var i : integer;
filename,filenametemp : string;
PoezdF : file of Poezd;
PoezdR : Poezd;
{Процедура добавления маршрута}
procedure AddPoezd;
begin
Assign(PoezdF,filename);
Reset(PoezdF);
while not Eof(PoezdF) do Read(PoezdF,PoezdR);
ClrScr;
writeln('Добавление маршрута:');
writeln;
write('Введите номер поезда:');
readln(PoezdR.Number);
write('Введите конечный пункт:');
readln(PoezdR.KP);
write('Введите день недели:');
readln(PoezdR.DN);
write('Введите время отправления:');
readln(PoezdR.Time);
write('Введите количество остановок (максимум 100):');
readln(PoezdR.KOst);
writeln('Введите (поочередно) перечень остановок:');
for i :=1 to PoezdR.KOst do readln(PoezdR.Ost[i]);
write(PoezdF,PoezdR);
Close(PoezdF);
writeln;
writeln('Маршрут добавлен!!!');
writeln;
writeln('Нажмите любую клавишу...');
ReadKey;
end;
{Процедура удаления маршрута}
procedure DeletePoezd;
var temp : file of Poezd;
Nom : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(temp,filenametemp+'tmp');
Rewrite(temp);
ClrScr;
writeln('Удаление маршрута:');
writeln;
write('Введите номер поезда:');
readln(Nom);
while not Eof(PoezdF) do
begin
Read(PoezdF,PoezdR);
if PoezdR.Number<>Nom then Write(temp,PoezdR)
else f:=true;
end;
Close(temp);
Close(PoezdF);
Erase(PoezdF);
Rename(temp,filename);
writeln;
if f then writeln('Маршрут удален!!!')
else writeln('Маршрут не найден...');
writeln;
writeln('Нажмите любую клавишу...');
ReadKey;
end;
{Процедура редактирования маршрута}
procedure EditPoezd;
var temp : file of Poezd;
Nom,tn : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(temp,filenametemp+'tmp');
Rewrite(temp);
ClrScr;
writeln('Редактирование маршрута:');
writeln;
write('Введите номер поезда:');
readln(Nom);
while not Eof(PoezdF) do
begin
Read(PoezdF,PoezdR);
if PoezdR.Number<>Nom then Write(temp,PoezdR)
else
begin
tn:=nom;
f:=true;
end;
end;
if f then
begin
writeln;
PoezdR.Number:=tn;
write('Введите конечный пункт:');
readln(PoezdR.KP);
write('Введите день недели:');
readln(PoezdR.DN);
write('Введите время отправления:');
readln(PoezdR.Time);
write('Введите количество остановок (максимум 100):');
readln(PoezdR.KOst);
writeln('Введите (поочередно) перечень остановок:');
for i :=1 to PoezdR.KOst do readln(PoezdR.Ost[i]);
write(temp,PoezdR);
writeln('Маршрут изменен...');
end
else
begin
writeln;
writeln('Маршрут не найден...');
end;
Close(temp);
Close(PoezdF);
Erase(PoezdF);
Rename(temp,filename);
writeln;
writeln('Нажмите любую клавишу...');
ReadKey;
end;
{Процедура вывода маршрута поезда на экран}
procedure ViewPoezd;
var Nom : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
ClrScr;
writeln('Просмотр маршрута:');
writeln;
write('Введите номер поезда:');
readln(Nom);
while not Eof(PoezdF) do
begin
read(PoezdF,PoezdR);
if PoezdR.Number=Nom then
begin
f:=true;
writeln;
writeln('Номер поезда: ',Nom);
writeln('Конечный пункт: ',PoezdR.KP);
writeln('День недели: ',PoezdR.DN);
writeln('Время отправления: ',PoezdR.Time);
writeln('Перечень остановок:');
for i:=1 to PoezdR.KOst do writeln(' ',PoezdR.Ost[i]);
break;
end;
end;
Close(PoezdF);
if f=false then
begin
writeln;
writeln('Поезд с данным номером не найден...');
end;
writeln;
writeln('Нажмите любую клавишу...');
ReadKey;
end;
{Процедура поиска поезда который останавливается в указанном городе}
procedure FindPoezd;
var k : integer;
gorod : string;
TPoezdF : text;
begin
k:=0;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(TPoezdF,filenametemp+'txt');
Rewrite(TPoezdF);
ClrScr;
writeln('Поиск поезда который останавливается в указанном городе:');
writeln;
write('Введите город:');
readln(gorod);
write(TPoezdF,'Список номеров поездов останавливающихся в городе ',gorod,': ');
while not Eof(PoezdF) do
begin
read(PoezdF,PoezdR);
for i:=1 to PoezdR.KOst do
if PoezdR.Ost[i]=gorod then
begin
write(TPoezdF,PoezdR.Number);
write(TPoezdF,', ');
k:=k+1;
end;
end;
Close(PoezdF);
Close(TPoezdF);
writeln;
writeln('В городе ',gorod,' останавливается поездов: ',k);
writeln;
writeln('Нажмите любую клавишу...');
ReadKey;
end;
procedure PoezdMenu;
begin
repeat
begin
ClrScr;
writeln('Маршруты движения поездов - Главное меню');
writeln;
writeln('1. Добавить маршрут');
writeln('2. Посмотреть маршрут поезда');
writeln('3. Удалить маршрут');
writeln('4. Редактировать маршрут');
writeln('5. Поиск поездов останавливающихся в городе');
writeln('-------------------------------------------------');
writeln('6. Выход');
writeln;
write('Выберите пункт меню: ');
readln(i);
case i of
1 : AddPoezd;
2 : ViewPoezd;
3 : DeletePoezd;
4 : EditPoezd;
5 : FindPoezd;
end;
end;
until i=6;
end;
begin
ClrScr;
writeln('Введите путь к файлу содержащему маршруты поездов (например: c:\poezd.dat)');
readln(filename);
filenametemp :=copy(filename,1,length(filename)-3);
PoezdMenu;
end.