Advertisement
kanciastopantalones

terminarz

Jan 17th, 2013
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.70 KB | None | 0 0
  1. program terminarz;
  2. uses sysutils;
  3. type
  4. wskaznik=^element;
  5. element = record
  6. notatka:string[255];
  7. data:record
  8. dzien:1..31;
  9. miesiac:1..12;
  10. rok:2013..2050;
  11. end;
  12. czas:record
  13. godzina:1..24;
  14. minuta:0..59;
  15. end;
  16. nast:wskaznik;
  17. end;
  18.  
  19. type szkielet=record
  20. notatka:string[255];
  21. data:record
  22. dzien:1..31;
  23. miesiac:1..12;
  24. rok:2013..2050;
  25. end;
  26. czas:record
  27. godzina:1..24;
  28. minuta:0..59;
  29. end;
  30.  
  31. end;
  32.  
  33.  
  34. var
  35. lista:wskaznik;
  36. poczatek:wskaznik;
  37. pom:integer;
  38. i:integer;
  39. wybor:integer;
  40. ilosc:integer;
  41.  
  42.  
  43.  
  44.  
  45. procedure zapis();
  46. var
  47. plik:file of szkielet;
  48. baza:szkielet;
  49. begin
  50. assign(plik, 'baza.db');
  51. rewrite(plik);
  52. lista:=poczatek;
  53. while lista^.nast <> nil do begin
  54. baza.notatka := lista^.notatka;
  55. baza.data.dzien := lista^.data.dzien;
  56. baza.data.miesiac := lista^.data.miesiac;
  57. baza.data.rok := lista^.data.rok;
  58. baza.czas.godzina := lista^.czas.godzina;
  59. baza.czas.minuta := lista^.czas.minuta;
  60. write(plik, baza);
  61. lista := lista^.nast;
  62. end;
  63. close(plik);
  64. end;
  65.  
  66. procedure odczyt();
  67. var
  68. plik:file of szkielet;
  69. baza:szkielet;
  70. begin
  71. if(FileExists('baza.db'))then begin
  72.  
  73. assign(plik, 'baza.db');
  74. reset(plik);
  75. while not EOF(plik) do begin
  76. read(plik, baza);
  77. lista^.notatka:=baza.notatka;
  78. lista^.data.dzien:=baza.data.dzien;
  79. lista^.data.miesiac:=baza.data.miesiac;
  80. lista^.data.rok:=baza.data.rok;
  81. lista^.czas.godzina:=baza.czas.godzina;
  82. lista^.czas.minuta:=baza.czas.minuta;
  83. new(lista^.nast);
  84. lista := lista^.nast;
  85. end;
  86. lista^.nast := nil;
  87. close(plik);
  88. end else zapis();
  89. end;
  90.  
  91.  
  92.  
  93.  
  94. procedure wypelnij();
  95. begin
  96. lista:=poczatek;
  97.  
  98. while lista^.nast <> nil do
  99. begin
  100. lista:=lista^.nast;
  101. end;
  102.  
  103. write('Podaj notatke: ');
  104. readln(lista^.notatka);
  105.  
  106. write('Podaj dzien: ');
  107. readln(pom);
  108. while (pom<1) or (pom>31) do
  109. begin
  110. Writeln('Podaj dzien z zakresu 1-31');
  111. readln(pom);
  112. end;
  113. lista^.data.dzien:=pom;
  114.  
  115. write('Podaj miesiac: ');
  116. readln(pom);
  117. while (pom<1) or (pom>12) do
  118. begin
  119. Writeln('Podaj miesiac z zakresu 1-12');
  120. readln(pom);
  121. end;
  122. lista^.data.miesiac:=pom;
  123.  
  124. write('Podaj rok: ');
  125. readln(pom);
  126. while (pom<2013) or (pom>2050) do
  127. begin
  128. Writeln('Podaj rok z zakresu 2013-2050');
  129. readln(pom);
  130. end;
  131. lista^.data.rok:=pom;
  132.  
  133. write('Podaj godzine: ');
  134. readln(pom);
  135. while (pom<1) or (pom>24) do
  136. begin
  137. Writeln('Podaj godzine z zakresu 1-24');
  138. readln(pom);
  139. end;
  140. lista^.czas.godzina:=pom;
  141.  
  142. write('Podaj minuty: ');
  143. readln(pom);
  144. while (pom<0) or (pom>59) do
  145. begin
  146. Writeln('Podaj minute z zakresu 0-59');
  147. readln(pom);
  148. end;
  149. lista^.czas.minuta:=pom;
  150. new(lista^.nast);
  151. lista:= lista^.nast;
  152. writeln();
  153.  
  154. lista^.nast:=nil;
  155. end;
  156.  
  157.  
  158. procedure wypisz();
  159. begin
  160. lista:=poczatek;
  161. i:=1;
  162. while lista^.nast <> nil do
  163. begin
  164.  
  165. writeln('Termin nr. ', i);
  166. writeln(#9'Notatka: ', lista^.notatka);
  167. writeln(#9'Data: ', lista^.data.dzien,'.', lista^.data.miesiac,'.', lista^.data.rok);
  168. writeln(#9'Godzina: ', lista^.czas.godzina,':',lista^.czas.minuta:2);
  169. writeln();
  170.  
  171. lista:=lista^.nast;
  172.  
  173. i:=i+1;
  174. end;
  175. end;
  176.  
  177. procedure usun();
  178. begin
  179. lista:=poczatek;
  180. ilosc:=0;
  181. while lista^.nast <> nil do
  182. begin
  183. ilosc:=ilosc+1;
  184. lista:=lista^.nast;
  185. end;
  186.  
  187. wypisz();
  188. lista:=poczatek;
  189. writeln('Wybierz numer terminu do usuniecia: ');
  190. readln(pom);
  191. while (pom<1) or (pom>ilosc) do
  192. begin
  193. writeln('Podaj poprawny numer terminu: ');
  194. readln(pom);
  195. end;
  196.  
  197. for i:=1 to pom-2 do
  198. begin
  199. lista:=lista^.nast;
  200. end;
  201.  
  202. lista^.nast:=lista^.nast^.nast;
  203.  
  204. end;
  205.  
  206.  
  207.  
  208.  
  209. begin
  210. new(poczatek);
  211. lista:=poczatek;
  212.  
  213. odczyt();
  214.  
  215. repeat
  216. writeln('Terminarz. Wybierz operacje: ');
  217. writeln('1-Dodaj termin.');
  218. writeln('2-Wyswietl terminarz.');
  219. writeln('3-Usun termin.');
  220. writeln('0-Koniec programu.');
  221.  
  222. readln(wybor);
  223. case wybor of
  224. 1: wypelnij();
  225. 2: wypisz();
  226. 3: usun();
  227.  
  228. end;
  229.  
  230. zapis();
  231.  
  232. until wybor=0;
  233. readln;
  234. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement