Realisieren Sie die Eingabe einer Fließkommazahl über das Tastenfeld eines Taschenrechners.
Lernziele:
Sie können die Funktionalität einer Anwendungslogik analysieren
Sie können die Anwendungslogik unabhängig von einer Oberfläche umsetzen
Sie sind in der Lage, die Funktionstauglichkeit der Anwendungslogik mit Testfällen nachzuweisen
Sie haben die Fähigkeit, eine Oberfläche nach einfachen Kriterien der Nutzbarkeit zu gestalten
Sie können die Oberfläche mit der Funktionslogik verknüpfen
Zur Aufgabe
Wenn Sie bei einem realen Taschenrechner eine Zahl eingeben, so geschieht das Zeichen für Zeichen über das Tastenfeld. Wir gehen bei dieser Aufgabe von folgendem Verhalten bei der Eingabe einer Zahl aus:
Es ist die Eingabe von Kommazahlen möglich; die Eingabe einer Zahl in wissenschaftlicher Notation (z.B. 1,234E4) ist nicht zulässig
Die soweit eingegebene Zahl wird im Display des Taschenrechners angezeigt; es erfolgt während der Eingabe keine Umwandlung in die wissenschaftliche Notation, so wird z.B. die Zahl 123456 nicht als 1,23456E+5 dargestellt, ebenso werden Tausenderstellen nicht durch Punkte abgesetzt, z.B. wird 1024 nicht als 1.024 dargestellt.
Die Anzahl der Zeichen zur Eingabe und Darstellung ist begrenzt; sie ist vom Grundsatz von der Anwendungsentwickler:in frei definierbar
Die Eingabe einer Zahl erfolgt vorzeichenlos
Es gibt eine "Entfernen"-Taste (eine Art undo), die das letzte Zeichen rechts in der Zahlendarstellung entfernt; wird das letzte Zeichen entfernt, bleibt eine 0 übrig (man kann das Display in dem Sinne also nicht "leer" machen)
Es gibt eine Löschtaste (ein clear),
Die Eingabelogik
Die zeichenweise Eingabe einer Kommazahl folgt dem beiliegenden Interface [login to view URL]:
interface FloatInput {
boolean put(char c); // input char by char, true if char is accepted
float getFloat(); // get float value of input for computations
void undo(); // undo last input if there are chars left
String toString(); // get string representation of input
}
Realisieren Sie die Klasse FloatNumber in der Datei [login to view URL], die das Interface FloatInput implementiert.
Die Klasse darf neben den Interface-Methoden keine weiteren Methoden haben. Die Klasse muss erfolgreich alle mitgelieferten Testfälle bestehen. Bitte legen Sie die beiliegende Testdatei [login to view URL] im gleichen Ordner ab wie Ihre Realisierung [login to view URL] und das Interface [login to view URL], so dass die Tests mit der JShell ausführbar sind:
jshell -R-ea [login to view URL]
Hinweis: Eventuelle package-Anweisungen in Ihren Java-Quellcodedateien werden zwar als Fehler von der JShell angemerkt, die JShell arbeitet dennoch die folgenden Codezeilen in den Dateien ab. Lassen Sie sich davon nicht irritieren. Wenn Sie einen AssertionError ohne die Angabe des fehlgeschlagenen Tests haben, dann handelt es sich um ein assert in der Testdatei ohne Nachrichtenanteil, d.h. ohne die Ergänzung wie z.B. : "Test 3";.
Hello,
Benni Translation Services is providing translation service since 13 years.
Our translation is done manually and professionally we guarantee unique output Error Free.
Please specify your deadline, content, and count word so we can finalize our quote.
We have a strong interest in your translation project and it will be a privileged
for us to collaborate with you.
OUR STEP IS Translation--->>Proofreading---->>>editing--->>>Final Proofreading---->>>Delivered to you
Please contact us for a chat to discuss about the details
Thank you
Hallo,
Ich habe die Auftragsdetails sorgfältig durchgelesen und bin mir absolut sicher, dass ich dieses Projekt sehr gut machen kann.
Wir bieten an -
Kostenloses Add-On bei jedem Projekt
+ 6 Monate Support nach Abschluss des Projekts
+ 20 Std./Tag Support auch an Wochenenden verfügbar
+ Entwicklung auf unserem Testserver beim Start und Migration wird ausgeführt, nachdem alle abgeschlossen und genehmigt wurden
Seit mehr als 20 Jahren bieten wir hier Dienstleistungen an
Wir sind von 2 Mitgliedern auf 40 Teammitglieder angewachsen
Wir haben mehr als 1000 Bewertungen im Offline-Markt gesammelt und mehr als 2K-Projekte abgeschlossen
Bei Freelancer in den Top-Rankings zu sein
Wir haben an allen Arten von Projekten gearbeitet, die klein, mittel oder lang sind
Ping uns jederzeit, wir sind hier um Hilfe.
Hi! Die Implementierung wird kein Problem sein, ähnliche Aufgaben werden bereits im Bachelor Studium gestellt. Falls Fragen oder Anmerkungen aufkommen kann ich diese gerne auf Deutsch oder Englisch beantworten.
The implementation won't be a problem, I've worked on similar exercises in my bachelor studies. If any questions come up, I can answer those in german or english.
Ich bin studierter Medieninformatiker und möchte Ihnen dabei helfen, Ihr Projekt kostengünstig und schnell umzusetzen.
Mit freundlichen Grüßen,
Lukas Droste