Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
73
Добавлен:
10.12.2013
Размер:
4 Кб
Скачать
☆
program PuzirokLopatina;
uses crt;

const databasename='database.dat';
      MAXDLINA=100;
      KOL:integer=0;
type
db=record
fam:string[30];{д ¬Ё«Ёп}
name:string[20];
otch:string[30];
kolzub:integer;
ves:real;
end;

var data:array[1..MAXDLINA] of db;


procedure OpenBase;
var f:file of db;
    a:db;
begin
KOL:=0;
assign(f,databasename);
reset(f);
while not(eof(f)) do
 begin
  KOL:=KOL+1;
  read(f,a);
  data[KOL]:=a;
 end;
close(f);
end;

procedure SaveBase(filename:string);
var f:file of db;
    a:db;
    i:integer;
begin
assign(f,filename);
rewrite(f);
for i:=1 to KOL do
 begin
  write(f,data[i]);
 end;
close(f);
end;

procedure Puzirok(filename:string);{fam.dat-д ©« ®вб®авЁа®ў ­­л© Ї® д ¬Ё«ЁЁ}
var i,j,k:integer;
    min:db;
begin
writeln(filename);
 for i:=1 to KOL do
  begin
   k:=i;
   min:=data[i];
  for j:=i to KOL do
   begin
    if filename='fam.dat' then
     if data[j].fam<min.fam then
      begin
       k:=j;
       min:=data[j];
      end;
    if filename='name.dat' then
     if data[j].name<min.name then
      begin
       k:=j;
       min:=data[j];
      end;
    if filename='otch.dat' then
     if data[j].otch<min.otch then
      begin
       k:=j;
       min:=data[j];
      end;
    if filename='kolzub.dat' then
     if data[j].kolzub<min.kolzub then
      begin
       k:=j;
       min:=data[j];
      end;
    if filename='ves.dat' then
     if data[j].ves<min.ves then
      begin
       k:=j;
       min:=data[j];
      end;
   end;
  data[k]:=data[i];
  data[i]:=min;
 end;
 SaveBase(filename);
end;

var a:db;
    f,ff:file of db;
    key:char;
    i:integer;
    filename:string;
begin
OpenBase;
randomize;
clrscr;
repeat
{ clrscr;}
 textcolor(random(14)+1);
 writeln('‚лЎҐаЁвҐ ०Ё¬ а Ў®вл:');
 writeln('1.‚лў®¤ Ў §л ­  нЄа ­');
 writeln('2.‚ў®¤ ¤ ­­ле ў Ў §г');
 writeln('3.‘®авЁа®ўЄ ');
 writeln('4.‚лў®¤ ®вб®авЁа®ў ­­®© Ё­д®а¬ жЁЁ ­  нЄа ­');
 writeln('5.‚л室');
 key:=readkey;
 writeln;
 case key of
 '1':
   begin
    for i:=1 to KOL do
     begin
      textcolor(random(14)+1);
      writeln(data[i].fam:15,' ',data[i].name:15,' ',data[i].otch:20,' ',data[i].kolzub:5,'   ',data[i].ves:3:2);
     end;
    writeln;
   end;
 '2':
   begin
    clrscr;
    writeln('‚ў®¤ Ё­д®а¬ жЁЁ');
    write('‚ўҐ¤ЁвҐ д ¬Ё«Ёо: ');
    readln(a.fam);
    write('‚ўҐ¤ЁвҐ Ё¬п: ');
    readln(a.name);
    write('‚ўҐ¤ЁвҐ ®взҐбвў®: ');
    readln(a.otch);
    write('‚ўҐ¤ЁвҐ Є®«-ў® §гЎ®ў: ');
    readln(a.kolzub);
    write('‚ўҐ¤ЁвҐ ўҐб: ');
    readln(a.ves);
    KOL:=KOL+1;
    data[KOL]:=a;
    SaveBase(databasename);
   end;
 '3':
   begin
    Puzirok('fam.dat');
    Puzirok('name.dat');
    Puzirok('otch.dat');
    Puzirok('kolzub.dat');
    Puzirok('ves.dat');
    OpenBase;
    writeln;
   end;
 '4':
   begin
    repeat
     writeln('1.Џ® д ¬Ё«ЁЁ');
     writeln('2.Џ® Ё¬Ґ­Ё');
     writeln('3.Џ® ®взҐбвўг');
     writeln('4.Џ® Є®«-ўг §гЎ®ў');
     writeln('5.Џ® ўҐбг');
     writeln('6.‚л室');
     key:=readkey;
     case key of
      '1':
       filename:='fam.dat';
      '2':
       filename:='name.dat';
      '3':
       filename:='otch.dat';
      '4':
       filename:='kolzub.dat';
      '5':
       filename:='ves.dat';
     else
      filename:=databasename;
     end;
     assign(f,filename);
     reset(f);
     while not(eof(f)) do
      begin
       read(f,a);
       writeln(a.fam:15,' ',a.name:15,' ',a.otch:20,' ',a.kolzub:5,'   ',a.ves:3:2);
      end;
    until key='6';
   end;
 end;
until key='5';
end.
Соседние файлы в папке laba1
  • #
    10.12.20131 Кб73database.dat
  • #
    10.12.20131 Кб73FAM.DAT
  • #
    10.12.20131 Кб73KOLZUB.DAT
  • #
    10.12.20131 Кб74NAME.DAT
  • #
    10.12.20131 Кб73OTCH.DAT
  • #
    10.12.20134 Кб73PUZIROK.PAS
  • #
    10.12.20131 Кб73VES.DAT