hi,
hab erst vor kurzem mit Java angefangen, daher noch so einige Probleme!
Wir sollen: Die Klausurergebnisse einer Lehrveranstaltung mit einem Java-Programm ausgewerten.
Für jeden Teilnehmer werden die folgenden Daten erfasst:
Name, Vorname, Matrikel, Vorleistung (binär) und die Klausurnote (1.0, 1.3, …, 4.0, 5)
Das Programm soll alle Teilnehmer ermitteln, die den Modul erfolgreich bestanden haben. Der Modul
gilt als bestanden, wenn die Vorleistung erbracht und mindestens die Klausurnote 4 erreicht wurde.
Überlegen Sie sich eine geeignete Datenstruktur, um die Daten der Teilnehmer zu erfassen, und
deklarieren initialisieren Sie eine Variable von diesem Typ für mindestens 5 Teilnehmer zum Testen
ihres Programms.
so hab auch das Programm schon so weit das es läuft, also wird kompiliert, nur die Ausgabe funktioniert nicht richtig da stürzt es dann immer ab nach dem 2 Studentenwerte gespeichert wurden, und vielleicht gibt es ja auch noch so Dinge die ich besser machen kann.
Wäre schön wenn mir da jemand helfen kann
hab erst vor kurzem mit Java angefangen, daher noch so einige Probleme!
Wir sollen: Die Klausurergebnisse einer Lehrveranstaltung mit einem Java-Programm ausgewerten.
Für jeden Teilnehmer werden die folgenden Daten erfasst:
Name, Vorname, Matrikel, Vorleistung (binär) und die Klausurnote (1.0, 1.3, …, 4.0, 5)
Das Programm soll alle Teilnehmer ermitteln, die den Modul erfolgreich bestanden haben. Der Modul
gilt als bestanden, wenn die Vorleistung erbracht und mindestens die Klausurnote 4 erreicht wurde.
Überlegen Sie sich eine geeignete Datenstruktur, um die Daten der Teilnehmer zu erfassen, und
deklarieren initialisieren Sie eine Variable von diesem Typ für mindestens 5 Teilnehmer zum Testen
ihres Programms.
so hab auch das Programm schon so weit das es läuft, also wird kompiliert, nur die Ausgabe funktioniert nicht richtig da stürzt es dann immer ab nach dem 2 Studentenwerte gespeichert wurden, und vielleicht gibt es ja auch noch so Dinge die ich besser machen kann.
Wäre schön wenn mir da jemand helfen kann
Java:
import java.util.Scanner;
class StudentT {
String name,vorname;
int matrikel; // reicht int? 0 am anfang?
boolean vorleistung;
double klausurnote;
} // StudentT
public class Bl4auf3 {
public static void main(String[] argv) {
Scanner input = new Scanner(System.in);
int i = 0;
char yesNo = 'y';
StudentT array[];
do {
array = new StudentT[i+1]; // reserviert speicher für array
// Eingabe
array[i] = new StudentT ();
System.out.print(" Name: "); array[i].name = input.next();
System.out.print(" Vorname: "); array[i].vorname = input.next();
System.out.print(" Matrikel: "); array[i].matrikel = input.nextInt();
System.out.print(" Vorleistung erbracht? [y / n] ");
if (input.next().charAt(0) == 'y') {
array[i].vorleistung = true;
} else { // besser switch case default? falsche eingabe vermeiden
array[i].vorleistung = false;
} // if else
System.out.print(" Klausurnote: "); array[i].klausurnote = input.nextDouble(); // eingabe zw 1 und 6, normal das Eingabe von Zahlen mit Punkt zb: 1.2 als Note nicht funktioniert ?
System.out.print(" Weiter? [ y / n] "); // evtl ne yesNo funktion für y or Y / n N und auf andere eingaben nochmal fragt
yesNo = input.next().charAt(0);
System.out.println();
i = i +1;
}while (yesNo != 'n');
// Ausgabe
for (int k = 0;k < array.length;k++) {
// int k = 0;
// while (k < array.length) {
System.out.println(array.length);
if (array[k].vorleistung == true && array[k].klausurnote <= 4.0) {
System.out.println( array[k].vorname + " ,"+ array[k].name + " hat bestanden!");
// k++;
}
}
} // main
} // class Bl4auf3