Волжский
университет
имени В.Н. Татищева
Кафедра
«Информатика
и системы управления»
Специальность:
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
begin
gotoxy(x,y+punkt-1);
write(menu[punkt]);
punkt:=punkt+1;
textattr:=sel;
gotoxy(x,y+punkt-1);
write(menu[punkt]);
textattr:=norm;
end;
chr(72):
стрелка вверх
if
(punkt<=n) and (punkt>1) then begin
gotoxy(x,y+punkt-1);
write(menu[punkt]);
punkt:=punkt-1;
textattr:=sel;
gotoxy(x,y+punkt-1);
write(menu[punkt]);
textattr:=norm;
end;
end;
case of
end
else
if
ch=chr(13) then нажата клавиша
begin
case
punkt of
1:new_pass;
2:print_pass;
3:
begin
maspas;
delete_pass;
end;
4:search_pass;
5:new_airport;
6:ch:=chr(27);
7:begin
Menutoscr1;
repeat ch:=Readkey; if ch=chr(0) then
begin
ch:=ReadKey; case ch of
chr(80):
стрелка вниз
if punkt
chr(72):
стрелка вверх
if
(punkt<=n1) and (punkt>1)
then
begin
gotoxy(x,y+punkt-1);
write(menu1[punkt]);
punkt:=punkt-1;
textattr:=sel;
gotoxy(x,y+punkt-1);
write(menu1[punkt]);
textattr:=norm;
end;
end;
case of
end
else
if
ch=chr(13) then нажата клавиша
begin
case
punkt of
1:new_reis;
2:print_reis;
3:
begin
masbase;
delete_base;
end;
4:search_base;
5:new_base;
6:ch:=chr(162);
end;
case of
menutoscr1;
end;
until (ch=chr(27)) or
(ch=chr(162)) or(ch=chr(130));27код
end; case of
end;
Menutoscr;
end;
until ch=chr(27);27код
End.
Оформление
нового пассажира
Продажа
билетов
Вывести
список всех
пассажиров
Удалить
информацию
о пассажире
Найти
пассажира
Очистить
список
Выход
Продажа
билетов
Расписание
отходов поездов:
{ВЫВОДИТ
РАСПИСАНИЕ}
“Оформление
нового пассажира”
Ведите
Ф. И. О
|
Пенкин
И.В.
|
Петров
П.П
|
Иванов
И.И.
|
Номер
паспорта
|
564743
|
812763
|
247398
|
Рейс
|
123
|
456
|
789
|
Подтверждение
д/н
|
Д
|
Д
|
Д
|
|
|
|
|
Замечание:
Пассажиров
необходимо
вводить по
очереди.
Вывести
список всех
пассажиров
Продажа
билетов
Вывести
список всех
пассажиров
Удалить
информацию
о пассажире
Найти
пассажира
Очистить
список
Выход
Ф.
И. О.
|
Пенкин
И.В.
|
Петров
П.П.
|
Иванов
И.И.
|
Удалить
информацию
о пассажире
Продажа
билетов
Вывести
список всех
пассажиров
Удалить
информацию
о пассажире
Найти
пассажира
Очистить
список
Выход
Введите
Ф.И.О пассажира,
которого хотите
удалить:
Пенкин
И.В.
Список
пассажиров
после удаления:
Ф.
И. О.
|
Петров
П.П.
|
Иванов
И.И
|
Номер
паспорта
|
812763
|
247398
|
Номер
рейса
|
999
|
333
|
Подтверждение
д/н
|
Д
|
Д
|
|
|
|
Продажа
билетов
Вывести
список всех
пассажиров
Удалить
информацию
о пассажире
Найти
пассажира
Очистить
список
Выход
Введите
Ф.И.О. ,которого
хотите найти:
Иванов
И.И
Информация
о пассажире:
Ф.
И. О.
|
Иванов
И.И
|
Номер
паспорта
|
247398
|
Номер
рейса
|
333
|
|
|
Продажа
билетов
Вывести
список всех
пассажиров
Удалить
информацию
о пассажире
Найти
пассажира
Очистить
список
Выход
Вы
действительно
хотите очистить
базу данных
о пассажирах(д/н)?-Д
База
данных о пассажирах
очищена!
Область
применения:
Эта
программа
используется
в кассе Аэропорта,
для упрощённой
работы с пассажирами
и рейсами.
Список
используемой
литературы:
Turbo
Pascal
7.0 (Старший курс).
Автор: Фигурнов.
В.Э.
Шаг
за шагом Turbo
Pascal
7.0 начальный
курс. Автор
:QUA
.
Лекции по
Паскалю.
СОДЕРЖАНИЕ:
Cодержание
задания.
Описание
предметной
области.
Описание
алгоритма
задачи.
Листинг
программы.
Распечатка
результатов
решения задачи
по данным
контрольного
примера.
Область
применения.
Список
используемой
литературы.
|