VF
{ Informatikus }
megoldása
2 éve
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
Kommentek