aeroport (Касса аэропорта)
Описание файла
Документ из архива "Касса аэропорта", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "aeroport"
Текст из документа "aeroport"
19
Волжский университет имени В.Н. Татищева
Кафедра «Информатика и системы управления»
Специальность: 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