M
merkas
Gast
hallo!
könnte mir hier jemand einen lösungsansatz geben?
Ein Programm zur Umrechnung ganzer Zahlen in verschiedene Zahlensysteme soll entwickelt werden. Das Programm setzt sich zusammen aus einem Hauptprogramm, das den Dialog mit dem Benutzer führt, und einer Klasse, die die Umrechnung erledigt. Das Hauptprogramm liest zunächst einen String ein, der die umzurechnende Zahl darstellt. Als Ziffern sind die Ziffern des Dezimalsystems (0-9) und (bei Bedarf) die Buchstaben (A-Z) zu verwenden. Dabei soll Groß- und Kleinschreibung der Buchstaben nicht unterschieden werden (a=A) Anschließend wird noch die Basis der eingegebenen Zahl angegeben und die Basis, in die umzurechnen ist. Die beiden Basis-Zahlen werden dabei jeweils im Dezimalsystem angegeben und müssen zwischen 2 und 36 (einschließlich) liegen. Ein Dialog könnte also wie folgt aussehen:
Umzurechnende Zahl: A1Da2
Basis der eingegebenen Zahl: 16
Umzurechnen in Basis: 10
A1Da2 (Basis: 16) ergibt zur Basis 10: 662946
Die Klassen/Schnittstellen dieser Übung sollen alle im Java-package de.fhkonstanz.alda2.aufg1 erstellt werden.
1. Entwerfen Sie die Schnittstelle der Umrechnungsklasse und implementieren Sie diese als Java-interface.
2.
Implementieren Sie in einer eigenen Klasse das Hauptprogramm. Dabei verwendet das Hauptprogramm zur Umrechnung eine Variable vom Typ der oben definierten Schnittstelle. Die Initialisierung der Variablen kann noch nicht erfolgen, da die Implementierungsklasse noch nicht erstellt ist. Dennoch kann man das Hauptprogramm schon compilieren.
Beachten Sie auch die Hinweise zu Javas Eingabe-Klassen. Behandeln Sie die Exceptions, die von den Eingabe-Klassen aus dem Java-package java.io geworfen werden, indem Sie sie fangen, einen entsprechenden Fehlertext zeigen und das Programm beenden.
3. Implementieren Sie die Klasse, die die Umrechnung durchführt. Jetzt kann das Hauptprogramm diese Klasse instanziieren und man kann es zur Umrechnung verwenden.
4.
Behandeln Sie in der Umrechnungsklasse folgende Fehlersituationen:
* Die Eingabe- oder Ausgabebasis ist außerhalb des gültigen Bereichs: 2-36
* Der eingebene String enthält unerlaubte Sonderzeichen (etwa: '.', '/', ...)
* Der eingegebene String kann keine Zahl der angegebenen Eingabebasis sein (zum Beispiel: 9 bei Eingabebasis 2)
Schreiben Sie für jeden Fehlertyp eine eigene Exception-Klasse, die von java.lang.Exception ableitet. Sie müssen jetzt natürlich die Methoden-Signatur (auch des Java-interfaces) entsprechend anpassen.
5. Behandeln Sie diese Exceptions im Hauptprogramm, indem Sie sie fangen, einen entsprechenden Fehlertext ausgeben und von vorne starten.
6. Schreiben Sie einen jUnit-Test zum Testen Ihrer Umrechnungsklasse. Dazu rufen Sie in einer test-Methode die Umrechnungsfunktion mit ein paar festen Zahlen auf und überprüfen den Rückgabewert auf Korrektheit.
7. Ergänzen Sie weitere test-Methoden, um auch die Ausnahmefälle zu testen. Dazu rufen Sie die Umrechnungsmethode mit ungültigen Eingaben auf und fangen die entsprechenden Exceptions. Wenn die Exception gefangen wurde, also die Ausführung im catch-Block fortgesetzt wird und nicht unmittelbar nach Aufruf der Umrechnungsmethode, dann ist der Test erfolgreich. Andernfalls (also im Anschluss an den Aufruf der Umrechnungsmethode) beenden Sie den Test mit einer Fehlermeldung durch Aufruf von fail("Fehlermeldung");.
danke!
könnte mir hier jemand einen lösungsansatz geben?
Ein Programm zur Umrechnung ganzer Zahlen in verschiedene Zahlensysteme soll entwickelt werden. Das Programm setzt sich zusammen aus einem Hauptprogramm, das den Dialog mit dem Benutzer führt, und einer Klasse, die die Umrechnung erledigt. Das Hauptprogramm liest zunächst einen String ein, der die umzurechnende Zahl darstellt. Als Ziffern sind die Ziffern des Dezimalsystems (0-9) und (bei Bedarf) die Buchstaben (A-Z) zu verwenden. Dabei soll Groß- und Kleinschreibung der Buchstaben nicht unterschieden werden (a=A) Anschließend wird noch die Basis der eingegebenen Zahl angegeben und die Basis, in die umzurechnen ist. Die beiden Basis-Zahlen werden dabei jeweils im Dezimalsystem angegeben und müssen zwischen 2 und 36 (einschließlich) liegen. Ein Dialog könnte also wie folgt aussehen:
Umzurechnende Zahl: A1Da2
Basis der eingegebenen Zahl: 16
Umzurechnen in Basis: 10
A1Da2 (Basis: 16) ergibt zur Basis 10: 662946
Die Klassen/Schnittstellen dieser Übung sollen alle im Java-package de.fhkonstanz.alda2.aufg1 erstellt werden.
1. Entwerfen Sie die Schnittstelle der Umrechnungsklasse und implementieren Sie diese als Java-interface.
2.
Implementieren Sie in einer eigenen Klasse das Hauptprogramm. Dabei verwendet das Hauptprogramm zur Umrechnung eine Variable vom Typ der oben definierten Schnittstelle. Die Initialisierung der Variablen kann noch nicht erfolgen, da die Implementierungsklasse noch nicht erstellt ist. Dennoch kann man das Hauptprogramm schon compilieren.
Beachten Sie auch die Hinweise zu Javas Eingabe-Klassen. Behandeln Sie die Exceptions, die von den Eingabe-Klassen aus dem Java-package java.io geworfen werden, indem Sie sie fangen, einen entsprechenden Fehlertext zeigen und das Programm beenden.
3. Implementieren Sie die Klasse, die die Umrechnung durchführt. Jetzt kann das Hauptprogramm diese Klasse instanziieren und man kann es zur Umrechnung verwenden.
4.
Behandeln Sie in der Umrechnungsklasse folgende Fehlersituationen:
* Die Eingabe- oder Ausgabebasis ist außerhalb des gültigen Bereichs: 2-36
* Der eingebene String enthält unerlaubte Sonderzeichen (etwa: '.', '/', ...)
* Der eingegebene String kann keine Zahl der angegebenen Eingabebasis sein (zum Beispiel: 9 bei Eingabebasis 2)
Schreiben Sie für jeden Fehlertyp eine eigene Exception-Klasse, die von java.lang.Exception ableitet. Sie müssen jetzt natürlich die Methoden-Signatur (auch des Java-interfaces) entsprechend anpassen.
5. Behandeln Sie diese Exceptions im Hauptprogramm, indem Sie sie fangen, einen entsprechenden Fehlertext ausgeben und von vorne starten.
6. Schreiben Sie einen jUnit-Test zum Testen Ihrer Umrechnungsklasse. Dazu rufen Sie in einer test-Methode die Umrechnungsfunktion mit ein paar festen Zahlen auf und überprüfen den Rückgabewert auf Korrektheit.
7. Ergänzen Sie weitere test-Methoden, um auch die Ausnahmefälle zu testen. Dazu rufen Sie die Umrechnungsmethode mit ungültigen Eingaben auf und fangen die entsprechenden Exceptions. Wenn die Exception gefangen wurde, also die Ausführung im catch-Block fortgesetzt wird und nicht unmittelbar nach Aufruf der Umrechnungsmethode, dann ist der Test erfolgreich. Andernfalls (also im Anschluss an den Aufruf der Umrechnungsmethode) beenden Sie den Test mit einer Fehlermeldung durch Aufruf von fail("Fehlermeldung");.
danke!