Guest User

Untitled

a guest
Nov 23rd, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.97 KB | None | 0 0
  1. program Dziennik;
  2. uses crt;
  3. type Osoba= record
  4. nr:string;
  5. imie:string[20];
  6. nazwisko:string[20];
  7. ozp:string[20];
  8. ozh:string[20];
  9. ozm:string[20];
  10. ozf:string[20];
  11. ozb:string[20];
  12. zach:string[20];
  13. end;
  14.  
  15. var f:file of Osoba;
  16. o,y: array [1..30] of Osoba;
  17. s:Osoba;
  18. a:byte;
  19.  
  20. procedure z; {procedura wprowadzania danych}
  21. var i,a:byte;
  22. begin
  23.  
  24. begin
  25. clrscr;
  26. write('Podaj ilosc osob ktore chcesz wpisac do dziennika: '); readln(a);
  27. assign(f,'dziennik.dat');
  28. rewrite(f); {otwieram plik po raz 1 }
  29. for i:=1 to a do {a okresla ile ma zostac wprowadzonych osob}
  30. begin
  31. clrscr;
  32. writeln;
  33. write('Nr: '); readln(o[i].nr);
  34. write('Imie: '); readln(o[i].imie);
  35. write('Nazwisko: '); readln(o[i].nazwisko);
  36. write('Oena z Jezyka Polskiego: '); readln(o[i].ozp);
  37. write('Ocena z Historii: '); readln(o[i].ozh);
  38. write('Ocena z Matematyki: '); readln(o[i].ozm);
  39. write('Ocena z Fizyki: '); readln(o[i].ozf);
  40. write('Ocena z Biologi: '); readln(o[i].ozb);
  41. write('ZACHOWANIE: '); readln(o[i].zach);
  42. write(f,o[i]);{zpisanie w zmiennej "f" zawartosci tablicy "o[i]"}
  43. clrscr;
  44. end;
  45.  
  46. close(f); {zamkniecie pliku}
  47. end;
  48. end;
  49.  
  50. procedure w; {wczytywanie danych z pliku}
  51. var i,a:byte;
  52.  
  53. begin
  54. assign(f,'dziennik.dat');
  55. reset(f);
  56. while not eof(f) do {dopóki nie jest koniec pliku wykonuj}
  57. begin
  58. read(f,o[i]); {do "f" wczytaj zawartosc "o[i]"}
  59. with o[i] do {z tablica "o[i]" wykonaj, u nas wczytaj z niej dana zawartosc}
  60. begin
  61. writeln;
  62. write('Nr: '); writeln(o[i].nr);
  63. write('Imie: '); writeln(o[i].imie);
  64. write('Nazwisko: ');writeln(o[i].nazwisko);
  65. write('Oena z Jezyka Polskiego: '); writeln(o[i].ozp);
  66. write('Ocena z Historii: '); writeln(o[i].ozh);
  67. write('Ocena z Matematyki: '); writeln(o[i].ozm);
  68. write('Ocena z Fizyki: '); writeln(o[i].ozf);
  69. write('Ocena z Biologi: '); writeln(o[i].ozb);
  70. write('ZACHOWANIE: '); writeln(o[i].zach);
  71. end;
  72. end;
  73. end;
  74.  
  75. procedure dop; {dopisywanie danch od juz istniejacego pliku}
  76. var i,a:byte;
  77.  
  78. begin
  79. clrscr;
  80. assign(f,'dziennik.dat');
  81. reset(f);
  82. write('Podaj liczbe osob do dopisania: ');readln(a);
  83. for i:=1 to a do
  84. begin
  85. clrscr;
  86. Seek(f, FileSize(f)); {otwiera plik i ustawia sie w ostatniej linijce }
  87. {tam zaczyna sie dopisywanie, od ostatniej lini zapisanego pliku}
  88. writeln;writeln;
  89. write('Nr: ');readln(o[i].nr);
  90. write('Imie: ');readln(o[i].imie);
  91. write('Nazwisko: '); readln(o[i].nazwisko);
  92. write('Oena z Jezyka Polskiego: '); readln(o[i].ozp);
  93. write('Ocena z Historii: '); readln(o[i].ozh);
  94. write('Ocena z Matematyki: '); readln(o[i].ozm);
  95. write('Ocena z Fizyki: '); readln(o[i].ozf);
  96. write('Ocena z Biologi: '); readln(o[i].ozb);
  97. write('Zachowanie: ');readln(o[i].zach);
  98. write(f,o[i]); {zapisujemy w pliku podane wczesniej dane}
  99. clrscr;
  100. end;
  101. close(f); {zamykamy plik}
  102. end;
  103. PROCEDURE szukI;
  104. var i,pom:byte;
  105. t:string[20];
  106. begin
  107. pom:=0; {zmienna pomocnicza - jesli nie bedzie osob spelniajacych warunku wyszukiwania}
  108. assign(f,'dziennik.dat');
  109. reset(f); {otwieram plik, nie po raz pierwszy}
  110.  
  111. write('Podaj szukane imie: ');
  112. read(t); {podaje Imie które mam wyszukac}
  113. while not eof(f) do
  114. begin
  115. read(f,o[i]); {wczytuje do "f" tablice "o[i]"}
  116. with o[i] do { wykonuje z tabl "o[i]"}
  117. if t=(o[i].imie) then {jezeli wczesniej podane "t"= Imienu wczytuje wszyskie dane szukanej osoby}
  118. begin
  119. pom:=1;
  120. write('Nr: '); writeln(o[i].nr);
  121. write('Imie: '); writeln(o[i].imie);
  122. write('Nazwisko: '); writeln(o[i].nazwisko);
  123. write('Oena z Jezyka Polskiego: '); writeln(o[i].ozp);
  124. write('Ocena z Historii: '); writeln(o[i].ozh);
  125. write('Ocena z Matematyki: '); writeln(o[i].ozm);
  126. write('Ocena z Fizyki: '); writeln(o[i].ozf);
  127. write('Ocena z Biologi: '); writeln(o[i].ozb);
  128. write('ZACHOWANIE: '); writeln(zach);
  129. end;
  130. end;
  131. if pom=0 then writeln('Nie ma osob spelniajacych kryteria.');
  132. end;
  133.  
  134. procedure szukN;
  135. var i,pom:byte;
  136. t:string[20];
  137. begin
  138. pom:=0; {zmienna pomocnicza - jesli nie bedzie osob spelniajacych warunku wyszukiwania}
  139. assign(f,'dziennik.dat');
  140. reset(f); {otwieram plik, nie po raz pierwszy}
  141.  
  142. write('Podaj szukane nazwisko: ');
  143. read(t); {podaje Imie ktore mam wyszukac}
  144. while not eof(f) do
  145. begin
  146. read(f,o[i]); {wczytuje do "f" tablice "o[i]"}
  147. with o[i] do { wykonuje z tabl "o[i]"}
  148. if t=(o[i].nazwisko) then
  149. begin
  150. pom:=1;
  151. write('Nr: '); writeln(nr);
  152. write('Imie: '); writeln(imie);
  153. write('Nazwisko: '); writeln(nazwisko);
  154. write('Oena z Jezyka Polskiego: '); writeln(o[i].ozp);
  155. write('Ocena z Historii: '); writeln(o[i].ozh);
  156. write('Ocena z Matematyki: '); writeln(o[i].ozm);
  157. write('Ocena z Fizyki: '); writeln(o[i].ozf);
  158. write('Ocena z Biologi: '); writeln(o[i].ozb);
  159. write('ZACHOWANIE: '); writeln(zach);
  160. end;
  161. end;
  162. if pom=0 then writeln('Nie ma osob spelniajacych kryteria.');
  163. end;
  164.  
  165. procedure szukZ;
  166. var i,pom:byte;
  167. t:string[20];
  168. begin
  169. pom:=0; {zmienna pomocnicza - jesli nie bedzie osob spelniajacych warunku wyszukiwania}
  170. assign(f,'dziennik.dat');
  171. reset(f); {otwieram plik, nie po raz pierwszy}
  172.  
  173. write('Podaj szukane zachowanie: ');
  174. read(t); {podaje Imie ktore mam wyszukac}
  175. while not eof(f) do
  176. begin
  177. read(f,o[i]); {wczytuje do "f" tablice "o[i]"}
  178. with o[i] do { wykonuje z tabl "o[i]"}
  179. if t=(o[i].zach) then {jezeli wczesniej podane "t"= Imienu wczytuje wszystkie dane szukanej osoby}
  180. begin
  181. pom:=1;
  182. write('Nr: '); writeln(nr);
  183. write('Imie: '); writeln(imie);
  184. write('Nazwisko: '); writeln(nazwisko);
  185. write('Oena z Jezyka Polskiego: '); writeln(o[i].ozp);
  186. write('Ocena z Historii: '); writeln(o[i].ozh);
  187. write('Ocena z Matematyki: '); writeln(o[i].ozm);
  188. write('Ocena z Fizyki: '); writeln(o[i].ozf);
  189. write('Ocena z Biologi: '); writeln(o[i].ozb);
  190. write('ZACHOWANIE: '); writeln(zach);
  191. end;
  192. end;
  193. if pom=0 then writeln('Nie ma osob spelniajacych kryteria.');
  194. end;
  195.  
  196. procedure szuk; {szukaj}
  197. var t:byte;
  198.  
  199. begin
  200. clrscr;
  201. textcolor(4);
  202. writeln('Witaj ponownie, wedlug czego zamierzasz szukac?');
  203. writeln('1. Wedlug Imienia.');
  204. writeln('2. Wedlug Nazwiska.');
  205. writeln('3. Wedlug Zachowania.');
  206. textcolor(15);
  207. readln(t);
  208. if t=1 then
  209. begin
  210. clrscr;
  211. szukI;
  212. end else
  213.  
  214. if t=2 then
  215. begin
  216. clrscr;
  217. szukN;
  218. end else
  219.  
  220. if t=3 then
  221. begin
  222. clrscr;
  223. szukZ;
  224. end;
  225.  
  226. end;
  227.  
  228. procedure edyt; {edytuj }
  229. var i,pom:byte;
  230. t:string[20];
  231. begin
  232. pom:=0; {zmienna pomocnicza - jesli nie bedzie osob spelniajacych warunku wyszukiwania}
  233. clrscr;
  234. assign(f,'dziennik.dat');
  235. reset(f);
  236. write('Podaj nr osoby ktora chcesz edytowac: ');
  237. readln(t);
  238.  
  239. begin
  240. for i:=1 to 3 do
  241. read(f,o[i]); {wczytuje do f o[i]}
  242. with o[i] do
  243. if t=(o[i].nr) then {patrz procedura powyzej}
  244. begin
  245. pom:=1;
  246. write('Imie: '); readln(o[i].imie);
  247. write('Nazwisko: '); readln(o[i].nazwisko);
  248. write('Oena z Jezyka Polskiego: '); readln(o[i].ozp);
  249. write('Ocena z Historii: '); readln(o[i].ozh);
  250. write('Ocena z Matematyki: '); readln(o[i].ozm);
  251. write('Ocena z Fizyki: '); readln(o[i].ozf);
  252. write('Ocena z Biologi: '); readln(o[i].ozb);
  253. write('ZACHOWANIE: '); readln(zach);
  254. write(f,o[i]); {zapisuje dane}
  255. end;
  256. end;
  257. if pom=0 then writeln('Nie ma osob spelniajacych kryteria.');
  258. end;
  259.  
  260. procedure cys; {procedura czysci ekran}
  261. begin
  262. clrscr;
  263. end;
  264.  
  265. procedure menu;
  266. var q:byte;
  267. begin
  268. textcolor(4);
  269. writeln(' Witaj co zamierzasz robic?');
  270. writeln('1. Podac dane do dziennika.');
  271. writeln('2. Wypisac dane z dziennika.');
  272. writeln('3. Dopisac osoby do dziennika.');
  273. writeln('4. Wyszukac osobe w dzienniku.');
  274. writeln('5. Edytowac osobe w dzienniku.');
  275. writeln('6. Wyczyscic ekran.');
  276. textcolor(4+128); {4 czyli kolor czerwony + 128 oznacza migotanie (red+blink)}
  277. writeln('7. Zakonczyc program.');
  278. textcolor(15);
  279. readln(q);
  280. begin {cialo wyboru poszczegulnych opcji}
  281. if q=1 then
  282. begin
  283. z;
  284. menu;
  285. end else
  286. if q=2 then
  287. begin
  288. w;
  289. menu;
  290. end else
  291. if q=3 then
  292. begin
  293. dop;
  294. menu;
  295. end else
  296. if q=6 then
  297. begin
  298. cys;
  299. menu;
  300. end else
  301. if q=4 then
  302. begin
  303. szuk;
  304. menu;
  305. end else
  306. if q=5 then
  307. begin
  308. edyt;
  309. menu;
  310. end else
  311. if q=7 then
  312. begin
  313. end;
  314. end;
  315. end;
  316. begin
  317. clrscr;menu;
  318. end.
Add Comment
Please, Sign In to add comment