493
Bearbeitungen
Ngb (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ngb (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 10: | Zeile 10: | ||
[[Bild:Sdui_Stundenplan.png|center|600px]] | [[Bild:Sdui_Stundenplan.png|center|600px]] | ||
Ziel soll es sein, | Ziel soll es sein, ein Programm zur Anzeige eines Stundenplans zu erstellen. Das Programm soll in der Lage sein, die Stundenpläne von Lehrern, Klassen und Räumen anzuzeigen. Dazu werden die entsprechenden Daten in einer SQLite Datenbank gespeichert und in einem vorgefertigten GUI angezeigt. | ||
Du bearbeitest das Projekt '''alleine''' und kannst auch die Zeit über die Herbstferien nutzen, um daran weiterzuarbeiten. Nach den Ferien sollen alle Projekte eingesammelt werden. | Du bearbeitest das Projekt '''alleine''' und kannst auch die Zeit über die Herbstferien nutzen, um daran weiterzuarbeiten. Nach den Ferien sollen alle Projekte eingesammelt werden. | ||
| Zeile 16: | Zeile 16: | ||
{{Aufgabe:Start}} | {{Aufgabe:Start}} | ||
# Analysiere den Problembereich "Stundenplan" und erstelle ein vollständiges ER-Modell. (Du kannst wieder https://link.ngb.schule/erdplus nutzen, ein anderes Tool Deiner Wahl oder per Hand zeichnen.) | # Analysiere den Problembereich "Stundenplan" und erstelle ein vollständiges ER-Modell. (Du kannst wieder https://link.ngb.schule/erdplus nutzen, ein anderes Tool Deiner Wahl oder per Hand zeichnen.) | ||
# Übersetze ein vollständiges | # Übersetze Dein ERM in ein vollständiges Relationenschema. | ||
# Prüfe, ob | # Prüfe, ob Dein Schema in der 3. Normalform nach Codd ist und falls nicht, transformiere es entsprechend. | ||
Die Modelle der Datenbank müssen mit dem Projekt abgegeben werden. | Die Modelle der Datenbank müssen mit dem Projekt abgegeben werden. | ||
| Zeile 23: | Zeile 23: | ||
{{Aufgabe:Start}} | {{Aufgabe:Start}} | ||
# Erstelle einen Fork der [https://git.ngb.schule/IF-LK- | # Erstelle einen Fork der [https://git.ngb.schule/IF-LK-2022/stundenplan Projektvorlage]. | ||
# Klone das Projekt und analysiere | # Klone das Projekt und analysiere seinen Aufbau. Versuche vor allem aus den Beispielen und Kommentaren die Interaktion mit der GUI zu verstehen. (Den Aufbau der GUI musst Du nicht unbedingt nachvollziehen. Du kannst die bereitgestellten Methoden nutzen. Es ist aber auch nicht verboten, die Vorlage anzupassen, falls Du Dich mit GUIs schon auskennst.) Starte das Projekt auch und schau Dir die GUI an. | ||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
{{Aufgabe:Start}} | {{Aufgabe:Start}} | ||
Öffne die Datenbank <code>stundenplan.db</code> aus dem Projektordner im Programm SQLite Browser. Setze nun | Öffne die Datenbank <code>stundenplan.db</code> aus dem Projektordner im Programm SQLite Browser. Setze nun Dein Datenbankschema um und erstelle die Tabellen und Attribute mithilfe des SQLite Browsers. | ||
* Es ist schon eine Tabelle mit Daten vorhanden, die | * Es ist schon eine Tabelle mit Daten vorhanden, die Du anpassen (Tabelle bearbeiten) und weiter nutzen kannst. | ||
* Im Projektordner findest | * Im Projektordner findest Du einige CSV-Dateien, die Du modifizieren und über "Datei -> Import -> Tabellen aus CSV" in die Datenbank importieren kannst. Oder Du erzeugst Dir selber Testdaten (zum Beispiel in Excel oder mithilfe von [http://mockaroo.com Mockaroo]). | ||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
{{Aufgabe:Start}} | {{Aufgabe:Start}} | ||
Programmiere | Programmiere Deine Stundenplan-App nach Deinen Vorstellungen. Du kannst Dir selber sinnvolle Funktionalitäten überlegt und Dir Mindestziele setzen, die Du im Projekt umsetzen möchtest. Es sollte aber mindestens möglich sein, einen Stundenplan anzuzeigen, der aus der Datenbank ausgelesen wird. | ||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
| Zeile 43: | Zeile 43: | ||
; <code>addFilter( String pName, String[] pOptions )</code> | ; <code>addFilter( String pName, String[] pOptions )</code> | ||
: Fügt der Seitenleiste eine neue Auswahlbox mit dem Namen <code>pName</code> hinzu, die die angegebenen Strings in <code>pOptions</code> zur Auswahl stellt. | : Fügt der Seitenleiste eine neue Auswahlbox mit dem Namen <code>pName</code> hinzu, die die angegebenen Strings in <code>pOptions</code> zur Auswahl stellt. | ||
: Bei einer | : Bei einer Änderung der Auswahl wird <code>pName</code> an die Methode <code>selectionChanged( String pList, String pNewValue )</code> als erster Parameter übergeben. | ||
; <code>removeFilter( String pName )</code> | ; <code>removeFilter( String pName )</code> | ||
: Entfernt die Auswahlbox mit dem Namen <code>pName</code> aus der Seitenleiste, | : Entfernt die Auswahlbox mit dem Namen <code>pName</code> aus der Seitenleiste, | ||
| Zeile 58: | Zeile 58: | ||
; <code>selectionChanged( String pList, String pNewValue )</code> | ; <code>selectionChanged( String pList, String pNewValue )</code> | ||
: Wird vom GUI aufgerufen, wenn sich die | : Wird vom GUI aufgerufen, wenn sich die Auswahl einer Auswahlbox ändert. Der erste Parameter gibt den Namen der Auswahlbox an, der zweite den neu gewählten Wert. | ||
=== {{Java API|java.awt.Color}} === | === {{Java API|java.awt.Color}} === | ||