Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program zadstos;
- uses
- crt,SysUtils;
- type
- wskaznik_stosu = ^skladnik_stosu;
- skladnik_stosu = record
- Dane:string;
- imie: string[25];
- nazwisko: string[40];
- wiek: byte;
- PESEL: string[11];
- wskaznik: wskaznik_stosu;
- end;
- var
- wierzcholek,punkt:wskaznik_stosu;
- i:integer;
- function menu:char;
- begin
- clrscr;
- writeln('[D] Dodawanie na stos');
- writeln('[W] Wyswietlanie stosu');
- writeln('[X] Kasowanie stosu');
- writeln('[Z] Zapisywanie do pliku');
- writeln('[K] Koniec programu');
- menu:=upcase(readkey);
- end;
- procedure dodawanie;
- var
- znak:char;
- begin
- repeat
- if i=0 then
- begin
- clrscr;
- i:=1;
- new(wierzcholek);
- write('Dane: ');
- readln(wierzcholek^.dane);
- write('Imie: ');
- readln(wierzcholek^.imie);
- write('Nazwisko: ');
- readln(wierzcholek^.nazwisko);
- write('Wiek: ');
- readln(wierzcholek^.wiek);
- write('PESEL: ');
- readln(wierzcholek^.PESEL);
- wierzcholek^.wskaznik:=nil;
- punkt:=wierzcholek;
- writeln('N - konczy, inny kontynuuje');
- znak:=upcase(readkey);
- end
- else
- if i<>0 then
- begin
- clrscr;
- new(wierzcholek);
- write('Dane: ');
- readln(wierzcholek^.dane);
- write('Imie: ');
- readln(wierzcholek^.imie);
- write('Nazwisko: ');
- readln(wierzcholek^.nazwisko);
- write('Wiek: ');
- readln(wierzcholek^.wiek);
- write('PESEL: ');
- readln(wierzcholek^.PESEL);
- wierzcholek^.wskaznik:=punkt;
- punkt:=wierzcholek;
- writeln('N - konczy, inny kontynuuje');
- znak:=upcase(readkey);
- end;
- until znak='N';
- end;
- procedure wyswietlanie;
- begin
- clrscr;
- punkt:=wierzcholek;
- If(length(punkt^.nazwisko)>5) then writeln('wyraz ma wiecej znakow niz 5')
- else writeln('wyraz ma mniej znakow niz 5');
- while punkt<>nil do
- begin
- writeln(punkt^.dane);
- writeln('Imie: ',punkt^.imie);
- writeln('Nazwisko: ',punkt^.nazwisko);
- writeln('Wiek: ',punkt^.wiek);
- writeln('PESEL: ',punkt^.PESEL);
- writeln('---------------------');
- punkt:=punkt^.wskaznik;
- end;
- writeln('Nacisnij ENTER, aby kontynuowac...');
- readln;
- end;
- procedure kasowanie;
- var
- temp:wskaznik_stosu;
- begin
- clrscr;
- punkt:=wierzcholek;
- while punkt <> nil do
- begin
- dispose(wierzcholek);
- punkt:=wierzcholek^.wskaznik;
- wierzcholek:=punkt;
- end;
- writeln('Stos skasowany');
- i:=0;
- readln;
- end;
- Procedure Zapisywanie;
- var
- txtFile:textfile;
- numer:integer;
- nazwisko:string;
- begin
- if punkt=nil then writeln('Nie mozesz nic zapisac do pliku, poniewaz stos jest pusty!')
- else
- begin
- repeat
- writeln('Wybierz jakie elementy mam umiescic w pliku:');
- writeln('1) Wszystkie elementy stosu');
- writeln('2) Elementy o wybranym nazwisku');
- writeln('3) Osoby pelnoletnie');
- readln(numer);
- until (numer=1) or (numer=2) or (numer=3);
- if(numer=2) then
- begin
- writeln('Podaj nazwisko:');
- readln(nazwisko);
- end;
- assignfile(txtFile, 'stos.txt');
- rewrite(txtFile);
- writeln('Zapisuje...');
- repeat
- begin
- if(numer=1) then
- begin
- writeln(txtFile,'Imie: ',punkt^.imie);
- writeln(txtFile,'Nazwisko: ',punkt^.nazwisko);
- writeln(txtFile,'Wiek: ',punkt^.wiek);
- writeln(txtFile,'PESEL: ',punkt^.PESEL);
- writeln(txtFile,'---------------------');
- end;
- if(numer=2) and (punkt^.nazwisko=nazwisko) then
- begin
- writeln(txtFile,'Imie: ',punkt^.imie);
- writeln(txtFile,'Nazwisko: ',punkt^.nazwisko);
- writeln(txtFile,'Wiek: ',punkt^.wiek);
- writeln(txtFile,'PESEL: ',punkt^.PESEL);
- writeln(txtFile,'---------------------');
- end;
- if(numer=3) and (punkt^.wiek>=18) then
- begin
- writeln(txtFile,'Imie: ',punkt^.imie);
- writeln(txtFile,'Nazwisko: ',punkt^.nazwisko);
- writeln(txtFile,'Wiek: ',punkt^.wiek);
- writeln(txtFile,'PESEL: ',punkt^.PESEL);
- writeln(txtFile,'---------------------');
- end;
- punkt:=punkt^.wskaznik;
- end;
- until punkt=nil;
- writeln('Zapisano!');
- closefile(txtFile);
- end;
- writeln('N - konczy, inny kontynuuje');
- readln;
- end;
- begin
- i:=0;
- repeat
- clrscr;
- case menu of
- 'D':dodawanie;
- 'X':kasowanie;
- 'W':wyswietlanie;
- 'Z':Zapisywanie;
- 'K':halt;
- end;
- until false;
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement