Freitag, 4. März 2011
Java Übungen und Aufgabe (POS1: 2A, 2C)
Klassen, Objekte
Erzeugen Sie eine KlasseSomeMaths
, welche eine statische Konstante PI
enthält sowie eine statische Methode double getSquare(double x)
, welche das Quadrat von x
liefert.Erstellen Sie weiters eine Klasse
Circle
, welche eine Kreis simuliert. Circle
hat ein Attribut radius
sowie die Methoden getCircumference()
, welche den Umfang liefert, und getArea()
, welche die Fläche berechnet. Die Methoden sollen sich der Konstante PI
und der Methode getSquare()
von SomeMaths
bedienen.Eine dritte Klasse
CircleExercise
soll im main()
drei Kreise vom Typ Circle
erzeugen und jeweils den Radius, den Umfang und die Fläche ausgeben.Das UML-Diagramm sieht etwa so aus:
Arrays
Erzeugen Sie eine KlasseDreieckArray
, welche ein privates zweidimensionales Array feld
für Integers enthält. Dieses Feld soll "dreieckig" sein und mit folgenden Werten initialisiert werden:1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
Die Methoden sind public und sollen folgendes tun:
void create(int zeilen, int spalten)
soll ein neues Feld mit den gegebenen Zeilen und Spalten erzeugen (rechteckig).int[][] getArray()
soll das Feld zurückliefern.int[] summen()
soll ein eindimensionales Feld mit den Zeilensummen liefern.boolean set(int zeile, int spalte, int wert)
soll den Wert an der gegebenen Stelle im Feld feld setzen und bei erfolg true zurückliefern. Bei ungültigen Indizes soll false zurückgeliefert werden.Schreiben Sie eine Klasse
TestDreieckArray
, in der zwei Objekte von DreieckArray in der Methode main()
angelegt werden. Machen Sie zum Testen passende Aufrufe der Methoden (z.B. gültige und ungültige set()
usw.).Streams, Strings
Schreiben Sie eine KlasseReadFile
, welche eine eine auf der Kommandozeile angegebene Datei öffnet und in einen String einliest. Verwenden Sie dazu drei Methoden String liesString(InputStream fileInputStream)
, String liesStringBuffer(InputStream fileInputStream)
und String liesStringBuilder(InputStream fileInputStream)
und messen Sie die Zeiten, die mit den einzelnen Methoden benötigt werden um die Datei zu lesen.Von der Datei soll jeweils mit
read()
ein Zeichen gelesen werden. Die Methode liesString()
hängt das gelesene Zeichen jeweils an einen String an, die Methode liesStringBuffer()
verwendet einen StringBuffer
und liesStringBuilder()
verwendet einen StringBuilder
. Das gelesene Zeichen wird dann immer mit append()
an den StringBuffer
bzw. StringBuilder
angehängt.Testen Sie mit unterschiedlich großen Dateien (kleine, mittlere, große, ganz große). Sie werden unterschiedliche Zeiten messen bei den verschiedenen Methoden. Erklären Sie die Unterschiede!
Verwenden Sie
System.currentTimeMillis()
(liefert long
), um die aktuelle Zeit in ms zu erhalten.Random, Calendar, Kommandozeile, Streams
Es sollen Testdaten der FormDatum Von-Zeit Bis-Zeit Datum Von-Zeit Bis-Zeit ...erzeugt werden. Wobei ein Datum die Form
JJJJ-MM-TT
und Von-Zeit und Bis-Zeit die Form HH:MM
haben soll. Weiters sollen folgende Bedingungen erfüllt sein:- Verwenden Sie
java.util.Random
um die Testdaten zu bekommen. - Bis-Zeit soll immer nach Von-Zeit kommen (also später)
- Eine Zeile mit Datum, Von-Zeit und Bis-Zeit soll immer nach jenem Zeitbereich der vorhergehenden Zeile kommen (die Zeiten sind also sortiert).
- Zwischen zwei Zeilen sollen nicht mehr als 36 Stunden liegen (Bis-Zeit bis Von-Zeit)
2011-03-04 10:24 10:45 2011-03-04 11:33 12:56 2011-03-05 12:33 17:23
Das Programm soll folgendermaßen aufgerufen werden:
java CalenderTest [-h] [startdatum] [startzeit] [datei] anzahl -h ... Ausgabe dieser Hilfe und Ende startdatum ... JJJJ-MM-TT (optional) startzeit ... HH:MM (optional) datei ... Name der Ausgabedatei (optional) anzahl ... Anzahl der zu erzeugenden ZeilenWird kein
startdatum
angegeben, so ist der heutige Tag als Startwert zu verwenden.Wird kein
startzeit
angegeben, so ist die aktuelle Uhrzeit als Startwert zu verwenden. Diese Startwerte sind in der ersten Ausgabezeile zu sehen.Wenn kein Dateiname
datei
angegeben, so ist die Standardausgabe zu verwenden.Die Anzahl der zu erzeugenden Zeilen muss mindestens 1 sein!
Fehlermeldungen sind auf
System.err
auszugeben.Nennen Sie das Projekt
calendertest
(klasse-name-calendertest
).Abonnieren Posts [Atom]
Kommentar veröffentlichen