Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Type
- TipStudent = record
- Ime : string [25];
- EGN : string [10];
- Fn : string[6];
- Ocenki : array[1..10] of Real;
- SrUspeh : real;
- End;
- //sazdavane na FL i promenliva student : TipStudent
- Var FL : file of TipStudent;
- ImeFL : string[20];
- Student : TipStudent;
- C : byte; {*}
- i : integer;
- Sum: real;
- Ch : char; {*}
- //procedura za sazdavane na nov fail
- Procedure CreateFile;
- Begin
- Rewrite(FL);Close(FL);
- writeln();
- readln(imeFL);
- writeln;
- Writeln('Failut e sazdaden.');
- End;
- //funkciq za izchislqvane na sredniq uspeh na vseki edin ot studentite
- Function Uspeh : Real;
- Begin
- With student do Begin
- Sum:=0;
- For i:=1 to 10 do begin
- Sum:=Sum+Ocenki[i];
- end; End;
- Uspeh:=Sum/10
- End;
- //Procedure za vuvejdane na dannite za edin student
- Procedure ReadStudent;
- Begin
- With Student do
- Begin
- WriteLn(' ':30,'Vuvedete imeto : ');Readln(Ime);
- WriteLn(' ':30,'Vuvedete EGN: ' );Readln(EGN);
- WriteLn(' ':30,'Vuvedete FN: ' );Readln(FN);
- WriteLn(' ':30,'Vuvedete ocenkite po 10 disciplini: ' );
- for i:=1 to 10 do begin
- Writeln('Vuvedete ocenka za ' ,i, ' - tata disciplina');
- Readln(Ocenki[i]);
- end;
- Student.SrUspeh := Uspeh;{*}
- End
- End;
- //Procedure za izvejdane dannite na edin student
- Procedure WriteStudent;
- Begin
- With Student do Writeln ('Ime : ',Ime, '':21-Length(Ime)
- , 'EGN : ', EGN, ' FN : ',fn,' Sreden Uspeh : ',SrUspeh:2:3);
- for i:=1 to 10 do begin
- Writeln('ocenka za ',i,' - tata disciplina ',Student.Ocenki[i]:3:1);
- end;
- End;
- //Procedure za dobavqne na komponenti kam faila
- Procedure Dobaviane;
- {Var NomEL: integer;}
- Begin
- Reset (FL);
- Repeat
- Seek(FL,FileSize(FL));
- ReadStudent; Write(FL,Student);
- Writeln('Shte produljite li vuvejdaneto? '); readln(Ch);
- Until Ch in ['N','n'];
- Close(FL);
- end;
- //Procedure za iztrivane na komponenta
- Procedure Iztrivane;
- //Pomoshten file nujen za iztrivaneto
- Var DeLFL: file of TipStudent;
- EGN : string[10];//EGN za iztrivane
- Begin
- Write('Vuvedete EGN : ');Readln(EGN);
- Reset(FL);
- Assign (DeLFL, 'DeL');Rewrite(DeLFL);
- While not EOF (FL) do
- Begin
- Read(FL,Student);
- If Student.EGN<>EGN
- then Write(DeLFL,Student)
- else Writeln('Dannite za lice s EGN ',EGN,' sa iztriti.');
- End;
- close(FL);Close(DeLFL);
- Erase(FL);Rename(DeLFL,ImeFL);
- writeln;
- End;
- // Function izchislqvane na sreden uspeh na vseki edin ot studenti
- //Procedura broi dvoiki
- //procedura za izvejdane na mujete s povveche ot 5 dvoiki
- Procedure Men;
- var br: integer;
- pol,gr:byte;
- Begin
- Reset (FL);
- While not EOF (FL) do
- With student do Begin
- Read(FL,student);
- Val(Copy(EGN,9,1),POL,gr);
- if not (odd(pol)){(pol=0) or (pol=2) or (pol=6) or (pol=8)} then begin
- br:=0;
- for i:=1 to 10 do begin
- if student.ocenki[i]=2 then begin
- br:=br+1;end; end;
- if br>5 then begin
- writeln('Studentut s FN : ',FN, ' ima poveche ot 5 dvoiki! ');
- End;
- End;
- End;
- close(FL);
- readln;
- end;
- //procedura spisak
- Procedure Spisak;
- Begin
- reset(FL);
- While not EOF(FL) do begin
- With Student do begin
- Read(FL,Student);
- WriteStudent;
- writeln();
- end;
- end;
- close(FL);
- End;
- //glavna programa MENU
- BEGIN
- Write('Zadaite ime na faila : ');Readln(ImeFL);
- Assign(FL,ImeFL);
- repeat
- Writeln(' ':20,'MENU');
- Writeln(' ':20,'Izberete opciq ot MENU-to po dolo');
- Writeln(' ':30,'1 - Suzdavane na nov file');
- Writeln(' ':30,'2 - Dobavqne na student');
- Writeln(' ':30,'3 - Iztrivane na student');
- Writeln(' ':30,'4 - Izvejdane na dannite na vsichki');
- Writeln(' ':30,'5 - Izvejdane na FN na majete s poveche ot 5 dvoiki');
- Writeln(' ':30,'0 - Izhod ot programata');
- Readln(C);
- Case C of
- 1 : CreateFile;
- 2 : Dobaviane;
- 3 : Iztrivane;
- 4 : Spisak;
- 5 : Men;
- end
- until c=0;
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement