Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program lab9_10;
- uses crt;
- label main;
- type
- student = record
- name: string[64];
- result: integer;
- group_number: integer;
- count_students: integer;
- end;
- var
- file_name: string;
- file_object: file of student;
- select_char: char;
- group_number: integer;
- count_students: integer;
- students: array [1..64] of student;
- procedure setwindowstyles;
- begin
- clrscr;
- textbackground(7);
- clrscr;
- window(1,1,80,1);
- textbackground(3);
- clrscr;
- textcolor(0);
- clrscr;
- end;
- procedure writetowindow(x, y: integer; text: string);
- begin
- gotoxy(x,y);
- write(text);
- end;
- procedure enterfilename;
- begin
- clrscr;
- window(2,1,79,25);
- textbackground(7);
- textcolor(5);
- clrscr;
- write('Enter file name: ');
- readln(file_name);
- end;
- procedure writetofile;
- var
- i: integer;
- begin
- assign(file_object, file_name);
- rewrite(file_object);
- for i := 1 to count_students do
- begin
- students[i].group_number := group_number;
- students[i].count_students := count_students;
- write(file_object, students[i]);
- end;
- close(file_object);
- end;
- procedure readfromfile;
- var
- i: integer;
- tmp: student;
- begin
- assign(file_object, file_name);
- reset(file_object);
- i := 1;
- repeat
- read(file_object, tmp);
- students[i].name := tmp.name;
- students[i].result := tmp.result;
- students[i].group_number := tmp.group_number;
- students[i].count_students := tmp.count_students;
- group_number := tmp.group_number;
- count_students := tmp.count_students;
- i := i + 1;
- until EOF(file_object);
- close(file_object);
- end;
- procedure input;
- var
- i: integer;
- begin
- clrscr;
- window(2,1,79,25);
- textbackground(7);
- textcolor(5);
- clrscr;
- write('Enter group number: ');
- readln(group_number);
- write('Ender number of students: ');
- readln(count_students);
- for i := 1 to count_students do
- begin
- write('Enter full name: ');
- readln(students[i].name);
- write('Enter time in seconds: ');
- readln(students[i].result);
- end;
- end;
- procedure output;
- var
- i: integer;
- average: real;
- begin
- clrscr;
- window(1, 1, 79, 25);
- textbackground(3);
- textcolor(0);
- clrscr;
- gotoxy(20,1);
- write('running results for 100m of group number ', group_number, '.');
- window(3, 3, 78, 23);
- textbackground(7);
- textcolor(0);
- clrscr;
- writetowindow(2, 1, '#');
- writetowindow(5, 1, 'Student full name');
- writetowindow(47, 1, 'Time in sec');
- for i := 1 to count_students do
- begin
- gotoxy(2, 2 + i);
- write(i, '.');
- gotoxy(5, 2 + i);
- write(students[i].name);
- gotoxy(50, 2 + i);
- write(students[i].result);
- end;
- gotoxy(20, 4 + count_students);
- textcolor(0 + 128);
- average := 0;
- for i := 1 to count_students do
- begin
- average := average + students[i].result;
- end;
- if (count_students <> 0) then average := average / count_students;
- writeln('average time of students: ', average:4:2, ' sec.');
- repeat
- window(24, 20, 56, 20);
- textbackground(9);
- clrscr;
- i := random(10) + 1;
- textcolor(i);
- write(' GOOD LUCK IN COMPETITIONS !!!');
- delay(10);
- until keypressed;
- end;
- begin
- enterfilename;
- main:
- setwindowstyles;
- writetowindow(3, 1, 'i - input');
- writetowindow(34, 1, 'o - output');
- writetowindow(66, 1, 'esc - exit');
- repeat
- select_char := readkey;
- case select_char of
- #105: begin
- input;
- writetofile;
- clrscr;
- goto main;
- end;
- #111: begin
- readfromfile;
- output;
- clrscr;
- goto main;
- end;
- end;
- until select_char = #27;
- clrscr;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement