Создание электронной базы данных

Автор работы: Пользователь скрыл имя, 08 Июня 2014 в 19:35, курсовая работа

Краткое описание

Базовыми компонентами система программирования Турбо Паскаль являются компилятор языка Паскаль, средства создания и редактирования исходных текстов программ и средства их отладки (поиска и исправления ошибок). Все эти компоненты объединены в единую интегрированную среду разработчика, с которой работает программист, создавая свои программы.
Запись представляет собой совокупность ограниченного числа логически связанных компонент, принадлежащих к разным типам. Компоненты записи называются полями, каждое из которых определяется именем. Поле записи содержит имя поля, вслед за которым через двоеточие указывается тип этого поля.

Содержание

ВВЕДЕНИЕ 2
НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ 3
ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ 3
2.1. Постановка задачи 3
2.2. Описание программы и алгоритма программы с
описанием функций и составных частей и связей между
ними . Описание входных и выходных данных 3
2.3. Выбор состава технических и программных средств 8
3. ИСТОЧНИКИ, ИСПОЛЬЗОВАННЫЕ ПРИ РАЗРАБОТКЕ 9
РАЗРАБОТКА ПРОГРАММЫ 9
ТЕСТИРОВАНИЕ ПРОГРАММЫ 9
ВНЕДРЕНИЕ 10
ЗАКЛЮЧЕНИЕ 11
СПИСОК ЛИТЕРАТУРЫ 12

Прикрепленные файлы: 1 файл

Курсовая работа-аэропорт-2.doc

— 215.50 Кб (Скачать документ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список литературы

    1. Белецкий Я.  Турбо Паскаль с графикой для персональных компьютеров.   Москва 1991г. 
    2. Боон К.   ПАСКАЛЬ для всех.   Москва 1988г.
    3. Дериев И.И., Токарь С.В. Справочник по процедурам и функциям Borland Pascal  with Objects 7.0.    Киев 1993г.
    4. Перминов О.Н.    Программирование   на  языке  ПАСКАЛЬ.    Москва 1988г.

 

 

Приложение 1. Листинг программы.

Program Kurs;

Uses Crt, Dos;{подключаемые модули}

Const RD=0; {Чтение из файла}

      WR=1; {Запись в файл}

      {главное  меню программы}

      Pp: array[1..3] of string[40]=('1. Новый рейс',

                             '2. Найти рейс',

                             '3. Выход из программы');

      {подменю  программы}

      {массив пунктов меню}

      Ai: array[1..7] of string[50]=('1. Добавить новые данные',

                               '2. Удалить данные',

                               '3. Изменить данные',

                               '4. Проданные места за месяц',

                               '5. Проданные места на заданное  число',

                               '6. Кол-во свободных мест на заданное число',

                               '7. Выход в главное меню');

    Max=20;        {Максимальное количество мест на самолет}

type Dt=record          {тип записи - дата рейса}

         d,m,g: integer;   {день, месяц и год (2013)}

       end;

     Kl=record            {тип записи - пассажир}

         F: string[15];{строковая переменная - Фамилия пассажира}

         P: string[12];{строковая переменная - номер паспорта}

         M: integer;   {переменная целого типа - номер места в самолете}

       end;

     Reis=record            {тип записи - рейс}

         Sv: array[1..Max] of integer;{свободные номера в самолете}

         Ps: array[1..Max] of Kl;{массив записей (данных) - данные о

                               пассажирах текущего (выбранного) рейса}

         K: integer; {переменная целого типа - кол-во пассажиров в самолете}

         D: Dt;        {переменная типа Dt - дата рейса}

       end;

var Rs: Reis;  {здесь хранится инф-я по текущему рейсу, с которым идет работа}

    F: File;          {переменнaя типа File}

    R_d, R_m:integer;{переменные целого типа}

    ss: string; {перем. строкого типа}

{-----выполняется в конце процедур-пунктов меню}

Procedure Enter;

begin

  gotoxy(10,25);{установить курсор в заданную позицию}

  write('Для возврата в меню нажмите Enter.');{вывод на экран}

  readln;{ждать нажатия кнокпи Enter}

end;

{--- Процедура записи/чтения  в/из файл(а)}

Procedure InfoFile(W_R:integer);

var d, x: integer;

begin

  x:=1;

  if W_R=RD{чтение из файла}

    then begin

           reset(F, SizeOf(Rs));          {открыть файл для чтения}

           BlockRead(F, Rs, SizeOf(Rs), x); {читать данные из файла}

         end

    else begin{запись в  файл}

           Rewrite(F, Sizeof(Rs)); {открыть файл для  записи}

           BlockWrite(F,Rs,x,d); {записать информацию в файл}

         end;

  Close(F);{закрыть файл}

end;

{---- Процедура вывода результата}

Procedure Out;

var i: integer;{переменная целого типа}

    Key: char;

begin

  if Rs.K=0{если пассажиров  нет}

  then writeln('Сначала введите данные.'){вывод на экран}

  else begin {вывести данные пассажиров на экран}

         i:=1;

         repeat

           Clrscr;                {очистить экран}

           writeln('Текущий номер записи -  ',i,'    Всего пассажиров - ',Rs.K);

           writeln;        writeln('Фамилия         :  ', Rs.Ps[i].F);

           writeln('Номер паспорта  :  ', Rs.Ps[i].P);      writeln('Место в самолете:  ', Rs.Ps[i].M);

           writeln('Дата вылета     :  ', Rs.D.d,'/',Rs.D.m,'/2013');

           writeln('---------------------------------------');{вывод на экран}

           gotoxy(1, 25);{уст.курсор в заданную позицию}

           TextColor(LightRed);{уст.цвет текста}      TextBackGround(Blue); {цвет фона текста}

           write('<- НАЗАД                -> ДАЛЬШЕ                ВЫХОД-ESC');

           TextBackGround(White); {цвет фона текста}

           TextColor(Black); {уст.цвет текста}      Key:=readkey; {ждет нажатия кнопки}

           case Key of   {оператор выбора}

             #75: begin  {влево}

                    if i=1   {проверка условия}

                      then i:=Rs.K    else dec(i);

                  end;

             #77: begin  {вправо}

                    if i=Rs.K   {проверка условия}

                      then i:=1           else inc(i);

                  end;

             #27: exit;{выход из процедуры}

           end;

         until Key=#27;

       end;

  Enter; {ждать нажатия клавиши Enter-вызов процедуры}

end;

{------- Процедура просмотра  свободных мест и информации  о пассажирах}

Procedure Prosmotr(z, z2:integer);

var j: integer; {перем.целого типа}

begin

  if z=0   then begin  Out;  exit;  end;

  writeln('Свободные места в самолете:   ');{вывод на экран}

  if Rs.K>0 {если есть пассажиры в самолете}

    then begin

           Textcolor(red);      {установить красный цвет текста}

           writeln; writeln('Дата вылета:  ', Rs.D.d,'/',Rs.D.m,'/2006');

           writeln;         Textcolor(Blue);      {установить синий цвет текста}

           {вывод свободных номеров на  экран}

           for j:=1 to Max do

             if Rs.Sv[j]>0      then write(Rs.Sv[j],', ');{вывод на экран}

           writeln;{вывод пустой строки на экран}

           Textcolor(Black);      {установить черный цвет текста}

         end

    else writeln('Все места на самолет свободны !');

  if z2=0 then Enter;  {ждать нажатия клавиши Enter-вызов процедуры}

end;

{----------- Процедура ввода  данных}

Procedure Add;

begin

  Clrscr;                            {очистить экран}

  If Rs.K=Max then writeln('В самолете нет свободных мест.'){вывод на экран}

  else begin

    Prosmotr(1,1);    {вызов процедуры}

    inc(Rs.K);           {увеличить кол-во пассажиров}

    writeln;  {вывод на экран}  write('Введите фамилию пассажира : ');  readln(Rs.Ps[Rs.K].F);

    write('Введите его номер паспорта: ');  readln(Rs.Ps[Rs.K].P);

    repeat

      repeat

        write('Введите место в самолете  : ');  readln(Rs.Ps[Rs.K].M);

        if(Rs.Ps[Rs.K].M<=0)or(Rs.Ps[Rs.K].M>Max)

          then begin

                 writeln; writeln('Введено неверное значение. Места могут быть с 1 по 20.');

               end;

      until (Rs.Ps[Rs.K].M>0)and(Rs.Ps[Rs.K].M<=Max);

      if Rs.Sv[Rs.Ps[Rs.K].M]=0

        then begin   writeln; writeln('Это место уже занято другим пассажиром.');        end;

    until Rs.Sv[Rs.Ps[Rs.K].M]>0;

    Rs.Sv[Rs.Ps[Rs.K].M]:= 0;{занять  место}

    Rs.D.d:=R_d;  Rs.D.m:=R_m;  Rs.D.g:=2006;{заполняем дату}

   InfoFile(WR);{---сохранить информацию в файл}

  end;

  Enter;  {ждать нажатия клавиши Enter-вызов процедуры}

end;

{--- Процедура удаления  пассажира из самолета (освобождения  места)}

Procedure Del;

var i, j:integer;{переменные целого  типа}

begin

  Clrscr; {очистить экран}

  if Rs.K=0 {если пассажиров нет}

    then writeln('Отсутствуют пассажиры в самолете.'){вывод на экран}

    else begin   

write('Введите номер места в самолете, который требуется освободить: ');{вывод на экран}

        readln(j);        {ввод номера}

        if Rs.Sv[j]>0      {проверка условия}

          then writeln('Место под номером ',j, ' уже свободно в самолете !')

          else

            begin

              {---------освободить место}

              Rs.Sv[j]:= j;

              for i:=1 to Rs.K do

                if Rs.Ps[i].M=j then j:=i;

              dec(Rs.K);

              writeln('----- Пассажир -----');{вывод на экран}

              Textcolor(green);    {установить зеленый цвет рисования}

              writeln('Фамилия         : ', Rs.Ps[j].F);      writeln('Номер паспорта  : ', Rs.Ps[j].P);

              writeln('Место в самолете: ', Rs.Ps[j].M);

             writeln('Дата вылета     : ', Rs.D.d,'/',Rs.D.m,'/2006');

              Textcolor(Black);   {установить черный цвет для текста}

              writeln; writeln('Удален из самолета!');

              for i:=j to Rs.K-1 do Rs.Ps[i]:=Rs.Ps[i+1];{Сдвиг записей к началу массива}

              InfoFile(WR);{---сохранить информацию в файл}

            end;

      end;

  Enter;       {ждать нажатия клавиши Enter-вызов процедуры}

end;

{Процедура изменения  данных}

procedure Izm;

var j, n: integer;

    ff: boolean;

begin

  if Rs.K=0 {если пассажиров нет}

    then writeln('Отсутствуют пассажиры в самолете.'){вывод на экран}

    else begin

  repeat

    write('Введите номер места, данные по которому требуется изменить - ');

    readln(n);

    if(n<=0)or(n>Max)

 then writeln('Введено неверное значение. Места могут быть с 1 по 20.');

  until (n>0)and(n<=Max);

  j:=1;   ff:=false;

  repeat          {выполнять}

    if n=Rs.Ps[j].M  then ff:=true   else inc(j);

  until (j>Rs.K)or(ff=true);{пока  условие не станет истиным}

  if ff=false   then writeln('Место свободно в самолете. Данных нет!')

    else begin

           writeln('Есть такой пассажир в самолете. Вот его данные.');

           Textcolor(Magenta);    {установить цвет рисования}

           write('Фамилия (старое=', Rs.Ps[j].F,'),   новое ?  ');

           Textcolor(red);    {установить цвет рисования}

           readln(Rs.Ps[j].F);       Textcolor(Magenta);    {установить цвет рисования}

           write('Номер паспорта (старое=', Rs.Ps[j].P,'),   новое ?  ');

           Textcolor(red);    {установить цвет рисования}

           readln(Rs.Ps[j].P);      Textcolor(Magenta);    {установить цвет рисования}

           writeln('Место в самолете: ', Rs.Ps[j].M);

           writeln('Дата вылета     : ', Rs.D.d,'/',Rs.D.m,'/2006');

           Textcolor(Black);   {установить черный цвет для текста}

           InfoFile(WR);{---сохранить информацию в файл}

         end;

     end;

  Enter;       {ждать нажатия клавиши Enter-вызов процедуры}

end;

{------- Процедура просмотра  проданных мест за весь месяц}

Procedure ProsmotrMonth;

var pr, i, j: integer;

    Key: char;

    M1: array[1..12] of integer;

    M2: array[1..12] of string[10];

    s1, s2, N: string;

    mm: PathStr;{результат поиска файла}

    w: Reis;  {здесь хранится инф-я по текущему рейсу, с которым идет работа}

begin

  ClrScr;             {очистить экран}

  M1[1]:=31;  M1[2]:=28;  M1[3]:=31;  M1[4]:=30;  M1[5]:=31;  M1[6]:=30;

  M1[7]:=31;  M1[8]:=31;  M1[9]:=30;  M1[10]:=31; M1[11]:=30; M1[12]:=31;

  M2[1]:='январь';  M2[2]:='февраль';  M2[3]:='март';  M2[4]:='апрель';

  M2[5]:='май';  M2[6]:='июнь';  M2[7]:='июль';  M2[8]:='август';

  M2[9]:='сентябрь';  M2[10]:='октябрь'; M2[11]:='ноябрь'; M2[12]:='декабрь';

  Textcolor(Red);   {установить красный цвет для текста}

  write('Введите месяц (просмотр проданных мест) !');

  repeat

    gotoxy(5,2);    write('                   ');

    gotoxy(5,2);    Textcolor(Red);   {установить красный цвет для текста}

    write('Месяц -  ');    Textcolor(Blue);   {установить  цвет для текста}    readln(R_m);

    if (R_m<=0) or (R_m>12)

      then begin

             writeln('Вы ввели неверное значение!  Enter-продолжить, ESC-выход');

             repeat Key:=readkey; until (Key=#27) or (Key=#13);

             if Key=#27 then begin Textcolor(Black); exit; end;

           end;

    gotoxy(1,5);    write('                                              ');    Textcolor(Yellow);   {установить  цвет для текста}

    gotoxy(20,2);  write(M2[R_m]);

  until (R_m>0) and (R_m<13);

  {вычислим кол-во дней в месяце текущего 2006 года}

  if (R_m=1)or(R_m=3)or(R_m=5)or(R_m=7)or(R_m=8)or(R_m=10)or(R_m=12)    then pr:=31;

  if (R_m=4)or(R_m=6)or(R_m=9)or(R_m=11)    then pr:=30;

  if R_m=2    then pr:=29;

  for j:=1 to pr do

    begin

      str(j,s1);  str(R_m,s2);      N:= ss+'\'+s1+'_'+s2+'_'+'06.bd';      {формируем наименование файла}

      assign(F, N);{установить зависимость}      mm:= FSearch(N,ss);{поиск файла}

      if mm<>''

        then begin

               InfoFile(RD);{получить информацию из файла}

               writeln;  write('День -  ', R_d,',  проданные места = ');

               for i:=1 to Max do       if Rs.Sv[i]=0                then write(i,',');{вывод на экран}            end;

    end;

  str(R_d,s1);  str(R_m,s2); N:= ss+'\'+s1+'_'+s2+'_'+'06.bd';

  assign(F, N);{установить зависимость}

  InfoFile(RD);{получить информацию из файла}

  Textcolor(Black);   {установить черный цвет для текста}

  Enter; {ждать нажатия клавиши Enter-вызов процедуры}

end;

Procedure PodMenu; {---- Процедура вывода меню на экран}

var i:integer;     {переменные целого типа}

    Key:char;      {переменная символьного типа}

begin

  repeat  ClrScr;            {очистить экран}

  Textcolor(green);    {установить зеленый цвет рисования}

  gotoxy(20,6);  write('М Е Н Ю');{вывод на экран}

  Textcolor(Magenta);{установить цвет рисования}

  for i:=1 to 7 do    begin gotoxy(20, 8+i); write(Ai[i]); end;

  Key:= readkey;      {Чтение кода нажатой клавиши}  ClrScr;             {очистить экран}

  Textcolor(Black);   {установить черный цвет для текста}

  case Key of         {оператор выбора}

    '1': Add;          {ввод данных}

    '2': Del;          {удаление данных}

    '3': Izm;          {изменение данных}

    '4': ProsmotrMonth;{проданные места за весь месяц}

    '5': Prosmotr(0,0);{просмотр проданных мест на заданное число}

    '6': Prosmotr(1,0);{просмотр свободных мест на заданное число}

    '7': Key:=#27;  {выход из программы}

  end;

  if Key=#27 then exit {если нажата ESC-выход в основное меню программы}

  until(Key=#27);

end;

procedure Reisy(z:integer); {Процедура создания/поиска рейса, если такого нет}

var pr, i, j: integer;

    Key: char;    M1: array[1..12] of integer;

    M2: array[1..12] of string[10];    s1, s2, N: string;

    mm: PathStr;{результат поиска файла}

begin

  ClrScr;             {очистить экран}

  M1[1]:=31;  M1[2]:=28;  M1[3]:=31;  M1[4]:=30;  M1[5]:=31;  M1[6]:=30;

  M1[7]:=31;  M1[8]:=31;  M1[9]:=30;  M1[10]:=31; M1[11]:=30; M1[12]:=31;

  M2[1]:='январь';  M2[2]:='февраль';  M2[3]:='март';  M2[4]:='апрель';

  M2[5]:='май';  M2[6]:='июнь';  M2[7]:='июль';  M2[8]:='август';

  M2[9]:='сентябрь';  M2[10]:='октябрь'; M2[11]:='ноябрь'; M2[12]:='декабрь';

  Textcolor(Red);   {установить красный цвет для текста}  write('Введите дату рейса !');

  repeat  {ввод месяца}

    gotoxy(5,4);

    write('                   ');    gotoxy(5,4);    Textcolor(Red);   {установить красный цвет для текста}

Информация о работе Создание электронной базы данных