W
weissNix
Gast
Hallo Ihr Lieben.
Ich muss einen Taschenrechner programmieren und bin völlig hilflos. Hab mir alle Themen hier im Forum dazu angesehen, aber das sieht alles so anders aus als ich es kenne, dass ich da gar nix von verstehe.
Vielleicht könnt Ihr mir ja helfen.
Die Anforderungen sind, dass der Rechner sich bei Fehleingaben stabil verhalten soll und Hinweise zur korrekten Benutzung ausgeben soll.
Es ist immer nur ein Vorzeichen zulässig und überflüssige Operatoren sollen bei der Ausgabe nicht sichtbar sein (also bei 5 - -5 = 10 soll stehen 5 + 5 = 10.
Das sind so die wichtigsten Anforderungen.
Ich habe erst mit dem Programm angefangen, aber mir fällt zu den meistens Sachen nicht einmal ein, wie ich da überhaupt ran gehen soll.
Wäre wirklich für jeden Denkanstoß dankbar, und vor allem wenn er so geschreiben ist, dass ihn selbst ein 5 jähriger versteht.
Ich zeig mal was ich bis jetzt hab.
Ach so, zur Info, MeineEingabe und MeineAusgabe sind vom Prof vorgegebene Klassen, die das machen wie sie heißen.
Bitte helft mir!
[Beni hat die Chancen auf ein Antwort merklich erhöht, indem er Codetags eingefügt hat...]
Ich muss einen Taschenrechner programmieren und bin völlig hilflos. Hab mir alle Themen hier im Forum dazu angesehen, aber das sieht alles so anders aus als ich es kenne, dass ich da gar nix von verstehe.
Vielleicht könnt Ihr mir ja helfen.
Die Anforderungen sind, dass der Rechner sich bei Fehleingaben stabil verhalten soll und Hinweise zur korrekten Benutzung ausgeben soll.
Es ist immer nur ein Vorzeichen zulässig und überflüssige Operatoren sollen bei der Ausgabe nicht sichtbar sein (also bei 5 - -5 = 10 soll stehen 5 + 5 = 10.
Das sind so die wichtigsten Anforderungen.
Ich habe erst mit dem Programm angefangen, aber mir fällt zu den meistens Sachen nicht einmal ein, wie ich da überhaupt ran gehen soll.
Wäre wirklich für jeden Denkanstoß dankbar, und vor allem wenn er so geschreiben ist, dass ihn selbst ein 5 jähriger versteht.
Ich zeig mal was ich bis jetzt hab.
Ach so, zur Info, MeineEingabe und MeineAusgabe sind vom Prof vorgegebene Klassen, die das machen wie sie heißen.
Bitte helft mir!
Code:
import java.io.IOException;
import java.text.DecimalFormat;
public class Taschenrechner
{
private double varA = 0.0;
private double varB = 0.0;
private char zeichen;
public Taschenrechner() throws IOException
{
legeVarAFest();
legeVarBFest();
legeZeichenFest();
}
public void legeVarAFest() throws IOException
{
MeineAusgabe.schreibe("Bitte geben Sie den 1. Operanden ein: ");
varA = MeineEingabe.erfasseDouble();
}
public void legeVarBFest() throws IOException
{
MeineAusgabe.schreibe("Bitte geben Sie den 2. Operanden ein: ");
varB = MeineEingabe.erfasseDouble();
}
public void legeZeichenFest() throws IOException
{
MeineAusgabe.schreibe("Bitte wählen Sie die Operation + - * / %): ");
zeichen = MeineEingabe.erfasseChar();
}
public double liefereVarA()
{
return varA;
}
public double liefereVarB()
{
return varB;
}
public char liefereZeichen()
{
return zeichen;
}
public double liefereErgebnis()
{
double ergebnis = 0.0;
{
if (zeichen == '+' )
return ergebnis = varA + varB;
else
if (zeichen == '-')
return ergebnis = varA - varB;
else
if (zeichen == '*')
return ergebnis = varA * varB;
else
if (zeichen == '/')
return ergebnis = varA / varB;
else
if (zeichen == '%')
return ergebnis = varA % varB;
}
return ergebnis;
}
Code:
import java.io.IOException;
import java.text.DecimalFormat;
public class TaschenrechnerMain
{
public static void main(String[] args) throws IOException
{
DecimalFormat df = new DecimalFormat("0.###");
MeineAusgabe.schreibe("Taschenrechner\n\n");
Taschenrechner rechner = new Taschenrechner();
MeineAusgabe.schreibe("Ergebnis: ");
MeineAusgabe.schreibe(df.format(rechner.liefereVarA())+ " ");
if (rechner.liefereZeichen() == '-' && rechner.liefereVarB() < 0)
MeineAusgabe.schreibe("" );
else if (rechner.liefereZeichen() == '+' && rechner.liefereVarB() < 0)
MeineAusgabe.schreibe("");
else
MeineAusgabe.schreibe(rechner.liefereZeichen() + " ");
MeineAusgabe.schreibe(df.format(rechner.liefereVarB()) + " " + " = ");
MeineAusgabe.schreibe(df.format(rechner.liefereErgebnis())+ " ");
MeineAusgabe.schreibe("\n\nNeue Berechnung? j/n: ");
MeineEingabe.erfasseText();
}
}
[Beni hat die Chancen auf ein Antwort merklich erhöht, indem er Codetags eingefügt hat...]