Програма на Паскал за нуждите на хотел

Програма на Паскал за нуждите на хотел, която поддържа следната информация за гостите на хотела:

  • име (string);
  • ЕГН;
  • семейно положение;
  • дата на пристигане и дата на отпътуване;
  • масив предлагани услуги;
  • и извършва следните операции:
  • създава файл с данните на гостите, добавя данни за нови гости, заменя данни по въведено ЕГН;
  • отпечатва имената на всички гости;
  • изчислява броя на използваните услуги и ги отпечатва (име – бр. услуги);
  • извежда списък на услугите, използвани от всички гости – мъже;
  • Програмата да работи с меню.

Програма Hotel

В раздела Const е деклариран масив от услуги от тип String, съдържащ седем услуги, предлагани от хотела.
Информацията за гостите се вувежда в запис: TipGost, съдържащ следните полета:

  • Ime – символен низ с двайсет символа;
  • EGN – символен низ с десет полета;
  • Spolojenie – от тип integer, защото се въвжда 1 или 2 за несемейни или семейни;
  • DataPris – дата на пристигане – запис, съдържащ полета Dp, Mp и Gp, за ден, месец и година;
  • DataZam – дата на заминаване – запис, съдържащ полета Dz, Mz и Gz, за ден, месец и година;
  • MUslugi – множество услуги;
  • BrUsl – брой на използваните услуги от тип byte;
  • В раздела Var са декларирани променливите: fname – име на файла от тип String, f – файл от TipGost, C – променлива от тип byte, използвана за менюто, MasGosti – масив с всички гости на хотела от TipGost, Gost от TipGost, използвана в процедурите.

Първата процедура – CreateFile е за създаване на файл с данните на гостите. След създаването на файла се въвеждат данните на първия гост, като използваните услуги се въвеждат чрез код – цифра от едно до седем. След въвеждането на един гост има опция за въвеждане на още гости и за край на въвеждането.
Втората процедура – Dobaviane е за въвеждане на нови гости – въвеждат се данните на госта и се добавят във файла.
Третата процедура – Zameniane е за заменяне данни на гост, по въведено ЕГН. Въвежда се ЕГН, файлът се отваря и в него се търси съвпадащо ЕГН, ако има такова, се въвеждат новите данни и се записват вив файла на мястото на старите.
Процедурата Izvejdane1 е процедура за извеждане името на един гост. Таази процедура се използва в процедурата Izvejdane, която е за отпечатване имената на всички гости.
Процедурата BroiUslugi1 е за извеждане броя на използваните услуги от един гост. Тя се използва в процедурата BroiUslugi за извеждане броя на използваните услуги (име – бр.услуги).
Процедурата UslugiM е за извеждане на списък на услугите, използвани от всички гости – мъже. Отваря се файла и за всеки гост, програмата копира деветия символ от ЕГН-то, превръща го в число и проверява дали то е четно, ако е четно извежда списък с услугите, използвани от съответния гост.
В главната програма е менюто за изпълняваните операции, чрез оператора за избор на вариант Case се изпълнява избраната процедура.

program Hotel;
   const
   Uslugi:array[1..7] of string[20]=('basein','djakuzi','masaj',
                                     'sauna','solarium','roomservise','fitnes
type
 TipGost=record
  Ime:string[20];
  EGN:string[10];
  Spolojenie:integer;
  DataPris:record
   Dp,Mp,Gp:integer;
  end;
  DataZam:record
   Dz,Mz,Gz:integer;
  end;
  MUslugi:set of 1..7;
  BrUsl:byte;
 end;
Var
fname:string[30]; f:file of TipGost;
C:byte;
MasGosti:array[1..50] of TipGost;
Gost: TipGost;

 Procedure CreateFile;
 var f:file of TipGost; Gost:TipGost; q:shortint;
 i,KodUsluga:byte;

 begin
  writeln('Zadaite ime na faila');readln(fname);
  assign (f,fname); rewrite(f);
  repeat
   i:=0;
   write('Vavedi ime: '); readln(Gost.Ime);
   write('Vavedi EGN: '); readln(Gost.EGN);
   write('Vavedi 1-za nesemeen ili 2-za semeen: '); readln(Gost.SPolojenie);
   writeln('Zadaite data na pristigane!');
   write('Vavedi den: '); readln(Gost.DataPris.Dp);
   write('Vavedi mesec: '); readln(Gost.DataPris.Mp);
   write('Vavedi godina: '); readln(Gost.DataPris.Gp);
   writeln('Zadaite data na zaminavane! ');
   write('Vavedi den: '); readln(Gost.DataZam.Dz);
   write('Vavedi mesec: '); readln(Gost.DataZam.Mz);
   write('Vavedi godina: '); readln(Gost.DataZam.Gz);
   writeln('Vavedi masiv izpolzvani uslugi!');
   repeat
    writeln(' ':20,'Kodove na uslugite:');
    writeln(' ':25,'1 - basein;');
    writeln(' ':25,'2 - djakuzi;');
    writeln(' ':25,'3 - masaj;');
    writeln(' ':25,'4 - sauna;');
    writeln(' ':25,'5 - solarium;');
    writeln(' ':25,'6 - room service;');
    writeln(' ':25,'7 - fitnes;');
    write(' ':15, 'Posochete usluga ili 0 za krai:'); readln(KodUsluga);
    if KodUsluga in [1..7]
       then begin
            i:=i+1;
            Gost.MUslugi:=Gost.MUslugi+[KodUsluga];
            Gost.brusl:=i;
            end;
  until KodUsluga=0;
  write (f,Gost);
   writeln('1 - Vavedi nov gost');
   writeln('0 - Krai na faila');readln(q)
   until q=0;
  close(f);
  end;

  Procedure Dobaviane ;
  var  Gost:TipGost; q:shortint;
 i,KodUsluga:byte;
 begin
   assign(f,fname);   reset(f);
   seek(f,FileSize(f));

  repeat
   i:=0;
   write('Vavedi ime: '); readln(Gost.Ime);
   write('Vavedi EGN: '); readln(Gost.EGN);
   write('Vavedi 1-za nesemeen ili 2-za semeen: '); readln(Gost.SPolojenie);
   writeln('Zadaite data na pristigane!');
   write('Vavedi den: '); readln(Gost.DataPris.Dp);
   write('Vavedi mesec: '); readln(Gost.DataPris.Mp);
   write('Vavedi godina: '); readln(Gost.DataPris.Gp);
   writeln('Zadaite data na zaminavane! ');
   write('Vavedi den: '); readln(Gost.DataZam.Dz);
   write('Vavedi mesec: '); readln(Gost.DataZam.Mz);
   write('Vavedi godina: '); readln(Gost.DataZam.Gz);
   writeln('Vavedi masiv izpolzvani uslugi!');
    repeat
     writeln(' ':20,'Kodove na uslugite:');
     writeln(' ':25,'1 - basein;');
     writeln(' ':25,'2 - djakuzi;');
     writeln(' ':25,'3 - masaj;');
     writeln(' ':25,'4 - sauna;');
     writeln(' ':25,'5 - solarium;');
     writeln(' ':25,'6 - room service;');
     writeln(' ':25,'7 - fitnes;');
     writeln(' ':15, 'Posochete usluga ili 0 za krai:');
     readln(KodUsluga);
     if KodUsluga in [1..7]
        then begin
             i:=i+1;
             Gost.MUslugi:=Gost.MUslugi+[KodUsluga];
             Gost.brusl:=i;
             end;
    until KodUsluga=0;
    write (f,Gost);
    writeln('1 - Produlji s dobavineto');
    writeln('0 - Krai na dobavianeto');readln(q)
   until q=0;
  close(f);
  end;

  Procedure Zameniane;
  var
   n:integer;
   EGN:string[10]; KodUsluga:byte; i:integer;
  begin
   write('Vavedi EGN'); readln(EGN);
   assign (f,fname);   reset(f);
   while not EOF (f) do
    begin
     read(f,Gost);
     if Gost.EGN=EGN
     then begin
     i:=0;
          seek(f,FilePos(f)-1);
          write('Ime: ',Gost.Ime,' - ');readln(Gost.Ime);
          write('EGN: ',Gost.EGN,' - '); readln(Gost.EGN);
          write('Vavedi 1-za nesemeen ili 2-za semeen: ',Gost.Spolojenie,' - '
          writeln('Zadaite data na pristigane:');
          write('Den: ',Gost.DataPris.Dp,' - '); readln(Gost.DataPris.Dp);
          write('Mesec: ',Gost.DataPris.Mp,' - '); readln(Gost.DataPris.Mp);
          write('Godina: ',Gost.DataPris.Gp,' - '); readln(Gost.DataPris.Gp);
          writeln('Zadaite data na zaminavane:');
          write('Den: ',Gost.DataZam.Dz, ' - '); readln(Gost.DataZam.Dz);
          write('Mesec: ',Gost.DataZam.Mz, ' - '); readln(Gost.DataZam.Mz);
          write('Godina: ',Gost.DataZam.Gz,' - '); readln(Gost.DataZam.Gz);
          writeln('Vavedi masiv izpolzvani uslugi!');
    repeat
          writeln(' ':20,'Kodove na uslugite:');
          writeln(' ':25,'1 - basein;');
          writeln(' ':25,'2 - djakuzi;');
          writeln(' ':25,'3 - masaj;');
          writeln(' ':25,'4 - sauna;');
          writeln(' ':25,'5 - solarium;');
          writeln(' ':25,'6 - room service;');
          writeln(' ':25,'7 - fitnes;');
          writeln(' ':15, 'Posochete usluga ili 0 za krai:');
          readln(KodUsluga);
     if KodUsluga in [1..7]
        then begin
             i:=i+1;
             Gost.MUslugi:=Gost.MUslugi+[KodUsluga];
             Gost.brusl:=i;
             end;
   until KodUsluga=0;
          write(f,Gost);
          writeln('Dannite za gost sa EGN,',EGN,'sa zameneni!');
         end;
     end;
    close(f);
   end;

   Procedure Izvejdane1(Gost:TipGost);
      begin
       with Gost do
        writeln('ime: ',Ime,' ':21-length(Ime));
      end;
   Procedure Izvejdane;
    begin
     assign(f,fname); reset (f);
     writeln('Imenata na vsichki gosti sa:');
     while not EOF (f) do
      begin
       read (f,Gost);
       Izvejdane1(Gost);
      end;
    end;

  Procedure BroiUslugi1(Gost:TipGost);
   begin
    with Gost do
     writeln('Ime: ',Ime,' ':21-length(Ime),'BroiUslugi:',BrUsl)
   end;
  Procedure BroiUslugi;
   begin
     assign(f,fname);
     reset (f);
     writeln('Broi na izpolzvanite usugi:');
     while not EOF (f) do
      begin
       read (f,Gost);
       BroiUslugi1(Gost);
      end;
   end;

 Procedure UslugiM;
   var  pol,P:integer; KodUsluga:byte;
    begin
     assign(f,fname);  reset(f);
     while not EOF (f) do
     begin
      read (f,Gost);
          Val(Copy(Gost.EGN,9,1),pol,P);
       if (pol)div(2)mod(2)= 0
       then
         begin
          for KodUsluga:=1 to 7 do
          if KodUsluga in Gost.MUslugi
           then
             writeln(Uslugi[KodUsluga],'');
         end;
     end;
    end;

begin
  repeat
   writeln (' ':20,'Menu na izpulniavanite operacii:');
   writeln(' ':25,'1 - Suzdavane na fail');
   writeln(' ':25,'2 - Dobaviane na gosti');
   writeln(' ':25,'3 - Zamiana na gosti');
   writeln(' ':25,'4 - Otpechtvane imenata na vsichki gosti');
   writeln(' ':25,'5 - Broi na izpolzvanite uslugi');
   writeln(' ':25,'6 - Spisuk uslugi, izpolzvani ot vsichki gosti - muje');
   writeln(' ':20,'Posochete operacia ili 0 za krai:');
   readln (C);
    case C of
     1:CreateFile;
     2:Dobaviane;
     3:Zameniane;
     4:Izvejdane;
     5:BroiUslugi;
     6:UslugiM;
    end;
  until C=0;
end.

Сходни статии:

  1. Програма на Паскал за отпечатване на файлове, принтиране и извеждане на списъци Задача и пример за програмиране на Паскал Да се състави програма,на Паскал, която с данните: име на студента(string); ЕГН; факултетен номер; масив от 6 избираеми дисциплини; извършва следните действия: създава...
  2. Използване на файл в Паскал Files are referred to in Pascal programs by the use of filenames. You have already used two default filenames, input and output. These are associated with the keyboard and console...
  3. Програма за събиране на четирибайтови числа Програма за събиране на четирибайтови числа Операндите трябва да се заредят най-напред в оперативната памет. За първия операнд са отделени клетките 0х60, 0х61, 0х62 и 0х63; като първата от тях...
  4. Програма за събиране не еднобайтови BCD числа В тази програма не би трябвало да има нещо особено. Двата операнда се задават в BCD код в клетките 0х0060 0х0061. След това се извършва сумирането им по познатия начин....
  5. Програма за преобразуване на четирибайтови числа в допълнителен код Програма за преобразуване на четирибайтови числа в допълнителен код Зададеното число се разполага в четири последователни клетки от паметта. И тук е прието най-старшият байт да е с най-малък адрес....

Студио за уеб дизайн услуги, изработка на сайтове, SEO оптимизация и Интернет реклама Seven Web Design представя своите професионални уеб дизайн умения на високо ниво. Seven Web Design е продукт на Уеб Дизайн България Груп ООД ®
Comments are closed.