Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- JEDNOTKA:
- unit unit_bank;
- {$mode objfpc}{$H+}
- interface
- type ZAZNAM = record CISLO: word;
- JMENO: string[100];
- STAV: integer;
- end;
- SOUBOR = file of ZAZNAM;
- UCET = packed object
- PRIVATE
- HELP:ZAZNAM;
- PUBLIC
- S:SOUBOR;
- procedure NOVY;
- procedure VLOZ;
- procedure VYBER;
- function ZRUSIT: boolean;
- procedure VYBRATUCET;
- function NABIDKA:boolean;
- procedure ZAPSAT;
- end;
- function vicjaknula(x: integer): boolean;
- implementation
- procedure UCET.NOVY;
- begin
- write('Jmeno majitele: '); readln(HELP.JMENO);
- write('Cislo uctu: '); readln(HELP.CISLO);
- write('Pocatecni castka: '); readln(HELP.STAV);
- seek(S,filesize(S));
- write(S,HELP);
- help.cislo:=high(word); help.STAV:=low(integer); help.JMENO:=' ';
- write(S,HELP);
- end;
- function vicjaknula(x: integer): boolean;
- begin
- if x>0 then result:=true
- else result:=false
- end;
- procedure UCET.VYBRATUCET;
- var A: word; C: ZAZNAM; ok: boolean;
- begin
- write('Napiste cislo uctu: '); readln(A);
- ok:=false;
- while (filepos(S)<>(filesize(S)-1)) or OK do
- begin
- read(S, C);
- if C.CISLO = A then OK:=true
- end;
- if not(OK) then write('Ucet nebyl nalezen.')
- else
- begin
- seek(S,filepos(S)-1);
- read(S,HELP);
- seek(S,filepos(S)-1);
- end
- end;
- procedure UCET.VLOZ;
- var kolik:word;
- begin
- write('Vkladana hodnota: '); read(kolik); writeln('Kc');
- end;
- function UCET.ZRUSIT: boolean;
- var H:ZAZNAM;
- begin
- H.CISLO:=0; H.JMENO:=' '; H.STAV:=0;
- write(S,H);
- result:=true
- end;
- procedure UCET.VYBER;
- var kolik:word;
- begin
- if vicjaknula(help.stav) then
- begin
- repeat
- write('Vybrat castku: '); read(kolik); writeln('Kc');
- if (kolik>=HELP.STAV) or (kolik<0) then
- writeln('Spatne zapsana hodnota.');
- until (kolik>0) and (kolik<=HELP.STAV);
- HELP.STAV:=HELP.STAV-kolik
- end;
- end;
- function UCET.NABIDKA: boolean;
- var VOLBA:byte;
- begin
- NABIDKA:=false;
- writeln('Cislo uctu: ',HELP.CISLO);
- writeln('Jmeno vlastnika: ',HELP.JMENO);
- writeln('Zustatek: ',HELP.STAV);
- writeln('Nabidka moznosti:');
- writeln(' 0. nic');
- writeln(' 1. Vklad');
- writeln(' 2. Vyber');
- writeln(' 3. Zrusit ucet');
- write('Vase volba: '); readln(VOLBA); writeln;
- case volba of
- 1:UCET.VLOZ;
- 2:UCET.VYBER;
- 3:UCET.ZRUSIT;
- else result:=true
- end;
- end;
- procedure UCET.ZAPSAT;
- begin
- if not(ZRUSIT) then write(S,HELP);
- end;
- end.
- /////////////////////////////////////////////////////////////////
- PROGRAM:
- program bank;
- {$mode objfpc}{$H+}
- uses
- {$IFDEF UNIX}{$IFDEF UseCThreads}
- cthreads,
- {$ENDIF}{$ENDIF}
- Classes, unit_bank, sysutils
- { you can add units after this };
- var CO: string; B: UCET;
- function nabidka: boolean;
- begin
- nabidka:=true;
- writeln('Novy ucet, nebo vybrat existujici ucet?');
- write('Napiste: ''vybrat'', nebo ''novy'': '); readln(CO);
- if (CO = 'vybrat') or (CO = 'VYBRAT') or (CO = 'Vybrat') then
- begin
- B.VYBRATUCET;
- repeat B.NABIDKA
- until B.NABIDKA
- end
- else if (CO = 'novy') or (CO = 'NOVY') or (CO = 'Novy') then
- begin
- B.NOVY
- end
- else nabidka:=false
- end;
- begin
- assign(B.S,'banksoubor');
- if not(fileexists('banksoubor')) then rewrite(B.S)
- else reset(B.S);
- while nabidka do nabidka;
- writeln; writeln;
- writeln('Konec programu.');
- write('Pro ukonceni programu stisknete ''ENTER''');
- readln
- end.
Add Comment
Please, Sign In to add comment