Обработка данных с помощью ЯП Pascal

Автор работы: Пользователь скрыл имя, 28 Февраля 2016 в 17:41, курсовая работа

Описание работы

Составить программу, помогающую администратору гостиницы. В гостинице 8 этажей. На первом этаже – административные помещения и ресторан; на втором – восемь двухкомнатных номеров-люксов; на третьем-четвертом – по шестнадцать двухместных однокомнатных номеров на каждом этаже. О каждом номере известна следующая информация: номер свободен, номер забронирован, номер занят. В номере живет один человек (мужчина и женщина). В этом случае известно дополнительная информация : с правом подселения или нет (если номер двухместный). Прибыл в командировку, прибыл в частном порядке. По требованию администратора выдать информация о гостях, приехавших в командировку с указанием номеров, в которых они живут.

Файлы: 1 файл

kursovaya info.doc

— 199.50 Кб (Скачать файл)

       write(DB, tmpFlat);

      end;

    end;

   {+инициализируем 5-8 этажи}

   close(DB);

  end;

 

  procedure InputResidents(outFile: string);

var DB: file of flat;

      tmpFlat: flat;

      i,j: integer;

      flag:boolean;

  begin

   assign(DB, outFile); reset(DB);

 

   repeat

   clrscr;

   write('Введите  номер (3 цифры):'); readln(i);

   reset(DB);j:=-1;

 

 

 

   while not EOF(DB) do

    begin

     clrscr;

     read(DB,tmpFlat);

     flag:=false;

 

     if (tmpFlat.floor = i div 100) and (tmpFlat.number = i mod 100) then

      begin

       writeLN('Номер ', i div 100,i mod 100);

 

       with tmpFlat do

        begin

         writeln('Кол-во комнат: ',rooms);

         writeln('Вид номера:', style);

writeln('Текущее сотояние:', status);

         write('Изменить состояние (1-свободен,2-занят,3-забронирован, 4- ничего не делать) :');

         readln(j);

         case j of

          1: begin status:='free'; flag:=true; end;

          2: status:='busy';

          3: status:='reserved';

          else break;

         end;

         if not flag then

begin

         with resident do

          begin

           Write('Сколько человек(1-2): '); readln(j);

            case j of

             1: number:=1;

             2: number:=2;

             else number:=0;

            end;

 

            if number = 1 then

             begin

              write('Пол (1-мужчина, 2-женщина): ');

              readln(j);

              case j of

               1: sex:='male';

               2: sex:='female';

               else sex:='';

              end;

 

              write('C подселением? (1-да, 2-нет): ');

              readln(j);

              case j of

               1: make_another:=true;

               2: make_another:=false;

              else make_another:=false;

              end;

             end;

           write('Статус (1-командировка, 2- частный): ');

           readln(j);

           case j of

            1: status:='mission';

            2: status:='free';

            else status:='free';

           end;

          end;

        end else

begin

with resident do

          begin

           sex:='';{male, female}

           number:=0;

           make_another:=true; {подселение}

           status:= '';

          end;

end;

        end;

      end;

seek(DB, FilePos(DB)-1); write(DB, tmpFlat);

flag:=false;

 

    end;

if j<0 then Writeln('Ничего не найдено');

   Writeln('Для выхода нажмите 0!'); readln(j);

   until j=0;

 

   close(DB);

  end;

 

function Search(inFile: string):integer;

var DB: file of flat;

      tmpFlat: flat;

      i,j: integer;

      flag:boolean;

begin

  j:=0;

  assign(Db,inFile); reset(DB);

  while not EOF(DB) do

begin

read(DB,tmpFlat);

if tmpFlat.resident.status = 'mission' then

begin

  inc(j);

  with tmpFlat do

  begin

   writeln('============================');

   writeLn('Номер: ':20, floor,'-',number);

   writeln('Количество комнат: ':20, rooms);

   writeln('Тип: ':20, style);

   writeln('Статус: ':20, status);

   with resident do

   begin

     writeln ('Тип прибытия: ':20,status);

     writeln ('Количество человек: ':20,number);

     writeln ('Пол: ':20, sex);

     writeln ('С подселением: ':20, make_another);

   end;

   writeln('============================');           

 

  end;

  writeln;

end;

end;

close(DB);

Search:=j;

 

end;

 

 

var DataBase: file of flat;

  i:integer;

ch:char;

     nameOfDB: string;

begin

clrscr;

 

repeat

  case Menu of

   2: begin

       clrscr;

       write('Введите имя файла: '); readln(nameOfDB);

       if nameOfdb='' then nameOfdb := 'hotel.dat';

InitHotelRooms(nameOfDB);

      

      end;

   3: begin

       clrscr;

       write('Введите имя файла: '); readln(nameOfDb);

       Assign(DataBase, nameOfdb);

       {$I-}

       Reset(DataBase);

       {$I+}

       If IOResult=0 Then WriteLn('Файл успешно загружен!', 'Количество записей: ',FileSize(DataBase))

              Else WriteLn('Файл не найден.');

      end;

   4: begin

       if nameOfdb='' then nameOfDB := 'hotel.dat';

InputResidents(nameOfDB);

 

      end;

   5: begin

        if nameOfdb='' then nameOfDB := 'hotel.dat';

        i:=Search(NameOfDB);

if i>0 then Writeln('Найдено ',i) else writeln('Ничего  не найдено!');

      end;

 

   6: begin

       writeln('Для выхода нажмите ESC!');

       ch:=#27;

      end;

  end;

  writeln('Для возврата в МЕНЮ нажмите любую клавишу!');

  ch:=readkey;

 until ch=#27;

 

writeln('Завершение работы программы...');

delay(1000);

 

end. 
ПРИМЕР РАБОТЫ ПРОГРАММЫ

 

 

Демонстрация работы меню программы

 

 

 

Загрузка файла с базой

 

 

Демонстрация ввода данных о номере

 

 

 

 

 

 

 

пример вывода результатов по запросу администратора

 

Блок-схема программы

 

 

 
Список используемой литературы

 

1. Фаронов В.В., «Turbo Pascal 7.0” начальный  курс и практикум, изд-во «Нолидж», Москва, 2000 г.

 

2. Немюгин С.А. «Turbo Pascal», изд-во «Питер», Санкт-Петербург, 2001 г.

 

3. Новиков Ф.А. «Дискретная математика  для программистов», изд-во «Питер», Санкт-Петербург, 2001 г.

.

 

 


Информация о работе Обработка данных с помощью ЯП Pascal