Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zadatak sa nizom - problem

[es] :: Java :: Zadatak sa nizom - problem

[ Pregleda: 2173 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ser_nicky
BI Developer

Član broj: 307062
Poruke: 97
194.145.153.*



+32 Profil

icon Zadatak sa nizom - problem22.07.2014. u 12:59 - pre 118 meseci
Pozdrav svima,
vežbam zadatke iz jave, pa sam naleteo na jedan koji ne mogu da rešim kako treba:
Zadatak glasi: Osoba ima ime i prezime kao i godine starosti. Može se ispitati da li je osoba starija od druge osobe i da se ispiše u formatu ime i prezime(godina). Imenik sadrži niz osoba (podrazumevano 10). Stvara se prazan, osobe se dodaju na određeno mesto. Ako je mesto popunjeno, prikazuje se poruka. Mogu se sortirati osobe po starosti (kriterijum se ostavlja studentu). Potrebno je ispisati imenik sa osobama tako da se osoba ispisuje jedna ispod druge.
E, sad, ja sam napravio klasu Osoba sa sledećim kodom:
Code:
public class Osoba {
    private String ime_prezime;
    private int godine;
    
    public Osoba(String ip, int god){
        ime_prezime=ip;
        godine=god;
    }
    public String ime_prezime(){
        return ime_prezime;
    }
    
    public int godine(){
        return godine;
    }
    public static void sortiranjeGodine(Osoba[] niz) { 
        for(int i = 0; i < niz.length-1; i++) 
            for(int j = i+1; j < niz.length; j++) 
                if(niz[i] != null && niz[j]!=null && niz[i].godine < niz[j].godine) 
                { Osoba temp = niz[i]; 
                niz[i] = niz[j]; 
                niz[j] = temp; } 
        }
    public String toString(){
        return ime_prezime + "(" + godine + ")";
    }
}


Kao i klasu Imenik:
Code:
public class Imenik {
    private Osoba[] osobe;
    
    public Osoba[] osobe(){
        return osobe;
    }
    
    public void unesiOsobu(Osoba o) { 
        for(int i = 0; i < osobe.length; i++) { 
            if(osobe[i] == null) { 
                osobe[i] = o; return; } 
            } System.out.println("Nije moguce uneti osobu!"); }
    
    public String toString(){
        String s="Osobe u imeniku: " + "\n";
        for(int i=0;i<osobe.length;i++){
            if(osobe[i]!=null){
                s+=osobe[i] + "\n";
            }
        }
        return s;
    }
}


U main-u sam dodao sledeći kod:

Code:
public class Main {

    public static void main(String[] args) {
    
        Imenik[] im = new Imenik[10];
        im[0].unesiOsobu(new Osoba("Pera Peric", 22));
        im[1].unesiOsobu(new Osoba("Mile Milic", 25));
        im[2].unesiOsobu(new Osoba("Zika Zikic", 27));
        im[3].unesiOsobu(new Osoba("Jova Jovic", 35));
        im[4].unesiOsobu(new Osoba("Janko Jankovic", 29));
        im[5].unesiOsobu(new Osoba("Mica Micic", 19));
        im[6].unesiOsobu(new Osoba("Kosta Kostic", 18));
        
        System.out.println("Osobe u imeniku: "); 
        for(int i = 0; i < im.length; i++) {  
                System.out.println(im[i]); }
        
    }

}


Ali kao rezultat dobijam grešku: Exception in thread "main" java.lang.NullPointerException...
Kad uradim u main-u sa ArrayList-om, ispisuje mi se sve kako treba (doduše nesortirano), ali ja bih voleo da mi neko objasni kako da dobijem odgovarajući rezultat korišćenjem običnog niza.

Molim ako neko ima vremena da mi objasni gde grešim i kako bih mogao da rešim problem...Dakle, ne treba mi gotov kod, nego ako može objašnjenje.
Hvala svima unapred
 
Odgovor na temu

dule_ns
Novi Sad

Član broj: 123863
Poruke: 257
194.247.212.*



+690 Profil

icon Re: Zadatak sa nizom - problem22.07.2014. u 14:59 - pre 118 meseci
Pa daj pun stacktrace od exceptiona (liniju koda u kojoj baca nullpointer) pa ćemo ti i reći šta nisi odradio.

A i šta će ti niz imenika, valjda imaš imenik i u njemu niz osoba?
 
Odgovor na temu

FooLControL
Serbia

Član broj: 168531
Poruke: 74
*.dynamic.isp.telekom.rs.



+8 Profil

icon Re: Zadatak sa nizom - problem22.07.2014. u 15:23 - pre 118 meseci
Napravio si niz imenika, a u svakom imeniku imas niz osoba. Taj niz osoba nije inicijalizovan, a ti metodom unesiOsobu pristupas tom nizu i program ti puca, tacanije baca null izuzetak.

Napravi konsruktor u Imeniku kome ces proslediti broj osoba imenika, i izvrsiti inicijalizaciju niza osoba tim brojem. Onda ce ti raditi.

 
Odgovor na temu

ser_nicky
BI Developer

Član broj: 307062
Poruke: 97
194.145.153.*



+32 Profil

icon Re: Zadatak sa nizom - problem23.07.2014. u 14:19 - pre 118 meseci
Hvala najlepše na savetima...Nisam uspeo da rešim preko običnog niza, pa sam ipak uradio zadatak upotrebom ArrayList-a.
Pozdrav i hvala još jednom.
 
Odgovor na temu

dule_ns
Novi Sad

Član broj: 123863
Poruke: 257
194.247.212.*



+690 Profil

icon Re: Zadatak sa nizom - problem23.07.2014. u 14:21 - pre 118 meseci
Pa daj nam barem rešenje sa nizom pa ćemo ti reći gde si grešio.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
*.dynamic.sbb.rs.



+62 Profil

icon Re: Zadatak sa nizom - problem24.07.2014. u 08:29 - pre 118 meseci
I izbegavaj da metodama i poljima dajes ISTA imena; barem koristi razlicite letter cases (ime_Prezime, Ime_prezime()).

Pozz
 
Odgovor na temu

galaksija
Novi Sad

Član broj: 49290
Poruke: 82



+4 Profil

icon Re: Zadatak sa nizom - problem25.07.2014. u 14:54 - pre 118 meseci
Verovatno najgluplji kod koji sam napisao ali...eto !

Osoba.java
Code:


public class Osoba {
    private String ime_prezime;
    private int godine;

    
    public Osoba() {
    }
    
    public Osoba(String ime_prezime, int godine) {
        this.ime_prezime = ime_prezime;
        this.godine = godine;

    }

    public  String getIme_prezime() {
        return ime_prezime;
    }

    public void setIme_prezime(String ime_prezime) {
        this.ime_prezime = ime_prezime;
    }

    public int getGodine() {
        return godine;
    }

    public  void setGodine(int godine) {
        this.godine = godine;
    }

    public static void sortiranjeGodine(Osoba[] niz) {
        for (int i = 0; i < niz.length - 1; i++)
            for (int j = i + 1; j < niz.length; j++)
                if (niz[i] != null && niz[j] != null && niz[i].getGodine() < niz[j].getGodine()) {
                    Osoba temp = niz[i];
                    niz[i] = niz[j];
                    niz[j] = temp;
                }
    }

    public String toString() {
        return getIme_prezime() + "(" + getGodine() + ")";
    }

}


Imenik.java

Code:

public class Imenik {
    public static Osoba[] osobe;


    public Imenik(Osoba o) {
        for (int i = 0; i < osobe.length; i++) {
            if (osobe[i] == null) {
                osobe[i] = o;
                return;
            }
        }
        System.out.println("Nije moguce uneti osobu!");
    }

    public String toString() {
        String s = "Osobe u imeniku: " + "\n";
        for (int i = 0; i < osobe.length; i++) {
            if (osobe[i] != null) {
                s += osobe[i] + "\n";
            }
        }
        return s;
    }
}




Main.java

Code:


public class Main {

    public static void main(String[] args) {
        Osoba[] ee = new Osoba[6];

        ee[0] = new Osoba("Pera Peric", 22);
        ee[1] = new Osoba("Mile Milic", 25);
        ee[2] = new Osoba("Zika Zikic", 27);
        ee[3] = new Osoba("Jova Jovic", 35);
        ee[4] = new Osoba("Janko Jankovic", 29);
        ee[5] = new Osoba("Mica Micic", 19);

        Imenik.osobe = ee;
        for (int i = 0; i < Imenik.osobe.length; i++) {
            System.out.println(Imenik.osobe[i]);
        }

    }

}


Nije rešenje zadatka ali moje mišljenje u kom pravcu treba ici.

[Ovu poruku je menjao galaksija dana 25.07.2014. u 16:09 GMT+1]
 
Odgovor na temu

[es] :: Java :: Zadatak sa nizom - problem

[ Pregleda: 2173 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.