package ik.ku.lt.inf041.kestutis.armalis; import java.io.*; import java.text.*; import java.util.*; public class L2B22 { //private static final DateFormat FRMT_DATE = new SimpleDateFormat("yyyy.MM.dd yyyy.MM.dd"); //private static final NumberFormat FRMT_NUM = new (); private static class PrekesIrasas { PrekesIrasas fKitas = null; String fPreke; int fGautKiek; int fPardKiek; //Date fPardDate; String fPardDate; } private static class PrekesKaina { PrekesKaina fKaire = null; PrekesKaina fDesine = null; String fPreke; double fPardKain; } private static class PrekesLikutis { PrekesLikutis fKaire = null; PrekesLikutis fDesine = null; String fPreke; int fLikutis; double fPardKain; double fPajamos; } private PrekesKaina fPrekesKainaRoot; private PrekesLikutis fPrekesLikutisRoot; public static void main(String[] args) throws IOException, ParseException { // Pirmo failo nuskaitymas PrekesIrasas pradzia = null; PrekesIrasas galas = null; BufferedReader buf = new BufferedReader (new FileReader("PIrasas.csv")); String line = buf.readLine (); while ((line = buf.readLine()) != null){ String[] c = line.split(";"); PrekesIrasas pi = new PrekesIrasas(); pi.fPreke=c[0]; pi.fGautKiek= Integer.parseInt(c[1]); pi.fPardKiek= Integer.parseInt(c[2]); //pi.fPardDate = FRMT_DATE.parse(c[3]); pi.fPardDate=c[3]; if (pradzia == null){ pradzia = pi; galas = pi; } else { galas.fKitas = pi; galas = pi; } } buf.close(); // Pirmo failo duomenu isvedimas PrekesIrasas r = pradzia; System.out.println("Failas PIrasas.csv"); System.out.println("Prekes"+'\t'+"Gauta"+'\t'+"Parduota"+'\t'+"Pardavimo data"); while (r != null){ System.out.println(r.fPreke+'\t'+r.fGautKiek+'\t'+r.fPardKiek+'\t'+r.fPardDate); r = r.fKitas; } // Antro failo nuskaitymas ir isvedimas i ekrana System.out.println (""); System.out.println("Irasas PKaina.csv"); System.out.println(""); System.out.println("Preke:"+'\t'+'\t'+"Prekes Kaina:"); PrekesKaina root = null; BufferedReader bf = new BufferedReader(new FileReader("PKaina.csv")); String line1 = bf.readLine(); while ((line1 = bf.readLine()) != null ){ String cells[] = line1.split(";"); PrekesKaina pk = new PrekesKaina(); pk.fPreke = cells[0]; pk.fPardKain = Double.parseDouble(cells[1]); System.out.println(pk.fPreke+'\t'+'\t'+pk.fPardKain+" Lt"); if (root != null) { PrekesKaina k = root; while (true){ int c = pk.fPreke.compareTo(k.fPreke); if (c>0){ if (k.fDesine != null){ k = k.fDesine; } else { k.fDesine = pk; break; } } else if (c<0){ if (k.fKaire != null){ k = k.fKaire; } else { k.fKaire = pk; break; } } else { throw new RuntimeException ("Yra pasikartojanciu irasu Prekiu kainorastyje"); } } } else { root = pk; } } bf.close(); // /* PrekesLikutis fKaire = null; PrekesLikutis fDesine = null; String fPreke; int fLikutis; double fPardKain; double fPajamos; */ // Galutiniu duomenu isvedimas i e //Prekiu surasymas i Prekes likucio medi PrintWriter wr = new PrintWriter(new FileWriter("PLikutis.csv")); PrekesIrasas sk1 = pradzia; PrekesKaina sk2 = root; PrekesLikutis root1 = null; while (sk1 != null){ // Cia "kursorius" atsistoja ties pirmo failo pirmu steku PrekesLikutis pl = new PrekesLikutis(); sk1 = sk1.fKitas; } } }