Raizekas

Untitled

Mar 4th, 2021
474
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.io.*;
  2. import java.util.ArrayList;
  3.  
  4. public class Programa
  5. {
  6.     public static final String[] medziaguTipai = {"medis", "metalas", "plastikas"};
  7.  
  8.     public static void main(String[] args)
  9.     {
  10.         ArrayList<String> katalogoEilutes = new ArrayList<>();
  11.  
  12.         ArrayList<Preke> prekiuSarasas = new ArrayList<>();
  13.  
  14.         ArrayList<Preke> medzioPrekes = new ArrayList<>();
  15.         ArrayList<Preke> metaloPrekes = new ArrayList<>();
  16.         ArrayList<Preke> plastikoPrekes = new ArrayList<>();
  17.  
  18.  
  19.         for (int i = 0; i < medziaguTipai.length; i++)
  20.         {
  21.             System.out.println(medziaguTipai[i]);
  22.         }
  23.  
  24.  
  25.  
  26.         double sandelioKaina = 0;
  27.  
  28.         try
  29.         {
  30.             nuskaitymasIsFailo(katalogoEilutes);
  31.         }
  32.         catch (IOException e)
  33.         {
  34.             e.printStackTrace();
  35.         }
  36.  
  37.         System.out.println(katalogoEilutes);
  38.  
  39.         isskaidytiEilute(katalogoEilutes, prekiuSarasas);
  40.  
  41.         for (int i = 0; i < prekiuSarasas.size(); i++)
  42.         {
  43.            /* System.out.println(prekiuSarasas.get(i).pavadinimas);
  44.             System.out.println(prekiuSarasas.get(i).kaina);
  45.             System.out.println(prekiuSarasas.get(i).kiekis);*/
  46.  
  47.             System.out.println(prekiuSarasas.get(i).toString());
  48.             sandelioKaina += prekiuSarasas.get(i).gautiVisuVienetuKaina();
  49.             System.out.println("VisŲ vienetų kaina: " + prekiuSarasas.get(i).gautiVisuVienetuKaina());
  50.             System.out.println("---------------------");
  51.         }
  52.         System.out.println("Kainų vidurkis: " + prekiuKainuVidurkis(prekiuSarasas));
  53.         System.out.println("Viso sandėlio kaina: " + sandelioKaina);
  54.         System.out.println("Viso sandėlio kaina METODE: " + apskaiciuotiVisoSandelioKaina(prekiuSarasas));
  55.  
  56.         // Metodas, kuris sugrupuoje VISŲ medžiagų kartu
  57.         //sugrupuotiPrekes(prekiuSarasas, medzioPrekes, metaloPrekes, plastikoPrekes);
  58.  
  59.         // Universalus metodas, kurį galime naudoti atskirai kiekvienai medžiagai
  60.         sugrupuotiUniversaliai(prekiuSarasas, MedziaguTipai.medis.toString(), medzioPrekes);
  61.         sugrupuotiUniversaliai(prekiuSarasas, MedziaguTipai.metalas.toString(), metaloPrekes);
  62.         sugrupuotiUniversaliai(prekiuSarasas, MedziaguTipai.plastikas.toString(), plastikoPrekes);
  63.  
  64.         isvestiSugrupuotasPrekes(medzioPrekes, metaloPrekes, plastikoPrekes);
  65.  
  66.     }
  67.  
  68.  
  69.  
  70.     public static void nuskaitymasIsFailo(ArrayList<String> katalogoEilutes) throws IOException
  71.     {
  72.         File prekiuKatalogoFailas = new File("katalogo_failai/prekiu_katalogas.csv");
  73.         FileReader fileReaderObjektas = new FileReader(prekiuKatalogoFailas);
  74.         BufferedReader failoSkaitytuvas = new BufferedReader(fileReaderObjektas);
  75.  
  76.         String pirmaEilute = failoSkaitytuvas.readLine();               // nuskaityti pirma eilute, nes ten tik antraste nereikalinga
  77.  
  78.         String eilute = failoSkaitytuvas.readLine();
  79.  
  80.         while (eilute != null)
  81.         {
  82.             katalogoEilutes.add(eilute);
  83.             eilute = failoSkaitytuvas.readLine();
  84.         }
  85.     }
  86.  
  87.  
  88.     public static void isskaidytiEilute(ArrayList<String> katalogoEilutes, ArrayList<Preke> prekiuSarasas)
  89.     {
  90.         for (int i = 0; i < katalogoEilutes.size(); i++)
  91.         {
  92.             Preke laikinaPreke;
  93.             String[] isskaidytaEilute = katalogoEilutes.get(i).split(",");
  94.  
  95.             String laikinasPav = isskaidytaEilute[0];
  96.             String laikinaKainaStr = isskaidytaEilute[1];
  97.             String laikinasKiekisStr = isskaidytaEilute[2];
  98.             String laikinaMedziaga = isskaidytaEilute[3];
  99.             double laikinaKaina = Double.parseDouble(laikinaKainaStr);
  100.             int laikinasKiekis = Integer.parseInt(laikinasKiekisStr);
  101.  
  102.             laikinaPreke = new Preke(laikinasPav, laikinaKaina, laikinasKiekis, laikinaMedziaga);
  103.             prekiuSarasas.add(laikinaPreke);
  104.         }
  105.     }
  106.  
  107.  
  108.     public static double prekiuKainuSuma(ArrayList<Preke> prekiuSarasas)
  109.     {
  110.         double suma = 0;
  111.         for (int i = 0; i < prekiuSarasas.size(); i++)
  112.         {
  113.             suma += prekiuSarasas.get(i).getKaina();
  114.         }
  115.         return suma;
  116.     }
  117.  
  118.  
  119.     public static double prekiuKainuVidurkis(ArrayList<Preke> prekiuSarasas)
  120.     {
  121.         double suma = prekiuKainuSuma(prekiuSarasas);
  122.         double vidurkis = suma / prekiuSarasas.size();
  123.         return vidurkis;
  124.     }
  125.  
  126.  
  127.     public static double apskaiciuotiVisoSandelioKaina(ArrayList<Preke> prekiuSarasas)
  128.     {
  129.         double suma = 0;
  130.         for (int i = 0; i < prekiuSarasas.size(); i++)
  131.         {
  132.             Preke dabartinePreke = prekiuSarasas.get(i);
  133.             suma += dabartinePreke.apskaiciuotiVisuVienetuSuma();
  134.         }
  135.         return suma;
  136.     }
  137.  
  138.  
  139.     public static void sugrupuotiPrekes(ArrayList<Preke> prekiuSarasas, ArrayList<Preke> medzioPrekes, ArrayList<Preke> metaloPrekes, ArrayList<Preke> plastikoPrekes)
  140.     {
  141.         // IDENTISKAS METODAS tam esančiam užkomentuotam apačioje, tiesiog čia einame per medžiagų tipas ir vieną medžiagos tipą tikriname su visomis prekėmis
  142.         for (int i = 0; i < medziaguTipai.length; i++)
  143.         {
  144.             for (int j = 0; j < prekiuSarasas.size(); j++)
  145.             {
  146.                 // Pavyzdinis išvedimas, kaip sukasi ciklai
  147.                 /*System.out.println("i: " + i + "    " + "j: " + j);
  148.                 System.out.println(medziaguTipai[i] + "    " + prekiuSarasas.get(j).toString());
  149.                 System.out.println("-------------");*/
  150.  
  151.                 Preke dabartinePreke = prekiuSarasas.get(j);
  152.  
  153.                 if (medziaguTipai[i].equals(dabartinePreke.getMedziaga()))
  154.                 {
  155.                     if (i == 0)
  156.                     {
  157.                         medzioPrekes.add(dabartinePreke);
  158.                     }
  159.  
  160.                     if (i == 1)
  161.                     {
  162.                         metaloPrekes.add(dabartinePreke);
  163.                     }
  164.  
  165.                     if (i == 2)
  166.                     {
  167.                         plastikoPrekes.add(dabartinePreke);
  168.                     }
  169.                 }
  170.             }
  171.         }
  172.  
  173.         /*
  174.         ---------------- IDENTISKAS METODAS, TIESIOG einame per prekes ir kiekvieną prekę tikriname su skirtingais medžiagos tipais
  175.         for (int i = 0; i < prekiuSarasas.size(); i++)
  176.         {
  177.             for (int j = 0; j < medziaguTipai.length; j++)
  178.             {
  179.                 System.out.println("i: " + i + "    " + "j: " + j);
  180.                 System.out.println(prekiuSarasas.get(i).toString());
  181.                 System.out.println("Medžiagos tipas: " + medziaguTipai[j]);
  182.             }
  183.         } */
  184.     }
  185.  
  186.  
  187.     public static void isvestiSugrupuotasPrekes(ArrayList<Preke> medzioPrekes, ArrayList<Preke> metaloPrekes, ArrayList<Preke> plastikoPrekes)
  188.     {
  189.         System.out.println("-------------------------------");
  190.         System.out.println("Medžio prekės: ");
  191.         for (int i = 0; i < medzioPrekes.size(); i++)
  192.         {
  193.             System.out.println(medzioPrekes.get(i).toString());
  194.             System.out.println("------------");
  195.         }
  196.  
  197.         System.out.println("--------------------------------");
  198.         System.out.println("Metalo prekės: ");
  199.         for (int i = 0; i < metaloPrekes.size(); i++)
  200.         {
  201.             System.out.println(metaloPrekes.get(i).toString());
  202.             System.out.println("------------");
  203.         }
  204.  
  205.         System.out.println("--------------------------------");
  206.         System.out.println("Plastiko prekės: ");
  207.         for (int i = 0; i < plastikoPrekes.size(); i++)
  208.         {
  209.             System.out.println(plastikoPrekes.get(i).toString());
  210.             System.out.println("------------");
  211.         }
  212.     }
  213.  
  214.  
  215.  
  216.  
  217.     public static void sugrupuotiUniversaliai(ArrayList<Preke> prekiuSarasas, String ieskomaMedziaga, ArrayList<Preke> ieskomosMedziagosPrekes)
  218.     {
  219.         System.out.println(ieskomaMedziaga);
  220.         for (int i = 0; i < prekiuSarasas.size(); i++)
  221.         {
  222.             Preke dabartinePreke = prekiuSarasas.get(i);
  223.             if (dabartinePreke.getMedziaga().equals(ieskomaMedziaga))
  224.             {
  225.                 ieskomosMedziagosPrekes.add(dabartinePreke);
  226.             }
  227.         }
  228.     }
  229.  
  230. }
  231.  
RAW Paste Data