Guest User

Untitled

a guest
May 20th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.67 KB | None | 0 0
  1.  
  2. package dip107;
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.EOFException;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileReader;
  8. import java.io.FileWriter;
  9. import java.io.IOException;
  10. import java.io.PrintWriter;
  11. import java.io.Serializable;
  12. import java.util.ArrayList;
  13. import java.util.Collections;
  14. import java.util.InputMismatchException;
  15. import java.util.Scanner;
  16. import java.util.Comparator;
  17. class info implements Serializable {
  18. public String autors;
  19. public String nosaukums;
  20. public String kurgramata;
  21. public int kods;
  22. public String datums;
  23.  
  24. public info(String autors, String nosaukums, String kurgramata, int kods, String datums) {
  25. this.autors = autors;
  26. this.nosaukums = nosaukums;
  27. this.kurgramata = kurgramata;
  28. this.kods = kods;
  29. this.datums = datums;
  30. }
  31.  
  32. public void print(int numurs) {
  33. System.out.printf("\n%-4d%-20s%-20s%-20s%-25d%-12s", numurs, autors, nosaukums, kurgramata, kods, datums);
  34. }
  35. public String toString() {
  36. return autors + nosaukums + kurgramata + kods + datums;
  37. }
  38. }
  39. class StringComparator implements Comparator<String> {
  40. public int compare(String o1, String o2) {
  41. String[] split1 = o1.split("\\s+");
  42. String[] split2 = o2.split("\\s+");
  43.  
  44. String autors1 = split1[0];
  45. String autors2 = split2[0];
  46.  
  47. if (!autors1.equals(autors2)) {
  48. return autors1.compareTo(autors2);
  49. }
  50. return 0;
  51. }
  52. }
  53.  
  54. class StringComparator2 implements Comparator<String> {
  55. public int compare(String o1, String o2) {
  56. String[] split1 = o1.split("\\s+");
  57. String[] split2 = o2.split("\\s+");
  58.  
  59. String nosaukums1 = split1[1];
  60. String nosaukums2 = split2[1];
  61.  
  62. if (!nosaukums1.equals(nosaukums2)) {
  63. return nosaukums1.compareTo(nosaukums2);
  64. }
  65. return 0;
  66. }
  67. }
  68.  
  69. public class Md2_181rdb098 {
  70. static String filename = "biblioteka.txt";
  71. static Scanner sc = new Scanner(System.in);
  72.  
  73. public static void main(String[] args) throws IOException {
  74. char ch;
  75. boolean continueinput = false;
  76. do {
  77. try {
  78. System.out.println("Arnis Liekniņš 2 181RDB098");
  79. System.out.println("1. Apskatīt faila saturu");
  80. System.out.println("2. Ierakstīt failā informāciju par jauno grāmatu");
  81. System.out.println("3. Izslēgt no faila informāciju par grāmatu");
  82. System.out.println("4. Koriģēt informāciju par grāmatu");
  83. System.out.println("5. Sakārtot informāciju failā pēc autoriem");
  84. System.out.println("6. Sakārtot informāciju failā pēc grāmatu nosaukumiem");
  85. System.out.println("7. Atrast informāciju par uzdotā autora grāmatām");
  86. System.out.println("8. Cik grāmatas ir bibliotēkā un cik ir mājās");
  87. int choice = sc.nextInt();
  88. sc.nextLine();
  89. if (choice > 8) {
  90. System.out.println("Nekorekta datu ievade");
  91. return;
  92. }
  93. if (choice < 1) {
  94. System.out.println("Nekorekta datu ievade");
  95. return;
  96. }
  97. switch (choice) {
  98. case 1:
  99. apskatit();
  100. break;
  101. case 2:
  102. pievienot();
  103. break;
  104. case 3:
  105. izdzest();
  106. break;
  107. case 4:
  108. labot();
  109. break;
  110. case 5:
  111. sakartot();
  112. break;
  113. case 6:
  114. sakartot2();
  115. break;
  116. case 7:
  117. atrast();
  118. break;
  119. case 8 :
  120. skaits();
  121. default:
  122. System.out.println("Nekorekta datu ievade \n ");
  123. break;
  124. }
  125. } catch (InputMismatchException e) {
  126. System.out.println("Nekorekta datu ievade");
  127. return;
  128. }
  129. System.out.println("\nVai velaties turpinat? (Raksti j (ja) vai n (ne)) \n");
  130. ch = sc.next().charAt(0);
  131. if (ch == 'n' || ch == 'N') {
  132. System.out.println("Beigas");
  133. continueinput = false;
  134. break;
  135. }
  136. if (ch == 'j' || ch == 'J') {
  137. continueinput = true;
  138. } else {
  139. System.out.println("Nekorekta datu ievade!");
  140. continueinput = false;
  141. }
  142. sc.nextLine();
  143. } while (continueinput);
  144. }
  145.  
  146. public static void apskatit() {
  147.  
  148. System.out.println("\n---------------------------------------------------------------------------------------------------------");
  149. System.out.printf("# %-20s%-20s%-18s%-25s%-22s", "Autors", "Nosaukums", "Kur grāmata", "Lasītāja kods",
  150. "Atgriešanas datums");
  151. System.out.print("\n---------------------------------------------------------------------------------------------------------");
  152. int numurs = 1;
  153. try {
  154. BufferedReader br = new BufferedReader(new FileReader("biblioteka.txt"));
  155. info s;
  156. boolean EOF = false;
  157.  
  158. while (!EOF) {
  159. try {
  160. String line = br.readLine();
  161. String[] lineSplit = line.split("\\s+");
  162. String autors = lineSplit[0];
  163. String nosaukums = (lineSplit[1]);
  164. String kurgramata = lineSplit[2];
  165. int kods = Integer.parseInt(lineSplit[3]);
  166. String datums = (lineSplit[4]);
  167. s = new info(autors, nosaukums, kurgramata, kods, datums);
  168. s.print(numurs++);
  169. } catch (EOFException e) {
  170. EOF = true;
  171. }
  172. }
  173. br.close();
  174. } catch (Exception ex) {
  175. }
  176. System.out.println("\n---------------------------------------------------------------------------------------------------------");
  177. }
  178. public static void skaits() throws IOException {
  179. BufferedReader br = null;
  180. try {
  181. br = new BufferedReader(new FileReader("biblioteka.txt"));
  182. } catch (FileNotFoundException e) {
  183. e.printStackTrace();
  184. }
  185. String line;
  186. int biblioteka = 0;
  187. int majas = 0;
  188.  
  189. try {
  190. while ((line = br.readLine()) !=null) {
  191.  
  192. String[] split = line.split("\\s+");
  193. if (split[2].contentEquals("Majas")) majas++;
  194. if (split[2].contentEquals("Biblioteka")) biblioteka++;
  195. }
  196. } catch (IOException e) {
  197. e.printStackTrace();
  198. }
  199. System.out.println("Mājās ir "+ majas + " grāmatas");
  200. System.out.println("Bibliotēkā ir "+ biblioteka + " grāmatas");
  201. br.close();
  202. }
  203.  
  204.  
  205.  
  206. public static void pievienot() throws IOException {
  207. try {
  208. BufferedReader br = new BufferedReader(new FileReader("biblioteka.txt"));
  209. String line = br.readLine();
  210. String[] lineSplit = line.split("\\s+");
  211. info s;
  212.  
  213. System.out.println("Ievadi grāmatas autoru");
  214. String autors = sc.nextLine();
  215.  
  216. System.out.println("Ievadi grāmatas nosaukumu");
  217. String nosaukums = sc.nextLine();
  218.  
  219. System.out.println("Kur atrodas grāmata?");
  220. String kurgramata = sc.nextLine();
  221.  
  222. System.out.println("Ievadi lietotāja kodu");
  223. int kods = sc.nextInt();
  224. sc.nextLine();
  225. System.out.println("Ievadi atgriešanas datumu");
  226. String datums= sc.nextLine();
  227.  
  228.  
  229. s = new info(autors, nosaukums, kurgramata, kods, datums);
  230. try {
  231. FileWriter fw = new FileWriter("biblioteka.txt", true);
  232. BufferedWriter bw = new BufferedWriter(fw);
  233. String outputString = s.autors + " " + s.nosaukums + " " + s.kurgramata + " " + s.kods + " " + s.datums + " ";
  234. fw.write("\n" + outputString);
  235. bw.close();
  236. } catch (Exception e) {
  237. e.printStackTrace();
  238. }
  239. } catch (InputMismatchException e) {
  240. System.out.println("Nekorekta datu ievade");
  241. return;
  242. }
  243. }
  244.  
  245. public static void izdzest() {
  246. try {
  247. try {
  248. int linec = 0;
  249. BufferedReader bo = new BufferedReader(new FileReader("biblioteka.txt"));
  250. while ((bo.readLine()) != null)
  251. linec++;
  252. bo.close();
  253. System.out.println("Ievadi rindas numuru, kuru izdzēst!");
  254. int del = sc.nextInt();
  255. if (del > linec || del < 1) {
  256. System.out.println("Nekorekta datu ievade, šāda rinda neeksistē");
  257. return;
  258. }
  259. BufferedReader br = new BufferedReader(new FileReader("biblioteka.txt"));
  260. ArrayList<String> list = new ArrayList<String>();
  261. String line;
  262. while ((line = br.readLine()) != null) {
  263. line = line.trim();
  264. if (line.length()==0)
  265. {
  266. continue;
  267. }
  268. list.add(line);
  269. }
  270. br.close();
  271. list.remove(del - 1);
  272. PrintWriter pw = new PrintWriter("biblioteka.txt");
  273. pw.close();
  274. PrintWriter fileWriter = new PrintWriter("biblioteka.txt");
  275. for (String str : list) {
  276. fileWriter.println(str);
  277. }
  278. fileWriter.close();
  279. } catch (IOException e) {
  280. e.printStackTrace();
  281. }
  282. } catch (InputMismatchException e) {
  283. System.out.println("Nekorekta datu ievade");
  284. return;
  285. }
  286. }
  287.  
  288. public static void labot() throws IOException {
  289. try {
  290. try {
  291. int linec = 0;
  292. BufferedReader bo = new BufferedReader(new FileReader("biblioteka.txt"));
  293. while ((bo.readLine()) != null)
  294. linec++;
  295. bo.close();
  296. System.out.println("Par kuru grāmatu vēlies koriget informaciju? Ievadi numuru!");
  297. int num = sc.nextInt();
  298. sc.nextLine();
  299. if (num > linec || num < 1) {
  300. System.out.println("Nekorekta datu ievade, sads numurs neeksiste");
  301. return;
  302. }
  303. BufferedReader br = new BufferedReader(new FileReader("biblioteka.txt"));
  304. ArrayList<String> list = new ArrayList<String>();
  305. String line;
  306. while ((line = br.readLine()) != null) {
  307. line = line.trim();
  308. if (line.length()==0)
  309. {
  310. continue;
  311. }
  312. list.add(line);
  313. }
  314. br.close();
  315. info s;
  316.  
  317. System.out.println("Ievadi grāmatas autoru");
  318. String autors = sc.nextLine();
  319.  
  320. System.out.println("Ievadi grāmatas nosaukumu");
  321. String nosaukums = sc.nextLine();
  322.  
  323. System.out.println("Kur atrodas grāmata?)");
  324. String kurgramata = sc.nextLine();
  325.  
  326. System.out.println("Ievadi lietotāja kodu");
  327. int kods = sc.nextInt();
  328. sc.nextLine();
  329.  
  330. System.out.println("Ievadi atgriešanas datumu");
  331. String datums = sc.nextLine();
  332.  
  333.  
  334. s = new info(autors, nosaukums, kurgramata, kods, datums);
  335. String outputString = s.autors + " " + s.nosaukums + " " + s.kurgramata + " " + s.kods + " " + s.datums + " ";
  336.  
  337. list.set(num - 1, outputString);
  338. PrintWriter pw = new PrintWriter("biblioteka.txt");
  339. pw.close();
  340. PrintWriter fileWriter = new PrintWriter("biblioteka.txt");
  341. for (String str : list) {
  342. fileWriter.println(str);
  343. }
  344. fileWriter.close();
  345. } catch (FileNotFoundException e) {
  346. e.printStackTrace();
  347. }
  348. } catch (InputMismatchException e) {
  349. System.out.println("Nekorekta datu ievade");
  350. return;
  351. }
  352. }
  353.  
  354. public static void sakartot() throws IOException {
  355. BufferedReader br = new BufferedReader(new FileReader("biblioteka.txt"));
  356. ArrayList<String> list = new ArrayList<String>();
  357. String line;
  358. while ((line = br.readLine()) != null) {
  359. list.add(line);
  360. }
  361. br.close();
  362. Collections.sort(list, new StringComparator());
  363. PrintWriter pw = new PrintWriter("biblioteka.txt");
  364. pw.close();
  365. PrintWriter fileWriter = new PrintWriter("biblioteka.txt");
  366. for (String str : list) {
  367. fileWriter.println(str);
  368. }
  369. fileWriter.close();
  370. }
  371.  
  372. public static void sakartot2() throws IOException {
  373. BufferedReader br = new BufferedReader(new FileReader("biblioteka.txt"));
  374. ArrayList<String> list = new ArrayList<String>();
  375. String line;
  376. while ((line = br.readLine()) != null) {
  377. list.add(line);
  378. }
  379. br.close();
  380. Collections.sort(list, new StringComparator2());
  381. PrintWriter pw = new PrintWriter("biblioteka.txt");
  382. pw.close();
  383. PrintWriter fileWriter = new PrintWriter("biblioteka.txt");
  384. for (String str : list) {
  385. fileWriter.println(str);
  386. }
  387. fileWriter.close();
  388. }
  389.  
  390.  
  391. public static void atrast() {
  392. try {
  393. System.out.println("Ievadiet autoru(Lielais sākumburts");
  394. String autori = sc.nextLine();
  395. System.out.println("\n---------------------------------------------------------------------------------------------------------");
  396. System.out.printf("# %-20s%-20s%-18s%-25s%-22s", "Autors", "Nosaukums", "Kur grāmata", "Lasītāja kods",
  397. "Atgriešanas datums");
  398. System.out.print("\n---------------------------------------------------------------------------------------------------------");
  399. int numurs = 1;
  400. try {
  401. BufferedReader br = new BufferedReader(new FileReader("biblioteka.txt"));
  402. info s;
  403. boolean EOF = false;
  404. while (!EOF) {
  405. try {
  406. String line = br.readLine();
  407. String[] lineSplit = line.split("\\s+");
  408. String autors = lineSplit[0];
  409. String nosaukums = lineSplit[1];
  410. String kurgramata = lineSplit[2];
  411. int kods = Integer.parseInt(lineSplit[3]);
  412. String datums = lineSplit[4];
  413. s = new info(autors, nosaukums, kurgramata, kods, datums);
  414. if (autors.equals(autori)){
  415. s.print(numurs++);
  416. }
  417.  
  418. } catch (EOFException e) {
  419. EOF = true;
  420. }
  421. }
  422. br.close();
  423. } catch (Exception ex) {
  424. }
  425. } catch (InputMismatchException e) {
  426. System.out.println("Nekorekta datu ievade");
  427. return;
  428. }
  429. System.out.println("\n---------------------------------------------------------------------------------------------------------");
  430. }
  431.  
  432.  
  433.  
  434. }
Advertisement
Add Comment
Please, Sign In to add comment