Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

JAVA programozás, SŰRGŐS

269
Jelenleg 1 felhasználó nézi ezt a kérdést.
Java, programozás, prog, fejlesztés
0
Felsőoktatás / Informatika

Válaszok

1
Nekem ez jött össze. Mivel a logikája viszonylag hiányos, próbáltam szó szerint követni az utasításokat. Ha találsz hibát amivel nem bírsz el, szólj.

// Megye.java

import java.util.ArrayList;
import java.util.List;

public class Megye
{
    private String nev;
    private String web;
    private List<Telepules> telepulesek;

    public Megye(String nev)
    {
        this.nev = nev;
        this.telepulesek = new ArrayList<Telepules>();
        this.web = "";
    }

    public String toString()
    {
        return this.nev + " megye (" + this.web + ")";
    }

    public boolean ujTelepules(String telepulesSzoveg)
    {
        String[] resz = telepulesSzoveg.split(":");
        if (resz.length != 3) {
            return false;
        }

        resz[0] = Character.toUpperCase(resz[0].charAt(0)) + resz[0].substring(1);

        double terulet = 1;
        try {
            Double.parseDouble(resz[1]);
        } catch (NumberFormatException e) { }

        Telepules telepules = new Telepules(resz[0], terulet);
        try {
            telepules.emailFrissitese(resz[2]);
        } catch (TelepuleskezeloException e) {
            return false;
        }

        this.telepulesek.add(telepules);

        return true;
    }

    public void ujLakok(int melyikVaros, String kerulet, int lakokSzama)
    {
        if (melyikVaros < 0 || melyikVaros >= this.telepulesek.size()) {
            throw new IllegalArgumentException("Nem letezik a megadott indexu varos!");
        }

        try {
            this.telepulesek.get(melyikVaros).ujLakok(kerulet, lakokSzama);
        } catch (TelepuleskezeloException e) {
            throw new IllegalArgumentException(this.telepulesek.get(melyikVaros).getNev() + " varosban nem letezik a megadott kerulet!", e);
        }
    }

    public void webcimFrissites(String ujCim)
    {
        if (! ujCim.toLowerCase().contains(this.nev.toLowerCase())) {
            throw new IllegalArgumentException("Hibas webcim: " + ujCim);
        }

        this.web = ujCim;
    }

    public int keres(String mire)
    {
        int eredmeny = 0;

        for (Telepules telepules : this.telepulesek) {
            if (telepules.getNev().contains(mire)) {
                eredmeny++;
            }
        }

        return eredmeny;
    }

    public int lakossag()
    {
        int eredmeny = 0;

        for (Telepules telepules : this.telepulesek) {
            eredmeny += telepules.getLakosokSzama();
        }

        return eredmeny;
    }

}



// Telepules.java

import java.util.ArrayList;
import java.util.List;

public class Telepules
{
    private String nev;
    private String email;
    private List<Kerulet> keruletek;
    private double terulet;

    public Telepules(String nev, double terulet)
    throws IllegalArgumentException
    {
        if (! Character.isUpperCase(nev.charAt(0))) {
            throw new IllegalArgumentException("Hibas varosnev: " + nev);
        }

        this.nev = nev;
        this.setTerulet(terulet);
        this.keruletek = new ArrayList<Kerulet>();
        this.email = null;
    }

    public double nepsuruseg()
    {
        return this.getLakosokSzama() / this.terulet;
    }

    public String getEmail()
    {
        return this.email;
    }

    public int getLakosokSzama()
    {
        int eredmeny = 0;

        for (Kerulet egy : this.keruletek) {
            eredmeny += egy.getLakosokSzama();
        }

        return eredmeny;
    }

    public void ujLakok(String kerulet, int lakokDb)
    throws TelepuleskezeloException
    {
        for (int i = 0, l = this.keruletek.size(); i < l; i++) {
            Kerulet egy = this.keruletek.get(i);
            if (egy.getNev().equalsIgnoreCase(kerulet)) {
                egy.setLakosokSzama(egy.getLakosokSzama() + lakokDb);
                return;
            }
        }

        throw new TelepuleskezeloException(this, "Nem talalhato a megadott kerulet: " + kerulet);
    }

    public double getTerulet()
    {
        return this.terulet;
    }

    public void ujKerulet(String nev, int lakokDb)
    {
        this.keruletek.add(Kerulet.ujKerulet(nev, lakokDb, this));
    }

    public String getNev()
    {
        return this.nev;
    }

    public void setTerulet(double ujTerulet)
    {
        this.terulet = ujTerulet > 0 ? ujTerulet : 1;
    }

    public void emailFrissitese(String ujEmail)
    throws TelepuleskezeloException
    {
        if (! ujEmail.startsWith("info") || ! ujEmail.endsWith(".hu") || ujEmail.indexOf('@') == -1 || ujEmail.indexOf('@') != ujEmail.lastIndexOf('@')) {
            throw new TelepuleskezeloException(this, "Hibas e-mail cim: " + ujEmail);
        }

        this.email = ujEmail;
    }

}



// Kerulet.java

public class Kerulet
{
    private int lakosokSzama;
    private String nev;
    private Telepules telepules;

    private Kerulet(String nev, int lakokSzama)
    {
        this.nev = nev;
        this.lakosokSzama = lakokSzama;
    }

    public String toString()
    {
        return this.nev + " (" + this.telepules.getNev() + ")";
    }

    public double lakokAranya()
    {
        return this.lakosokSzama / this.telepules.getLakosokSzama();
    }

    public int getLakosokSzama()
    {
        return this.lakosokSzama;
    }

    public void setLakosokSzama(int ujErtek)
    {
        this.lakosokSzama = ujErtek;
    }

    public String getNev()
    {
        return this.nev;
    }

    public static Kerulet ujKerulet(String nev, int lakokSzama, Telepules telepules)
    {
        Kerulet kerulet = new Kerulet(nev, lakokSzama);
        kerulet.telepules = telepules;

        return kerulet;
    }

}



// TelepuleskezeloException.java

public class TelepuleskezeloException
extends Exception
{
    private Telepules okozo;

    public TelepuleskezeloException(Telepules melyik, String str)
    {
        super(str);
        this.okozo = melyik;
    }

    public Telepules getOkozo()
    {
        return this.okozo;
    }

}
0