Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.59 KB | None | 0 0
  1. program lab9_10;
  2. uses crt;
  3.  
  4. label main;
  5.  
  6. type
  7. student = record
  8.     name: string[64];
  9.     result: integer;
  10.     group_number: integer;
  11.     count_students: integer;
  12. end;
  13.  
  14. var
  15.     file_name: string;
  16.     file_object: file of student;
  17.    
  18.     select_char: char;
  19.    
  20.     group_number: integer;
  21.     count_students: integer;
  22.     students: array [1..64] of student;
  23.  
  24. procedure setwindowstyles;
  25. begin
  26.     clrscr;
  27.     textbackground(7);
  28.     clrscr;
  29.     window(1,1,80,1);
  30.     textbackground(3);
  31.     clrscr;
  32.     textcolor(0);
  33.     clrscr;
  34. end;
  35.  
  36. procedure writetowindow(x, y: integer; text: string);
  37. begin
  38.     gotoxy(x,y);
  39.     write(text);
  40. end;
  41.  
  42. procedure enterfilename;
  43. begin
  44.     clrscr;
  45.     window(2,1,79,25);
  46.     textbackground(7);
  47.     textcolor(5);
  48.     clrscr;
  49.    
  50.     write('Enter file name: ');
  51.     readln(file_name);
  52. end;
  53.  
  54. procedure writetofile;
  55. var
  56.     i: integer;
  57. begin
  58.     assign(file_object, file_name);
  59.     rewrite(file_object);
  60.    
  61.     for i := 1 to count_students do
  62.     begin
  63.         students[i].group_number := group_number;
  64.         students[i].count_students := count_students;
  65.  
  66.         write(file_object, students[i]);
  67.     end;
  68.    
  69.     close(file_object);
  70. end;
  71.  
  72. procedure readfromfile;
  73. var
  74.     i: integer;
  75.     tmp: student;
  76. begin
  77.     assign(file_object, file_name);
  78.     reset(file_object);
  79.    
  80.     i := 1;
  81.    
  82.     repeat
  83.         read(file_object, tmp);
  84.        
  85.         students[i].name := tmp.name;
  86.         students[i].result := tmp.result;
  87.         students[i].group_number := tmp.group_number;
  88.         students[i].count_students := tmp.count_students;
  89.        
  90.         group_number := tmp.group_number;
  91.         count_students := tmp.count_students;
  92.        
  93.         i := i + 1;
  94.     until EOF(file_object);
  95.    
  96.     close(file_object);
  97. end;
  98.  
  99. procedure input;
  100. var
  101.     i: integer;
  102. begin
  103.     clrscr;
  104.     window(2,1,79,25);
  105.     textbackground(7);
  106.     textcolor(5);
  107.     clrscr;
  108.    
  109.     write('Enter group number: ');
  110.     readln(group_number);
  111.    
  112.     write('Ender number of students: ');
  113.     readln(count_students);
  114.    
  115.     for i := 1 to count_students do
  116.     begin
  117.         write('Enter full name: ');
  118.         readln(students[i].name);
  119.        
  120.         write('Enter time in seconds: ');
  121.         readln(students[i].result);
  122.     end;
  123. end;
  124.  
  125. procedure output;
  126. var
  127.     i: integer;
  128.     average: real;
  129. begin
  130.     clrscr;
  131.     window(1, 1, 79, 25);
  132.     textbackground(3);
  133.     textcolor(0);
  134.     clrscr;
  135.    
  136.     gotoxy(20,1);
  137.     write('running results for 100m of group number ', group_number, '.');
  138.    
  139.     window(3, 3, 78, 23);
  140.     textbackground(7);
  141.     textcolor(0);
  142.    
  143.     clrscr;
  144.     writetowindow(2, 1, '#');
  145.     writetowindow(5, 1, 'Student full name');
  146.     writetowindow(47, 1, 'Time in sec');
  147.    
  148.     for i := 1 to count_students do
  149.     begin
  150.         gotoxy(2, 2 + i);
  151.         write(i, '.');
  152.        
  153.         gotoxy(5, 2 + i);
  154.         write(students[i].name);
  155.        
  156.         gotoxy(50, 2 + i);
  157.         write(students[i].result);
  158.     end;
  159.    
  160.     gotoxy(20, 4 + count_students);
  161.     textcolor(0 + 128);
  162.    
  163.     average := 0;
  164.    
  165.     for i := 1 to count_students do
  166.     begin
  167.         average := average + students[i].result;
  168.     end;
  169.  
  170.     if (count_students <> 0) then average := average / count_students;
  171.    
  172.     writeln('average time of students: ', average:4:2, ' sec.');
  173.    
  174.     repeat
  175.         window(24, 20, 56, 20);
  176.         textbackground(9);
  177.         clrscr;
  178.         i := random(10) + 1;
  179.         textcolor(i);
  180.         write('  GOOD LUCK IN COMPETITIONS !!!');
  181.         delay(10);
  182.     until keypressed;
  183. end;
  184.  
  185. begin
  186.     enterfilename;
  187.  
  188.     main:
  189.  
  190.     setwindowstyles;
  191.  
  192.     writetowindow(3, 1, 'i - input');
  193.     writetowindow(34, 1, 'o - output');
  194.     writetowindow(66, 1, 'esc - exit');
  195.  
  196.     repeat
  197.         select_char := readkey;
  198.    
  199.         case select_char of
  200.             #105: begin
  201.                 input;
  202.                
  203.                 writetofile;
  204.                
  205.                 clrscr;
  206.                 goto main;
  207.             end;
  208.             #111: begin
  209.                 readfromfile;
  210.            
  211.                 output;
  212.                
  213.                 clrscr;
  214.                 goto main;
  215.             end;
  216.         end;
  217.     until select_char = #27;
  218.  
  219.     clrscr;
  220. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement