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

type TBaza = record
                        Familia: string[15];
                        Name : string[10];
                  Otchestvo:string[20];
                     Doljnost:string[20];
           Razmer_zarplati:integer;
                  end;
 
var Baza : TBaza;
    FBaza : file of TBaza;
       Nom:integer;
           h:string;
 
procedure Menu;
begin
  WriteLn('1 sozdanie novogo faila');
  WriteLn('2 dobavlenie zapisei v fail');
  WriteLn('3 pechatb faila');
  WriteLn('4 vihod');
end;
 
procedure DobavlDan(Nul0 : Boolean);
{Nul0 = True - sozdanie novogo fila;
Nul0 = False - dobavlenie zapisei v suschestvuuchii }
var ch:char;
begin
  if Nul0 then Rewrite(FBaza)
  else
  begin
    Reset(FBaza);
    Seek(FBaza, FileSize(FBaza));
  end;
  repeat
    WriteLn;
    Write('familia '); ReadLn(Baza.Familia);
    Write('im9'); ReadLn(Baza.Name);
    Write('otchestvo '); ReadLn(Baza.Otchestvo);
    Write('dolgnostb'); Readln(Baza.Doljnost);
    Write('razmer zarplati'); Readln(Baza.Razmer_zarplati);
    Write(FBaza, Baza);
    Write('prodolgitb nabor bazi? (y/n)');
    readln(ch);
    until ch = 'n';
  Close(FBaza);
  WriteLn;
 
end;
 
 
procedure Print(k:string); { pechat fila zapisei }
begin
  Reset(FBaza);
  while not Eof(FBaza) do
  begin
    Read(FBaza, Baza);
    with Baza do
      if Familia = k then  WriteLn(Baza.Familia:15, ' | ', Baza.Name:10,
      ' | ', Baza.Otchestvo:15,' | ', Baza.Doljnost:20,' | ', Baza.Razmer_zarplati:10);
    end;
  Close(FBaza);
end;
 
begin
  Assign(FBaza,'baza.dat');
  Menu;
  repeat
  write('vvedite nomer komandi: ');
  readln(Nom);
  case Nom of
  1: DobavlDan(True);
  2: DobavlDan(False);
  3: begin
        writeln('vvedi iskomuy familiu');
        Readln(h);
      end;
  end;
  until Nom=4;
readln;
end.

Leave a Comment

− 2 = 2