Advertisement
Guest User

Java

a guest
Jun 12th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.51 KB | None | 0 0
  1. /*
  2.  
  3. package spt2015;
  4.  
  5. public class Teret {
  6.  
  7.     protected String serijskiBroj;
  8.     protected int duzina, visina, sirina;
  9.     protected double tezina;
  10.  
  11.     public Teret(String serijskiBroj, int duzina, int visina, int sirina, double tezina) throws Exception {
  12.         if (duzina * visina * sirina < tezina)
  13.             throw new Exception("Tezina ne moze biti veca od zapremine");
  14.  
  15.         this.serijskiBroj = serijskiBroj;
  16.         this.duzina = duzina;
  17.         this.visina = visina;
  18.         this.sirina = sirina;
  19.         this.tezina = tezina;
  20.     }
  21.  
  22.     public final double zapremina() {
  23.         return this.duzina * this.visina * this.sirina;
  24.     }
  25.  
  26.     public final double getTezina() {
  27.         return this.tezina;
  28.     }
  29.  
  30.     public String toString() {
  31.         return " " + this.serijskiBroj + "(" + this.duzina + "," + this.sirina + "," + this.visina + ")";
  32.     }
  33.  
  34. }
  35.  
  36.  
  37. -----------------------------------------------------------------------------------------------------------------------
  38.  
  39.  
  40.  
  41. package spt2015;
  42.  
  43. import java.io.IOException;
  44. import java.nio.charset.Charset;
  45. import java.nio.file.Files;
  46. import java.nio.file.Paths;
  47. import java.nio.file.StandardOpenOption;
  48. import java.sql.ResultSet;
  49.  
  50. import bazapodataka.BazaPodataka;
  51.  
  52. public class Kontejner extends Teret {
  53.  
  54.     private Teret[] niz;
  55.  
  56.     public Kontejner(String serijskiBroj, int duzina, int visina, int sirina, double tezina) throws Exception {
  57.         super(serijskiBroj, duzina, visina, sirina, tezina);
  58.         niz = new Teret[5];
  59.  
  60.     }
  61.  
  62.     public Kontejner(String serijskiBroj, int duzina, int visina, int sirina, double tezina, int brojElemenata)
  63.             throws Exception {
  64.         super(serijskiBroj, duzina, visina, sirina, tezina);
  65.         niz = new Teret[brojElemenata];
  66.  
  67.     }
  68.  
  69.     public void dodajTeret(Teret t) {
  70.         try {
  71.             int indeks = imaProstora();
  72.             if (indeks == -1 || t instanceof Kontejner
  73.                     || ukupnaZapreminaTeretnihObjekata() + t.zapremina() > this.zapremina())
  74.                 throw new Exception("Nije moguce dodati objekat");
  75.             niz[indeks] = t;
  76.             this.tezina += t.tezina;
  77.  
  78.         } catch (Exception e) {
  79.             System.err.println(e);
  80.         }
  81.  
  82.     }
  83.  
  84.     public int imaProstora() {
  85.         for (int i = 0; i < niz.length; i++) {
  86.             if (niz[i] == null)
  87.                 return i;
  88.         }
  89.         return -1;
  90.     }
  91.  
  92.     private double ukupnaZapreminaTeretnihObjekata() {
  93.         double ukupnaZapremina = 0;
  94.         for (int i = 0; i < niz.length; i++) {
  95.             if (niz[i] != null)
  96.                 ukupnaZapremina += niz[i].tezina;
  97.         }
  98.         return ukupnaZapremina;
  99.  
  100.     }
  101.  
  102.     public void izvadiTeret(int indeks) {
  103.         try {
  104.             if (indeks < 0 || indeks >= niz.length)
  105.                 throw new Exception("Nije isparvan indeks");
  106.             this.tezina -= niz[indeks].tezina;
  107.             niz[indeks] = null;
  108.  
  109.         } catch (Exception e) {
  110.             System.err.println(e);
  111.         }
  112.     }
  113.  
  114.     public void popisi() {
  115.         byte[] bytes = (this.toString().getBytes(Charset.forName("UTF-8")));
  116.         try {
  117.             Files.write(Paths.get(this.serijskiBroj + ".txt"), bytes, StandardOpenOption.WRITE);
  118.  
  119.         } catch (IOException ex) {
  120.             System.err.println(ex);
  121.         }
  122.     }
  123.  
  124.     public void izlistaj() {
  125.         try {
  126.             byte[] encoded = Files.readAllBytes(Paths.get(this.serijskiBroj + ".txt"));
  127.             String s = new String(encoded, Charset.forName("UTF-8"));
  128.             System.out.println(s);
  129.  
  130.         } catch (Exception ex) {
  131.             System.err.println(ex);
  132.         }
  133.     }
  134.  
  135.     public String toString() {
  136.         String s = "S " + super.toString() + "\n";
  137.         for (int i = 0; i < niz.length; i++)
  138.             if (niz[i] != null)
  139.                 s += "T " + super.toString() + "\n";
  140.         return s;
  141.  
  142.     }
  143.  
  144.     public static Kontejner dohvatiII(String serijskiBroj) {
  145.         Kontejner k = null;
  146.         try {
  147.             ResultSet rs1 = BazaPodataka.getInstanca()
  148.                     .select("SELECT * FROM kontejneri WHERE kontejnerSB = '" + serijskiBroj + "'");
  149.             if (rs1.next()) {
  150.                 String sql = "SELECT * FROM tereti WHERE teretSB IN ";
  151.                 sql += "(SELECT teretSB FROM kontejneri_tereti WHERE kontejnerSB = '" + serijskiBroj + "')";
  152.                 ResultSet rs2 = BazaPodataka.getInstanca().select(sql);
  153.                 k = new Kontejner(serijskiBroj, rs1.getInt("duzina"), rs1.getInt("sirina"), rs1.getInt("visina"),
  154.                         rs1.getInt("brojElemenata"));
  155.                 while (rs2.next()) {
  156.                     k.dodajTeret(new Teret(rs2.getString("teretSB"), rs1.getInt("duzina"), rs1.getInt("sirina"),
  157.                             rs1.getInt("visina"), rs1.getDouble("tezina")));
  158.                 }
  159.             }
  160.         } catch (Exception e) {
  161.             System.err.println(e);
  162.         }
  163.         return k;
  164.     }
  165.  
  166. }
  167.  
  168.  
  169.  
  170. ------------------------------------------------------------------------------------------------------------------------
  171.  
  172.  
  173.  
  174. package spt2015;
  175.  
  176. import java.nio.charset.Charset;
  177. import java.nio.file.Files;
  178. import java.nio.file.Paths;
  179. import java.nio.file.StandardOpenOption;
  180. import java.sql.ResultSet;
  181. import java.util.ArrayList;
  182.  
  183. import bazapodataka.BazaPodataka;
  184.  
  185. public class Zapisnik {
  186.  
  187.     private int id;
  188.     private String datum, kontejnerSB, brodSB;
  189.  
  190.     public Zapisnik(int id, String datum, String kSB, String bSB) {
  191.         this.id = id;
  192.         this.datum = datum;
  193.         this.kontejnerSB = kSB;
  194.         this.brodSB = bSB;
  195.     }
  196.  
  197.     public static void pretraga(ArrayList<Zapisnik> lista, int godina, int mesec) {
  198.         String kriterijum = godina + "-" + (mesec < 10 ? "0" + mesec : mesec);
  199.         String sadrzaj = "";
  200.         for (Zapisnik item : lista) {
  201.             if (item.datum.contains(kriterijum))
  202.                 sadrzaj += item + "\n";
  203.         }
  204.  
  205.         if (sadrzaj.equals(""))
  206.             sadrzaj = "Nema rezultat koji dogovaraju ovom kriterijumu";
  207.         byte[] bytes = ("----Rezultat---- \n" + sadrzaj + "----------").getBytes(Charset.forName("UTF-8"));
  208.  
  209.         try {
  210.             Files.write(Paths.get("pretraga.txt"), bytes, StandardOpenOption.WRITE);
  211.  
  212.         } catch (Exception e) {
  213.             System.err.println(e);
  214.         }
  215.     }
  216.  
  217.     public static String izlistaj(Zapisnik[] niz) {
  218.         String sadrzaj = "";
  219.         for (int i = 0; i < niz.length; i++) {
  220.             if (niz[i] != null)
  221.                 sadrzaj += niz[i];
  222.         }
  223.  
  224.         return sadrzaj;
  225.     }
  226.  
  227.     public static ArrayList<Zapisnik> dohvati() {
  228.         ArrayList<Zapisnik> lista = new ArrayList<Zapisnik>();
  229.         ResultSet rs = BazaPodataka.getInstanca().select("SELECT * FROM zapisnici");
  230.         try {
  231.             while (rs.next()) {
  232.                 lista.add(new Zapisnik(rs.getInt("zapisnikID"), rs.getDate("datum").toString(),
  233.                         rs.getString("kontejnerSB"), rs.getString("brodSB")));
  234.             }
  235.         } catch (Exception e) {
  236.             System.err.println(e);
  237.         }
  238.  
  239.         return lista;
  240.     }
  241.  
  242.     public String toString() {
  243.         return this.id + " [" + this.datum + "]" + "<" + this.kontejnerSB + "," + this.brodSB + ">";
  244.     }
  245.  
  246. }
  247.  
  248.  
  249. ----------------------------------------------------------------------------------------------------------------
  250.  
  251.  
  252.  
  253. package spt2015;
  254.  
  255. import java.sql.ResultSet;
  256. import java.util.ArrayList;
  257.  
  258. import bazapodataka.BazaPodataka;
  259.  
  260. public class Brod {
  261.     private String serijskiBroj, relacija;
  262.     private double maksimalnaNosivost;
  263.     ArrayList<Kontejner> lista;
  264.    
  265.    
  266.     public Brod(String serijskiBroj, String relacija, double maksimalnaNosivost) {
  267.         this.serijskiBroj = serijskiBroj;
  268.         this.relacija = relacija;
  269.         this.maksimalnaNosivost = maksimalnaNosivost;
  270.         lista = new ArrayList<Kontejner>();
  271.     }
  272.    
  273.     public static ArrayList<Brod> dohvatiIzBaze() {
  274.         ArrayList<Brod> lista = new ArrayList<Brod>();
  275.         ResultSet rs = BazaPodataka.getInstanca().select("SELECT * FROM brodovi");
  276.        
  277.         try {
  278.             while(rs.next()) {
  279.                 lista.add(new Brod(rs.getString("brodSB"), rs.getString("relacija"), rs.getDouble("maksimalna_tezina")));
  280.             }
  281.            
  282.            
  283.         } catch (Exception e) {
  284.             System.err.println(e);
  285.         }
  286.         return lista;
  287.     }
  288.    
  289.    
  290.     public double trenutnaTezina() {
  291.         double trenutnaTezina = 0;
  292.         for(Kontejner k : lista) {
  293.             trenutnaTezina += k.getTezina();
  294.         }
  295.         return trenutnaTezina;
  296.     }
  297.    
  298.    
  299.     public void dodajKontejner(Kontejner k) {
  300.         try {
  301.             if(!(k instanceof Kontejner) || (trenutnaTezina() + k.getTezina() < maksimalnaNosivost)) {
  302.                 throw new Exception("Nije moguce dodati kontejner");
  303.             }
  304.             lista.add(k);
  305.            
  306.         } catch (Exception e) {
  307.             System.err.println(e);
  308.         }
  309.        
  310.     }
  311.    
  312.    
  313.    
  314.    
  315.     public String toString() {
  316.         String s = "Brod: " + serijskiBroj + "\n";
  317.         s+= "Relacija: " + relacija + "\n";
  318.         s+= "Maksimanla nosivost: " + maksimalnaNosivost + "\n";
  319.         for(Kontejner k : lista) {
  320.             s += k;
  321.         }
  322.         return s;
  323.     }
  324.    
  325.        
  326.  
  327. }
  328.  
  329.  
  330. ------------------------------------------------------------------------------------------------------------------------
  331.  
  332.  
  333.  
  334.  
  335. package bazapodataka;
  336.  
  337. import java.sql.*;
  338.  
  339. public class BazaPodataka {
  340.     private static BazaPodataka instanca;
  341.     private Connection conn;
  342.  
  343.     private BazaPodataka() {
  344.         try {
  345.             Class.forName("com.mysql.jdbc.Driver");
  346.             conn = DriverManager.getConnection("jdbc:mysql://localhost/oop_g2", "root", "");
  347.         } catch (Exception e) {
  348.             System.err.println("Gre嗅a pri konekciji sa bazom!" + e.getMessage());
  349.             System.exit(1);
  350.         }
  351.     }
  352.  
  353.     public static BazaPodataka getInstanca() {
  354.         if (instanca == null) {
  355.             instanca = new BazaPodataka();
  356.         }
  357.         return instanca;
  358.     }
  359.  
  360.     public ResultSet select(String sql) {
  361.         try {
  362.             Statement stmt = conn.createStatement();
  363.             return stmt.executeQuery(sql);
  364.         } catch (Exception e) {
  365.             System.err.println("Gre嗅a pri select upitu!");
  366.             return null;
  367.         }
  368.     }
  369.  
  370.     public int uid_upit(String sql_upit) {
  371.         try {
  372.             Statement stmt = conn.createStatement();
  373.             return stmt.executeUpdate(sql_upit);
  374.         } catch (SQLException e) {
  375.             System.err.println("Nije uspeo upit!");
  376.             return 0;
  377.         }
  378.     }
  379.  
  380.     public void automatskaTransakcija(boolean on_off) {
  381.         try {
  382.             conn.setAutoCommit(on_off);
  383.         } catch (SQLException e) {
  384.             System.err.println("Nije uspelo pode啾vanje Auto Commit!");
  385.         }
  386.     }
  387.  
  388.     public void sacuvajTransakciju() {
  389.         try {
  390.             conn.commit();
  391.         } catch (SQLException e) {
  392.             System.err.println("Nije uspelo 鑾vanje transakcije!");
  393.         }
  394.     }
  395. }
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement