{

        általános rutinok az osszFok.pas programhoz:

}

  Const CrLf=#13#10;

 

  Var   sor:Byte;

        fnev:String;

 

  Function SokJel(Const jel:Char; db:Byte):String;

    Var i:Byte;

        s:String;

  Begin

    s:=''; For i:=1 to db do s:=s+jel;

    SokJel:=s

  End;

 

  Function Kozepre(Const s:String; h:Byte):String;

  Begin

    Kozepre:=Copy(SokJel(' ',(h-Length(s)) Div 2)

                  +s+

                  SokJel(' ',(h-Length(s)) Div 2)+'  ',1,h)

  End;

 

  Procedure BillreVar;

    Var c:Char;

  Begin

    c:=ReadKey

  End;

 

  Procedure Lapoz;

  Begin

    ClrScr;

    HighVideo;

    Writeln(' ',Kozepre('név',nevH),'-',Kozepre('cím',cimH),'-',

            Kozepre('tel.',telH),'-',Kozepre('fizu.',fizuH));

    Writeln(SokJel('-',szintKodH+nevH+1+cimH+1+TelH+1+fizuH));

    NormVideo;

    sor:=0;

  End;

 

  Procedure ElemKi(Const e:TElem);

  Begin

    If sor=LapHossz then

    Begin

      BillreVar; Lapoz;

    End;

    If e.szintKod=Dolgozo then

    Begin

      Writeln(KSzint[e.szintKod],e.nev:nevH,'-',e.cim:cimH,'-',

              e.tel:telH,'-',e.fiz);

    End

      else

    Begin

      HighVideo;

      Write(KSzint[e.szintKod],e.nev:nevH,'-',e.cim:cimH,'-',

            e.tel:telH,'-');

      If e.fiz<>0 then Writeln(e.fiz) else Writeln;

      NormVideo;

    End;

    Inc(sor);

  End;

 

  Procedure Inic;

  Begin

    fnev:=''; Lapoz;

  End;

{

        Alap file-kezelô rutinok:

}

  Procedure Megnyit(Var f:TFile; Const mire:TMegnyitasMod);

    Var hiba:Boolean;

        sz:String;

  Begin

    Repeat

      {$i-}

      Writeln('File-név (Enter=>előzőleg megnyitott file):');

      Readln(sz);

      hiba:=False;

      If sz<>'' then fnev:=sz;

      If mire=Olvasas then

      Begin

        Assign(f,fnev); Reset(f);

        If IOResult<>0 then

        Begin

          hiba:=True; Writeln('File-megnyitási hiba!!!');

        End;

      end

        else

      Begin

        Assign(f,fnev); Rewrite(f);

      End;

    Until not hiba and (fnev<>'');

    {$i+}

  End;

 

  Procedure Lezar(Var f:TFile);

  Begin

    Close(f)

  End;

{

        Generáló rutinok:

}

  Procedure General(Var f:TFile);

    Var  elem:TElem;

 

    Procedure DolgozotGeneral(Var d:TElem);

      Const MinFizu=20000;

    Begin

      d.szintkod:=Dolgozo;

      d.nev:=RandomNev; d.cim:=RandomCim; d.tel:=RandomTel;

      d.fiz:=MinFizu+3000*Trunc(1.0*Random(MinFizu Div 1000));

    End;{DolgozotGeneral}

 

    Procedure TanszeketGeneral(Const tsz:String; Var elem:TElem);

      Var  i,Db:Word;

    Begin

      elem.szintkod:=Tanszek;

      elem.nev:=tsz; elem.cim:=RandomCim; elem.tel:=RandomTel; elem.fiz:=0;

      Write(f,elem);

      Db:=Random(5)+5; {egy tanszék létszáma}

      For i:=1 to Db do

      Begin

        DolgozotGeneral(elem);

        Write(f,elem)

      End;

    End;{TanszeketGeneral}

 

  Begin {General}

   {egyetem:}

    elem.szintkod:=Egyetem;

    elem.nev:='ELTE'; elem.cim:=RandomCim; elem.tel:=RandomTel;

    Write(f,elem);

   {Egy kar:}

    elem.szintkod:=Kar;

    elem.nev:='TTK'; elem.cim:=RandomCim; elem.tel:=RandomTel; elem.fiz:=0;

    Write(f,elem);

   {Egy tanszék:}

    TanszeketGeneral('Informatika Szakmódszertani',elem);

   {Egy tanszék:}

    TanszeketGeneral('Numerikus analízis',elem);

   {Egy tanszék:}

    TanszeketGeneral('Számítástudományi',elem);

   {Egy tanszék:}

    TanszeketGeneral('Analízis',elem);

   {Egy tanszék:}

    TanszeketGeneral('Algebra',elem);

   {Egy tanszék:}

    TanszeketGeneral('Elméleti fizika',elem);

   {Egy kar:}

    elem.szintkod:=Kar;

    elem.nev:='BTK'; elem.cim:=RandomCim; elem.tel:=RandomTel; elem.fiz:=0;

    Write(f,elem);

   {Egy tanszék:}

    TanszeketGeneral('Angol',elem);

   {Egy tanszék:}

    TanszeketGeneral('Keleti nyelvek',elem);

   {Egy tanszék:}

    TanszeketGeneral('Hungarológia',elem);

   {Egy tanszék:}

    TanszeketGeneral('Filozófia',elem);

  End; {General}