Реферат: Касса аэропорта
Старший преподаватель ___________________________Ахмедханлы Д.М.
Заведующий кафедрой ИиСУ __________________________Краснов С.В.
Декан ФииТ _________________________________________Краснов С.В.
Описание предметной области
Ввод данных в программу осуществляется в диалоге по запросам программы. Оператор программы передвигается по пунктам меню и инициирует запуск той или иной процедуры нажатием клавиш “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 - используется для задержки сообщения об удалении.