Advertisement
kanciastopantalones

Untitled

Jan 18th, 2013
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.76 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. {$I-}
  106. repeat
  107. write('Podaj dzien: ');
  108. readln(pom);
  109. until ioresult=0;
  110. {$I+}
  111.  
  112. while (pom<1) or (pom>31) do
  113. begin
  114. Writeln('Podaj dzien z zakresu 1-31');
  115. readln(pom);
  116. end;
  117. lista^.data.dzien:=pom;
  118.  
  119. write('Podaj miesiac: ');
  120. readln(pom);
  121. while (pom<1) or (pom>12) do
  122. begin
  123. Writeln('Podaj miesiac z zakresu 1-12');
  124. readln(pom);
  125. end;
  126. lista^.data.miesiac:=pom;
  127.  
  128. write('Podaj rok: ');
  129. readln(pom);
  130. while (pom<2013) or (pom>2050) do
  131. begin
  132. Writeln('Podaj rok z zakresu 2013-2050');
  133. readln(pom);
  134. end;
  135. lista^.data.rok:=pom;
  136.  
  137. write('Podaj godzine: ');
  138. readln(pom);
  139. while (pom<1) or (pom>24) do
  140. begin
  141. Writeln('Podaj godzine z zakresu 1-24');
  142. readln(pom);
  143. end;
  144. lista^.czas.godzina:=pom;
  145.  
  146. write('Podaj minuty: ');
  147. readln(pom);
  148. while (pom<0) or (pom>59) do
  149. begin
  150. Writeln('Podaj minute z zakresu 0-59');
  151. readln(pom);
  152. end;
  153. lista^.czas.minuta:=pom;
  154. new(lista^.nast);
  155. lista:= lista^.nast;
  156. writeln();
  157.  
  158. lista^.nast:=nil;
  159. end;
  160.  
  161.  
  162. procedure wypisz();
  163. begin
  164. lista:=poczatek;
  165. i:=1;
  166. while lista^.nast <> nil do
  167. begin
  168.  
  169. writeln('Termin nr. ', i);
  170. writeln(#9'Notatka: ', lista^.notatka);
  171. writeln(#9'Data: ', lista^.data.dzien,'.', lista^.data.miesiac,'.', lista^.data.rok);
  172. writeln(#9'Godzina: ', lista^.czas.godzina,':',lista^.czas.minuta:2);
  173. writeln();
  174.  
  175. lista:=lista^.nast;
  176.  
  177. i:=i+1;
  178. end;
  179. end;
  180.  
  181. procedure usun();
  182. begin
  183. lista:=poczatek;
  184. ilosc:=0;
  185. while lista^.nast <> nil do
  186. begin
  187. ilosc:=ilosc+1;
  188. lista:=lista^.nast;
  189. end;
  190.  
  191. wypisz();
  192. lista:=poczatek;
  193. writeln('Wybierz numer terminu do usuniecia: ');
  194. readln(pom);
  195. while (pom<1) or (pom>ilosc) do
  196. begin
  197. writeln('Podaj poprawny numer terminu: ');
  198. readln(pom);
  199. end;
  200.  
  201. for i:=1 to pom-2 do
  202. begin
  203. lista:=lista^.nast;
  204. end;
  205.  
  206. lista^.nast:=lista^.nast^.nast;
  207.  
  208. end;
  209.  
  210.  
  211.  
  212.  
  213. begin
  214. new(poczatek);
  215. lista:=poczatek;
  216.  
  217. odczyt();
  218.  
  219. repeat
  220. writeln('Terminarz. Wybierz operacje: ');
  221. writeln('1-Dodaj termin.');
  222. writeln('2-Wyswietl terminarz.');
  223. writeln('3-Usun termin.');
  224. writeln('0-Koniec programu.');
  225.  
  226. readln(wybor);
  227. case wybor of
  228. 1: wypelnij();
  229. 2: wypisz();
  230. 3: usun();
  231.  
  232. end;
  233.  
  234. zapis();
  235.  
  236. until wybor=0;
  237. readln;
  238. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement