Objektorientierte Programmierung

Ich hätte eine Frage zu einer Uniaufgabe bei der ich auf keinen grünen Zweig komme.
Die Aufgabe lautet wie folgt:
Definieren Sie dazu die Klassen Übungsblatt, Abgabe sowie Studierender.
Zu jedem Studierenden gehören Abgaben, die jeweils zu einem Übungsblatt gehören. Jedes Blatt hat eine maximale Punktzahl, jede Abgabe hat eine erreichte ein Studierender hat bestanden, wenn er entweder insgesamt mindestens 50 Punkte erreicht hat und dabei bei jeder seiner Abgaben mindestens 42% oder aber insgesamt mehr als 100 Punkte erzielt hat.
Schreiben Sie für die Klasse Studierender eine Methode hatBestanden, die zurückgibt, ob dieser Studierender nach den Kriterien bestanden hat.
Schreiben Sie eine weitere Klasse mit einer main-Methode, die ein Objekt der Klasse Studierender mit drei Abgaben für drei Übungsblättern erzeugt und anschließend ausgibt, ob der Studierende bestanden hat.
 
K

kneitzel

Gast
Wenn wir Deine Frage beantworten sollen, dann solltest Du uns auch noch Deine Frage mitteilen.
 
K

kneitzel

Gast
Du hast doch schon drei Klassen vorgegeben bekommen. Versuch doch einmal, den Text nun einzelnen Klassen zuzuordnen.

Also den Text genau unterteilen in kleine Aussagen und diese dann einbauen:
"Zu jedem Studierenden gehören Abgaben," -> Was bedeutet das denn? Was wird hier denn ausgesagt?
" die jeweils zu einem Übungsblatt gehören." -> Und was bedeutet dies für die Abgaben?

So kannst Du dann erst einmal eine Art Klassendiagramm aufmalen und wenn Du das einmal hast, ist die Implementierung nur noch ein kleiner Schritt....
 

temi

Top Contributor
Java:
public class Studierender {
    
}

public class Uebungsblatt {
    
}

public class Abgabe {
    
}
 
X

Xyz1

Gast
Wenn Du noch gar keinen Ansatz hast, spoiler ich mal. Wenn ich mich nicht vertu müsste es das sein:
Java:
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

public class Student {
	String mn;
	List<Abgabe> abgabes = new LinkedList<>();

	public Student(String mn) {
		super();
		this.mn = mn;
	}

	public void addAbgabe(Abgabe abgabe) {
		abgabes.add(abgabe);
	}

	public boolean hatBestanden() {
		int s = 0;
		boolean b = true;
		for (Abgabe abgabe : abgabes) {
			s += abgabe.aktuell;
			if (100.0 / abgabe.uebungsblatt.maximal * abgabe.aktuell < 42.0) {
				b = false;
			}
		}
		System.out.println(s);
		if (s >= 100 || (s >= 50 && b)) {
			return true;
		} else {
			return false;
		}
	}

	public static void main(String[] args) {
		Student[] students = { new Student("123"), new Student("456"), new Student("789"), };
		Random a = new Random();
		for (Student student : students) {
			for (Uebungsblatt uebungsblatt : Uebungsblatt.blaetter) {
				student.addAbgabe(new Abgabe(uebungsblatt, a.nextInt(uebungsblatt.maximal + 1)));
			}
		}
		for (Student student : students) {
			System.out.println(student.mn + " " + student.hatBestanden());
		}
	}
}

class Uebungsblatt {
	static final Uebungsblatt[] blaetter = { new Uebungsblatt("1", 30), new Uebungsblatt("1", 20),
			new Uebungsblatt("1", 50), new Uebungsblatt("1", 10), new Uebungsblatt("1", 30), };
	String id;
	int maximal;

	public Uebungsblatt(String id, int maximal) {
		super();
		this.id = id;
		this.maximal = maximal;
	}
}

class Abgabe {
	Uebungsblatt uebungsblatt;
	int aktuell;

	public Abgabe(Uebungsblatt uebungsblatt, int aktuell) {
		super();
		this.uebungsblatt = uebungsblatt;
		this.aktuell = aktuell;
	}
}
 
K

kneitzel

Gast
Eine erste Lösung, dann erklär mal, wozu Du super(); Aufrufe in den Konstruktoren hast.
 
X

Xyz1

Gast
Stören die dich? Dann lass sie weg.

Verkomplettiert mir meine ide. Und ja, da sind keine getter.
 
Wenn ich deine Lösung compiliere folgt folgende Fehlermeldung:
Exception in thread "main" java.lang.NoSuchMethodError: Abgabe.<init>(LUebungsblatt;I)V
at Student.main(Student.java:38)
 

sascha-sphw

Top Contributor
Ich habe die Aufgabe nicht gelesen, aber @Tobias-nrw ein paar Punkte die mir beim kurzen überfliegen sofort ins Auge gestochen sind, falls konstruktive Kritik gestattet ist.
  1. Student "mn" würde ich ausschreiben. Man glaubt es kaum... , aber ich musste kurz überlegen was das sein könnte.
  2. Die Methode hatBestanden würde ich nicht ins Objekt Student packen.
  3. Die Methode main gehört für mich absolut nicht ins Objekt Student.
  4. Ein Übungsblatt ist für mich nur ein Blatt, eine Abgabe hat mehrere Übungsblätter.
  5. Übungsblatt.blätter ist nicht gerade Zukunftsorientiert.
 
X

Xyz1

Gast
Habe eure Ratschläge beherzigt - und alles nochmal neu geschrieben... (Bis auf die getter) Nun bekomme ich aber auch die volle Punktezahl. :D
Java:
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

public class Student {
	String matrikelnummer;
	List<Abgabe> abgabes = new LinkedList<>();

	public Student(String matrikelnummer) {
		super();
		this.matrikelnummer = matrikelnummer;
	}

	public void addAbgabe(Abgabe abgabe) {
		abgabes.add(abgabe);
	}

	public boolean hatBestanden() {
		int s = 0;
		boolean b = true;
		for (Abgabe abgabe : abgabes) {
			s += abgabe.aktuell;
			if (100.0 / abgabe.uebungsblatt.maximal * abgabe.aktuell < 42.0) {
				b = false;
			}
		}
		System.out.println(s);
		if (s >= 100 || (s >= 50 && b)) {
			return true;
		} else {
			return false;
		}
	}
}

class Uebungsblatt {
	String id;
	int maximal;

	public Uebungsblatt(String id, int maximal) {
		super();
		this.id = id;
		this.maximal = maximal;
	}
}

class Abgabe {
	Uebungsblatt uebungsblatt;
	int aktuell;

	public Abgabe(Uebungsblatt uebungsblatt, int aktuell) {
		super();
		this.uebungsblatt = uebungsblatt;
		this.aktuell = aktuell;
	}
}

class Professor {
	public static void main(String[] args) {
		/* 50 % der Studierenden werden bestehen */
		Uebungsblatt[] blaetter = { new Uebungsblatt("1", 37), new Uebungsblatt("2", 40), new Uebungsblatt("3", 50),
				new Uebungsblatt("4", 40), new Uebungsblatt("5", 32), };
		Student[] students = { new Student("123"), new Student("456"), new Student("789"), new Student("321"),
				new Student("654"), new Student("987"), };
		Random a = new Random(0);
		for (Student student : students) {
			for (Uebungsblatt uebungsblatt : blaetter) {
				student.addAbgabe(new Abgabe(uebungsblatt, a.nextInt(uebungsblatt.maximal + 1)));
			}
		}
		for (Student student : students) {
			System.out.println(student.matrikelnummer + " " + student.hatBestanden());
		}
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
Q Objektorientierte Programmierung Java Basics - Anfänger-Themen 17
T Objektorientierte Programmierung - Kein Plan wieso das nicht funktioniert! Java Basics - Anfänger-Themen 6
N Objektorientierte Programmierung: Erben von 2 Klassen - wie ist korrekte Vorgehensweise? Java Basics - Anfänger-Themen 16
W objektorientierte Programmierung Java Basics - Anfänger-Themen 25
W objektorientierte Programmierung - String in andere Klasse übergeben Java Basics - Anfänger-Themen 13
T Objektorientierte Programmierung, わからない です Java Basics - Anfänger-Themen 6
S Objektorientierte Programmierung Java Basics - Anfänger-Themen 21
C Objektorientierte Programmierung Java Basics - Anfänger-Themen 11
X Objektorientierte Java Programmierung - 3 Fragen zum Code Java Basics - Anfänger-Themen 5
M objektorientierte programmierung Java Basics - Anfänger-Themen 5
J Objektorientierte Programmierung Java Basics - Anfänger-Themen 5
B Java Objektorientierte Datenbank - Assoziation Hilfe Java Basics - Anfänger-Themen 4
S OOP Objektorientierte Frage Java Basics - Anfänger-Themen 5
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
F Automat-Programmierung Java Basics - Anfänger-Themen 30
N Lambdas, Methodenref, fkt Programmierung ? Java Basics - Anfänger-Themen 10
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
A Frage zur programmierung Java Basics - Anfänger-Themen 12
Nerdinfekt Programmieranfänger, Schwierigkeiten mit der Programmierung Java Basics - Anfänger-Themen 6
U Compiler-Fehler Programmierung einer Drehkugel Java Basics - Anfänger-Themen 8
L Programmierung mit Hash Java Basics - Anfänger-Themen 3
C Wie habt Ihr angefangen mit der Java Programmierung, ohne Programmiervorkenntnisse Java Basics - Anfänger-Themen 8
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
S GUI-Programmierung Sudoku-Rätsel lösen Java Basics - Anfänger-Themen 1
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
S Programmierung simulieren - aber wie?! Java Basics - Anfänger-Themen 3
H Java Programmierung Java Basics - Anfänger-Themen 3
W Problem bei Programmierung von Monte-Carlo-Integration Java Basics - Anfänger-Themen 12
D Guten Tag mache gerade eine Umschulung zum FiSi war leider jetzt 2 Wochen Krank und wir hatten Prozendurale Programmierung. Java Basics - Anfänger-Themen 3
F Attribute bei Objektorientierter Programmierung Java Basics - Anfänger-Themen 11
F Ich brauche Hilfe bei Objektorientierter Programmierung... Java Basics - Anfänger-Themen 19
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
J Texte für Java Programmierung besser verstehen? Java Basics - Anfänger-Themen 2
C GUI Programmierung unter Windows mit Java womit? Java Basics - Anfänger-Themen 11
D Collections Aufgaben Java-Programmierung Überforderung Java Basics - Anfänger-Themen 36
A GUI Programmierung mit Textfield Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
U Brauche Hilfe bei Programmierung einer Produktdatenbank App Java Basics - Anfänger-Themen 4
L Dynamische Programmierung Java Basics - Anfänger-Themen 0
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
A Methoden Habe ein Problem bei folgender Programmierung Java Basics - Anfänger-Themen 15
slejden Erste Schritte Frage zur OOP (objektorientierten Programmierung Java Basics - Anfänger-Themen 4
V Threads Nebenläufige Programmierung Java Basics - Anfänger-Themen 6
V Nebenläufige Programmierung Java Basics - Anfänger-Themen 5
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
S Programmierung eines Geldwechselautomaten! Java Basics - Anfänger-Themen 2
R Einige Neulingsfragen (Wrapper, GUI-Programmierung) Java Basics - Anfänger-Themen 4
D JavaBeans und die visuelle Programmierung Java Basics - Anfänger-Themen 2
M Dringend Experten für Scala-Play basierte Programmierung!!!! Java Basics - Anfänger-Themen 0
Z Programmierung eines Stacks Java Basics - Anfänger-Themen 19
A Programmierung herangehensweise Java Basics - Anfänger-Themen 9
G 3D-Spiele-Programmierung Java Basics - Anfänger-Themen 3
I Programmierung-Hausaufgabe: Hilfe benötigt Java Basics - Anfänger-Themen 8
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
T Nachhilfe JAVA Programmierung Java Basics - Anfänger-Themen 1
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
N Socket-Programmierung Java Basics - Anfänger-Themen 4
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
O OOP Input & Output in der GUI-Programmierung Java Basics - Anfänger-Themen 2
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
F Fehler bei Array und Index Programmierung Java Basics - Anfänger-Themen 18
K Objektorientierten Programmierung Java Basics - Anfänger-Themen 3
R Einstieg in Programmierung Java Basics - Anfänger-Themen 8
W Problem bei MineSweeper Programmierung Java Basics - Anfänger-Themen 10
D Best Practise für Programmierung Java Basics - Anfänger-Themen 7
D Erste Schritte Einstieg in die Java Spiel Programmierung Java Basics - Anfänger-Themen 7
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
Grejak OOP Einstieg in Objekt-Orientierte-Programmierung Java Basics - Anfänger-Themen 3
D Frage zu Bit Operatoren in der Programmierung Java Basics - Anfänger-Themen 9
U Geräte-Programmierung ? Java Basics - Anfänger-Themen 15
S 2 kurz Fragen zur Möglichkeit der Programmierung Java Basics - Anfänger-Themen 7
J Allgemeine Fragen zur Programmierung Java Basics - Anfänger-Themen 36
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
M Gui Programmierung Java Basics - Anfänger-Themen 21
J Spielevorschläge für Programmierung Java Basics - Anfänger-Themen 3
O Eisenbahn-Programmierung Java Basics - Anfänger-Themen 8
S Schlechte Programmierung Java Basics - Anfänger-Themen 5
O Probleme bei OO-Programmierung mit Vererbung Java Basics - Anfänger-Themen 18
M Programmierung kürzen??? Java Basics - Anfänger-Themen 5
N Umstieg auf objektorintierte Programmierung Java Basics - Anfänger-Themen 2
N Probleme mit meiner Programmierung Java Basics - Anfänger-Themen 5
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
H Programmierung Ampelsteuerung Java Basics - Anfänger-Themen 4
J [Erledigt] Applet Programmierung Java Basics - Anfänger-Themen 4
T Gui Programmierung lernen Java Basics - Anfänger-Themen 3
E Toolkit (Scanner) Programmierung Java Basics - Anfänger-Themen 5
D Programmierung Profi Java Basics - Anfänger-Themen 18
G Problem bei Programmierung Java Basics - Anfänger-Themen 15
G Problem bei Programmierung Java Basics - Anfänger-Themen 2
G thread programmierung für ANFÄNGER Java Basics - Anfänger-Themen 2
S generic programmierung "ne:w T[X]" Java Basics - Anfänger-Themen 2
A Einstieg in die Programmierung Java Basics - Anfänger-Themen 20
I Frage wegen Wörterbuch Programmierung Java Basics - Anfänger-Themen 13
X Programmierung mit geometrischen Figuren Java Basics - Anfänger-Themen 3
G Opjektorientierte Programmierung (OOP). einfach für euch Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben