Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.34 KB | None | 0 0
  1. Type
  2.         TipStudent = record
  3.         Ime : string [25];
  4.         EGN : string [10];
  5.         Fn : string[6];
  6.         Ocenki : array[1..10] of Real;
  7.         SrUspeh : real;
  8.         End;
  9.  
  10. //sazdavane na FL i promenliva student : TipStudent
  11. Var FL : file of TipStudent;
  12.         ImeFL : string[20];
  13.         Student : TipStudent;
  14.         C : byte; {*}
  15.         i : integer;
  16.         Sum: real;
  17.         Ch : char; {*}
  18.  
  19. //procedura za sazdavane na nov fail
  20. Procedure CreateFile;
  21. Begin
  22. Rewrite(FL);Close(FL);
  23. writeln();
  24. readln(imeFL);
  25. writeln;
  26. Writeln('Failut e sazdaden.');
  27. End;
  28.  
  29. //funkciq za izchislqvane na sredniq uspeh na vseki edin ot studentite
  30. Function Uspeh : Real;
  31.     Begin
  32. With student do Begin
  33.     Sum:=0;
  34.       For i:=1 to 10 do begin
  35. Sum:=Sum+Ocenki[i];
  36. end;            End;
  37.      Uspeh:=Sum/10
  38. End;
  39.  
  40. //Procedure za vuvejdane na dannite za edin student
  41. Procedure ReadStudent;
  42. Begin
  43.         With Student do
  44.         Begin
  45.         WriteLn(' ':30,'Vuvedete imeto : ');Readln(Ime);
  46.         WriteLn(' ':30,'Vuvedete EGN: ' );Readln(EGN);
  47.         WriteLn(' ':30,'Vuvedete FN: ' );Readln(FN);
  48.         WriteLn(' ':30,'Vuvedete ocenkite po 10 disciplini: ' );
  49.         for i:=1 to 10 do begin
  50.       Writeln('Vuvedete ocenka za ' ,i, ' - tata disciplina');
  51.           Readln(Ocenki[i]);
  52.                 end;
  53.         Student.SrUspeh := Uspeh;{*}
  54.         End
  55. End;
  56.  
  57. //Procedure za izvejdane dannite na edin student
  58. Procedure WriteStudent;
  59. Begin
  60.         With Student do Writeln ('Ime : ',Ime, '':21-Length(Ime)
  61.         , 'EGN : ', EGN, ' FN : ',fn,' Sreden Uspeh : ',SrUspeh:2:3);
  62.     for i:=1 to 10 do begin
  63.       Writeln('ocenka za ',i,' - tata disciplina ',Student.Ocenki[i]:3:1);
  64.                 end;
  65.  
  66. End;
  67.  
  68. //Procedure za dobavqne na komponenti kam faila
  69. Procedure Dobaviane;
  70. {Var NomEL: integer;}
  71. Begin
  72. Reset (FL);
  73. Repeat
  74. Seek(FL,FileSize(FL));
  75. ReadStudent; Write(FL,Student);
  76. Writeln('Shte produljite li vuvejdaneto? '); readln(Ch);
  77. Until Ch in ['N','n'];
  78. Close(FL);
  79. end;
  80.  
  81. //Procedure za iztrivane na komponenta
  82. Procedure Iztrivane;
  83. //Pomoshten file nujen  za iztrivaneto
  84. Var DeLFL: file of TipStudent;
  85.         EGN : string[10];//EGN za iztrivane
  86.         Begin
  87.         Write('Vuvedete EGN : ');Readln(EGN);
  88.         Reset(FL);
  89.         Assign (DeLFL, 'DeL');Rewrite(DeLFL);
  90.         While not EOF (FL) do
  91.         Begin
  92.         Read(FL,Student);
  93.         If Student.EGN<>EGN
  94.                 then Write(DeLFL,Student)
  95.                 else Writeln('Dannite za lice s EGN ',EGN,' sa iztriti.');
  96.         End;
  97. close(FL);Close(DeLFL);
  98. Erase(FL);Rename(DeLFL,ImeFL);
  99. writeln;
  100. End;
  101.  
  102.  
  103. // Function izchislqvane na sreden uspeh na vseki edin ot studenti
  104.  
  105.  
  106. //Procedura broi dvoiki
  107.  
  108.  
  109. //procedura za izvejdane na mujete s povveche ot 5 dvoiki
  110. Procedure Men;
  111. var br: integer;
  112.         pol,gr:byte;
  113.         Begin
  114.         Reset (FL);
  115.         While not EOF (FL) do
  116.         With student do Begin
  117.         Read(FL,student);
  118.         Val(Copy(EGN,9,1),POL,gr);
  119.         if not (odd(pol)){(pol=0) or (pol=2) or (pol=6) or (pol=8)} then begin
  120.         br:=0;
  121.         for i:=1 to 10 do begin
  122.         if student.ocenki[i]=2 then begin
  123.         br:=br+1;end; end;
  124.         if br>5 then begin
  125.         writeln('Studentut s FN : ',FN, ' ima poveche ot 5 dvoiki! ');
  126.         End;
  127.                                End;
  128.                          End;
  129.         close(FL);
  130.         readln;
  131.         end;
  132.  
  133. //procedura spisak
  134. Procedure Spisak;
  135. Begin
  136.      reset(FL);
  137.     While not EOF(FL) do begin
  138.           With Student do begin
  139.           Read(FL,Student);
  140.           WriteStudent;
  141.           writeln();
  142.           end;
  143.     end;
  144.     close(FL);
  145. End;
  146.  
  147.  
  148. //glavna programa MENU
  149. BEGIN
  150.           Write('Zadaite ime na faila : ');Readln(ImeFL);
  151.   Assign(FL,ImeFL);
  152.   repeat
  153.        Writeln(' ':20,'MENU');
  154.        Writeln(' ':20,'Izberete opciq ot MENU-to po dolo');
  155.        Writeln(' ':30,'1 - Suzdavane na nov file');
  156.        Writeln(' ':30,'2 - Dobavqne na student');
  157.        Writeln(' ':30,'3 - Iztrivane na student');
  158.        Writeln(' ':30,'4 - Izvejdane na dannite na vsichki');
  159.        Writeln(' ':30,'5 - Izvejdane na FN na majete s poveche ot 5 dvoiki');
  160.        Writeln(' ':30,'0 - Izhod ot programata');
  161.        Readln(C);
  162.        Case C of
  163.   1 : CreateFile;
  164.   2 : Dobaviane;
  165.   3 : Iztrivane;
  166.   4 : Spisak;
  167.   5 : Men;
  168.   end
  169.   until c=0;
  170.   END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement