Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.00 KB | None | 0 0
  1. program lab9_10;
  2. uses crt, graph;
  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. procedure loadscrean;
  186. var
  187.   g, h, x, y, color: integer;
  188. begin
  189.     g := detect;
  190.     initgraph(g, h, 'C:/TPWDB/BGI');
  191.    
  192.     color := 8;
  193.    
  194.     for  x := 2 to 10 do
  195.     begin
  196.         setcolor(color);
  197.         setfillstyle(1, color);
  198.         line(40 + 40 * x, 40, 80 + 40 * x, 40);
  199.         line(80 + 40 * x, 40, 80 + 40 * x, 80);
  200.         line(80 + 40 * x, 80, 40 + 40 * x, 80);
  201.         line(40 + 40 * x, 80, 40 + 40 * x, 40);
  202.         floodfill(40 + 1 + 40 * x, 40 + 1  + 40 * x, color);
  203.        
  204.         if color = 8 then color := 15 else color := 8;
  205.     end;
  206.    
  207.     cleardevice;
  208.     setbkcolor(7);
  209.     setcolor(1);
  210.     settextstyle(0,0,2);
  211.     outtextxy(229, 30, 'DB Runners');
  212.     setcolor(4);
  213.     settextstyle(0, 0, 2);
  214.     outtextxy(30, 450, 'Pavel Konin A.');
  215.     settextstyle(0, 0, 2);
  216.     outtextxy(370, 450, 'Group number 2');
  217.  
  218.     setcolor(15);
  219.     setfillstyle(1, 15);
  220.     line(100, 100, 500, 100);
  221.     line(500, 100, 500, 199);
  222.     line(500, 199, 100, 199);
  223.     line(100, 199, 100, 100);
  224.     floodfill(150, 150, 15);
  225.    
  226.     setcolor(8);
  227.     setfillstyle(1, 8);
  228.     line(100, 200, 120, 200);
  229.     line(120, 200, 120, 400);
  230.     line(120, 400, 100, 400);
  231.     line(100, 400, 100, 200);
  232.     floodfill(110, 210, 8);
  233.    
  234.     setcolor(8);
  235.     setfillstyle(1, 8);
  236.     line(480, 200, 500, 200);
  237.     line(500, 200, 500, 400);
  238.     line(500, 400, 480, 400);
  239.     line(480, 400, 480, 200);
  240.     floodfill(490, 210, 8);
  241.     floodfill(490, 210, 8);
  242.    
  243.     settextstyle(0, 0, 5);
  244.     outtextxy(150, 135, 'THE END!');
  245.    
  246.     readkey;
  247.    
  248.     closegraph;
  249. end;
  250.  
  251. begin
  252.     loadscrean;
  253.  
  254.     enterfilename;
  255.  
  256.     main:
  257.  
  258.     setwindowstyles;
  259.  
  260.     writetowindow(3, 1, 'i - input');
  261.     writetowindow(34, 1, 'o - output');
  262.     writetowindow(66, 1, 'esc - exit');
  263.  
  264.     repeat
  265.         select_char := readkey;
  266.    
  267.         case select_char of
  268.             #105: begin
  269.                 input;
  270.                
  271.                 writetofile;
  272.                
  273.                 clrscr;
  274.                 goto main;
  275.             end;
  276.             #111: begin
  277.                 readfromfile;
  278.            
  279.                 output;
  280.                
  281.                 clrscr;
  282.                 goto main;
  283.             end;
  284.         end;
  285.     until select_char = #27;
  286.  
  287.     clrscr;
  288. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement