МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Касса аэропорта

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

    [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);

    Страницы: 1, 2


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.