Программа формирования базы данных о вступительных экзаменах
Категория: Delphi/Pascal
2012-01-28 17:56:48
Опишите, используя структуру записи, вступительные экзамены на которых абитуриенты сдавали три экзамена, а для поступления надо было набрать 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.
Поделиться: