import gdi.util.*; // Klasse "Fuhrpark" zu UEBUNG 10 Aufgabe 3 public class Fuhrpark { // Eine Konstante fuer die Groesse unseres Fuhrparks. Alternativ // haetten wir dies auch durch einen weiteren Parameter im // Konstruktor bestimmen koennen. public static final int SIZE = 1000; public Auto[ ] autos; public String inhaber; // Anzahl der belegten Array-Elemente, d.h. count bezeichnet den // Index im Array, an dem das naechste Objekt eingefuegt werden // kann. public int count; public Fuhrpark(String inhaber) { autos = new Auto[SIZE]; this.inhaber = inhaber; count = 0; } public void add(Auto auto) { // Assertion.check(count < autos.length, "Fuhrpark ist voll"); if(count >= autos.length) { Out.println("Fuhrpark ist voll!"); // System.exit(-1); // Programm abbrechen, schlechter Stil. return; // Fuhrpark voll, unverrichteter Dinge aus der Methode raus. } // count gibt die naechste Einfuegeposition an autos[count] = auto; count += 1; } public float getTimedValue(int jahr) { // hier wird das Summationsmuster (Idiom) mit der Iteration // ueber alle belegten Plaetze des Arrays verwendet. float value = 0; for(int i = 0; i < count; i += 1) { value += autos[i].getTimedValue(jahr); Out.println(autos[i].getTimedValue(jahr)); } return value; } public String[ ] getManufactures() { // es koennen maximal soviele Hersteller wie Autos sein String[ ] manufactures = new String[count]; int m = 0; for(int i = 0; i < count; i += 1) { int k; // Fuer jedes Auto wird geprueft, ob sein Hersteller schon // im Array manufactures eingetragen ist. for(k = 0; k < m; k += 1) { if (autos[i].hersteller.equals(manufactures[k])) break; } // ((k == m) && fuer alle k gilt: autos[i].hersteller != manufactures[k]) || ((autos[i].hersteller == manufactures[k] && (k < m)) if (k == m) { // ein neuer Hersteller manufactures[m] = autos[i].hersteller; m += 1; } } // i.a. ist das Array manufactures zu gross, dies wird hier // angepasst, indem ein passendes Array rm erzeugt und // befuellt wird String[ ] rm = new String[m]; for(int i = 0; i < m; i += 1) rm[i] = manufactures[i]; return rm; } public String toString() { // wir setzen den String aus den Strings der Autos zusammen String s = ""; for(int i = 0; i < count; i += 1) { s += autos[i].toString() + "\n"; } return s; } }