Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses crt;
- type abbit=record
- surname,country:string[15];
- math,phys,russ:byte;
- sex,entrant:boolean;
- end;
- var i,vybor,counter,found:integer;
- baza:file of abbit;
- rec:abbit;
- const punkty:array[1..6] of string=('1) Create baza','2) Add new records',
- '3) Show all records','4) Total scores','5) Statistics','6) Exit');
- minimum=150;
- procedure zastavka;
- begin
- clrscr;
- gotoxy(36,12);
- write('Cource work');
- gotoxy(32,14);
- write('Medvedeva Anastasia');
- readkey;
- end;
- procedure menu(var punkt:integer);
- var i:integer;
- begin clrscr;
- for i:=1 to 6 do begin
- writeln(punkty[i]);
- end;
- writeln;
- write('Enter number: ');
- readln(punkt);
- end;
- procedure sozdanie;
- var temp:string[1];
- begin
- clrscr;
- writeln('Enter data for abbiturient №1:');
- with rec do begin
- write('Surname:');readln(surname);
- write('Math grade:');readln(math);
- write('Physics grade:');readln(phys);
- write('Russian language grade:');readln(russ);
- repeat
- write('Sex (m=male,f=female):');readln(temp);
- if temp='f' then
- sex:=false
- else
- if temp='m' then
- sex:=true
- else begin
- textcolor(lightred);
- gotoxy(23,wherey-1);
- write(' Error: value is incorrect! Repeat entry.');
- textcolor(7);
- gotoxy(1,wherey)
- end;
- until (temp='f') or (temp='m');
- repeat
- write('Out-of-town: (y=true,n=false):');readln(temp);
- if temp='n' then
- entrant:=false
- else
- if temp='y' then
- entrant:=true
- else begin
- textcolor(lightred);
- gotoxy(31,wherey-1);
- write(' Error: value is incorrect! Repeat entry.');
- textcolor(7);
- gotoxy(1,wherey)
- end;
- until (temp='y') or (temp='n');
- write('Country:');readln(country);
- end;
- rewrite(baza);
- write(baza,rec);
- close(baza);
- writeln;
- write('Database is successfully created and the first record is added.');
- readkey;
- end;
- procedure dobavlenie;
- var escape,temp:char;
- begin
- reset(baza);
- counter:=Filesize(baza);
- Seek(baza, counter);
- repeat
- clrscr;
- writeln('Enter data for abbiturient №',counter+1,':');
- with rec do begin
- write('Surname:');readln(surname);
- write('Math grade:');readln(math);
- write('Physics grade:');readln(phys);
- write('Russian language grade:');readln(russ);
- repeat
- write('Sex (m=male,f=female):');readln(temp);
- if temp='f' then
- sex:=false
- else
- if temp='m' then
- sex:=true
- else begin
- textcolor(lightred);
- gotoxy(23,wherey-1);
- write(' Error: value is incorrect! Repeat entry.');
- textcolor(7);
- gotoxy(1,wherey)
- end;
- until (temp='f') or (temp='m');
- repeat
- write('Out-of-town: (y=true,n=false):');readln(temp);
- if temp='n' then
- entrant:=false
- else
- if temp='y' then
- entrant:=true
- else begin
- textcolor(lightred);
- gotoxy(31,wherey-1);
- write(' Error: value is incorrect! Repeat entry.');
- textcolor(7);
- gotoxy(1,wherey)
- end;
- until (temp='y') or (temp='n');
- write('Country:');readln(country);
- end;
- inc(counter);
- write(baza,rec);
- writeln;
- write(' Enter 0 to exit or any key continiue:');readln(escape);
- until escape='0';
- close(baza);
- end;
- procedure vyvod;
- begin
- clrscr;
- reset(baza);
- writeln('Surname Sex Math Phys Russ City Country');
- writeln('---------------------------------------------------');
- for i:=1 to filesize(baza) do begin
- read(baza,rec);
- with rec do begin
- write(surname);
- gotoxy(16,wherey); if sex=true then write('male') else write('female');
- gotoxy(24,wherey);write(math);
- gotoxy(28,wherey);write(phys);
- gotoxy(33,wherey);write(russ);
- gotoxy(38,wherey); if entrant=true then write('other') else write('SpB');
- gotoxy(45,wherey);writeln(country);
- end;
- end;
- if filesize(baza)=0 then write('The database is empty!');
- readkey;
- end;
- procedure sum;
- begin
- clrscr;
- reset(baza);
- counter:=filesize(baza);
- if counter=0 then begin write('Database is empty!'); readkey; exit; end;
- writeln('Surname Total score');
- writeln('--------------------------');
- for i:=1 to counter do begin
- read(baza,rec);
- with rec do begin
- write(surname);
- gotoxy(16,wherey);
- writeln(math+phys+russ);
- end;
- end;
- readkey;
- end;
- procedure stats;
- var male,female,CIS,Russia,hostel:integer;
- begin
- clrscr;
- reset(baza);
- counter:=filesize(baza);
- if counter=0 then begin write('Database is empty!'); readkey; exit; end;
- found:=0;male:=0; female:=0; CIS:=0; Russia:=0; hostel:=0;
- for i:=1 to counter do begin
- read(baza,rec);
- with rec do
- if math+phys+russ>=minimum then begin
- inc(found);
- if sex=true then inc(male) else inc(female);
- if (country='Armenia') or (country='Azerbaijan') or (country='Belarus')
- or (country='Kazakhstan') or (country='Kyrgyzstan') or (country='Moldova')
- or (country='Russia') or (country='Tajikistan') or (country='Turkmenistan')
- or (country='Ukraine') or (country='Uzbekistan') then inc(CIS);
- if country='Russia' then inc(Russia);
- if entrant=true then inc(hostel);
- end;
- end;
- writeln('Total ',found,' abbiturient(s) with total score >150.');
- writeln(male,' abbiturient(s) are male, ', female,' are female.');
- writeln(CIS,' abbiturient(s) are from CIS, including ', Russia,' from Russia. ',found-CIS,' are foreigners.');
- writeln(hostel,' abbiturient(s) need hostel.');
- readkey;
- end;
- begin clrscr;
- zastavka;
- assign(baza,'file.dat');
- repeat
- menu(vybor);
- case vybor of
- 1:sozdanie;
- 2:dobavlenie;
- 3:vyvod;
- 4:sum;
- 5:stats;
- 0:exit;
- 6:exit;
- end;
- until (vybor=0) or (vybor=6);
- readkey;
- end.
Advertisement
Add Comment
Please, Sign In to add comment