Касса аэропорта
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: дипломная работа школа, баллов
| Добавил(а) на сайт: Shurduk.
Предыдущая страница реферата | 1 2 3 | Следующая страница реферата
Описание алгоритма задачи
Сначала, подключаем модуль 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;
Рекомендуем скачать другие рефераты по теме: шпаргалки по математике, защита реферата.
Категории:
Предыдущая страница реферата | 1 2 3 | Следующая страница реферата