Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.95 KB | None | 0 0
  1. program baza_danych;
  2.  
  3. type
  4. dane = record
  5. Imie: string[40];
  6. Nazwisko: string[40];
  7. Adres: string[40];
  8. Telefon: string[40];
  9. NIP: string[40];
  10. end;
  11.  
  12. var
  13. zbior: array[1..100] of dane;
  14. plik: file of dane;
  15. ile: integer;
  16. wybor: char;
  17.  
  18. procedure pokaz_dane (dysk : dane; numer : integer);
  19. begin
  20. if dysk.Nazwisko[1] <> chr(0) then
  21. with dysk do
  22. begin
  23. writeln('');
  24. writeln('Numer Klienta: ', numer);
  25. writeln(Imie, ' ', Nazwisko, ', ', Adres, ', ', Telefon, ', ', NIP);
  26. writeln('');
  27. end;
  28. end;
  29.  
  30. procedure pokaz_dane_plec (dysk : dane; numer : integer; plec : char);
  31. begin
  32. if (dysk.Nazwisko[1] <> chr(0)) then
  33. if (((plec = 'k') AND (dysk.Imie[length(dysk.Imie)] = 'a')) OR (plec = 'm')) then
  34. begin
  35. with dysk do
  36. begin
  37. writeln('');
  38. writeln('Numer Klienta: ', numer);
  39. writeln(Imie, ' ', Nazwisko, ', ', Adres, ', ', Telefon, ', ', NIP);
  40. writeln('');
  41. end;
  42. end;
  43. end;
  44.  
  45. procedure sortowanie_alfabetyczne (var tab : array of dane; n : integer);
  46.  
  47. var
  48. i, j, licznik : integer;
  49. l, m : integer;
  50.  
  51. begin
  52. l := n;
  53. m := l - 1;
  54.  
  55. for i := 0 to m do
  56. begin
  57. for j := i + 1 to l do
  58. begin
  59. if ord(tab[j].Nazwisko[1]) > ord(tab[j].Nazwisko[1]) then
  60. begin
  61. tab[n+1] := tab[i];
  62. tab[i] := tab[j];
  63. tab[j] := tab[n+1];
  64. end;
  65. end;
  66. end;
  67.  
  68. for licznik := 1 to ile -1 do
  69. pokaz_dane (tab[licznik], licznik);
  70. readln;
  71. end;
  72.  
  73. procedure zapisz;
  74. var licznik: integer;
  75. begin
  76. assign (plik, 'baza.txt');
  77. rewrite (plik);
  78. for licznik :=1 to ile -1 do write(plik, zbior[licznik]);
  79. close (plik);
  80. end;
  81.  
  82. procedure wczytaj;
  83. begin
  84. assign (plik, 'baza.txt');
  85. reset(plik);
  86. while not eof (plik) do
  87. begin
  88. read (plik, zbior[ile]);
  89. ile := ile+1;
  90. end;
  91. end;
  92.  
  93. procedure nowy_dane;
  94. begin
  95. with zbior[ile] do
  96. begin
  97. write('Podaj Imie: ');
  98. readln(Imie);
  99. write('Podaj Nazwisko: ');
  100. readln(Nazwisko);
  101. write('Podaj Adres: ');
  102. readln(Adres);
  103. write('Podaj Numer Telefonu: ');
  104. readln(Telefon);
  105. write('Podaj Numer NIP: ');
  106. readln(NIP);
  107. end;
  108. ile:= ile+1;
  109. end;
  110.  
  111. procedure wyswietl;
  112. var licznik : integer;
  113. begin
  114. for licznik := 1 to ile -1 do
  115. pokaz_dane (zbior[licznik], licznik);
  116. end;
  117.  
  118. procedure wyswietl_plec;
  119. var licznik : integer;
  120. plec : char;
  121.  
  122. begin
  123. writeln('Kobieta(k) czy mezczyzna(m)?');
  124. readln(plec);
  125.  
  126. for licznik := 1 to ile-1 do
  127. pokaz_dane_plec(zbior[licznik], licznik, plec);
  128. end;
  129. procedure wyswietl_alfabetycznie;
  130. begin
  131. sortowanie_alfabetyczne(zbior, ile);
  132. end;
  133. procedure szukaj_dane;
  134. var
  135. licznik : integer;
  136. wzorzec : string[40];
  137. szukajka : boolean;
  138. begin
  139. writeln ('Podaj nazwisko osoby, ktora chcesz wyszukac: ');
  140. readln (wzorzec);
  141. for licznik := 1 to ile do
  142. if zbior[licznik].Nazwisko = wzorzec
  143. then
  144. begin pokaz_dane (zbior[licznik], licznik);
  145. szukajka := TRUE
  146. end;
  147. if not szukajka then
  148. writeln('Brak podanego nazwiska!');
  149.  
  150. end;
  151.  
  152. procedure usun_dane;
  153. var numer: integer;
  154. licznik: integer;
  155. wzorzec: string[40];
  156. nazwisko: string[40];
  157. imie: string[40];
  158. usunieto : boolean;
  159. wzorzec2 : string[40];
  160. op : char;
  161. begin
  162. write ('Podaj nazwisko: ');
  163. readln(wzorzec);
  164. write ('Podaj Imie:');
  165. readln(wzorzec2);
  166.  
  167. for licznik := 1 to ile do
  168. if (zbior[licznik].nazwisko = wzorzec) AND (zbior[licznik].imie = wzorzec2)
  169. then
  170. begin
  171. while TRUE do
  172. begin
  173. write('Usunac osobe T/N');
  174. readln(op);
  175. if (op ='T') or (op = 'N') then break;
  176. end;
  177. if op ='T' then
  178. begin
  179. zbior[licznik].nazwisko[1] := chr(0);
  180. usunieto := TRUE;
  181. end;
  182.  
  183. if usunieto then writeln('Pomyslnie usunieto..')
  184. else writeln('Dana osoba nie istnieje!');
  185.  
  186. end;
  187. end;
  188.  
  189. procedure edytuj;
  190. var numer : integer;
  191. nazwisko : string[40];
  192. imie : string[40];
  193. adres : string[40];
  194.  
  195. begin
  196. write('Podaj numer redordu do edycji');
  197. readln(numer);
  198.  
  199. if (numer > 0) and (numer < ile) then
  200. begin
  201. zbior[numer].nazwisko[1] := chr(0);
  202. with zbior[ile] do
  203. begin
  204. write('Imie: ');
  205. readln(imie);
  206. write('Nazwisko: ');
  207. readln(nazwisko);
  208. write('Adres: ');
  209. readln(adres);
  210. end;
  211. ile := ile + 1;
  212. end
  213. end;
  214.  
  215.  
  216.  
  217. begin
  218. ile :=1;
  219. wczytaj;
  220. writeln ('Katalog wpisow');
  221. repeat
  222. writeln;
  223. writeln('Dodaj nowy wpis - 1');
  224. writeln('Pokaz zbior - 2');
  225. writeln('Szukaj nazwiska - 3');
  226. writeln('Usun rekord - 4');
  227. writeln('Edytuj rekord - 5');
  228. writeln('Zakoncz - 6');
  229. readln(wybor);
  230. writeln;
  231. case wybor of
  232. '1' : nowy_dane;
  233. '2' : wyswietl;
  234. '3' : szukaj_dane;
  235. '4' : usun_dane;
  236. {'5' : wyswietl_alfabetycznie;}
  237. '5' : edytuj;
  238. '6' : wyswietl_plec;
  239. end;
  240. until wybor = '7';
  241. zapisz;
  242.  
  243. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement