Программа формирования базы данных о вступительных экзаменах

Опишите, используя структуру записи, вступительные экзамены на которых абитуриенты сдавали три экзамена, а для поступления надо было набрать 12 балов. Составьте программу, считывающую с файла результаты всех вступительных экзаменов и выводящую на экран следующую информацию:
1.список абитуриентов, сдавших все три экзамена на 5;
2.список абитуриентов, потерпевших неудачу на экзаменах;
3.список абитуриентов, зачисленных в институт.

Пример 1 записи входного файла «db.txt»:
Sergeeva
4
4
4

code: #pascal
Program PascalGuru;
uses crt;
type all=    record
              fio:string;
              oc1:real;
              oc2:real;
              oc3:real;
             end;
 
var f:text;
    db:array[1..26] of all;
    i:integer;
    n:integer;
 
procedure menu; forward;
 
procedure vyvod;
var i:integer;
begin
clrscr;
for i:=1 to n do
writeln(db[i].fio:15,'- ',': ',db[i].oc1:0:2,'; ',db[i].oc2:0:2,'; ',db[i].oc3:0:2);
 
readln; menu; end;
{}
procedure menu1;
var i:integer;
begin
clrscr;
for i:=1 to n do begin
                 if (db[i].oc1=5) and (db[i].oc2=5) and (db[i].oc3=5) then
                 writeln(db[i].fio:15,'- ',': ',db[i].oc1:0:2,'; ',db[i].oc2:0:2,'; ',db[i].oc3:0:2);
                 end;
readln; menu; end;
{}
procedure menu2;
var i:integer;
begin
clrscr;
for i:=1 to n do begin
                 if (db[i].oc1+db[i].oc2+db[i].oc3)<12 then
                 writeln(db[i].fio:15,'- ',': ',db[i].oc1:0:2,'; ',db[i].oc2:0:2,'; ',db[i].oc3:0:2);
                 end;
readln; menu; end;
{}
procedure menu3;
var i:integer;
begin
clrscr;
for i:=1 to n do begin
                 if (db[i].oc1+db[i].oc2+db[i].oc3)>=12 then
                 writeln(db[i].fio:15,'- ',': ',db[i].oc1:0:2,'; ',db[i].oc2:0:2,'; ',db[i].oc3:0:2);
                 end;
readln; menu; end;
{0000000000000000000}
procedure menu;
var i:integer;
begin
clrscr;
writeln('Rabota s "db.txt"');
writeln;
writeln('1. spisok abiturientov, sdavshih vse tri ekzamena na 5;');
writeln;
writeln('2. spisok abiturientov, poterpevshih neudachu na ekzamenah;');
writeln;
writeln('3. spisok abiturientov, zachislennyh v institut.');
writeln;  writeln; writeln;
writeln('4. Vyvesti spisok VSEX uchenikov iz bazy!!!');
readln(i);
if i=1 then menu1;
if i=2 then menu2;
if i=3 then menu3;
if i=4 then vyvod;
end;
{-----------------begin----------------------}
begin
assign (f,'db.txt' ); reset (f);
  i:=0;
while not eof(f) do begin
inc(i);
readln(f,db[i].fio);
readln(f,db[i].oc1);
readln(f,db[i].oc2);
readln(f,db[i].oc3);
end;  n:=i;
{-----------------------}
menu;
 
close(f);
end.      
Поделиться:

Похожие статьи: