Java-Vorkurs WS07/08 Aufgabenblatt 3.1

Werbung
Prof. Dr. Detlef Krömker
Ashraf Abu Baker
Robert-Mayer-Str. 10
60054 Frankfurt am Main
Tel.: +49 (0)69798-24600
Fax: +49 (0)69798-24603
EMail: [email protected]
Aufgabe 3. 1: Projektaufgabe (15) punkte
Ziel dieser Aufgabe ist es, die Grundlagen für eine objektorientierte Datenbank für die Universität
Frankfurt zu schaffen. Da die Aufgaben in den kommenden Übungsblättern darauf aufbauen, sollten Sie
die Aufgabe möglichst vollständig lösen. Die Datenbank soll Informationen zum Personal und zu den
Studierenden speichern. Die Klassen für die Realisierung der Universitätsdatenbank sollten derzeit auf 3
Pakete verteilt werden:
Paket 1: universitydb.personal
Paket 2: universitydb.students
Paket 3: universitydb.util
Ein Uni-Angehöriger (UniAngehoeriger.java) hat eigene persönliche Daten (personenDaten) (als
Objektvariable vom Typ PersonenDaten, die entsprechende Klasse soll in PersonenDaten.java
implemetiert werden) wie z.B. Geschlecht (geschlecht), Vorname (vorname), Nachname (nachname) und
eine Wohnadresse (adresse) (Adresse.java). Eine Adresse besteht aus einer Straße (strasse),
Straßennummer strassenNummer, PLZ (plz) und Ort (ort).
Die korrespondierende Klasse des Uni-Angehörigen soll über eine statische Konstante namens
universitaetName verfügen, die den Wert „Johann-Wolfgang Goethe Universität“ trägt und nur innerhalb
des Paketes sichtbar ist.
Ein Uni-Angehöriger kann ein Mitarbeiter (Mitrabeiter.java) oder ein Student (Student.java) sein.
Sowohl Mitarbeiter als auch Student sind Unterklassen von UniAngehoeriger. Die Klasse Mitarbeiter soll
nicht wie Student im Paket universitydb.students angelegt werden, sondern im Paket
universitydb.personal.
Ein Mitarbeiter unterscheiden sich von einem Studenten dadurch, dass er eine lange Personalnummer
(personalNummer) hat. Nur die Mitglieder des Paketes universitydb.personal dürfen diese Nummer
sehen. Ein Mitarbeiter gehört zu einer Abteilung (abteilung).
Ein Student hat, im Gegensatz zu einem Mitarbeiter, eine Matrikelnummer (matrikelnummer) und begann
sein Studium in einem bestimmten Jahr (studienBeginn) z.B. 2006 entweder im WS oder im SS
(startSemester) und ein Studienfach (studienfach) studieren.
Tutoren (Tutor.java) sind ebenfalls Studenten, die eine Liste von Veranstaltungen (String []
veranstaltungen) betreuen. Sie liegen ebenfalls in universitydb.students.
Dozenten (Dozent.java) sind Mitarbeiter, die an einem Lehrstuhl arbeiten (lehrstuhl). Sie haben Titel
(titel) (z.B. Dr. Prof. Dr., etc.).
Ein wissenschaftlicher Mitarbeiter (WiMi.java) ist ebenfalls ein Mitarbeiter und hat ein Promotionsthema.
Legen Sie in ihrem Projekt die o.g. 3 Pakete an. Erstellen Sie für Uni-Angehöriger, Mitarbeiter, Dozent,
wissenschaftlicher Mitarbeiter, Student, Tutor, Personendaten und Adresse jeweils eine Klasse unter
Berücksichtung der oben beschriebenen Vererbungshierarchie. Achten sie darauf die Modifikatoren der
einzelnen Attribute geeignet zu wählen. Die Klassen PersonenDaten und Adresse sollen im Paket
universitydb.util angelegt werden. Implementieren Sie für die Klassen passende Methoden. Z.B. soll für
Student u.a. eine Methode getSemesterZahl(aktuellesJahr, aktuellesSemester) implementiert werden, die
Semester Anzahl abhängig vom aktuellen Jahr und Semester berechnet. Die Klasse UniAngehoeriger soll
ein Attribut namens durchWahl speichern, das für Studenten und Tutoren nicht sichtbar ist.
Aufgabe 3.2:
Impelmentieren Sie ein Klasse namens TempretureConverter.java, die über eine statische Methode
namens convetTempreture(temp,unit) verfügt. unit bezeichnet dabei die Temperatur entweder in
Fahrenheit oder in Celsius. Die Methode soll die Temperatur entsprechend der unit-Eingabe gemäß den
Formeln Celsius = ((( temp × 9 ) / 5 ) + 32)° Fahrenheit bzw. Fahrenheit = ((temp - 32 ) × 5 / 9)°
Celsius umrechnen und auf dem Bildschirm ausgeben.
Testen Sie ihre Methode, indem Sie eine Klasse namens TempReader implementieren. TempReader
verfügt über eine statische Methode, die den Benutzer auffordert die Temperatur und die Einheit
einzugeben und diese an convetTempreture() übergibt.
Hinweis:
Verwenden das unten stehende Beispiel in Kombination mit der Klasse java.util.StringTokenizer
(http://java.sun.com/j2se/1.6.0/docs/api/).
import java.io.*;
public class Test3 {
public static void main(String[] args) {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Who are you, who-who? ");
System.out.println("Hello " + in.readLine());
in.close();
} catch (IOException ioe) { ioe.printStackTrace(); }
}
}
Herunterladen