Касса аэропорта

19088
знаков
0
таблиц
1
изображение
Волжский университет имени В.Н. Татищева
Кафедра «Информатика и системы управления»

Специальность: 220100 «Вычислительные машины, комплексы системы и сети»

Задание

на курсовой проект по дисциплине

«Основы технологии программирования»

Студенту________________________________________________________

Группа__________________________________________________________

Тема проекта____________________________________________________

Календарный график задания_______________________________________


Содержание задания

При продаже билетов регистрируют пассажиров.

Информацию о каждом пассажире вводится в диалоге по запросам программы.

Информация о каждом пассажире состоит из следующих полей :

-Фамилия, имя, отчество;

-Номер паспорта;

-Пункт назначения;

-Номер рейса.

Сведения о пассажирах сохраняются в файле airbase.dat ,состоящем из

отдельных записей ,где одна запись хранит всю информацию об одном пассажире.

Программа содержит следующие процедуры и функции;

-Продажа билета (регистрирует нового пассажира);

-Найти пассажира;

-Удалить пассажира;

-Выход;

Указанные процедуры и функции выбираются из меню.

В пункте ПРОДАЖА БИЛЕТА - вводится Ф.И.О , номер паспорта , рейс, т.е регистрируется новый

пассажир , информация о нем вносится в базу данных.

В пункте НАЙТИ - выводится информация о пассажире.

В пункте УДАЛИТЬ ПАССАЖИРА - по введенной Ф.И.О информация о данном пассажире удаляется из базы данных.

ВЫХОД - выход из программы.


Руководитель курсовой работы

Студент

Составитель:

Старший преподаватель ___________________________Ахмедханлы Д.М.

Заведующий кафедрой ИиСУ __________________________Краснов С.В.

Декан ФииТ _________________________________________Краснов С.В.


Описание предметной области

Ввод данных в программу осуществляется в диалоге по запросам программы. Оператор программы передвигается по пунктам меню и инициирует запуск той или иной процедуры нажатием клавиш “Enter”, “стрелка вверх”, ”стрелка вниз”.

Программа начинается с вывода меню на экран, меню состоит

Меню состоит из семи пунктов, расположенных в следующей последовательности:

ОФОРМЛЕНИЕ НОГОГО ПАССАЖИРА

ВЫВЕСТИ СПИСОК ВСЕХ ПАССАЖИРОВ

УДАЛИТЬ ИНФОРМАЦИЮ О ПАССАЖИРЕ

НАЙТИ ПАССАЖИРА

ОЧИСТИТЬ СПИСОК

ВЫХОД


Употребление процедур пунктов меню.

Процедура “ВЫВЕСТИ СПИСОК ВСЕХ ПАССАЖИРОВ” используется для просмотра всех пассажиров всех рейсов.

Процедура “УДАЛИТЬ ИНФОРМАЦИЮ О ПАССАЖИРЕ” используется для удаления пассажира. Сначала вводится фамилия пассажира, которого необходимо удалить, фамилия вводиться с клавиатуры. Если такая фамилия есть, то программа спрашивает подтверждение для удаления “Пассажир найден, удалить его д/н” если будет нажата клавиша “д”, то пассажир будет удален из базы данных, если же “н”, то удаление будет отменено.

Процедура “НАЙТИ ПАССАЖИРА” используется для удобства поиска пассажира. Фамилия вводится с клавиатуры. При нахождении фамилии пассажира выводятся его данные: фамилия, номер паспорта, номер рейса и направление. При не нахождении фамилии выводится на экран сообщение “Пассажир отсутствует!”.

Процедура “ОЧИСТИТЬ СПИСОК” удаляет все фамилии из списка. При входе в эту процедуру появляется сообщение “Вы действительно хотите удалить базу данных о пассажирах (д/н)”, если будет нажата клавиша “д”, то база данных будет удалена, если же “н”, то удаление будет отменено.


Описание алгоритма задачи

Сначала, подключаем модуль crt- позволяющий проще управлять режимами экрана, расширенными кодами клавиатуры и цветом.

Вводим константы stand – цвет невыделенного пункта меню и sel – цвет выделенного пункта меню, а так же n – количество пунктов.

Затем идет описание записей файла «train.dat.»:pas, nomertown– переменные Ф.И.О пассажира и номер – направление поезда, имеющие строковый тип, pasp, nomertrain – переменные номера паспорта и номера поезда, имеющие целый тип.

Теперь идёт описание записей файла «railst.dat»:time, model, nrnap – время отхода, тип поезда, номер – направление, price, chpm – цена билета, число посадочных мест.

Глобальные переменные: массивы menu, menu1 строкового типа с количеством элементов от 1 до n, хранят названия пунктов меню и подменю; переменная целого типа punkt обозначает номер выделенного пункта; символьная переменная ch выведенный символ; x и y целого типа - координаты первой строки меню; j, j1 - параметры цикла; ff и w файловые переменные «airport.dat» и «airbase.dat» соответственно, аналогично buf и buv – переменные компонент файлов;dlprov, nrnap – переменная проверки и номер - направление; mas, mas1 – массивы для “tairport.dat”, “airbase.dat”; символьная переменная k определяет условия да/нет в операторах if…then…else ; f–флажок.

Программа содержит 14 процедур.


Две из них «menutoscr» и «menutoscr1» отвечают за вывод меню и подменю на экран. Процедуры содержат описания одной локальной переменной i параметра цикла. Начинаются процедуры с очистки экрана – clrscr. Далее идет цикл for…to… do, выводящий меню на экран.

В циклах, с помощью процедуры gotoxy, курсор каждый раз перемещается на позицию вниз, где и выводится заголовок соответствующих пунктов меню и подменю.

Вводим переменную textattr, которая отвечает за цвет фона и символов. Присваиваем ей значение константы sel, то есть задаем цвет выделенного пункта и переводим курсор на текущий пункт. Выделяем его и задаем цвет невыделенного пункта.


Процедура «new_pass» вводит нового пассажира. Начинаем процедуру с описания локальных переменных. Обнуляем локальный флажок mozno, потом происходит очистка экрана – clrscr. Открываем для записи данных нового пассажира файл «airport.dat». Здесь вводиться: Ф.И.О, номер паспорта.


Процедура «maspas» - Предназначена для формирования из пассажиров массива, для последующего их удаления. Открываем уже существующий файл train.dat Присваиваем переменной j-1. А в цикле постусловия repeat…until формируем из пассажиров массив, который нужен для удаления пассажиров.


Процедура «delete_pass» начинается с очистки экрана – clrscr, обнуляем флажок. Потом вводится фамилия, которую нужно удалить. В цикле repeat…until оператор условия if…then выполняется (пассажир найден), то происходит удаление пассажира, если пассажир был успешно удалён, то появляется сообщение- “Пассажир”----” был удалён!” и флажку присваивается 1. Иначе присваивается-2. В следующем if…then файл обновляется, и массив без пассажира записывается в файл. Далее создаётся новый файл с этим же именем. В цикле с постусловием repeat…until переменной buf присваивается i –тое значение элемента массива. Файл закрывается.

Когда флажок не равняется 1, то в цикле if…then печатается сообщение “Пассажир не найден!”. Если же флажок равняется 2, то печатается сообщение ”Удаление отменено!”.Delay - используется для задержки сообщения об удалении.


Процедура «search_pass» предназначена для поиска пассажира в базе данных. Начинаем процедуру с описания локальных переменных, потом происходит очистка экрана – clrscr. Используем оператор reset для открытия уже существующего файла. В цикле repeat…until читается информация. В условном операторе if… then читается введённые Ф.И.О, и распечатываются данные о конкретном пассажире (т.е. Ф.И.О, ном. паспорта, ном. рейса - пункт назначения). Закрываем файл. После этого флажку присваивается значение-1. Если флажок равняется -0 , то печатается сообщение “Пассажир не найден!”


Процедура «new_airbase» производит полную очистку базы данных о пассажирах. Начинаем процедуру с очистки экрана – clrscr. В операторе if…then задаём условие очистки базы данных. Выводим сообщение “Вы действительно хотите очистить базу данных о пассажирах (д/н)?-”. Соответственно, переменной k присваивается одно из значений «д» или «н». При k= «д», с помощью процедур rewrite, данные в файлах удаляются. В противном случае выход из процедуры. После этого выводится ее на экран сообщение- “База Аэропорта очищена!”.


Процедура «search_base» предназначена для поиска рейса в базе данных. Начинаем процедуру с очистки экрана – clrscr. Вводится номер рейса и направление через тире. Используем оператор reset для открытия уже существующего файла. В цикле repeat…until читается информация. В условном операторе if… then читается введённый номер рейса и направление, и распечатываются данные об рейсе (т.е номер рейса - направление, время отхода, цена билета (в руб.), тип поезда). Закрываем файл. После этого флажку присваивается значение-1. Если флажок равняется -0 , то печатается сообщение “Рейс не найден!”


Процедура «new_base» производит полную очистку базы данных о рейсах. Начинаем процедуру с очистки экрана – clrscr. В операторе if…then задаём условие очистки базы данных о рейсах. Выводим сообщение “Вы действительно хотите очистить базу данных расписания (д/н)?-“. Соответственно, переменной k присваивается одно из значений «д» или «н». При k= «д», с помощью процедур rewrite, данные в файлах удаляются. В противном случае выход из процедуры. После этого выводится ее на экран сообщение- “База расписания Аэропорта очищена!”.

Основная программа так же начинается с очистки экрана – clrscr. Определяем имена файлов «Airport.dat», «Airbase.dat» и связываем их с файловыми переменными процедурой assign.

Задаём названия пунктов меню. Переменной номера выделенного пункта присваиваем значение единицы. Определяем координаты первой строки меню. Переменной цвета символов и фона присваиваем значение невыделенного пункта. Обращаемся к процедуре menutoscr. Входим в цикл передвижения по меню repeat…until ch=chr(27) (до обращения к пункту «Выход»).

В цикле считываем код нажатой клавиши. С помощью условного оператора входим в оператор выбора кодов клавиш. Если нажата стрелка вниз, то с помощью процедуры gotoxy, оператора write, констант sel и stand выделяем необходимый пункт меню. Аналогичные операции проводим при нажатии стрелки вверх. При нажатии Enter в операторе выбора открывается процедура необходимого пункта. В конце цикла обращаемся к процедуре Menutoscr. Аналогичные операции выполняются и для процедуры Menutoscr1.

В конце программы закрываем файлы «Airport.dat» и «Airbase.dat».


Приложения Листинги программы

Распечатка результатов решения задачи по данным контрольного примера


program kursovik;

uses crt;

type

airport=record

fio,city:string[30];

pasp,nomerreisa:string[6];

end;

airbase=record

time,model,kuda:string[15];

price,klass,numreis:integer;

end;

const

norm=$20;цвет невыделенного пункта

sel=$50; цвет выделенного пункта

n=7;

var

menu,menu1:array[1..n] of string[30]; название пунктов меню

mas:array[1..50] of airport;

mas1:array[1..50] of airbase;

punkt:integer;номер выделенного пункта

ch:char;введенный символ

j,j1:integer;переменная содержащая общее число пассажиров,

число рейсов

x,y,n1:integer;координаты первой строки меню

procedure Menutoscr;вывод меню на экран

var i:integer;

begin

punkt:=1;

clrscr;

for i:=1 to n do

begin

gotoxy(x,y+i);

writeln(menu[i+1]);

end;

textattr-предопределенная переменная,отвечающая за цвет фона

и символов

textattr:=sel;

gotoxy(x,y+punkt-1);

write(menu[punkt]); выделим строку меню

textattr:=norm;

end;

procedure Menutoscr1;вывод меню на экран

var i:integer;

begin

punkt:=1;

clrscr;

for i:=1 to n1 do

begin

gotoxy(x,y+i);

writeln(menu1[i+1]);

end;

textattr-предопределенная переменная,отвечающая за цвет фона

и символов

textattr:=sel;

gotoxy(x,y+punkt-1);

write(menu1[punkt]); выделим строку меню

textattr:=norm;

end;

procedure new_pass;

var

ff:file of airport;

buf:airport;

ch,k:char;

begin

clrscr;

assign(ff,'airport.dat');

reset(ff);

seek(ff,filesize(ff));

writeln(' "Оформление нового пассажира"');

writeln(' Введите фио--------------');

writeln(' Введите номер паспорта---');

writeln(' Введите пункт назначения-');

writeln(' Введите номер рейса------');

writeln(' Подтверждение д/н--------');

with buf do

begin

gotoxy(29,2);readln(fio);

gotoxy(29,3);readln(pasp);

gotoxy(29,4);readln(city);

gotoxy(29,5);readln(nomerreisa);

end;

gotoxy(29,6);readln(k);

if (k='д') or (k='Д') then

begin

clrscr;

write(ff,buf);

gotoxy(30,12);

write('Пассажир записан в базу данных!');

end

else

begin

clrscr;

gotoxy(30,12);

write('Запись в базу отменена!');

end;

delay(9999);

delay(5000);

until (ch=chr(162)) and (ch=chr(130));

close(ff);

end;

procedure print_pass;

var

ff:file of airport;

buf:airport;

ch,k:char;

et:integer;

begin

clrscr;

assign(ff,'airport.dat');

reset(ff);

writeln(' Список пассажиров:');

et:=1;

repeat

read(ff,buf);

writeln(' -',buf.fio);

if et=23 then readln;

et:=et+1;

until eof(ff);

close(ff);

readln;

end;

procedure maspas;

var

buf:airport;

ff:file of airport;

begin

assign(ff,'airport.dat');

reset(ff);

j:=1;

repeat

read(ff,buf);

mas[j]:=buf;

j:=j+1;

until eof(ff);

j:=j-1;

close(ff);

end;

procedure delete_pass;

var

ff:file of airport;

i,i1,f:integer;

buf:airport;

k:char;

name:string[30];

begin

clrscr;

writeln(' Удалениe информации о пассажире:');

writeln(' Введите Ф.И.О. пассажира, которого хотите удалить из базы данных');

write(' -');readln(name);

i:=1;

f:=0;

repeat

if mas[i].fio=name then

begin

gotoxy(30,12);write('Пассажир найден, удалить его (д/н)-');

readln(k);

if (k='д') or (k='Д') then

begin

for i1:=i to j-1 do

mas[i1]:=mas[i1+1];

j:=j-1;

gotoxy(30,12);

write('Пассажир-"',name,'"-был удалён! ');

f:=1;

end

else

begin

i:=j;

f:=2;

end;

end;

i:=i+1;

until (i=j+1) or (f=1);

if f=1 then

begin

assign(ff,'airport.dat');

rewrite(ff);

i:=1;

repeat

buf:=mas[i];

write(ff,buf);

i:=i+1;

until i=j+1;

close(ff);

end

else

begin

gotoxy(30,12);

if f=0 then writeln('Пассажир не найден! ');

end;

if f=2 then writeln('Удаление отменено! ');

delay(9999);

delay(5000);

end;

procedure search_pass;

var

ff:file of airport;

i,i1,f:integer;

buf:airport;

k:char;

name:string[30];

begin

clrscr;

writeln(' Поиск информации о пассажире:');

writeln(' Введите Ф.И.О. пассажира, которого хотите найти');

write(' -');readln(name);

i:=1;

f:=0;

assign(ff,'airport.dat');

reset(ff);

repeat

read(ff,buf);

if buf.fio=name then

begin

clrscr;

writeln(' Информация о пассажире:');

writeln(' Ф.И.О.-----------');

writeln(' Номер паспорта---');

writeln(' Пункт назначения-');

writeln(' Номер рейса------');

gotoxy(22,2);writeln(buf.fio);

gotoxy(22,3);writeln(buf.pasp);

gotoxy(22,4);writeln(buf.city);

gotoxy(22,5);writeln(buf.nomerreisa);

f:=1;

readln;

end;

until eof(ff);

close(ff);

if f=0 then

begin

writeln('Пассажир не найден!');

delay(9999);

delay(5000);

end;

end;

procedure new_airport;

var

ff:file of airport;

k:char;

begin

clrscr;

gotoxy(36,12);

textbackground(red);

textcolor(blink);

writeln('ВНИМАНИЕ!');

textattr:=norm;

gotoxy(10,13);

write('Вы действительно хотите очистить базу данных о пассажирах (д/н)?-');

readln(k);

if (k='д') or (k='Д') then

begin

clrscr;

assign(ff,'airport.dat');

rewrite(ff);

gotoxy(30,12);

writeln('База АЭРОПОРТА очищена!');

close(ff);

delay(9999);

delay(5000);

end;

end;

procedure new_reis;

var

ff:file of airbase;

buf:airbase;

ch,k:char;

begin

clrscr;

assign(ff,'airbase.dat');

reset(ff);

seek(ff,filesize(ff));

writeln(' "Расписание вылетов:"');

writeln(' Номер рейса--------------');

writeln(' Направление--------------');

writeln(' Время вылета(моск)-------');

writeln(' Цена билета(руб)---------');

writeln(' Тип самолета-------------');

writeln(' Класс(1 или 2)-----------');

writeln(' Подтверждение д/н--------');

with buf do

begin

gotoxy(29,2);readln(numreis);

gotoxy(29,3);readln(kuda);

gotoxy(29,4);readln(time);

gotoxy(29,5);readln(price);

gotoxy(29,6);readln(model);

gotoxy(29,7);readln(klass);

end;

gotoxy(29,8);readln(k);

if (k='д') or (k='Д') then

begin

clrscr;

write(ff,buf);

gotoxy(30,12);

write('Рейс записан в базу данных!');

end

else

begin

clrscr;

gotoxy(30,12);

write('Запись в базу отменена!');

end;

delay(9999);

delay(5000);

until (ch=chr(162)) and (ch=chr(130));

close(ff);

end;

procedure print_reis;

var

ff:file of airbase;

buf:airbase;

ch,k:char;

et:integer;

begin

clrscr;

assign(ff,'airbase.dat');

reset(ff);

writeln(' Расписание вылетов(время московское):');

et:=1;

repeat

read(ff,buf);

writeln(' Рейс-',buf.numreis,': Самара-',buf.kuda,'; ',buf.time,'; Стоимость билета:',buf.price,'(рублей)'); if et=23 then readln;

et:=et+1;

until eof(ff);

close(ff);

readln;

end;

procedure masbase;

var

buf:airbase;

ff:file of airbase;

begin

assign(ff,'airbase.dat');

reset(ff);

j1:=1;

repeat

read(ff,buf);

mas1[j1]:=buf;

j1:=j1+1;

until eof(ff);

j1:=j1-1;

close(ff);

end;

procedure delete_base;

var

ff:file of airbase;

i,i1,f:integer;

buf:airbase;

k:char;

nreis:integer;

begin

clrscr;

writeln(' Удаление рейса из расписания:');

writeln(' Введите номер рейса,который хотите удалить из расписания');

write(' -');readln(nreis);

i:=1;

f:=0;

repeat

if (mas1[i].numreis=nreis) then

begin

gotoxy(30,12);write('Рейс найден, удалить его (д/н)-');

readln(k);

if (k='д') or (k='Д') then

begin

for i1:=i to j1-1 do

mas1[i1]:=mas1[i1+1];

j1:=j1-1;

gotoxy(30,12);

write('Рейс номер-"',nreis,'"-был удалён! ');

f:=1;

end

else

begin

i:=j;

f:=2;

end;

end;

i:=i+1;

until (i=j1+1) or (f=1);

if f=1 then

begin

assign(ff,'airbase.dat');

rewrite(ff);

i:=1;

repeat

buf:=mas1[i];

write(ff,buf);

i:=i+1;

until i=j1+1;

close(ff);

end

else

begin

gotoxy(30,12);

if f=0 then writeln('Рейс не найден! ');

end;

if f=2 then writeln('Удаление отменено! ');

delay(9999);

delay(5000);

end;

procedure search_base;

var

ff:file of airbase;

i,i1,f:integer;

buf:airbase;

k:char;

nreis:integer;

begin

clrscr;

writeln(' Поиск рейса в расписании:');

writeln(' Введите номер рейса, который хотите найти');

write(' -');readln(nreis);

i:=1;

f:=0;

assign(ff,'airbase.dat');

reset(ff);

repeat

read(ff,buf);

if buf.numreis=nreis then

begin

clrscr;

writeln(' Номер рейса--------------');

writeln(' Направление--------------');

writeln(' Время вылета(моск)-------');

writeln(' Цена билета(руб)---------');

writeln(' Тип самолета-------------');

writeln(' Класс(1 или 2)-----------');

gotoxy(29,1);writeln(buf.numreis);

gotoxy(29,2);writeln(buf.kuda);

gotoxy(29,3);writeln(buf.time);

gotoxy(29,4);writeln(buf.price);

gotoxy(29,5);writeln(buf.model);

gotoxy(29,6);writeln(buf.klass);

f:=1;

readln;

end;

until eof(ff);

close(ff);

if f=0 then

begin

writeln('Рейс не найден!');

delay(9999);

delay(5000);

end;

end;

procedure new_base;

var

ff:file of airbase;

k:char;

begin

clrscr;

gotoxy(36,12);

textbackground(red);

textcolor(blink);

writeln('ВНИМАНИЕ!');

textattr:=norm;

gotoxy(10,13);

write('Вы действительно хотите очистить базу данных расписания (д/н)?-');

readln(k);

if (k='д') or (k='Д') then

begin

clrscr;

assign(ff,'airbase.dat');

rewrite(ff);

gotoxy(30,12);

writeln('База расписания АЭРОПОРТА очищена!');

close(ff);

delay(9999);

delay(5000);

end;

end;

основная программа

Begin clrscr;

menu[1]:='ОФОРМЛЕНИЕ НОВОГО ПАССАЖИРА';

menu[2]:='ВЫВЕСТИ СПИСОК ПАССАЖИРОВ';

menu[3]:='УДАЛИТЬ ИНФОРМАЦИЮ О ПАССАЖИРЕ';

menu[4]:='НАЙТИ ПАССАЖИРА';

menu[5]:='ОЧИСТИТЬ СПИСОК';

menu[6]:='ВЫХОД';

menu[7]:='ПРОСМОТР БАЗЫ';

menu1[1]:='ЗАПИСЬ НОВОГО РЕЙСА';

menu1[2]:='ПОКАЗАТЬ РАСПИСАНИЕ';

menu1[3]:='УДАЛИТЬ РЕЙС';

menu1[4]:='ПОИСК РЕЙСА';

menu1[5]:='ОЧИСТИТЬ РАСПИСАНИЕ';

menu1[6]:='ВЕРНУТЬСЯ В ГЛАВНОЕ МЕНЮ';

punkt:=1;x:=30;y:=8;textattr:=norm;n1:=6;

Menutoscr; repeat

ch:=Readkey;

if ch=chr(0) then

begin

ch:=ReadKey;

case ch of

chr(80): стрелка вниз

if punkt


Информация о работе «Касса аэропорта»
Раздел: Информатика, программирование
Количество знаков с пробелами: 19088
Количество таблиц: 0
Количество изображений: 1

Похожие работы

Скачать
61397
12
1

... инфекционное заболевание, при этом ВС направляется на санитарную стоянку. Дальнейшие действия регламентируются Планом первичных противоэпидемических мероприятий. ОБСЛУЖИВАНИЯ ТРАНЗИТНЫХ И ТРАНСФЕРТНЫХ ПАССАЖИРОВ В АГЕНТСТВЕ И АЭРОПОРТУ Обслуживание трансфертных пассажиров при продаже авиабилета • Во время первого контакта с пассажирами следует: Выяснить точный маршрут полета с учетом его ...

Скачать
585581
4
0

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

Скачать
27946
1
0

... в организации регистрации на рейсы, и во всем остальном. С 1 февраля 2004 года Аэрофлот - первый из российских авиаперевозчиков - вводит единый, соответствующий международным, стандарт обслуживания пассажиров в аэропортах. В новых правилах оговаривается все (вплоть до мелочей), что связано с организацией обслуживания клиентов до вылета и после прибытия. Очевидно, что с введением единых стандартов, ...

Скачать
44320
2
0

... 411 авиакомпаний, таких как: "Аэрофлот", "Внуковские авиалинии", "Трансаэро", "Пулково", ПО "Домодедовское", "Уральские авиалинии", "Сибирь", "Авиалинии Алмаз-Саха" и др. Однако на рынке воздушных перевозок активно работает не многим более половины из них. На международном рынке авиаперевозок работает незначительное число российских авиакомпаний. Лидером российской авиации на рынке международных ...

0 комментариев


Наверх