Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 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