SHARE
TWEET

Untitled

a guest May 20th, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top