carookee - group communication for you
Home / JavaForum / Java allgemein
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
2.965 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 1540 von 2212 (70%) |<   <   >   >|

Autor mubbelbubbel
Datum 09.02.07, 11:18
Betreff Probleme mit einem "Verwaltungsprogramm" (Schleife)


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ß?!?

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)

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:
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.


Diskussionsverlauf:
Probleme mit einem "Verwaltungsprogramm" (Schleife)
    Re: Probleme mit einem "Verwaltungsprogramm" (Schleife)
        Re: Probleme mit einem "Verwaltungsprogramm" (Schleife)

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com