Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.77 KB | None | 0 0
  1. package com.norbertsurowiec;
  2.  
  3.  
  4. import java.util.*;
  5. import java.io.*;
  6.  
  7.  
  8. public class Library {
  9. public int rozmiar;
  10. Book[] ksiazki;
  11. public int ileKsiazek;
  12.  
  13.  
  14. public Library(int maksymalnaWartosc)
  15. {
  16. rozmiar = maksymalnaWartosc;
  17. ksiazki = new Book[rozmiar];
  18. }
  19.  
  20.  
  21. public void wyswietlNiewszystko(){
  22. for(int i = 0; i < ksiazki.length; i++){
  23. if(ksiazki[i] != null){
  24. ksiazki[i].maloWyswietlKsiazki();
  25. }
  26. }
  27. }
  28.  
  29. public void wyswietlWszystko(){
  30. for(int i = 0; i < ksiazki.length; i++){
  31. if(ksiazki[i] != null){
  32. ksiazki[i].wyswietlKsiazki();
  33. }
  34. }
  35. }
  36.  
  37. public void dodajKsiazke(Book k) throws InputMismatchException
  38. {
  39. if(ileKsiazek<rozmiar)
  40. {
  41. for (int i = 0; i < ksiazki.length; i++)
  42. {
  43. if (ksiazki[i] == null)
  44. {
  45. ksiazki[i] = k;
  46. ksiazki[i].id = i;
  47. ileKsiazek++;
  48. break;
  49. }
  50.  
  51. }
  52. }else{System.out.println("Biblioteka jest pełna!");}
  53. }
  54.  
  55. public void modyfikacja(int modi)
  56. {
  57. for(int i=0;i<ksiazki.length;i++)
  58. {
  59. if(ksiazki[i].id == modi)
  60. {
  61. Scanner scan = new Scanner(System.in);
  62. ksiazki[modi].wyswietlKsiazki();
  63. System.out.println("Podaj zmodyfikowane dane: \n");
  64. System.out.println("Tytuł: ");
  65. ksiazki[modi].tytul = scan.nextLine();
  66. System.out.println("Imiona autora: ");
  67. ksiazki[modi].imionaAutora = scan.nextLine();
  68. System.out.println("Nazwisko autora: ");
  69. ksiazki[modi].nazwiskoAutora = scan.nextLine();
  70. System.out.println("Wydana: ");
  71. ksiazki[modi].rok = scan.nextInt();
  72. scan.nextLine();
  73. System.out.println("Kategorie tematyczna (oddzielać średnikiem): ");
  74. ksiazki[modi].kategorie = scan.nextLine();
  75. break;
  76. }
  77. }
  78. }
  79.  
  80. public void wypozyczenie(int id)
  81. {
  82. for(int i=0;i<ksiazki.length;i++)
  83. {
  84. if(ksiazki[i].id == id)
  85. {
  86. if(ksiazki[i].czyWypozyczona != true)
  87. {
  88. ksiazki[i].czyWypozyczona = true;
  89. System.out.println(ksiazki[i].tytul+" ID: "+ksiazki[i].id+" - wypożyczono");
  90. }else{System.out.println("Książka jest już wypożyczona");}
  91. break;
  92. }
  93. }
  94. }
  95.  
  96. public void oddanie(int id)
  97. {
  98. for(int i=0;i<ksiazki.length;i++)
  99. {
  100. if(ksiazki[i].id == id)
  101. {
  102. if(ksiazki[i].czyWypozyczona != false)
  103. {
  104. ksiazki[i].czyWypozyczona = false;
  105. ksiazki[i].liczbaWypozyczen++;
  106. System.out.println(ksiazki[i].tytul+" ID: "+ksiazki[i].id+" - oddano do biblioteki");
  107. }else{System.out.println("Książka nie jest wypożyczona");}
  108. break;
  109. }
  110. }
  111. }
  112.  
  113. public void szukajAutora(String autor)
  114. {
  115. int [] identyfikatoryZnalezionych = new int[ksiazki.length];
  116. int j=0;
  117. for(int i=0;i<ksiazki.length;i++)
  118. {
  119. if(ksiazki[i]!=null) {
  120. if (ksiazki[i].nazwiskoAutora.contains(autor)) {
  121. identyfikatoryZnalezionych[j] = ksiazki[i].id;
  122. j++;
  123. }
  124. }
  125. }
  126. System.out.println("Znalezione książki z podanym autorem:\n");
  127.  
  128. for(int i=0;i<j;i++)
  129. {
  130. ksiazki[identyfikatoryZnalezionych[i]].wyswietlKsiazki();
  131. }
  132.  
  133. }
  134.  
  135. public void szukajKsiazki(String tytul)
  136. {
  137. int [] identyfikatoryZnalezionych = new int[ksiazki.length];
  138. int j=0;
  139. for(int i=0;i<ksiazki.length;i++)
  140. {
  141. if(ksiazki[i]!=null)
  142. {
  143. if(ksiazki[i].tytul.contains(tytul))
  144. {
  145. identyfikatoryZnalezionych[j] = ksiazki[i].id;
  146. j++;
  147. }
  148. }
  149. }
  150. System.out.println("Znalezione książki o podanym tytule:\n");
  151.  
  152. for(int i=0;i<j;i++)
  153. {
  154. ksiazki[identyfikatoryZnalezionych[i]].wyswietlKsiazki();
  155. }
  156.  
  157. }
  158.  
  159. public void szukajKategorii(String kategoria)
  160. {
  161. int [] identyfikatoryZnalezionych = new int[ksiazki.length];
  162. int j=0;
  163. for(int i=0;i<ksiazki.length;i++)
  164. {
  165. if(ksiazki[i]!=null)
  166. {
  167. String kategorie[] = ksiazki[i].kategorie.split(";");
  168. for(int k=0;k<kategorie.length;k++) {
  169. if (ksiazki[i].kategorie.startsWith(kategorie[k]))
  170. {
  171. identyfikatoryZnalezionych[j] = ksiazki[i].id;
  172. j++;
  173. }
  174. }
  175. }
  176. }
  177. System.out.println("Znalezione książki z kategorią: "+kategoria+"\n");
  178.  
  179. for(int i=0;i<j;i++)
  180. {
  181. ksiazki[identyfikatoryZnalezionych[i]].wyswietlKsiazki();
  182. }
  183.  
  184. }
  185.  
  186. public void ogolnaStatystyka()
  187. {
  188.  
  189. int allbooks = 0;
  190. int currentlylentbooks = 0;
  191. int alllent = 0;
  192.  
  193.  
  194. for(int i=0;i<ksiazki.length;i++)
  195. {
  196. if(ksiazki[i]!=null)
  197. {
  198. allbooks++;
  199. if(ksiazki[i].czyWypozyczona==true)
  200. {
  201. currentlylentbooks++;
  202. }
  203. alllent += ksiazki[i].liczbaWypozyczen;
  204. }
  205. }
  206. System.out.println("Liczba wszystkich książek: "+allbooks);
  207. System.out.println("Liczba obecnie wypożyczonych książek: "+currentlylentbooks);
  208. System.out.println("Ogólna liczba wypożyczeń: "+alllent);
  209. }
  210.  
  211. public void bestBook()
  212. {
  213. int [] bester = new int[ksiazki.length];
  214. for(int i=0,j=0;i<ksiazki.length;i++)
  215. {
  216. if(ksiazki[i]!=null)
  217. {
  218. if(ksiazki[i].liczbaWypozyczen>0)
  219. {
  220. bester[j] = ksiazki[i].liczbaWypozyczen;
  221. j++;
  222. }
  223. }
  224. }
  225. Arrays.sort(bester);
  226. for(int i = 0; i < bester.length / 2; i++)
  227. {
  228. int temp = bester[i];
  229. bester[i] = bester[bester.length - i - 1];
  230. bester[bester.length - i - 1] = temp;
  231. }
  232. int counter = 0;
  233. for(int i=0;i<ksiazki.length;i++)
  234. {
  235. if(ksiazki[i]!=null) {
  236. if (ksiazki[i].liczbaWypozyczen == bester[0]) {
  237. ksiazki[i].maloWyswietlKsiazki();
  238. counter++;
  239. }
  240. }
  241. }
  242. if(counter<5) {
  243. for (int i = 0; i < ksiazki.length; i++) {
  244. if(ksiazki[i]!=null) {
  245. if (ksiazki[i].liczbaWypozyczen == bester[1]) {
  246. ksiazki[i].maloWyswietlKsiazki();
  247. counter++;
  248. }
  249. }
  250. }
  251. }
  252. if(counter<5) {
  253. for (int i = 0; i < ksiazki.length; i++) {
  254. if(ksiazki[i]!=null) {
  255. if (ksiazki[i].liczbaWypozyczen == bester[2]) {
  256. ksiazki[i].maloWyswietlKsiazki();
  257. counter++;
  258. }
  259. }
  260. }
  261. }
  262. if(counter<5) {
  263. for (int i = 0; i < ksiazki.length; i++) {
  264. if(ksiazki[i]!=null) {
  265. if (ksiazki[i].liczbaWypozyczen == bester[3]) {
  266. ksiazki[i].maloWyswietlKsiazki();
  267. counter++;
  268. }
  269. }
  270. }
  271. }
  272. if(counter<5) {
  273. for (int i = 0; i < ksiazki.length; i++) {
  274. if(ksiazki[i]!=null) {
  275. if (ksiazki[i].liczbaWypozyczen == bester[4]) {
  276. ksiazki[i].maloWyswietlKsiazki();
  277. }
  278. }
  279. }
  280. }
  281. }
  282.  
  283. // Importowanie danych, ale tylko jedna linijka;
  284. public void importzpliku(){
  285. BufferedReader plik = null;
  286. try {
  287. plik = new BufferedReader(new FileReader("/Users/surowy/IdeaProjects/Biblioteka/src/com/norbertsurowiec/import.txt"));
  288. String linia = plik.readLine();
  289. String[] odczyt = linia.split(";");
  290. ++ileKsiazek;
  291. if (ileKsiazek <= rozmiar) {
  292. for (int i = 0; i < ksiazki.length; i++) {
  293. if (ksiazki[i] == null) {
  294. String[] przecinki = odczyt[0].split(",");
  295. String[] przecinki2 = odczyt[3].split(",");
  296. String kategorie = "";
  297. for (String x : przecinki2) {
  298. kategorie = kategorie + x + ";";
  299. }
  300. ksiazki[i] = new Book(odczyt[1].trim(), przecinki[1].trim(), przecinki[0], Integer.parseInt(odczyt[2].trim()), kategorie.trim());
  301. ksiazki[i].id = i;
  302. System.out.println("Importowanie danych zakończone sukcesem!");
  303. plik.close();
  304. break;
  305. }
  306. }
  307. } else {
  308. System.out.println("Biblioteka jest pełna!");
  309. ileKsiazek--;
  310. plik.close();
  311. }
  312. }
  313. catch( FileNotFoundException e )
  314. {
  315. System.out.println( "Nie znaleziono pliku import.txt w folderze tego programu" );
  316. }
  317. catch( IOException e )
  318. {
  319. System.out.println( "Błąd dostępu do pliku" );
  320. }
  321. }
  322.  
  323. public void zapiszdopliku() {
  324. DataOutputStream zapisz = null;
  325. String nazwaPliku = "biblioteka.dat";
  326.  
  327. try {
  328. zapisz = new DataOutputStream(new FileOutputStream(nazwaPliku));
  329. for(int i = 0; i < ksiazki.length; i++) {
  330. if (ksiazki[i] != null) {
  331. String[] inicjaly = ksiazki[i].imionaAutora.split("");
  332. zapisz.writeInt(ksiazki[i].id);
  333. zapisz.writeUTF(inicjaly[0].charAt(0) + ". " + inicjaly[1].charAt(0) + ". ");
  334. zapisz.writeUTF(ksiazki[i].nazwiskoAutora);
  335. zapisz.writeUTF(ksiazki[i].tytul);
  336. zapisz.writeInt(ksiazki[i].rok);
  337. zapisz.writeUTF(ksiazki[i].kategorie);
  338. zapisz.writeBoolean(ksiazki[i].czyWypozyczona);
  339. zapisz.writeInt(ksiazki[i].liczbaWypozyczen);
  340. ksiazki[i].id = i;
  341.  
  342. }
  343. }
  344. zapisz.close();
  345. }
  346. catch (IOException e) {
  347. e.printStackTrace();
  348. }
  349.  
  350. }
  351.  
  352. public void odczytzPliku(String nazwaPliku) {
  353. DataInputStream odczyt = null;
  354.  
  355. try {
  356. odczyt = new DataInputStream(new FileInputStream(nazwaPliku));
  357. for(int i = 0; i < ksiazki.length; i++) {
  358. while (true) {
  359. if (ksiazki[i] != null) {
  360. ksiazki[i].id = odczyt.readInt();
  361. ksiazki[i].imionaAutora = odczyt.readUTF();
  362. ksiazki[i].nazwiskoAutora = odczyt.readUTF();
  363. ksiazki[i].tytul = odczyt.readUTF();
  364. ksiazki[i].rok = odczyt.readInt();
  365. ksiazki[i].kategorie = odczyt.readUTF();
  366. ksiazki[i].czyWypozyczona = odczyt.readBoolean();
  367. ksiazki[i].liczbaWypozyczen = odczyt.readInt();
  368. ksiazki[i].id = i;
  369. odczyt.close();
  370. System.out.println(ksiazki[i].id + " " + ksiazki[i].imionaAutora + " " + ksiazki[i].nazwiskoAutora + " " + ksiazki[i].tytul + " " + ksiazki[i].rok + " " + ksiazki[i].kategorie + " " + ksiazki[i].czyWypozyczona + " " + ksiazki[i].liczbaWypozyczen);
  371. break;
  372. }
  373. }
  374. }
  375. } catch (NoSuchElementException e) {
  376. System.out.println("Nie znaleziono pliku biblioteka.dat. Spróbuj ponownie");
  377. }
  378.  
  379. catch (IOException e) {
  380. System.out.println("Błąd dostępu do pliku");
  381. }
  382.  
  383.  
  384. }
  385.  
  386. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement