Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения
 

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

Работа из раздела: «Программирование и комп-ры»

[pic]



                  Волжский университет имени В.Н. Татищева



                 Кафедра «Информатика и системы управления»


   Специальность: 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 punkt1) 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 punkt1)
                                              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 (.
Лекции по Паскалю.




ref.by 2006—2022
contextus@mail.ru