JAVA-OOP

A skupina

1) Vytvor program,ktorý pre zadaný mesiac v textfielde vypíše aké je ročne obdobie. Napr: december Je zima

2) Vytvor program,ktorý pre zadané celé číslo v textfielde vypočíta obsah a obvod štvorca.

Pridaj do programu funkciu,ktorá pre zadané číslo vypočíta obsah a obvod kruhu

B skupina

1) Vytvor program,ktorý po zadaní mena,priezviska a veku vypíše pozdrav a rok narodenia. Napr. Ahoj, volas sa Meno Priezvisko. Narodil si sa v roku 1988.

2) Vytvor program,ktory pre zadané 2 čísla vypíše maximum

Pridaj do programu funkciu,ktorá zistí či sú zadané čísla rovnake

 

Riešenie

Riešenie

package policia;
import java.io.*;
import javax.swing.DefaultListModel;
import javax.swing.table.DefaultTableModel;
// novy udajovy typ
class Priestupok {
    String nazov;
    int pocet;
    double celkovaSuma;
}
public class Okno extends javax.swing.JFrame {
    // model pre tabulku so styrmi stlpcami a 0 riadkami
    String[] hlavicka = {"den","SPZ", "priestupok", "pokuta"};
    DefaultTableModel data = new DefaultTableModel(hlavicka, 0);
    // model pre zoznam - listbox
    DefaultListModel vysledok = new DefaultListModel();
    /** Creates new form Okno */
    public Okno() {
        initComponents();
        // prepojenie modelov s vizualnymi komponentmi
        jTable1.setModel(data);
        jList1.setModel(vysledok);
    }
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // pridanie noveho riadku na koniec tabulky
    Object[] zaznam = {"?", "?", "?", 0};
    data.addRow(zaznam);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // vymazanie riadku
        int aktRiadok = jTable1.getSelectedRow();
        if (aktRiadok>-1)
            data.removeRow(aktRiadok); //riadok mazem
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // ulozenie obsahu tabulky do suboru
    // ako oddelovac udajov v bunkach sa pouzije ;
    try {
        BufferedWriter bw = new BufferedWriter (new FileWriter("databaza.csv") );
        for (int i=0; i<data.getRowCount(); i++) {
            StringBuffer sb = new StringBuffer(data.getValueAt(i, 0).toString());
            for (int j=1; j<data.getColumnCount(); j++)
                sb.append(";"+data.getValueAt(i, j).toString());
            bw.write(sb.toString());
            bw.newLine();
        }
        bw.close();
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
}               

Riešenie-Pridať, vymazať, uložiť

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                  // vynulujeme pocet riadkov
    data.setRowCount(0);
    try {
        BufferedReader br = new BufferedReader(new FileReader("databaza.csv") );
        String riadok, bunka; // pomocne retazce
        int i=0;    // index riadku
        int j=0;    // index stlpca
        int poz;    // index ;
        // zo suboru citame po riadkoch
        while ((riadok = br.readLine()) != null) {
            // pridanie noveho prazdneho riadku do tabulky
            data.addRow( new Object[data.getColumnCount()]);
            // naplnenie buniek v riadku hodnotami zo suboru
            for (j=0; j<data.getColumnCount(); j++) {
                // zistime poziciu bodkociarky
                poz = riadok.indexOf(";");
                // za poslednym udajom nie je ; (preto vetvenie podla hodnoty poz)
                if (poz!=-1)
                    bunka = riadok.substring(0, poz);
                else
                    bunka = riadok;
                // ziskany udaj zapiseme do bunky tabulky
                data.setValueAt(bunka, i, j);
                // odteraz nas zaujima len zvysok retazca za ; 
                riadok = riadok.substring(poz+1);
            }
            i++;
        } // while
        br.close();
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
}                 

Riešenie-načítaj zo súboru

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        vysledok.clear();         
        vysledok.addElement("Prehlad podla priestupkov:");
        // pole s nazvami priestupkov (mozeme dopisat dalsie prvky)
        String[] nazvy = {"alkohol", "rychlost", "svietenie", "lekarnicka"};
        // pole prvkov typu Priestupok
        Priestupok[] priestupky = new Priestupok[nazvy.length];
        // v tabulke zistujeme vyskyty jednotlivych priestupkov    
        for (int p=0; p<priestupky.length; p++) {
             // vytvorime prvok pola (objekt typu Priestupok)a inicializujeme ho
             priestupky[p] = new Priestupok();
             priestupky[p].nazov = nazvy[p];
             priestupky[p].pocet = 0;
             priestupky[p].celkovaSuma = 0.0;
             // v tabulke hladame priestupky s nazvom priestupky[p].nazov
             // prehladavame stlpec s indexom 2
             for (int i=0; i<data.getRowCount(); i++) {
               if (data.getValueAt(i, 2).toString().compareTo(priestupky[p].nazov)==0) {
                  priestupky[p].pocet++;
                  priestupky[p].celkovaSuma += Double.parseDouble( data.getValueAt(i, 3).toString() );
                 }
             }
        }
        // vystup
        String sprava;
        for (int p=0; p<priestupky.length; p++) {
            sprava = priestupky[p].nazov + ": " + priestupky[p].pocet + " krat, spolu za " + priestupky[p].celkovaSuma + " EUR";
            vysledok.addElement(sprava);
        }
}                 

Riešenie-zisti

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:       
    {
       int max =0; int max2 = 0;        
       int suma = 0; int pozicia = 0;
       String SPZ; 
       String pole [] = new String[data.getRowCount()];
       String pole2 [] = new String[data.getRowCount()];
        for (int i= 0; i<pole.length;i++ ){   //vytvorenie 2 zhodnych polí
             pole [i] = data.getValueAt(i, 1).toString();
             pole2[i] = data.getValueAt(i, 1).toString(); 
        }   
       for (int e =0; e<pole.length; e++){        
   //odtrhavanie spztiek a porovnanavanie s ostatnymi spztkami
           SPZ = pole[e]; // v pripade ze nastane zhoda inkrementujem max a namiesto najdenej zhody
                          // vpisem do polí ""
                          // potom nasledne zistujem ci sa dalsia znacka, ktoru idem porovnavat            
           if (SPZ.compareTo("")==0) break; // s ostatnymi nie je zhodna s "" ak ano tak break skok na dalsiu znacku
           for(int s = 0; s<pole.length;s++){
            if (pole2[s].compareTo(SPZ)==0){
                max++;pole[e]="";pole[s]="";
        }
     }
       if (max>max2) {max2=max;pozicia=e;} //ak najdem vacie max(pocet opakovani znaciek v tabulke)           
       max = 0;  // tak max2 priradim max a zapamatam si poziciu(poslednu, 
       }         // v tomto pripade ide o tu istu znacku tak je jedno ktoru poziciu)      
      /* System.out.println(max2);
       System.out.println(pozicia);*/
       SPZ = data.getValueAt(pozicia, 1).toString();
       //System.out.println(SPZ);
       for (int s=0; s< data.getRowCount();s++){
           if (data.getValueAt(s, 1).toString().compareTo(SPZ)==0){ //prehladavam tabulku tak ze zistujem ci sa v
                                                               // prvom stlpci a v 0 az poslednom riadku nachadza
               suma =suma + Integer.parseInt(data.getValueAt(s, 3).toString());  
           }                                                // najdena SPZ ak ano tak si sumu zvysim o sumu pokuty
         }                                                  // v riadku
      // System.out.println(suma);
     vysledok.addElement("Najhorsi vodic je vodic s SPZ-tkou  " + SPZ + "."); // vypis do listu..
     vysledok.addElement(" Pocet pokut je " + max2 + " v hodnote spolu za " + suma + " Eur.");
    }
}      

Riešenie-najhorší vodič

Text


The End

A skupina

1) Používateľ si vyberie zo zoznamu mesiac a program mu vypíše aké je ročne obdobie. Napr: december Je zima

2) Vytvor aplikáciu,ktorá pre zadané celé číslo v textfielde určí (vypíše), či je toto číslo párne alebo nepárne. 

 

B skupina

1) Používateľ si vyberie zo zoznamu (4 jazykov) jeden a na základe tohto výberu ho progam pozdraví vo vybranom jazyku.

2) Múzeum má takéto vstupné: dospelí 100 €, mládež pod 18 rokov a dôchodcovia nad 70 rokov majú polovičné vstupné, deti do šesť rokov majú vstup zadarmo. Napíšte program, ktorý pre zadaný vek vypíše cenu vstupenky.

 

3) spoločná pre A aj B skupinu - Do basketbalového týmu príjmajú hráčov. Napíšte program, ktorý dokáže evidovať (pridávať a mazať) ich meno a výšku (v 1 alebo 2 listoch, alebo v tabuľke) 

  • nájdite hráča s najväčšou výškou, výsledok vypíš do jLabelu / jListu

JavaOOP

By Mgr. Ondrej Ducky

JavaOOP

Objektovo orientované programovanie Mgr. Ondrej Dúcky

  • 1,006