Sie sind auf Seite 1von 4

Tutorium

Programmierung I

Stephan Gramüller (gramueller@fim.uni-passau.de),


Julian Harrer (harrerj@fim.uni-passau.de)

Aufgabe 13: Eingaben


a) Begrüÿung: Schreibe ein Programm, welches zuerst mithilfe des Scanner einen
String input von der Konsole einliest und dann "Hallo <input>" ausgibt. Bei
einem Fehler (Exception) soll eine sinnvolle Fehlermeldung ausgegeben werden.
Danach soll dasselbe Verhalten mit einem BufferedReader implementiert werden.
Dazu müssen folgende Pakete importiert werden:
import java.io.InputStreamReader;
import java.util.Scanner;
import java.io.BufferedReader;
Beispiel (die Eingabe ist grau):

Eingabe durch Scanner


Lisa Wagner
Hallo Lisa Wagner

Eingabe durch BufferedReader


Peter Schmid
Hallo Peter Schmid

1
b) Taschenrechner: Schreibe ein Programm, welches zunächst eine Zahl (ganzzahlig), dann
eine Rechenoperation (+, -, *, /) und dann erneut eine Zahl einliest. Dabei soll jede Ein-
gabe in einer eigenen Zeile eingelesen werden. Das Programm soll dann das Ergebnis der
Rechenoperation ausgeben.
Beispiele (Eingaben sind grau):

// Beispiel Addition
2
+
2
2 + 2 = 4
// Beispiel Subtraktion
4
-
1
4 - 1 = 3

c) Validierung: Erweitere den Taschenrechner, sodass ungültige Eingaben (z.B. ein


Buchstabe statt einer Zahl) abgefangen werden.
Beispiel (Eingaben sind grau):

42
/
a
Bitte eine Zahl eingeben!
0
Division durch 0 ist nicht zulässig. Bitte eine andere Zahl eingeben.
6
42 / 6 = 7

Aufgabe 14: Objektorientierung


(a) Erstelle eine Klasse Student mit den Attributen Name, Vorname, Matrikelnum-
mer, Studiengang und Fachsemester. Erstelle anschlieÿend ein Objekt der Klasse
Student, mit den Eigenschaften, die auf dich selbst zutreen.
(b) Erweitere die Klasse Student aus (a) um eine Methode public String toString(),
welche die Attribute des Objekts als String zurückgibt. Gib anschlieÿend das Ob-
jekt mithilfe der Methode toString() aus.
Beispielausgabe:

Wagner, Lisa (MatrNr. 12345) studiert Informatik im 1. Semester.

2
Aufgabe 15: Campus Management System
a) Erstelle eine Klasse University und eine Klasse Student (äquivalent Aufgabe 14 b).
Die Klasse University soll eine Variable numberOfStudents und ein Array von
Student Objekten haben. Füge mindestens 3 Student-Objekte zum Array hinzu
und schreibe eine Methode printStudents, die alle Studierenden auf der Konsole
ausgibt.
b) Erweitere die Klasse University um die Methode void addStudents(), sodass
die Daten von (beliebig vielen) Studierenden von der Konsole eingelesen werden.
Verwende die Eingabe fertig bzw. weiter um nach einer vollständigen Eingabe
das Einlesen zu beenden bzw. weitere Studierende hinzuzufügen. Nach dem Einlesen
sollen alle Studierende auf der Konsole ausgegeben werden.
Beispiel (Eingaben sind grau):

Vorname: Lisa
Nachname: Wagner
Matrikelnummer: 12345
Studiengang: Informatik
Fachsemester: 4
Weiter? (weiter/fertig) weiter
Vorname: Peter
Nachname: Schmid
Matrikelnummer: 1337
Studiengang: Internet Computing
Fachsemester: 1
Weiter? (weiter/fertig) fertig
Liste an Studierenden:
Wagner, Lisa (MatrNr. 12345) studiert Informatik im 4. Semester.
Schmid, Peter (Matr.Nr. 1337) studiert IC im 1. Semester.

c) Erweitere das Programm aus Aufgabe (b) so, dass es bei beliebigen Eingaben nicht
abstürzt.
Hinweis : Fehler können beispielsweise auftreten, wenn
ˆ beim Attribut Fachsemster keine Zahl

ˆ bei der Frage Weiter? weder weiter noch fertig

eingegeben wird.

3
Aufgabe 16: Listen
a) Erstelle die Klassen MyList und MyNode. MyList repräsentiert eine einfach verket-
tete Liste, welche Knoten vom Typ MyNode beinhaltet. MyNode speichert Daten vom
Typ String.
Folgende Methoden soll MyList besitzen:
ˆ public void add(String value): Fügt einen neuen Wert hinten an die Liste
an. Ist der übergebene Wert jedoch null, soll dieser nicht hinzugefügt werden.
ˆ public void add(String value, int pos): Fügt einen neuen Wert an der
übergebenen Position pos hinzu. Verschiebt das Element an pos und alle nach-
folgenden nach rechts. Ist pos gröÿer als die momentane Anzahl an Listenele-
menten, soll eine IndexOutOfBoundsException geworfen werden.
ˆ public String get(int pos): Gibt den Wert an der Position pos zurück,
beginnend bei 0.
ˆ public boolean isEmpty(): Gibt zurück, ob die Liste leer ist.
ˆ public int size(): Gibt die Anzahl der Elemente zurück.
ˆ public void print(): Gibt alle Elemente durch Kommas getrennt in folgen-
der Syntax auf der Konsole aus:
[<element_0>,<element_1>,...,<element_n-1>,<element_n>]

Folgende Methoden soll MyNode besitzen:


ˆ String getData(): Gibt den Wert des Knotens zurück.
ˆ void setData(String data): Setzt den Wert des Knotens auf den übergebe-
nen Wert, solange der Wert nicht null ist.
b) Erweitere MyList, sodass Elemente gelöscht werden können. Erstelle folgende Me-
thoden:
ˆ public boolean remove(int pos): Entfernt den Wert an Position pos. Gibt
true zurück, wenn der Wert erfolgreich entfernt wurde. Gibt false zurück,
wurde kein Wert gefunden.
ˆ public void clear(): Entfernt alle Elemente der Liste.

c) Modiziere MyList und MyNode, sodass statt Strings der Typ generisch festgelegt
werden kann.
Erstelle zum Testen eine MyList vom Typ String sowie eine MyList vom Typ
Integer und fülle beide mit beliebigen Werten.

Das könnte Ihnen auch gefallen