Advertisement
Guest User

Projekat

a guest
May 24th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.97 KB | None | 0 0
  1. import java.io.FileWriter;
  2. import java.io.IOException;
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.util.ArrayList;
  9.  
  10. import javafx.application.Application;
  11. import javafx.geometry.Insets;
  12. import javafx.geometry.Pos;
  13. import javafx.scene.Scene;
  14. import javafx.scene.control.Alert;
  15. import javafx.scene.control.Alert.AlertType;
  16. import javafx.scene.control.Button;
  17. import javafx.scene.control.ButtonType;
  18. import javafx.scene.control.Label;
  19. import javafx.scene.control.TextField;
  20. import javafx.scene.layout.HBox;
  21. import javafx.scene.layout.VBox;
  22. import javafx.stage.Stage;
  23.  
  24. public class Main extends Application{
  25.  
  26.    
  27.     static{
  28.         try{
  29.             Class.forName("com.ibm.db2.jcc.DB2Driver");
  30.            
  31.         }
  32.         catch(Exception e){
  33.             e.printStackTrace();
  34.         }
  35.     }
  36.    
  37.     Scene scene1, scene2, scene3, scene4;
  38.    
  39.     Connection con;
  40.     int pom = 0;   
  41.     public static void main(String[] args)
  42.     {  
  43.         Application.launch(args);
  44.        
  45.     }
  46.    
  47.     public void start(Stage window) throws Exception
  48.     {
  49.         try{
  50.            
  51.             String url = "jdbc:db2://localhost:50001/vstud";
  52.            
  53.            
  54.             con = DriverManager.getConnection(url,"student","abcdef");
  55.        
  56.  
  57.        
  58.         // Prva scena
  59.         Label godinaLabela1 = new Label("Godina: ");
  60.         Label oznakaLabela1 = new Label("Oznaka:");
  61.         TextField godinaField1 = new TextField();
  62.         TextField oznakaField1 = new TextField();
  63.         Button listaj = new Button("Listaj");
  64.        
  65.         HBox godinaBox1 = new HBox(5);
  66.         godinaBox1.getChildren().addAll(godinaLabela1, godinaField1);
  67.         godinaBox1.setAlignment(Pos.CENTER_LEFT);
  68.        
  69.        
  70.         HBox oznakaBox1 = new HBox(5);
  71.         oznakaBox1.getChildren().addAll(oznakaLabela1, oznakaField1);
  72.         oznakaBox1.setAlignment(Pos.CENTER_LEFT);
  73.        
  74.         VBox glavni1 = new VBox(10);
  75.         glavni1.getChildren().addAll(godinaBox1, oznakaBox1, listaj);
  76.        
  77.         glavni1.setPadding(new Insets(15, 15, 15, 15));
  78.         scene1 = new Scene(glavni1, 500, 300);
  79.        
  80.        
  81.         // Druga scena
  82.         Label prvaPoruka2 = new Label("Odabrani rok ne postoji.");
  83.         Label drugaPoruka2 = new Label("Da li zelite da ga dodate?");
  84.         Button yes = new Button("yes");
  85.         Button no = new Button("no");
  86.  
  87.        
  88.         HBox dugmici2 = new HBox(80);
  89.         dugmici2.getChildren().addAll(yes, no);
  90.        
  91.         VBox glavni2 = new VBox(10);
  92.         glavni2.getChildren().addAll(prvaPoruka2, drugaPoruka2, dugmici2);
  93.        
  94.         glavni2.setPadding(new Insets(15, 15, 15, 15));
  95.         scene2 = new Scene(glavni2, 500, 300);
  96.        
  97.         // Treca scena
  98.         Label godinaRoka3 = new Label("Godina roka:");
  99.         Label oznakaRoka3 = new Label("Oznaka roka:");
  100.         Label nazivRoka3 = new Label("Naziv roka:");
  101.         Label pocetakPrijave3 = new Label("Pocetak prijave:");
  102.         Label krajPrijave3 = new Label("Kraj prijave:");
  103.         Label tip3 = new Label("Tip:");
  104.         Button potvrdi = new Button("Potvrdi");
  105.         Button odustani = new Button("Odustani");
  106.         TextField rezGodinaRoka3 = new TextField();
  107.         TextField rezOznakaRoka3 = new TextField();
  108.         TextField rezNazivRoka3 = new TextField();
  109.         TextField rezPocetakPrijave3 = new TextField();
  110.         TextField rezKrajPrijave3 = new TextField();
  111.         TextField rezTip3 = new TextField();
  112.         Label poruka = new Label("");
  113.        
  114.         rezPocetakPrijave3.setPromptText("yyyy-mm-dd");
  115.         rezKrajPrijave3.setPromptText("yyyy-mm-dd");
  116.        
  117.         HBox prvi3 = new HBox(5);
  118.         prvi3.getChildren().addAll(godinaRoka3, rezGodinaRoka3);
  119.         prvi3.setAlignment(Pos.CENTER_LEFT);
  120.        
  121.         HBox drugi3 = new HBox(5);
  122.         drugi3.getChildren().addAll(oznakaRoka3, rezOznakaRoka3);
  123.         drugi3.setAlignment(Pos.CENTER_LEFT);
  124.        
  125.         HBox treci3 = new HBox(5);
  126.         treci3.getChildren().addAll(nazivRoka3, rezNazivRoka3);
  127.         treci3.setAlignment(Pos.CENTER_LEFT);
  128.        
  129.         HBox cetvrti3 = new HBox(5);
  130.         cetvrti3.getChildren().addAll(pocetakPrijave3, rezPocetakPrijave3);
  131.         cetvrti3.setAlignment(Pos.CENTER_LEFT);
  132.        
  133.         HBox peti3 = new HBox(5);
  134.         peti3.getChildren().addAll(krajPrijave3, rezKrajPrijave3);
  135.         peti3.setAlignment(Pos.CENTER_LEFT);
  136.        
  137.         HBox sesti3 = new HBox(5);
  138.         sesti3.getChildren().addAll(tip3, rezTip3);
  139.         sesti3.setAlignment(Pos.CENTER_LEFT);
  140.        
  141.         HBox dugmici3 = new HBox(80);
  142.         dugmici3.getChildren().addAll(potvrdi, odustani);
  143.        
  144.         VBox glavni3 = new VBox(5);
  145.         glavni3.getChildren().addAll(prvi3, drugi3, treci3, cetvrti3, peti3, sesti3, dugmici3, poruka);
  146.        
  147.         glavni3.setPadding(new Insets(15, 15, 15, 15));
  148.         scene3 = new Scene(glavni3, 500, 300);
  149.        
  150.         //cetvrti gui
  151.        
  152.         Label nazivRoka4 = new Label("Naziv roka:");
  153.         Label pocetakPrijave4 = new Label("Pocetak prijave:");
  154.         Label krajPrijave4 = new Label("Kraj prijave:");
  155.         Label brPrijavljenih4 = new Label("Broj prijavljenih ispita:");
  156.         Label brPolozenih4 = new Label("Broj polozenih ispita:");
  157.         Label brDiskvalifikovanih4 = new Label("Broj ispita na kojima su studenti diskvalifikovani:");
  158.         Label brPonistenih4 = new Label("Broj ispita cije su ocene studenti ponistili:");
  159.         Label prosek4 = new Label("Prosecna ocena polozenih ispita");
  160.        
  161.         Label rezNazivRokaLabela4 = new Label("");
  162.         Label rezPocetakPrijaveLabela4 = new Label("");
  163.         Label rezKrajPrijaveLabela4 = new Label("");
  164.         Label rezBrPrijavljenihLabela4 = new Label("");
  165.         Label rezBrPolozenihLabela4 = new Label("");
  166.         Label rezBrDiskvalifikovanihLabela4 = new Label("");
  167.         Label rezBrPonistenihLabela4 = new Label("");
  168.         Label rezProsekLabela4 = new Label("");
  169.        
  170.         Button azuriraj = new Button("Azuriraj");
  171.         Button obrisi = new Button("Obrisi");
  172.         Button stampaj = new Button("Stampaj u datoteku");
  173.        
  174.         Label poruka3 = new Label("");
  175.        
  176.         HBox prvi4 = new HBox(5);
  177.         prvi4.getChildren().addAll(nazivRoka4, rezNazivRokaLabela4);
  178.        
  179.         HBox drugi4 = new HBox(5);
  180.         drugi4.getChildren().addAll(pocetakPrijave4, rezPocetakPrijaveLabela4);
  181.        
  182.         HBox treci4 = new HBox(5);
  183.         treci4.getChildren().addAll(krajPrijave4, rezKrajPrijaveLabela4);
  184.        
  185.         HBox cetvrti4 = new HBox(5);
  186.         cetvrti4.getChildren().addAll(brPrijavljenih4, rezBrPrijavljenihLabela4);
  187.        
  188.         HBox peti4 = new HBox(5);
  189.         peti4.getChildren().addAll(brPolozenih4, rezBrPolozenihLabela4);
  190.        
  191.         HBox sesti4 = new HBox(5);
  192.         sesti4.getChildren().addAll(brDiskvalifikovanih4, rezBrDiskvalifikovanihLabela4);
  193.        
  194.         HBox sedmi4 = new HBox(5);
  195.         sedmi4.getChildren().addAll(brPonistenih4, rezBrPonistenihLabela4);
  196.        
  197.         HBox osmi4 = new HBox(5);
  198.         osmi4.getChildren().addAll(prosek4, rezProsekLabela4);
  199.        
  200.         HBox dugmici4 = new HBox(5);
  201.         dugmici4.getChildren().addAll(azuriraj, obrisi, stampaj);
  202.        
  203.         VBox glavni4 = new VBox(5);
  204.         glavni4.getChildren().addAll(prvi4, drugi4, treci4, cetvrti4, peti4, sesti4, sedmi4, osmi4, dugmici4, poruka3);
  205.         glavni4.setPadding(new Insets(15, 15, 15, 15));
  206.         scene4 = new Scene(glavni4, 500, 300);
  207.        
  208.        
  209.        
  210.        
  211.         //kreiranje window
  212.        
  213.         window.setScene(scene1);
  214.         window.show();
  215.         window.setTitle("Projekat");
  216.        
  217.        
  218.         // Akcije
  219.  
  220.        
  221.         no.setOnAction(e -> window.setScene(scene1));
  222.         yes.setOnAction(e -> {
  223.            
  224.            
  225.             pom = 1;
  226.             window.setScene(scene3);
  227.            
  228.         });
  229.        
  230.        
  231.         potvrdi.setOnAction(e -> {
  232.             // tu sam
  233.             int godina = Integer.parseInt(rezGodinaRoka3.getText());
  234.             String oznaka = rezOznakaRoka3.getText();
  235.             String naziv = rezNazivRoka3.getText();
  236.             String pocetak = rezPocetakPrijave3.getText();
  237.             String kraj = rezKrajPrijave3.getText();
  238.             String tip = rezTip3.getText();
  239.            
  240.             if(pom == 1)
  241.             {
  242.             PreparedStatement upit;
  243.             try {
  244.                 upit = con.prepareStatement("INSERT INTO ispitni_rok " +
  245.                         "values(?,?,?,?,?,?)");
  246.                
  247.                 upit.setInt(1, godina);
  248.                 upit.setString(2, oznaka);
  249.                 upit.setString(3, naziv);
  250.                 upit.setDate(4, java.sql.Date.valueOf(pocetak));
  251.                 upit.setDate(5, java.sql.Date.valueOf(kraj));
  252.                 upit.setString(6, tip);
  253.  
  254.                 int insCount = upit.executeUpdate();
  255.  
  256.                
  257.                
  258.                     poruka.setText("Uspesno ste uneli vrednost");
  259.    
  260.             } catch (SQLException e1) {
  261.                 e1.printStackTrace();
  262.             }
  263.             }
  264.             else
  265.             {
  266.                    
  267.                     try {
  268.                         PreparedStatement upit = con.prepareStatement("UPDATE ispitni_rok " +
  269.                                                                       "SET naziv = ?, " +
  270.                                                                       "pocetak_prijavljivanja = ?, " +
  271.                                                                       "kraj_prijavljivanja = ?, " +
  272.                                                                       "tip = ? " +
  273.                                                                       "WHERE godina = ? and oznaka = ?");
  274.                        
  275.                         upit.setInt(5, godina);
  276.                         upit.setString(6, oznaka);
  277.                         upit.setString(1, naziv);
  278.                         upit.setDate(2, java.sql.Date.valueOf(pocetak));
  279.                         upit.setDate(3, java.sql.Date.valueOf(kraj));
  280.                         upit.setString(4, tip);
  281.                        
  282.                         int insCount = upit.executeUpdate();
  283.                        
  284.                        
  285.                         poruka.setText("Uspesno ste azurirali!");
  286.                        
  287.                     } catch (SQLException e1) {
  288.                         e1.printStackTrace();
  289.                     }
  290.                    
  291.                                 }
  292.  
  293.            
  294.            
  295.            
  296.         });
  297.        
  298.         stampaj.setOnAction(e -> {
  299.            
  300.             String naziv = rezNazivRokaLabela4.getText();
  301.             String pocetak_prijave = rezPocetakPrijaveLabela4.getText();
  302.             String kraj_prijave = rezKrajPrijaveLabela4.getText();
  303.             int br_prij = Integer.parseInt(rezBrPrijavljenihLabela4.getText());
  304.             int br_pol =  Integer.parseInt(rezBrPolozenihLabela4.getText());
  305.             int br_disk =  Integer.parseInt(rezBrDiskvalifikovanihLabela4.getText());
  306.             int br_pon = Integer.parseInt(rezBrPonistenihLabela4.getText());
  307.             float prosek = Float.parseFloat(rezProsekLabela4.getText());
  308.            
  309.            
  310.             ArrayList<String> niz = new ArrayList<String>();
  311.             niz.add("Naziv: " + naziv);
  312.             niz.add("Pocetak prijave: " + pocetak_prijave.toString());
  313.             niz.add("Kraj prijave: " + kraj_prijave.toString());
  314.             niz.add("Broj studenata koji su prijavljivali ispite: " + br_prij);
  315.             niz.add("Broj studenata koji su polozili ispite: " + br_pol);
  316.             niz.add("Broj studenata koji su diskvalifikovani sa ispita: " + br_disk);
  317.             niz.add("Broj studenata koji su ponistili ispite: " + br_pon);
  318.             niz.add("Prosek studenata u ovom ispitnom roku: " + prosek);
  319.            
  320.            
  321.            
  322.             FileWriter fw;
  323.             try {
  324.                 fw = new FileWriter("ispitni_rok.txt");
  325.                 for(String pom:niz){
  326.                     fw.write(pom);
  327.                     fw.write("\n");
  328.                 }
  329.                
  330.                 poruka3.setText("Uspesno ste uneli u datoteku!");
  331.                 fw.close();
  332.             } catch (IOException e1) {
  333.                 e1.printStackTrace();
  334.             }
  335.            
  336.            
  337.         });
  338.        
  339.         azuriraj.setOnAction(e -> window.setScene(scene3));
  340.        
  341.         listaj.setOnAction(e -> {
  342.            
  343.             rezGodinaRoka3.setEditable(false);
  344.             rezOznakaRoka3.setEditable(false);
  345.            
  346.             rezGodinaRoka3.setText(godinaField1.getText());
  347.             rezOznakaRoka3.setText(oznakaField1.getText());
  348.            
  349.             int godina_roka = Integer.parseInt(godinaField1.getText());
  350.             String oznaka_roka = oznakaField1.getText();
  351.  
  352.            
  353.             String upit =   "with polozeni (godina, oznaka, br_polozenih, ocene) as( " +
  354.                     "select irr.godina, irr.oznaka, count(*), sum(ocena) " +
  355.                     "from ispitni_rok irr join ispit ii on irr.godina=ii.godina_roka and irr.oznaka=ii.oznaka_roka "+
  356.                     "where status_prijave='o' and ocena>5 "+
  357.                     "group by irr.godina, irr.oznaka "+
  358.                     "), "+
  359.                     "diskvalifikovani(godina, oznaka, br_diskvalifikovanih) as ( "+
  360.                     "select irrr.godina, irrr.oznaka, count(*) "+
  361.                     "from ispitni_rok irrr join ispit iii on irrr.godina=iii.godina_roka and irrr.oznaka=iii.oznaka_roka "+
  362.                     "where status_prijave='d' "+
  363.                     "group by irrr.godina, irrr.oznaka "+
  364.                     "), "+
  365.                     "ponisteni(godina, oznaka, br_ponistenih) as ( "+
  366.                     "select irrrr.godina, irrrr.oznaka, count(*) "+
  367.                     "from ispitni_rok irrrr join ispit iiii on irrrr.godina=iiii.godina_roka and irrrr.oznaka=iiii.oznaka_roka "+
  368.                     "where status_prijave='x' "+
  369.                     "group by irrrr.godina, irrrr.oznaka "+
  370.                     ") "+
  371.                     "select ir.naziv, ir.pocetak_prijavljivanja, ir.kraj_prijavljivanja, count(*) br_prijavljenih, p.br_polozenih, (p.ocene/p.br_polozenih)*1.0 prosek, coalesce(d.br_diskvalifikovanih, 0) diskvalifikovani, coalesce(po.br_ponistenih, 0) ponisteni "+
  372.                     "from ispitni_rok ir join ispit "+
  373.                     "on ir.godina=ispit.godina_roka and ir.oznaka=ispit.oznaka_roka "+
  374.                     "join polozeni p on p.godina=ir.godina and p.oznaka=ir.oznaka "+
  375.                     "left join diskvalifikovani d on d.godina=ir.godina and d.oznaka=ir.oznaka "+
  376.                     "left join ponisteni po on po.oznaka=ir.oznaka and po.godina=ir.godina "+
  377.                     "where ispit.status_prijave='o' and ir.godina=? and ir.oznaka=? "+
  378.                     "group by ir.naziv, ir.pocetak_prijavljivanja, ir.kraj_prijavljivanja, p.br_polozenih, (p.ocene/p.br_polozenih)*1.0, d.br_diskvalifikovanih, po.br_ponistenih ";
  379.            
  380.             try {
  381.                 PreparedStatement brIspita = con.prepareStatement(upit);
  382.                
  383.                 brIspita.setInt(1, godina_roka);
  384.                 brIspita.setString(2, oznaka_roka);
  385.                 ResultSet br_prijavljenih = brIspita.executeQuery();
  386.                
  387.                 if(!br_prijavljenih.next())
  388.                 {
  389.                     window.setScene(scene2);
  390.                    
  391.                 }
  392.                 else
  393.                 {
  394.                     window.setScene(scene4);   
  395.                     rezNazivRokaLabela4.setText(br_prijavljenih.getString(1));
  396.                     rezPocetakPrijaveLabela4.setText(br_prijavljenih.getString(2));
  397.                     rezKrajPrijaveLabela4.setText(br_prijavljenih.getString(3));
  398.                     rezBrPrijavljenihLabela4.setText(""+br_prijavljenih.getInt(4));
  399.                     rezBrPolozenihLabela4.setText(""+br_prijavljenih.getInt(5));
  400.                     rezBrDiskvalifikovanihLabela4.setText(""+br_prijavljenih.getInt(7));
  401.                     rezBrPonistenihLabela4.setText(""+br_prijavljenih.getInt(8));
  402.                     rezProsekLabela4.setText(""+br_prijavljenih.getFloat(6));
  403.                 }
  404.                
  405.                
  406.             } catch (SQLException e1) {
  407.                
  408.                 e1.printStackTrace();
  409.             }
  410.            
  411.                
  412.         });
  413.        
  414.         odustani.setOnAction(e -> window.close());
  415.        
  416.                
  417.         obrisi.setOnAction(e -> {
  418.            
  419.            
  420.                
  421.            
  422.             int godina = Integer.parseInt(godinaField1.getText());
  423.             String oznaka = oznakaField1.getText();
  424.            
  425.             try {
  426.                 PreparedStatement upit = con.prepareStatement("DELETE FROM ispitni_rok " +
  427.                                                               "WHERE godina=? and oznaka=?");
  428.                 PreparedStatement upit1 = con.prepareStatement("DELETE FROM ispit " +
  429.                         "WHERE godina_roka=? and oznaka_roka=?");
  430.  
  431.                
  432.                 upit1.setInt(1,godina);
  433.                 upit1.setString(2,oznaka);
  434.                
  435.                 upit.setInt(1,godina);
  436.                 upit.setString(2,oznaka);
  437.                 int brObrisanihRedova = upit1.executeUpdate();
  438.                 int brRed = upit.executeUpdate();
  439.                
  440.                                
  441.                 poruka3.setText("Uspesno ste obrisali!");
  442.                    
  443.                
  444.             } catch (SQLException e1) {
  445.                
  446.                 e1.printStackTrace();
  447.             }
  448.            
  449.         });
  450.        
  451.        
  452.                
  453.    
  454.        
  455.        
  456.  
  457.         }
  458.         catch(Exception e){
  459.             e.printStackTrace();
  460.         }
  461.     }
  462.    
  463. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement