leonard007

Untitled

Apr 6th, 2023
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.96 KB | None | 0 0
  1. package exerciutiul2;
  2.  
  3. import java.io.*;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.Scanner;
  7.  
  8. public class Main {
  9.     static void Serializare(Object o,String fis)
  10.     {
  11.         try {
  12.            // fis= "src/exerciutiul2/echipamente.bin";
  13.             FileOutputStream f = new FileOutputStream(fis);
  14.             ObjectOutputStream oos = new ObjectOutputStream(f);
  15.             oos.writeObject(o);
  16.             oos.close();
  17.             f.close();
  18.         }
  19.         catch (IOException e) {
  20.             e.printStackTrace();
  21.         }
  22.     }
  23.     static Object Deserializare(String fis) {
  24.         try {
  25.          //   fis= "src/exerciutiul2/echipamente.bin";
  26.             FileInputStream f = new FileInputStream(fis);
  27.             ObjectInputStream ois = new ObjectInputStream(f);
  28.             Object o=ois.readObject();
  29.             ois.close();
  30.             f.close();
  31.             return o;
  32.         }
  33.         catch (IOException | ClassNotFoundException e) {
  34.             e.printStackTrace();
  35.         }
  36.         return null;
  37.     }
  38.     public static void main(String[] args) throws IOException {
  39.         List<Echipamente> echipamentes= new ArrayList<Echipamente>();
  40.         Echipamente[] e = new Echipamente[6];
  41.         String path = "src/exerciutiul2/echipamente.txt";
  42.         BufferedReader cit;
  43.         cit = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
  44.         String linie;
  45.         String [] carcteristici ;
  46.         int nr_inv;
  47.         String denumire;
  48.         String zona_mag;
  49.         double pret;
  50.         Stare stare;
  51.         Scanner scanner = new Scanner(System.in);
  52.         while (cit.ready())
  53.         {
  54.             linie= cit.readLine();
  55.             carcteristici = linie.split(";");
  56.              denumire = carcteristici[0];
  57.              nr_inv = Integer.parseInt(carcteristici[1]);
  58.              zona_mag=carcteristici[3];
  59.              pret = Double.parseDouble(carcteristici[2]);
  60.             stare = Stare.valueOf(carcteristici[4]);
  61.          echipamentes.add(new Echipamente(denumire,nr_inv,pret,zona_mag,stare));
  62.  
  63.             Echipamente ech1 = new Echipamente(denumire,nr_inv,pret,zona_mag,stare);
  64.             if(linie.contains("imprimanta"))
  65.             {
  66.                 int ppm = Integer.parseInt(carcteristici[6]);
  67.                 String rezolutie = carcteristici[7];
  68.                 int p_car=Integer.parseInt(carcteristici[8]);
  69.                 ModTiparire modTiparire= ModTiparire.valueOf(carcteristici[9].toLowerCase());
  70.                 echipamentes.add(new Imprimante(denumire,nr_inv,pret,zona_mag,stare,ppm,rezolutie,p_car,modTiparire));
  71.  
  72.             }
  73.             if(linie.contains("copiator")){
  74.                 int p_ton = Integer.parseInt(carcteristici[6]);
  75.                 FormatCopiere formatCopiere = FormatCopiere.valueOf(carcteristici[7]);
  76.                 echipamentes.add(new Copiatoare(denumire,nr_inv,pret,zona_mag,stare,p_ton,formatCopiere));
  77.             }
  78.             if(linie.contains("sistem de calcul"))
  79.             {
  80.                 String tip_m= carcteristici[6];
  81.                 double vit_mon =Double.parseDouble(carcteristici[7]);
  82.                 String c_hdd= carcteristici[8];
  83.                 SistemOperare sistemOperare = SistemOperare.valueOf(carcteristici[9]);
  84.                 echipamentes.add(new SistemeCalcul(denumire,nr_inv,pret,zona_mag,stare,tip_m,vit_mon,c_hdd,sistemOperare));
  85.  
  86.             }
  87.  
  88.         }
  89.  
  90.         boolean ok =  true;
  91.         do {
  92.             System.out.println("1.Afişarea tuturor echipamentelor\n2. Afişarea imprimantelor\n3. Afişarea copiatoarelor\n4. Afişarea sistemelor de calcul\n5. Modificarea stării în care se află un echipament\n6.Setarea unui anumit mod de scriere pentru o imprimantă\n7. Setarea unui format de copiere pentru copiatoare\n8. Instalarea unui anumit sistem de operare pe un sistem de calcul\n9. Afişarea echipamentelor vândute\n10. Să se realizeze două metode statice pentru serializarea / deserializarea colecției de  obiecte în fișierul echip.bin )");
  93.             System.out.println("0.Exit");
  94.             System.out.println("Introd opt: ");
  95.             Scanner sc = new Scanner(System.in);
  96.             int opt = sc.nextInt();
  97.             switch (opt)
  98.             {
  99.                 case 0:
  100.                     System.exit(1);
  101.                     break;
  102.                 case 1:
  103.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  104.  
  105.                     System.out.println("Imprimante: ");
  106.                     System.out.println("");
  107.                     for( Echipamente echip : echipamentes)
  108.                         if (echip instanceof  Imprimante)
  109.                             System.out.println(echip);
  110.                     System.out.println("");
  111.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  112.                     System.out.println("Copiatoare: ");
  113.  
  114.                     System.out.println("");
  115.                     for(Echipamente echip : echipamentes){
  116.                         if( echip instanceof  Copiatoare)
  117.                             System.out.println(echip);
  118.                     }
  119.                     System.out.println("");
  120.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  121.                     System.out.println("Sisteme de calcul");
  122.                     System.out.println("");
  123.                     for (Echipamente echip :echipamentes)
  124.                     {
  125.                         if( echip instanceof SistemeCalcul)
  126.                             System.out.println(echip);
  127.                     }
  128.                     System.out.println("");
  129.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  130.  
  131.                     break;
  132.                 case 2:
  133.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  134.  
  135.                     System.out.println("Imprimante: ");
  136.                     System.out.println("");
  137.                     for( Echipamente echip : echipamentes)
  138.                         if (echip instanceof  Imprimante)
  139.                             System.out.println(echip);
  140.                     System.out.println("");
  141.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  142.  
  143.                     break;
  144.                 case 3:
  145.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  146.                     System.out.println("Copiatoare: ");
  147.  
  148.                     System.out.println("");
  149.                     for(Echipamente echip : echipamentes){
  150.                         if( echip instanceof  Copiatoare)
  151.                             System.out.println(echip);
  152.                     }
  153.                     System.out.println("");
  154.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  155.  
  156.                     break;
  157.                 case 4:
  158.                     System.out.println("Sisteme de calcul");
  159.                     System.out.println("");
  160.                     for (Echipamente echip :echipamentes)
  161.                     {
  162.                         if( echip instanceof SistemeCalcul)
  163.                             System.out.println(echip);
  164.                     }
  165.                     System.out.println("");
  166.                     System.out.println("*******************************************************************************************************************************************************************************************************************************");
  167.  
  168.                     break;
  169.                 case 5:
  170.  
  171.                     System.out.println("Cititi denumirea echipamentului caruia doriti sa ii schimbati starea: ");
  172.                     String nume = scanner.nextLine();
  173.  
  174.                     for (Echipamente echipament : echipamentes) {
  175.                         if (echipament.getDenumire().equalsIgnoreCase(nume)) {
  176.                             System.out.println("Starea curenta a echipamentului " + echipament.getDenumire() + " este " + echipament.getStare());
  177.  
  178.                             System.out.print("Cititi modificarea starii (0 - achizitionat, 1 - expus, 2 - vandut): ");
  179.                             int alegere = scanner.nextInt();
  180.                             switch (alegere) {
  181.                                 case 0:
  182.                                     echipament.setStare(Stare.achizitionat);
  183.                                     break;
  184.                                 case 1:
  185.                                     echipament.setStare(Stare.expus);
  186.                                     break;
  187.                                 case 2:
  188.                                     echipament.setStare(Stare.vandut);
  189.                                     break;
  190.                                 default:
  191.                                     System.out.println("Optiunea introdusa nu este valida.");
  192.                                     break;
  193.                             }
  194.  
  195.                             System.out.println("Starea echipamentului " + echipament.getDenumire() + " a fost modificata cu succes in " + echipament.getStare());
  196.                             break;
  197.                         }
  198.                     }
  199.  
  200.                     break;
  201.                 case 6:
  202.                     System.out.println("Alegeti denumirea imprimatei careia doriti sa ii schimbati modul de scriere");
  203.                     String imp= scanner.nextLine();
  204.                     for (Echipamente echip :echipamentes )
  205.                     {
  206.                         if (echip instanceof  Imprimante) {
  207.                             if (echip.getDenumire().equalsIgnoreCase(imp)) {
  208.  
  209.                                 System.out.println("Modul curent de scrie al echipamentului " + echip.getDenumire() + " este "+ ((Imprimante) echip).getModTiparire());
  210.                                 System.out.print("Cititi modificarea modului de tiparire (0 - color, 1 - albsinegru) ");
  211.                                 int alegere = scanner.nextInt();
  212.                                 switch (alegere) {
  213.                                     case 0:
  214.                                         ((Imprimante) echip).setModTiparire(ModTiparire.color);
  215.                                         break;
  216.                                     case 1:
  217.                                         ((Imprimante) echip).setModTiparire(ModTiparire.albsinegru);
  218.                                         break;
  219.  
  220.                                     default:
  221.                                         System.out.println("Optiunea introdusa nu este valida.");
  222.                                         break;
  223.                                 }
  224.                                 System.out.println("Modul de tiparire al echipamentului "+ echip.getDenumire() + "a fost schimbat in "+((Imprimante) echip).getModTiparire());
  225.  
  226.                             }
  227.                         }
  228.                     }
  229.  
  230.                     break;
  231.                 case 7:
  232.                     System.out.println("Alegeti denumirea copiatorului careia doriti sa ii schimbati fromatul de copiere");
  233.                     String cop= scanner.nextLine();
  234.                     for (Echipamente echip :echipamentes )
  235.                     {
  236.                         if (echip instanceof  Copiatoare) {
  237.                             if (echip.getDenumire().equalsIgnoreCase(cop)) {
  238.  
  239.                                 System.out.println("Formatul curent de scrie al echipamentului " + echip.getDenumire() + " este "+ ((Copiatoare) echip).getFormatCopiere());
  240.                                 System.out.print("Cititi modificarea formatului de tiparire (0 - A3, 1 - A4) ");
  241.                                 int alegere = scanner.nextInt();
  242.                                 switch (alegere) {
  243.                                     case 0:
  244.                                         ((Copiatoare) echip).setFormatCopiere(FormatCopiere.A3);
  245.                                         break;
  246.                                     case 1:
  247.                                         ((Copiatoare) echip).setFormatCopiere(FormatCopiere.A4);
  248.                                         break;
  249.  
  250.                                     default:
  251.                                         System.out.println("Optiunea introdusa nu este valida.");
  252.                                         break;
  253.                                 }
  254.                                 System.out.println("");
  255.                                 System.out.println("Formatul de tiparire al echipamentului "+ echip.getDenumire() + "a fost schimbat in "+((Copiatoare) echip).getFormatCopiere());
  256.                                 System.out.println("");
  257.                             }
  258.                         }
  259.                     }
  260.                     break;
  261.                 case 8:
  262.                     System.out.println("Alegeti instalarea unui anumit sistem de operare pe un sistem de calcul  pe care doriti sa il schimbati ");
  263.                     String sis= scanner.nextLine();
  264.                     for (Echipamente echip :echipamentes )
  265.                     {
  266.                         if (echip instanceof  SistemeCalcul) {
  267.                             if (echip.getDenumire().equalsIgnoreCase(sis)) {
  268.  
  269.                                 System.out.println("Sis de operare curent  al echipamentului " + echip.getDenumire() + " este "+ ((SistemeCalcul) echip).getSistemOperare());
  270.                                 System.out.print("Cititi modificarea sistemului de operare (0 -windows, 1 - linux) ");
  271.                                 int alegere = scanner.nextInt();
  272.                                 switch (alegere) {
  273.                                     case 0:
  274.                                         ((SistemeCalcul) echip).setSistemOperare(SistemOperare.windows);
  275.                                         break;
  276.                                     case 1:
  277.                                         ((SistemeCalcul) echip).setSistemOperare(SistemOperare.linux);
  278.                                         break;
  279.  
  280.                                     default:
  281.                                         System.out.println("Optiunea introdusa nu este valida.");
  282.                                         break;
  283.                                 }
  284.                                 System.out.println("");
  285.                                 System.out.println("Sis de operare al echipamentului "+ echip.getDenumire() + "a fost schimbat in "+ ((SistemeCalcul) echip).getSistemOperare());
  286.                                 System.out.println("");
  287.                             }
  288.                         }
  289.                     }
  290.                     break;
  291.                 case 9:
  292.                     System.out.println("Echipamentele vandute sunt: ");
  293.                     String str="vandut";
  294.                     for( Echipamente echp : echipamentes)
  295.                     {
  296.                         if((echp.getStare().equals(Stare.vandut)))
  297.                         {
  298.                             System.out.println(echp);
  299.                         }
  300.                     }
  301.                     break;
  302.                 case 10:
  303.                     Serializare(echipamentes,"src/exerciutiul2/echipamente.bin");
  304.                     System.out.println("Serializare finalizata cu succes!");
  305.                     System.out.println("Deserealizarea arata: ");
  306.                     System.out.println(" ");
  307.                     List<Echipamente>q;
  308.                     q=(List<Echipamente>)Deserializare("src/exerciutiul2/echipamente.bin");
  309.                     for(Echipamente echip : q)
  310.                         System.out.println(echip);
  311.                     break;
  312.  
  313.             }
  314.  
  315.         }while (ok==true);
  316.  
  317.  
  318.  
  319.     }
  320. }
  321.  
Add Comment
Please, Sign In to add comment