Aufgabe

Erstelle ein Programm zur Verwaltung von Hausaufgaben. Die Hausaufgabe (Fach, Datum, Priorität, Inhalt,…) wird über eine GUI eingegeben und in einer linearen Liste unter Verwendung des Entwurfsmusters Kompositum verwaltet.

Eine Liste aller zu machenden Hausaufgaben eines Tages soll angezeigt werden.

Alles andere ist im Wesentlichen optional.

Ich weiß, dass eine ArrayList einfacher wäre, aber laut Lehrplan soll das Kompositum-Muster hierfür benutzt werden. Also dann so. Am Ende der elften Klasse kann dann ja auf ArrayLists und / oder Datenbanken gewechselt werden.

Ergänzung: Dieses Aufgabe hatte ich bereits Anfang Dezember geschrieben, aber konnte es wegen der Lösung noch nicht anzeigen. Das ist ja jetzt anders: HA_Verwaltung

Ich muss aber gestehen, dass ich an manchen Stellen getrickst habe – zwar legal, aber ich habe getrickst. So ist der Aufbau des Menüs mit den Daten der Hausaufgaben von der Idee her über eine Liste gelöst, allerdings habe ich keine benutzt. Ich habe stattdessen mit Strings und dem Symbol # gearbeitet, um so schrittweise die Informationen zusammen zu suchen. Am Ende wird dann über die Funktion split der String wieder in ein Array umgewandelt:

//Alle Infos vom Backend (Model) als String holen.
//Die einzelnen HA werden dabei mit # getrennt
//Den String an der Stelle der # aufbrechen und in ein Array umwandeln.
String[] arrayOfAllHA = myHA_list.getAllInfosForGUI().split(„#“);

//Durchsuchen aller HA
String allHAofOneDate = „“;
for (int i = 0; i

//Die Einzelinformation aufsplitten
//Der 1. Wert ist das datum
String curDate = arrayOfAllHA[i].split(„;“)[0];

//Wenn das Datum übereinstimmt, aufnehmen
if (choosedDate.equals(curDate)) {
allHAofOneDate += „#“+arrayOfAllHA[i];
}
}

//Den ersten Hash # entfernen
allHAofOneDate = allHAofOneDate.substring(1, allHAofOneDate.length());

//Den Lösungsstring mit allen Daten wieder splitten und
//die Anzeige aktualisieren
jNumberField1_anzahl.setInt(allHAofOneDate.split(„#“).length);

Selbstverständlich hätte man auch ein Array vom Model zurückgeben lassen können, aber das schrittweise hinzufügen etc. fand ich einfach zu komplex, da schnell bei zweidimensionalen Arrays landet, die ich noch nicht behandelt hatte.