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; index<kundenanzahl; index++) // Diese for-Schleife klappert alle punkte ab von index=0 bis index = der Anzahl ist die ich ja vorher in Kundenanzahl geschrieben habe. { i=index; name=getKunde(i).getName(); // Die Variable "name" wird mit dem Namen des Kunden (i) überschrieben welcher ja den Wert von index hat und sich ständig erhöht kundentemp = getKunde(i); // Die Variable kundentemp wird mit dem Kunden des index (i) gefüllt while(getKunde(i).getName().compareToIgnoreCase(name)>0 && 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;}}