Übungen vom 30.10.06

Werbung
Ranglisten
In vielen Sportarten ist die Erstellung einer Weltrangliste üblich. Wir nehmen an, in
einer Sportart gibt es Ranglistenturniere, bei denen es für jede Platzierung eine
vorher festgelegte Anzahl von Ranglistenpunkten gibt. Die Rangliste wird jeweils am
1. Januar aktualisiert und basiert auf den Ranglistenpunkten, die ein Sportler in den
vergangenen zwei Jahren gesammelt hat.
Deine Aufgabe ist es, eine Datenbank zu erstellen, welche die
Ranglisteninformationen für mehrere Jahre aufnehmen kann. Vor einem Turnier soll
die Verteilung von Ranglistenpunkten nach Platzziffern festgelegt werden können.
Nach dem Turnier wird jeder Platzziffer ein Sportler zugeordnet. Die Sportler werden
mit Nachname, Vorname, Land und Wohnort gespeichert. Die Turniere werden mit
Veranstaltungsort und Jahr gespeichert.
a) Modelliere eine passende Datenbank. Gib zu jeder Eigenschaft einen geeigneten
Datentyp an und erstelle ein ER-Diagramm. Gib darin die Multiplizitäten der
Beziehungen an und markiere alle Primär- und Fremdschlüsselattribute.
b) Gib mit einer SELECT-Abfrage die Namen aller Sieger des Turniers in Bremen
aus, absteigend nach Jahr sortiert.
c) Erstelle mit einer SELECT-Abfrage die aktuelle Rangliste.
d) Gib die Sportler-ID aller Sportler aus, die je ein Ranglistenturnier gewonnen
haben.
e) Wie d), aber gib Vorname und Nachname des Sportlers aus.
Java-Lösung
Bei einer anderen Sportart basiert die Berechnung der Rangliste auf einem
komplizierten System, das in einem Java-Programm abgebildet ist. Eine Liste von
1000 aktiven Sportlern liegt in einem Array vor:
Sportler[] sListe = new Sportler[1000]
Du kannst voraussetzen, dass das Array mit den Sportlerdaten gefüllt ist. Die Klasse Sportler
hat zwei Eigenschaften (Nachname, Vorname), einen geeigneten Konstruktor und die beiden
Methoden
public int ermittleSportlernummer (String nachname, String vorname)
public int ermittleRanglistenpunkte (int sportlernummer)
a) Schreibe den vollständigen Code der Klasse Sportler mit den beiden
Eigenschaften und dem Konstruktor (aber ohne die beiden Methoden; die musst
du nicht implementieren).
b) Stelle dir vor, dass jemand anders die beiden Methoden implementiert hat.
Schreibe ein Programm, dass für einen Sportler (Vorname und Nachname sind
bekannt) die Anzahl der Ranglistenpunkte ausgibt.
c) -> Rangliste erstellen; die Aufgabe geht weiter.
Herunterladen