Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
48
Добавлен:
10.12.2013
Размер:
3.66 Кб
Скачать
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 Кб48database.dat
  • #
    10.12.20131 Кб48FAM.DAT
  • #
    10.12.20131 Кб48KOLZUB.DAT
  • #
    10.12.20131 Кб49NAME.DAT
  • #
    10.12.20131 Кб48OTCH.DAT
  • #
    10.12.20133.66 Кб48PUZIROK.PAS
  • #
    10.12.20131 Кб48VES.DAT