Warning
This page is located in archive.

/*
 * 06.12.2013
 * Pole objektu, ulozeni/nacteni, razeni (Bubble Sort)
 */
package pri.pkg11;
 
import java.io.*;
 
public class PRI11 {
 
    public static void main(String[] args) {
        System.out.println("=== PRI - Pole objektu, soubory ===");
        Osoba o1 = new Osoba("Jan", 8000);
        Osoba o2 = new Osoba("Eva", 35000);
        System.out.println(o1.getJmeno() + " " + o2.getJmeno());
        System.out.println(o1.getPlat() + " " + o2.getPlat());
 
        Osoba[] seznam = new Osoba[5];
        seznam[0] = o1;
        seznam[1] = o2;
        seznam[2] = new Osoba("Hugo",23000);
        seznam[3] = new Osoba("Marie",28000);
        seznam[4] = new Osoba("Petr",17000);
 
        tiskSeznamu(seznam);
        Osoba[] seznamSetridenePlaty = setridPlat(seznam);
        tiskSeznamu(seznamSetridenePlaty);
        Osoba[] seznamSetridenaJmena = setridJmena(seznam);
        tiskSeznamu(seznamSetridenaJmena);
        ulozSeznam(seznam,"osoby1.xxx");
        Osoba[] seznamZeSouboru = ctiSeznam("osoby1.xxx");
        if(seznamZeSouboru == null){
            System.out.println("=== Chyba cteni ze souboru ===");
        }else{
            System.out.println("=== Seznam ze souboru ===");
            tiskSeznamu(seznamZeSouboru);
        }
        System.out.println("Pocet osob v seznamu = "+Osoba.getPocetOsob());
    }//main()ENd
 
    static void tiskSeznamu(Osoba[] seznam){
        System.out.println("=== Seznam osob ===");
        for (int i = 0; i < seznam.length; i++) {
            if(seznam[i] != null){
                System.out.println(seznam[i].getJmeno()+ ", "+seznam[i].getPlat());
            }
        }
        System.out.println("===================");
    }
 
    static Osoba[] setridPlat(Osoba[] seznam) {
        Osoba[] s = new Osoba[seznam.length];
        System.arraycopy(seznam, 0, s, 0, seznam.length);
        Osoba r;
        for (int n = s.length - 1; n > 0; n--) {
            for (int i = 0; i < n; i++) {
                if (s[i].getPlat() > s[i + 1].getPlat()) {
                    r = s[i + 1];
                    s[i + 1] = s[i];
                    s[i] = r;
                }// if() END
            }// for() END
        }// for() END
        return (s);
    }//setridPlat()END
 
    static Osoba[] setridJmena(Osoba[] seznam) {
        Osoba[] s = new Osoba[seznam.length];
        System.arraycopy(seznam, 0, s, 0, seznam.length);
        Osoba r;
        for (int n = s.length - 1; n > 0; n--) {
            for (int i = 0; i < n; i++) {
                if (s[i].getJmeno().compareToIgnoreCase(s[i + 1].getJmeno()) > 0) {
                    r = s[i + 1];
                    s[i + 1] = s[i];
                    s[i] = r;
                }// if() END
            }// for() END
        }// for() END
        return (s);
    }//setridJmena()END
 
    static void ulozSeznam(Osoba[] seznam, String jmenoSouboru) {
        //System.out.println("Zapis do souboru \""+jmenoSouboru+"\"");
        File f = new File(jmenoSouboru);
        // ==>Zalozeni a Otevreni souboru pro ZAPIS
        //    Pokud jiz soubor existuje, jeho data se ztrati
        try {
            FileOutputStream fos = new FileOutputStream(f);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(seznam);
            oos.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        } 
    }//ulozSeznam()END
 
    static Osoba[] ctiSeznam(String jmenoSouboru) {
        //System.out.println("Cteni ze souboru \"" + jmenoSouboru + "\"");
        File g = new File(jmenoSouboru);
        // ==>Zalozeni a Otevreni souboru pro ZAPIS
        //    Pokud jiz soubor existuje, jeho data se ztrati
        Osoba[] seznam = null;
        try {
            FileInputStream fis = new FileInputStream(g);
            ObjectInputStream ois = new ObjectInputStream(fis);
            seznam = (Osoba[])ois.readObject();
            ois.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return seznam;
    }//ctiSeznam()END
}//PRI11 class ENd
 
class Osoba implements Serializable{
    private static int pocetOsob = 0;
    private String jmeno;
    private int plat;
 
    public Osoba(String jmeno, int plat){
        pocetOsob++;
        this.jmeno = jmeno;
        this.plat = plat;
    }
 
    String getJmeno(){
        return this.jmeno;
    }
 
    int getPlat(){
        return this.plat;
    }
 
    void setTelefon(int plat){
        this.plat = plat;
    }
 
    void setJmeno(String jmeno){
        this.jmeno = jmeno;
    }
 
    static int getPocetOsob(){
        return pocetOsob;
    }
}

courses/a0b36pri/tutorials/12/cv12opr3.txt · Last modified: 2015/01/16 21:04 (external edit)