Probleme mit einem "Verwaltungsprogramm" (Schleife

Status
Nicht offen für weitere Antworten.
M

mubbelbubbel

Gast
Hallo,
es geht um folgendes: es soll ein Programm enstehen, dass Studenten und deren Lehrveranstaltungen/Vorlesungen verbindet.

Es soll für jeden Studenten angezeigt werden, welche Lehrveranstaltungen er besucht.

Dazu gibt es Klassen Studenten, Vorlesungen (mit get und set), Listen für Studenten, Vorlesungen und diese Vorlesungspläne (die Kombination von Studenten und Vorlesung).
Studenten einzeln kann ich ausgeben, Vorlesungen ebenfalls.
Nur bei dieser Kombination, den Plänen funktioniert es nicht. Da nimmt er stets nur das oberste Element von der Hashmap und gibt das aus, er soll aber nach Nr des Studenten suchen und entsprechend alles ausgeben.

Hier mal noch die 2 Klassen, evtl kann einer helfen. Ich hab in 1,5 Wochen Abgabetermin und daher wär es echt super, wenn mir jemand aus dieser misslichen LAge helfen könnte (die GUI brauch ich gar nich anfangen, solange nix tut)
Evtl hat einer nen Denkanstoß?!?

Code:
public class Akademie
{
    
    private ListeStudenten listeStudenten;
    private ListeVorlesungen listeVorlesungen;
    private LearningAgreementPosition learningAgreementPosition;
    private AnmeldungAbwickelnHandler anmeldungAbwickelnHandler;
    
    public static void main(String[]args)
    {
    new Akademie().test();
    }

    
    private void test() {
              
       //VorlesungenUnwichtig werden testweise angelegt.
        Vorlesungen vorlesung1 = listeVorlesungen.anlegenVorlesungen(1,"Systementwicklung","Scheiße","Russland",7);
        Vorlesungen vorlesung2 = listeVorlesungen.anlegenVorlesungen(2,"Systementwicklung2","Scheiße2","Russland2",8);
        Vorlesungen vorlesung3 = listeVorlesungen.anlegenVorlesungen(3,"Systementwicklung3","Scheiße3","Russland3",73);
        Vorlesungen vorlesung4 = listeVorlesungen.anlegenVorlesungen(2,"Datenbanken","Scheißehoch9","Timbuktu",9);
        
////        VorlesungenUnwichtig vorlesung2 = listeLearningAgreement.anlegenVorlesungen(2,new Vorlesungen(1,"Programmierung Grundlagen","Grundlagen kennen lernen"),new GregorianCalendar(2007,1,15).getTime(),"Pforzheim",1,2,"HS Frankreich",1221);
////        
////        //Vorlesungen werden gesucht.
        ArrayList<Vorlesungen> gefVorl=anmeldungAbwickelnHandler.suchenVorlesungen(2,"Systementwicklung","Scheiße", " ",99);
        
        if(gefVorl.size()==0){
            System.out.println("keine Vorlesungen gefunden");
        }
        for(Vorlesungen vor : gefVorl){
            System.out.println("gefundene Vorlesungen : " + vor.getId() + " " + vor.getBezeichnung()+ " " + vor.getInhalt()+ " " +vor.getPartnervorlesung() + " " + vor.getCredits());
        }

        
        //Studenten werden angelegt.
        Studenten s1 = listeStudenten.anlegenStudenten(1,"Hugo","Meier","WI","7");
        Studenten s2 = listeStudenten.anlegenStudenten(2,"Hubert","Müller","Personal","9");
        Studenten s3 = listeStudenten.anlegenStudenten(3,"Hansi","Paul","Logistik","4"); 
        Studenten s4 = listeStudenten.anlegenStudenten(1,"Hilmi","Rau","Werbung","1");
        
        //Hier geht anmeldenAbwickelnHandler in suchenStudenten-Methode, sieht oben
        ArrayList<Studenten>gefStud=anmeldungAbwickelnHandler.suchenStudenten("H",0);
     
        
        if(gefStud.size()==0){
            System.out.println("Kein Studenten gefunden");
        }
        for(Studenten stud : gefStud){
            
            System.out.println("gefundene Studenten : " + stud.getMatrikelNummer() + " " + stud.getName());
        }
        
        
        //Anlegen LA
        
        LearningAgreement la = learningAgreementPosition.anlegenLearningAgreement(292636,1111,2.0);
        
        ArrayList<LearningAgreement>gefLA=anmeldungAbwickelnHandler.suchenLearningAgreementMitHilfeMatrikelNummer(292636);
        
        if(gefLA.size()==0){
            System.out.println("Keine LA gefunden");
        }
        for(LearningAgreement lag : gefLA){
            System.out.println("gefundene LA : " + lag.getStudentMatrikelNummer()+ " " + lag.getVorlesungId());
        }
        
        
    }
   
    

    public Akademie() {
        
        learningAgreementPosition=new LearningAgreementPosition();
        listeVorlesungen=new ListeVorlesungen();
        listeStudenten=new ListeStudenten();
//        anmeldungAbwickelnHandler=new AnmeldungAbwickelnHandler(listeStudenten, listeVorlesungen);
        
        anmeldungAbwickelnHandler=new AnmeldungAbwickelnHandler(learningAgreementPosition,listeVorlesungen,listeStudenten);
    }

}

Akademie ist die Startklasse.
Der Handler leitet letztendlich nur den Befehl an die richtige Klasse weiter.
In den Listen findet man dann die Suchmethoden und Hashmaps und die anlegen-Methode. Ich stells mal für den Student rein. (das geht)

Code:
import java.util.*;

public class ListeStudenten  
{
    
    private HashMap<Integer, Studenten>studentenListe;
    
    
    public ArrayList<Studenten> suchenStudenten(String name, int matrikelNummer)
    {
    ArrayList<Studenten>gefundeneStudenten=new ArrayList<Studenten>();
    if(studentenListe.containsKey(matrikelNummer)) { //wird mit der übergebenen Kundennummer ein Teilnehmer gefunden, dann wird es in die gefundeneTeilnehmer gesteckt.
       gefundeneStudenten.add(studentenListe.get(matrikelNummer)); 
       }
    else{
        gefundeneStudenten=suchenNachName(name);
        }
    return gefundeneStudenten;
   }

    private ArrayList<Studenten> suchenNachName(String name) {
        ArrayList<Studenten>gefStudenten=new ArrayList<Studenten>();
        if(name.startsWith(" ")) return gefStudenten;
        
        for(Studenten studenten : studentenListe.values()) {
            if(studenten.getName().startsWith(name)){
                gefStudenten.add(studenten);
            }
        }
        return gefStudenten;
    }

    public ListeStudenten() {
        
        studentenListe=new HashMap<Integer, Studenten>();
        
    }

    public Studenten anlegenStudenten(int matrikelNummer, String name, String vorname, String studiengang, String semester) {
        Studenten student1 = new Studenten(matrikelNummer, name, vorname, studiengang, semester);
        studentenListe.put(matrikelNummer,student1);
        return student1;
    }
    
}

Da gibt er bei der Suche nach Matrikelnummer stets einen Studenten aus. Wie wäre es hier möglich, dass er mir mehrere ausgibt, wenn die MAtrikelnummer die selbe wäre? (geht zwar eigtl nicht, aber für das Problem ist es wichtig)

Hier der Plan noch:
Code:
package fachklassen;

import java.util.*;

/**
 *
 * @author Benjamin Seibt
 */
public class LearningAgreementPosition {
    
    private HashMap<Integer, LearningAgreement>learningAgreementListe;
    
    
    /** Creates a new instance of LearningAgreementPosition */
    public LearningAgreementPosition() {
        
        learningAgreementListe=new HashMap<Integer, LearningAgreement>();
    }
    
    
    public ArrayList<LearningAgreement> suchenLearningAgreementMitHilfeMatrikelNummer(int matrikelNummer)
    {
    ArrayList<LearningAgreement>gefundeneLearningAgreement=new ArrayList<LearningAgreement>();
    if(learningAgreementListe.containsKey(matrikelNummer)) { //wird mit der übergebenen Kundennummer ein Teilnehmer gefunden, dann wird es in die gefundeneTeilnehmer gesteckt.
       gefundeneLearningAgreement.add(learningAgreementListe.get(matrikelNummer)); 
       }
    
    return gefundeneLearningAgreement;
   }
  
       
    public LearningAgreement anlegenLearningAgreement(int studentMatrikelNummer, int vorlesungId, double note) {
        LearningAgreement learningAgreement=new LearningAgreement(studentMatrikelNummer, vorlesungId, note);
        learningAgreementListe.put(studentMatrikelNummer, learningAgreement);
        return learningAgreement;
    }
    
    
    
}

Dieses LA soll quasi die Vorlesungen und Studenten verbinden. Ich würde gerne später eine Matrikelnummer eingeben und quasi dazu alle möglichen Vorlesungen ausgeben. Es ist eine n:m Beziehung und diese bekomm ich eben nicht abgebildet. Evtl habt ihr einen Rat oder ich kann es jmd schicken, der mir nen Hinweis gibt?
So dass ich halt weiterprogrammieren kann, ansonsten wars das wohl für mich. :( Aber ich komm einfach nicht drauf trotz tagelangen Probierens. Dankeschön.
 

Azrahel

Bekanntes Mitglied
vllt versteh ichs ja falsch, aber kann sein das du hier
Code:
    public ArrayList<LearningAgreement> suchenLearningAgreementMitHilfeMatrikelNummer(int matrikelNummer) 
    { 
    ArrayList<LearningAgreement>gefundeneLearningAgreement=new ArrayList<LearningAgreement>(); 
    if(learningAgreementListe.containsKey(matrikelNummer)) { //wird mit der übergebenen Kundennummer ein Teilnehmer gefunden, dann wird es in die gefundeneTeilnehmer gesteckt. 
       gefundeneLearningAgreement.add(learningAgreementListe.get(matrikelNummer)); 
       } 
    
    return gefundeneLearningAgreement; 
   }
immer nur eine ArrayList mit nur einem Eintrag zurückbekommst? Ich glaub nämlich das die If
bei der ersten mit learningAgreementListe.containsKey(matrikelNummer) gefundenen Matrikelnummer mit true aussteigt und du deswegen auchn ur eine zurückbekommst. Wenn das so ist solltest du die learningAgreementListe
notfalss mit ner Schleife komplett durchlaufen. Hab mit ArrayList keine Erfahrung, und mit ContainsKey halt auch nicht, aber ich kann mir vorstellen das das das Problem sein könnte
 
G

Guest

Gast
Es geht sicherlich in die Richtung.

Ich hatte mal ne for Schleife in dem suchenMatrikelnummer() gebastelt (wie es unten bei der sucheName() der Fall ist) da hat er mir dann 3 Einträge gebracht. (wie man in der Akademie aber sieht, sind mehrere angelegt)
Er gibt immer soviele aus, wie unterschiedliche MatrNr da sind. D.h. er überschreibt auch immer den Eintrag in der Liste quasi, wenn eine MatNr nochmals vorkommt und gibt dann nur eins zurück.
er soll aber letzten Endes alle zurückgehen, egal ob die matrikelnummer doppelt oder dreifach dort vorkommt. das mit dem containskey hab ich schon rausgenommen gehabt, aber da häng ich jetzt eben auch und weiß nicht weiter und hoffe, dass hier irgendeiner den fehler findet, der sich damit auskennt.

er soll also nach matrikelnummer suchen und alle dazugehörenden objekte ausgeben und nicht aufhören nach dem 1. wie oben bzw. nach dem 3. (3 verschiedene nr) wie mit forschleife.

bei bedarf könnte ich es auch mal zuschicken, mir wär damit echt sehr geholfen!
 

Azrahel

Bekanntes Mitglied
Höhö, ich wusst doch das ding ist nochmal zu gebrauchen

Wenn die ArrayList keine 2 gleichen einträge zulässt könnte dir das vllt helfen. Mussts nur von <Sting>, <Object> auf <int>, <Object> umbauen, was ja kein Akt sein dürfte :D

Und dann wie in getNachname in der Schleife durchlaufen *freu*

Post mir bitte obs geklappt hat, will doch wissen ob meine MappingKlasse hilfreich ist :wink:
 
G

Gast

Gast
Die ArrayList kann das generell schon. Bei dieser sucheName() gibt er mir bei der suche nach dem "H" diese beiden Leutchen aus, d.h. er kann schon auch gleiche Attribute aufnehmen, aber ich versteh nicht, warum er das bei der Matrikelnummer nicht hinbekommt.


Das wird wohl ne Veränderung von 5 Minuten sein.

Den Vector bekomm ich bei JDK 1.6 und Netbeans 5.5 nich zum Laufen, warum? Oder lag das daran, dass ich die foreach schleifen mit iterator lösen wollte.

-Ich vermute das Problem an folgenden Stellen:
- containskey
- foreach schleife, wo er gefstud durchläuft in der akademie

blick noch nich so ganz durch und habs daher noch nich getestet. brauch erstmal ne pause, bin am verzweifeln.
 
M

mubbelbubbel

Gast
öhm könnte der mod bitte den autor aus dem code rausmachen oben!?

ganz nett wär auch, wenn das "sch**" nicht so auftauchen würde, kanns nur nich bearbeiten, merci-
 

Jango

Gesperrter Benutzer
mubbelbubbel hat gesagt.:
kanns nur nich bearbeiten, merci-

Dagegen hilft ein einfaches Rezept: Anmelden! Und schon kannst du das selber machen :wink:
Beim nächsten mal weißt du es besser.
Da der Thread jetzt wieder hochkommt (was ich mit diesem Beitrag auch erreichen will), liest es vielleicht ein Moderator und macht's... :roll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
C Probleme bei einem Stringvergleich - Attribut "value" unterscheidet sich Java Basics - Anfänger-Themen 9
R Probleme beim umwandeln eines String zu einem Int Wert Java Basics - Anfänger-Themen 3
T Probleme mit einem Java-Applet Java Basics - Anfänger-Themen 17
megachucky probleme mit einem char-array. Java Basics - Anfänger-Themen 6
M Probleme mit einem Set Java Basics - Anfänger-Themen 10
G Probleme bei einem Aufzug Java Basics - Anfänger-Themen 7
R Probleme mit einem Java-Programm Java Basics - Anfänger-Themen 3
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
V Probleme Guessing Game Java Basics - Anfänger-Themen 8
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
R JMenu/JMenuItem Probleme Java Basics - Anfänger-Themen 2
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
J Probleme mit dem Debugger Java Basics - Anfänger-Themen 4
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
J Probleme mit Kompilierung Java Basics - Anfänger-Themen 11
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
C Probleme mit paintComponent Java Basics - Anfänger-Themen 13
P Probleme mit JUnit-Tests, es kommt was anderes raus als bei manuellen Tests Java Basics - Anfänger-Themen 5
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
R Erste Schritte Probleme bei 2D Spielfeld, mit einzufügender "Person" Java Basics - Anfänger-Themen 5
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
Dimax String Probleme Java Basics - Anfänger-Themen 12
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
Splayfer Java Array Probleme Java Basics - Anfänger-Themen 3
J Probleme bei IllegalArgumentException "werfen". Java Basics - Anfänger-Themen 1
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
X Probleme im Umgang mit PriorityQueue Java Basics - Anfänger-Themen 75
D Probleme mit dem Windowbuilder und JComboBox Java Basics - Anfänger-Themen 2
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
X Probleme mit Übungsaufgaben zu Zahlentypen Java Basics - Anfänger-Themen 4
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
Franzi1001 Probleme mit Eclipse Java Basics - Anfänger-Themen 7
T Probleme bei Installation von JDK Java Basics - Anfänger-Themen 2
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
C Probleme bei Regex Java Basics - Anfänger-Themen 9
V Probleme mit Arrays Java Basics - Anfänger-Themen 8
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
G Probleme bei Frame aufgaben Java Basics - Anfänger-Themen 6
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
L Probleme mit Java Java Basics - Anfänger-Themen 3
S Probleme mit abspielen einer .wav Datei Java Basics - Anfänger-Themen 2
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
J Probleme beim Array ausgeben Java Basics - Anfänger-Themen 4
M Probleme bei rekursiver Zuordnung Java Basics - Anfänger-Themen 1
I Probleme mit 2 dimensionale Arrays Java Basics - Anfänger-Themen 3
H Best Practice View probleme Java Basics - Anfänger-Themen 2
B Probleme mit Kreisberechnung Java Basics - Anfänger-Themen 15
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
J Eclipse Export Probleme Java Basics - Anfänger-Themen 25
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
J Interface Probleme bei der Implementierung Java Basics - Anfänger-Themen 1
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
V Klassen ObjectInputStream ->ReadObject Probleme Java Basics - Anfänger-Themen 5
P Probleme mit der Do-Schleife Java Basics - Anfänger-Themen 2
F Erste Schritte Compiling Probleme Java Basics - Anfänger-Themen 13
S Neuling und Probleme bei Schulaufgabe Java Basics - Anfänger-Themen 5
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
M Probleme mit Eclipse Java Basics - Anfänger-Themen 20
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Compiler-Fehler javac hat Probleme mit Paketen unter OSX Java Basics - Anfänger-Themen 2
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
B Variablen Probleme mit Eclipse Java Basics - Anfänger-Themen 6
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
I Probleme bei Verzeichnissanalyse Java Basics - Anfänger-Themen 12
F Probleme mit privaten Klassen (abstrakten Klassen) Java Basics - Anfänger-Themen 1
H Probleme mit Klassen...oder: Eine Uhr Java Basics - Anfänger-Themen 9
G Probleme mit Konsole Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
G Probleme mit Eclipse oder der URL Klasse Java Basics - Anfänger-Themen 5
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
M Probleme mit Anzeigen von String in GUI und if-Anweisung Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben