Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program baza_danych;
- type
- dane = record
- Imie: string[40];
- Nazwisko: string[40];
- Adres: string[40];
- Telefon: string[40];
- NIP: string[40];
- end;
- var
- zbior: array[1..100] of dane;
- plik: file of dane;
- ile: integer;
- wybor: char;
- procedure pokaz_dane (dysk : dane; numer : integer);
- begin
- if dysk.Nazwisko[1] <> chr(0) then
- with dysk do
- begin
- writeln('');
- writeln('Numer Klienta: ', numer);
- writeln(Imie, ' ', Nazwisko, ', ', Adres, ', ', Telefon, ', ', NIP);
- writeln('');
- end;
- end;
- procedure pokaz_dane_plec (dysk : dane; numer : integer; plec : char);
- begin
- if (dysk.Nazwisko[1] <> chr(0)) then
- if (((plec = 'k') AND (dysk.Imie[length(dysk.Imie)] = 'a')) OR (plec = 'm')) then
- begin
- with dysk do
- begin
- writeln('');
- writeln('Numer Klienta: ', numer);
- writeln(Imie, ' ', Nazwisko, ', ', Adres, ', ', Telefon, ', ', NIP);
- writeln('');
- end;
- end;
- end;
- procedure sortowanie_alfabetyczne (var tab : array of dane; n : integer);
- var
- i, j, licznik : integer;
- l, m : integer;
- begin
- l := n;
- m := l - 1;
- for i := 0 to m do
- begin
- for j := i + 1 to l do
- begin
- if ord(tab[j].Nazwisko[1]) > ord(tab[j].Nazwisko[1]) then
- begin
- tab[n+1] := tab[i];
- tab[i] := tab[j];
- tab[j] := tab[n+1];
- end;
- end;
- end;
- for licznik := 1 to ile -1 do
- pokaz_dane (tab[licznik], licznik);
- readln;
- end;
- procedure zapisz;
- var licznik: integer;
- begin
- assign (plik, 'baza.txt');
- rewrite (plik);
- for licznik :=1 to ile -1 do write(plik, zbior[licznik]);
- close (plik);
- end;
- procedure wczytaj;
- begin
- assign (plik, 'baza.txt');
- reset(plik);
- while not eof (plik) do
- begin
- read (plik, zbior[ile]);
- ile := ile+1;
- end;
- end;
- procedure nowy_dane;
- begin
- with zbior[ile] do
- begin
- write('Podaj Imie: ');
- readln(Imie);
- write('Podaj Nazwisko: ');
- readln(Nazwisko);
- write('Podaj Adres: ');
- readln(Adres);
- write('Podaj Numer Telefonu: ');
- readln(Telefon);
- write('Podaj Numer NIP: ');
- readln(NIP);
- end;
- ile:= ile+1;
- end;
- procedure wyswietl;
- var licznik : integer;
- begin
- for licznik := 1 to ile -1 do
- pokaz_dane (zbior[licznik], licznik);
- end;
- procedure wyswietl_plec;
- var licznik : integer;
- plec : char;
- begin
- writeln('Kobieta(k) czy mezczyzna(m)?');
- readln(plec);
- for licznik := 1 to ile-1 do
- pokaz_dane_plec(zbior[licznik], licznik, plec);
- end;
- procedure wyswietl_alfabetycznie;
- begin
- sortowanie_alfabetyczne(zbior, ile);
- end;
- procedure szukaj_dane;
- var
- licznik : integer;
- wzorzec : string[40];
- szukajka : boolean;
- begin
- writeln ('Podaj nazwisko osoby, ktora chcesz wyszukac: ');
- readln (wzorzec);
- for licznik := 1 to ile do
- if zbior[licznik].Nazwisko = wzorzec
- then
- begin pokaz_dane (zbior[licznik], licznik);
- szukajka := TRUE
- end;
- if not szukajka then
- writeln('Brak podanego nazwiska!');
- end;
- procedure usun_dane;
- var numer: integer;
- licznik: integer;
- wzorzec: string[40];
- nazwisko: string[40];
- imie: string[40];
- usunieto : boolean;
- wzorzec2 : string[40];
- op : char;
- begin
- write ('Podaj nazwisko: ');
- readln(wzorzec);
- write ('Podaj Imie:');
- readln(wzorzec2);
- for licznik := 1 to ile do
- if (zbior[licznik].nazwisko = wzorzec) AND (zbior[licznik].imie = wzorzec2)
- then
- begin
- while TRUE do
- begin
- write('Usunac osobe T/N');
- readln(op);
- if (op ='T') or (op = 'N') then break;
- end;
- if op ='T' then
- begin
- zbior[licznik].nazwisko[1] := chr(0);
- usunieto := TRUE;
- end;
- if usunieto then writeln('Pomyslnie usunieto..')
- else writeln('Dana osoba nie istnieje!');
- end;
- end;
- procedure edytuj;
- var numer : integer;
- nazwisko : string[40];
- imie : string[40];
- adres : string[40];
- begin
- write('Podaj numer redordu do edycji');
- readln(numer);
- if (numer > 0) and (numer < ile) then
- begin
- zbior[numer].nazwisko[1] := chr(0);
- with zbior[ile] do
- begin
- write('Imie: ');
- readln(imie);
- write('Nazwisko: ');
- readln(nazwisko);
- write('Adres: ');
- readln(adres);
- end;
- ile := ile + 1;
- end
- end;
- begin
- ile :=1;
- wczytaj;
- writeln ('Katalog wpisow');
- repeat
- writeln;
- writeln('Dodaj nowy wpis - 1');
- writeln('Pokaz zbior - 2');
- writeln('Szukaj nazwiska - 3');
- writeln('Usun rekord - 4');
- writeln('Edytuj rekord - 5');
- writeln('Zakoncz - 6');
- readln(wybor);
- writeln;
- case wybor of
- '1' : nowy_dane;
- '2' : wyswietl;
- '3' : szukaj_dane;
- '4' : usun_dane;
- {'5' : wyswietl_alfabetycznie;}
- '5' : edytuj;
- '6' : wyswietl_plec;
- end;
- until wybor = '7';
- zapisz;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement