
24.08.2008, 18:24
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
С нами:
9905879
Репутация:
337
|
|
LoneWolf666 делал как то подобие такой проги, только без добавления процентов к стипендии. Здесь процент успеваемости студентов... А так всё тоже самое, 15 минут его покавырять и всё =)
Код:
uses crt;
type studrec=record
group: byte;
surname: string[20];
name: string[20];
oc: array[1..3]of 2..5;
end;
foolsrec=record
group: byte;
surname: string[20];
name: string[20];
average: real;
end;
file_typ1 = file of studrec; file_typ2 = file of foolsrec;
var f1: file_typ1; f2: file_typ2;
namefile1, namefile2: string[12];
s: studrec; fs: foolsrec;
i,nomrec: integer;
procedure read_data(var s: studrec);
begin
with s do
begin
writeln('Okonchanie vvoda - 0, kak n gruppi');
write('N gruppi: '); readln(group);
if group<>0 then
begin
write('Familia: '); readln(surname);
write('Imia: '); readln(name);
writeln('Ocenki: '); for i:=1 to 3 do read(oc[i]);
end;
end;
end;
procedure copy_data(s: studrec; var fs: foolsrec);
begin
with fs do
begin
group:=s.group; surname:=s.surname; name:=s.name;
average:=(s.oc[1]+s.oc[2]+s.oc[3])/3;
end;
end;
procedure write_list(var f: file_typ2);
begin
reset(f); seek(f,0);
writeln('Ploho uchashiesia: ');
writeln('Gruppa','Familia':16,'Imia':8,'Sredniy bal':18);
while not eof(f) do
begin
read(f,fs);
with fs do writeln(group:4,surname:15,name:10,average:16:2);
end;
end;
procedure create_file(var f: file_typ1; var n: integer);
begin
n:=0; rewrite(f); read_data(s);
while s.group<>0 do
begin
write(f,s); inc(n);
read_data(s);
end;
close(f);
end;
procedure write_data(var f1: file_typ1; var f2: file_typ2; n: integer);
var priz: char; k: integer;
begin
reset(f1); rewrite(f2); k:=0;
while not eof(f2) do
begin
read(f1,s);
priz:='n';
for i:=1 to 3 do if (s.oc[i]>=2) and (s.oc[i]<=3) then
priz:='y';
if priz='y' then
begin copy_data(s,fs); write(f2,fs) end
else inc(k);
end;
close(f1); close(f2);
clrscr; writeln('Na "4" i "5" uchatsia ',k/n*100:3:0,'% studentov');
end;
begin
write('Vvedite imia faila obshey vedomosti: '); readln(namefile1);
assign(f1,namefile1);
create_file(f1,nomrec);
write('Vvedite imia faila vedomosti zadolzhnikov: ');
readln(namefile2);
assign(f2,namefile2);
write_data(f1,f2,nomrec);
write_list(f2);
end.
|
|
|