Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs2006/Tag 3: Unterschied zwischen den Versionen

(Übungsaufgabe)
K (Kategorisiert)
 
(14 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
[[Javakurs2006| <- Zurück zur Übersicht]]
 
[[Javakurs2006| <- Zurück zur Übersicht]]
  
= Vormittags =
 
== Übungsaufgabe ==
 
# Lese den Javadoc zu den Klassen, die man benötigt, um eine Datei einzulesen: [http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileInputStream.html FileInputStream] um mit den Konstruktoren eine Datei zu öffnen, [http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html BufferedReader] um eine Datei zeilenweise [http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html#readLine() readLine()] zu lesen und [http://java.sun.com/j2se/1.4.2/docs/api/java/io/InputStreamReader.html InputStreamReader] um den FileInputStream und den BufferedReader kombinieren zu können. Verwende diese Klassen, um das IOUtility-Objekt um eine Methode ''ArrayList readLinesInFile(String filename)'' zu erweitern, die eine Datei in einzelnen Zeilen in eine ArrayList einliest und diese zurückgibt. Danach implementiere eine Methode ''String readFile(String filename)',' die eine eine ganze Datei als ein String zurückgibt. Hinweis: Verwende dabei die vorher implementierte Methode.
 
# Benutze diese Methoden, um einen neuen Konstruktor für die Studentendatenbank zu schreiben, der sie aus einer Datei einliest. Jede Zeile in der Datei sieht so aus: "234234 Heinz Kunz" Das bedeutet, erst die Matrikelnummer, dann ein Leerzeichen und dann der Name des Studenten bis zum Ende der Zeile. Vorsicht: beginnt eine Zeile nicht mit der Matrikelnummer sondern mit etwas anderem, ist sie zu verwerfen. Hilfreiche Methoden: [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#substring(int,%20int)) substring()], [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#split(java.lang.String) split()], [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#startsWith(java.lang.String) startsWith()]
 
# Benutze dein Wissen um die Eingabe um eine Methode ''String promptUserForString(String question)'' zu schreiben, die den übergebenen String dem Benutzer auf der Konsole anzeigt und seine Antwort als String zurückgibt. Schreibe danach noch eine Methode ''int promptUserForInt(String question)'', die diese Methode verwendet, aber einen ''int'' zurückgibt. Hinweis: Man benötigt dafür [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#in System.in]. Schreibe mit dieser Methode ein Menü für die Studentendatenbank, die es erlaubt, die Datenbank aus einer Datei einzulesen, und in einer anderen Datei zu sichern. Hinweis: Am einfachsten ist es ein Menü auszugeben, in dem jede Wahl eine Nummer hat, die der Benutzer dann eingibt. Wählt er eine ungültige Zahl, kann man einfach eine Fehlermeldung und das Menü ausgeben und eine neue Eingabe verlangen.
 
  
''Advanced Aufgabe für Leute denen das Vorher alles zu Langweilig war:''
 
# Erweitere das IOUtility-Objekt so, dass man es mit einem Dateinamen Instanziiert. Danach kann man mit den Methoden ''startReading()'' bzw. ''startWriting()'' die Klasse in einen Zustand bringen, der entweder Lesen oder Schreiben aus der Datei mit den Methoden ''readLine()'' bzw. ''writeLine()'' erlaubt. Die Methode ''readLine()'' soll dabei ''null'' zurückgeben, wenn die Datei zuende gelesen wurde.
 
# Erweitere das Menü der Studentendantenbank, so das es erlaubt:
 
#* Eine Standarddatenbank zu erzeugen
 
#* Einen Studenten zu suchen
 
#* Einen neuen Studenten einzufügen
 
#* Die Hauptdiplom-Note eines Studenten einzutragen.
 
# Erweitert euer Menü, so dasss es eine Fehlerbehandlung durchführt, wenn beim Einlesen einer Datei diese nicht vorhanden ist, oder beim Schreiben, die Datei nicht zum Schreiben geöffnet werden kann.
 
  
= Nachmittags =
+
'''Ab heute verändert sich der Tagesplan - wir veranstalten jetzt Vor- und Nachmittags Übungen.'''
 +
 
 +
 
 +
 
 +
== Übungsaufgaben ==
 +
 
 +
=== Aufgaben zur Festigung ===
 +
 
 +
* Stellt ersteinmal in aller Ruhe Übungsblatt 3 fertig.
 +
* Wir haben ein [[Javakurs2006/Uebungsaufgaben| größeres Angebot an Beispiel-Aufgaben]] um bestimmte Themengebiete noch einmal zu wiederholen.
 +
* Zur Wiederholung der Objektorientierten Programmierung gibt es hier eine [[Javakurs2006/Rennschnecke| Rennschneckenaufgabe]].
 +
 
 +
 
 +
=== Weiterführende Aufgaben ===
 +
 
 +
* [[Javakurs2006/Tag 2/Vorlesung 3/Aufgaben| Aufgaben zur API-Benutzung]]
 +
*:(Dazu nochmal ein Link zur entsprechenden Vorlesung: [http://docs.freitagsrunde.org/javakurs/2006/vortrag%20le4_23.pdf Vortragsfolien], [[Javakurs2006/Tag 2/Vorlesung 2| Vorlesung zum Nachlesen]])
 +
 
 +
 +
* [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2006/Aufgaben/AufgabenTDDv2.pdf Fortgeschrittene Aufgaben] für alle die im Stoff schon sehr sattelfest sind und sich für Test-Driven-Development interessieren. Dafür braucht ihr noch die [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2006/Aufgaben/junit.jar Datei junit.jar].
 +
 
 +
== Hilfe zu Java ==  
 +
 
 +
* Eine [[Javakurs2006/Java_Kurzreferenz| Kurzreferenz für Java ]] ist seit gestern Online.
 +
 
 +
 
 +
 
 +
 
  
 
[[Javakurs2006| <- Zurück zur Übersicht]]
 
[[Javakurs2006| <- Zurück zur Übersicht]]
 +
[[Kategorie:Java]]

Aktuelle Version vom 17. März 2009, 13:09 Uhr

<- Zurück zur Übersicht


Ab heute verändert sich der Tagesplan - wir veranstalten jetzt Vor- und Nachmittags Übungen.


Übungsaufgaben

Aufgaben zur Festigung


Weiterführende Aufgaben


Hilfe zu Java



<- Zurück zur Übersicht