[JAVA] Durchschnittsnoten aller Kurse

04/28/2013 00:53 Warnuk3r#1
Hallo, ich komme grade an einer Sache nicht weiter. Ich möchte ein Programm schreiben, das eine Kursverwaltung abwickeln soll. Das bedeutet es gibt die Klasse Kurse (also Mathematik, usw.) und die Klasse Teilnehmer. Wer in welchem Kurs ist und welche Note man erreicht hat, ist in der Klasse Belegung ersichtlich.

Code:
class Kurs {
	String name;
	int dauer;
}

class Teilnehmer {
	String vorname;
	String nachname;
	String ort;
	String strasse;
	int plz;
}

class Belegung {
	Kurs kurs;
	Teilnehmer teilnehmer;
	double note;
}
Für jede Klasse habe ich eine HashMap angelegt. Jetzt würde ich gerne die Durchschnittsnoten jedes Kurses ermitteln, nur komme ich wirklich nicht darauf wie das gehen soll. Selbst wenn ich es mir als Datenbank vorstelle, wüsste ich nicht wie ich das ganze per SQL hinbekommen sollte... (Um mal etwas anders zu denken)

Nun, ich wäre für jeden Denkanstoß wirklich sehr dankbar.
Danke schonmal :)
04/28/2013 16:28 snibeti snab#2
Code:
public class Kurs {

    //...

    public double berechneDurchschnitt() {
        double summe = 0;
        int teilnehmer = 0;
        for (Belegung b : belegungen) {
            if (b.kurs == this) {
                summe += b.note;
                teilnehmer++;
            }
        }
        return summe / teilnehmer;
    }
}
04/28/2013 17:55 Warnuk3r#3
Quote:
Originally Posted by mcuncool View Post
du brauchst eine zentralle Klasse die das alles "verwaltet"? ^^

was hast du in der HashMap drin?

sind die Klassen so vorgegeben?

wenn du zB 30 Teilnehmer a 5 Kurse hast, hast dann 150 Objekte von der Klasse Belegung.
wie willst du da noch was finden? ^^

wenn du damit weiter arbeiten willst:
brauchst service methoden in der Klasse Belegung, die dir die Referenz auf den Kurs geben, damit du die Belegungs Objekte mit dem Kurs Mathe irgendwie identifizieren kannst, um Noten daraus zu lesen um den Durchschnitt zu berechnen.






aber ich will sagen:
ist blöd modeliert.
Aggregation

Kurs(1)<>-------(*)Teilnehmer
Es wird mir vorgegeben diese 3 Klassen die ich genannt habe zu erstellen und für diese jeweils eine HashMap zu erstellen, was soll ich tun ;)

Quote:
Originally Posted by snibeti snab View Post
Code:
public class Kurs {

    //...

    public double berechneDurchschnitt() {
        double summe = 0;
        int teilnehmer = 0;
        for (Belegung b : belegungen) {
            if (b.kurs == this) {
                summe += b.note;
                teilnehmer++;
            }
        }
        return summe / teilnehmer;
    }
}
Danke dir! Sieht einfach aus aber ich kam da einfach nicht drauf es mit if (b.kurs == this) in der Klasse zu machen...

Hab gar nicht daran gedacht die for-schleifen in einer Klasse zu benutzen, stattdessen hab ich an die main-methode im Programm gedacht :o