Guten Tag,
ich studiere Wirtschaftsinformatik im 1. Semester und soll in der Übung ein Studentenverwaltungsprogramm mit Java schreiben.
Nun kann ich die Berechnung des jüngsten, ältesten und das Durchschnittsalter nicht richtig ausgeben, da sie innerhalb der for-Schleife berechntet werden müssen, da sonst der Zugriff auf das Array nicht gegeben ist. Es soll nur einmal ausgeben werden. Hatte es schon mit einer switch-case versucht, aber dann nimmt er immer die werte es letzten arrays. Habe die Println-Anweisung einmal unterstrichen, damit ihr wisst wo das Problem ist.
Ich bin schon fast am verzweifeln, habe schon etliche Stunden versucht, die Lösung zu finden, aber komme einfach nicht weiter und kann mich somit nicht den anderen Modifizierungen des Programms widmen.
Am besten wäre es, wenn es ohne eine eigene Methode funktioniert, da Methoden erst in der nächsten Übung verlangt werden.
Vielen Dank im Voraus
MFG
Michael
ich studiere Wirtschaftsinformatik im 1. Semester und soll in der Übung ein Studentenverwaltungsprogramm mit Java schreiben.
Nun kann ich die Berechnung des jüngsten, ältesten und das Durchschnittsalter nicht richtig ausgeben, da sie innerhalb der for-Schleife berechntet werden müssen, da sonst der Zugriff auf das Array nicht gegeben ist. Es soll nur einmal ausgeben werden. Hatte es schon mit einer switch-case versucht, aber dann nimmt er immer die werte es letzten arrays. Habe die Println-Anweisung einmal unterstrichen, damit ihr wisst wo das Problem ist.
Ich bin schon fast am verzweifeln, habe schon etliche Stunden versucht, die Lösung zu finden, aber komme einfach nicht weiter und kann mich somit nicht den anderen Modifizierungen des Programms widmen.
Am besten wäre es, wenn es ohne eine eigene Methode funktioniert, da Methoden erst in der nächsten Übung verlangt werden.
Vielen Dank im Voraus
MFG
Michael
Java:
public class Uebung5 {
enum Studiengang {WINF, INF, MINF, MT, GET};
public static void main(String[] args) {
Studiengang a = Studiengang.WINF;
Studiengang b = Studiengang.INF;
Studiengang c = Studiengang.MINF;
Studiengang d = Studiengang.MT;
Studiengang e = Studiengang.GET;
// 50 Studs,0=MatrNr: , 1=Gebjahr: ,2=GebMon: ,3=Gebtag: , 4=Fachbereich: ,5=Alter:
int [][]stud = new int [50][6];
//Zufallswerte zuordnen, Schleife über 50 Studs
System.out.println("Index"+ "\tMatr"+ "\tJahr Monat"+ "\tTag FB"+ "\tAlter");
for (int index=0;index <50;++index) {
stud[index][0] = (int) (10000+9583*Math.random()); //5-stellige Zahlen
stud[index][1] = (int) (1980+10*Math.random()); // geb. ab 1980
stud[index][2] = (int) (1+100*Math.random()%12); //Werte 1...12
stud[index][3] = (int) (1+100*Math.random()%30); // Werte 1..30
if((int) (10*Math.random()) >=5) stud[index][4] = 2; // Werte 1 oder 2
else stud[index][4] = 1;
switch((int) (10*Math.random())%5){
case 0: System.out.println(a);
break;
case 1: System.out.println(b);
break;
case 2: System.out.println(c);
break;
case 3: System.out.println(d);
break;
case 4: System.out.println(e);
}
stud[index][5] = (int) ((2011*365+11*30+07)-(stud[index][1]*365+stud[index][2]*30+stud[index][3]))/365; // Alter mit Array berechen
System.out.println(index
+": \t"+stud[index][0]
+"\t"+stud[index][1]
+"\t"+stud[index][2]
+"\t"+stud[index][3]
+"\t"+stud[index][4]
+"\t"+stud[index][5]
);
int max=0, min=0, sum=0;
for (int i=1;i<=50;++i) { // Schleife für min,max und sum
int n=stud[index][5];
++sum;
if (i==1) {
max=n;
min=n;
}
if (n>max) max=n;
if (n<min) min=n;
}
[U][B]switch (index){
case 49: System.out.println("Aeltester: "+max +"\tJuengster: "+min +"\tDurchschnittsalter: "+sum/50);[/B][/U]
}
}
}
}
Zuletzt bearbeitet von einem Moderator: