public class Applikation { public static void main (String args[]) { // Es werden Kunden erzeugt und beschrieben Kunde kunde1 = new Kunde("Tom","mueller","65125","Hallowelthausen",konto1); Kunde kunde2 = new Kunde("aab","fasfa","12424","Ingolstadt",konto2); Kunde kunde3 = new Kunde("bba","asfaf","52366","kriese",konto3); Kunde kunde4 = new Kunde("Ccd","fasff","96966","safelthausen",konto4); Kunde kunde5 = new Kunde("asy","Fasfaf","5195","Halafhausen",konto5); Kunde kunde6 = new Kunde("Gzq","fasfas","1515","afwelthausen",konto6); // Es wird eine Kundenliste erzeugt KundenListe kundenliste = new KundenListe(); // Die Kunden werden in die Liste eingetragen kundenliste.kundeEintragen(kunde1); kundenliste.kundeEintragen(kunde2); kundenliste.kundeEintragen(kunde3); kundenliste.kundeEintragen(kunde4); kundenliste.kundeEintragen(kunde5); kundenliste.kundeEintragen(kunde6); // Die Suche nach einem Kunden ueber den Namen System.out.println ("\n Name des Kunden: Tom mueller\n========"); System.out.println ("\n Vorname:\n========"); System.out.println (kundenliste.sucheKunde("Tom","mueller").vorname); System.out.println ("\n Nachnahme:\n========"); System.out.println (kundenliste.sucheKunde("Tom","mueller").name); System.out.println ("\n PLZ:\n========"); System.out.println (kundenliste.sucheKunde("Tom","mueller").plz); System.out.println ("\n Ort:\n========"); System.out.println (kundenliste.sucheKunde("Tom","mueller").ort); System.out.println ("\n MeinKonto:\n========"); System.out.println (kundenliste.sucheKunde("Tom","mueller").meinKonto); System.out.println ("\n Informationen:\n========"); System.out.println (kundenliste.sucheKunde("Tom","mueller").info); } } import java.util.Vector; public class KundenListe extends Vector { public void kundeEintragen (Kunde kunde) { this.add (kunde); } public boolean kundeLschen (Kunde kunde) { return this.remove (kunde); } public boolean kundeVorhanden (Kunde kunde) { return this.contains(kunde); } public int getAnzahl () { return this.size(); } public Kunde getKunde (int index) { return (Kunde)this.get(index); } public void allekundenAusgeben () // Alle Kunden werden ausgegeben { for (int i = 0; i < this.size(); i++) { Kunde temp = (Kunde)this.get(i); System.out.println (temp.getStringInfo()); } } public void setKunde (int index, Kunde kunde) { this.set(index, kunde); } public void insertionSort() { int kundenanzahl = getAnzahl(); // die Variable kundenanzahl nimmt den Wert der gesamtanzahl des aktuellen Vektors an int index = 0; int i = 0; Kunde kundentemp = null; String name = null; for (index=0; index0 && i>0) // Diese while schleife läuft solange solange der Name des Kunden i dem namen in "name" folgen müsste und i>0 ist. (Also die Schleife noch nicht wieder am Anfang ist) { Kunde temp = getKunde(i-1); // Der Kunde temp wird intialisiert und mit dem Kunden des Index i-1 gefüllt setKunde(i-1, getKunde(i)); // Der Kunde mit index i-i erhält den Wert des Kunden mit index i setKunde(i, temp); // Der Kunde mit index i erhält temp (den vorherigen mit index i-1) i--; // i wird um eins ernidriegt also werden jetzt die beiden vorherigen werte verglichen } set(i, kundentemp); // Auf das Object mit index i wird das Object kundentemp geschrieben } } public Kunde sucheKunde (String Name, String Vorname) { Kunde temp = rekursion(Name,Vorname,0,this.getAnzahl()); // die funktion ruft die funktion rekursion mit dem namen dem vornamen und den grenzen auf if(temp.getName().compareToIgnoreCase(Name)==0&&temp.getVorname().compareToIgnoreCase(Vorname)==0) // wenn der name = dem namen vom kunden temp ist (also dem rekursiv ermittelten) dann wird dieser kunde zurückgegeben eine zusätzliche überprüfung des sucherfolgs also { return temp; } else { return null; // Fehler kein Kunde gefunden ! } } public Kunde rekursion (String Name, String Vorname ,int beginn, int ende) { String Namen = Vorname+Name; // Der Name und Vorname werden zum einfacheren Vergleichen zusammen in eine String geschrieben int mittelwert = (beginn+ende)/2; // Der mittelwert wird ermittelt indem ich den wert des beginns und des endes addiere und halbiere int ergebnis = 0; String MittelwertNamen = getKunde(mittelwert).getVorname()+getKunde(mittelwert).getName(); // Der name des mittelwerts wird zusammengeführt aus vor und nachmnahme zum vergleichen mit dem übergebenen namen if(Namen.compareToIgnoreCase(MittelwertNamen)>1) // Wenn also der name nach dem mittelwert stehen müsste wird dort weitergesucht { rekursion(Name,Vorname,mittelwert,ende); // Die neuen grenzen definieren also den bereich von mittelwert bis ende } else { if(Namen.compareToIgnoreCase(MittelwertNamen)<0) // wenn also der name vor dem mittelwert stehen müsste wird dort weitergesucht { rekursion(Name,Vorname,beginn,mittelwert); // dei neuen grenzen definieren also von beginn bis mittelwert } else { if(Namen.compareToIgnoreCase(MittelwertNamen)==0) { ergebnis=mittelwert; // wenn diese situation eintritt haben wir den kunden gefunden } } } return getKunde(ergebnis); // Der kunde wird zurückgegeben } } public class Kunde { protected String vorname = null; protected String name = null , plz =null , ort = null; protected Konto meinKonto = null; protected String info = null; public void setVorname (String vorname) { this.vorname = vorname; } public String getVorname() { return this.vorname; } public void setName (String name) { this.name = name; } public String getName() { return this.name; } public void setPlz (String plz) { this.plz = plz; } public String getPlz() { return this.plz; } public void setOrt (String ort) { this.ort = ort; } public String getOrt() { return this.ort; } public void setMeinKonto (Konto meinKonto) { this.meinKonto = meinKonto; } public Kunde (String vorname, String name, String plz, String ort, Konto meinKonto) { this.vorname = vorname; this.name = name; this.plz = plz; this.ort = ort; this.meinKonto = meinKonto; } public Konto getMeinKonto() { return this.meinKonto; } public String getStringInfo () { String info="\n Name " + this.name; info = info + "\n Vorname " + this.vorname; info = info + "\n Plz " + this.plz; info = info + "\n Ort " + this.ort; return info; } }