C++ Beispielprogramm Taschenrechner

OP #3195426
Lesenswert?
• ▲
▼
Hallo Leute,

Ich müsste in C++ ein Beipielprogramm schreiben, habe auch schon fast 
alles fertig. Da ich mich aber nur in C# und C "auskenne" weiß ich in 
c++ nicht weiter. Beim "printf" sollte das Ergebniss der Rechnung 
ausgegeben werden.
Jedoch weiß ich nicht wie man die Ausgabe des Ergebnisses macht, dass 
der Operator (+, -, *, /) auch korrekt dabei steht.
Kennt sich hier jemand aus?


Danke :)
Angehängte Dateien:
Gast #3195443
Lesenswert?
• ▲
▼
Nun ja, dein C++ unterscheidet sich auf den ersten Blick nicht 
sonderlich von normalem C. Und damit kennst du dich ja aus ;)

Printf  funktioniert in  C++ genauso wie in C. Was also ist jetzt deine 
Frage?

Und was sagt dein Compiler zu deinem Programm? Richtig mögen wird er das 
wohl nicht, nicht nur wegen der komischen Endung .txt

Oliver
Moderator #3195467
Lesenswert?
• ▲
▼
Du benutzt für die Ein- und Ausgabe ja größtenteils die Stream-IO von
C++, also die Operatoren >> und <<. Das ist in Ordnung, aber die Streams
heißten nicht scanf und printf, sondern cin und cout. Ersetze also
einfach diese Namen.

Die zig Fehler, die der Compiler dann noch ausgibt, würden fast alle
auch von einem C-Compiler angeprangert. Da du ja C kannst, sollte es dir
deswegen nicht schwer fallen, diese Fehler zu beheben.

Wenn das tut, würde ich noch etwas an der "Usability" optimieren:

- Wäre es nicht schöner,

    444 - 333

  statt

    444 333 2

  eingeben zu können, um eine Subtraktion durchzuführen?

- Und was passiert bei einer Division durch Null?

- Was passiert, wenn man einen ungültigen Operator eingibt?

- Wenn man mehrere Rechnungen durchführen möchte, muss man jedesmal das
  Programm neu starten :-/

- ...
#3196508
Lesenswert?
• ▲
▼
"printf" und "scanf" kannst du so nicht aufrufen. Lies in deinem C Buch 
nach. Wenn das Programm im C Syntax läuft, fügst Du die Stream 
Funktionalität von C++ hinzu. Danach erstelle eine Klasse 
"Taschenrechner", die dann die einzelnen Methoden - addition, 
subtraktion, multiplikation und division - beinhaltet, die jetzt einzeln 
existieren. Anschliessend überlädst Du die Operatoren +, - , *, / mit 
eben dieser Funktionalität.

Die Grundlagen von C++ kannst du in einem Buch nachlesen. z.B. "Der C++ 
Programmierer" von Ulrich Breymann.

Grüsse
#3198750
Lesenswert?
• ▲
▼
Richard Lunz schrieb:
> Hmm,
> kann mir das jemand zeigen wie das dann aussehen sollte?
>
> Darin
>
1
> printf << x << " + " << y << " = " << z <<endl;
2
>

Na ja. Eben entweder als C++ Stream Operationen
1
  cout << x << " + " << y << " = " << z <<endl;

oder eben auf die C-Tour
1
  printf( "%d + %d = %d\n", x, y, z );

aber du kannst nicht das eine mit dem anderen mischen. Entweder du 
benutzt die Stream Operationen, dann heißt der Ausgabestream cout oder 
eben mit printf und Formatstring.

Näheres findest du sicherlich in deinen Lernunterlagen.
#3201467
Lesenswert?
• ▲
▼
Richard Lunz schrieb:
> Calculus schrieb:
>> -> Programm Absturz
>
> Kein Absturtz

Doch.

Richard Lunz schrieb:
> So, jetzt hab ichs anstatt mit cin und cout, mit printf und scanf
> probiert, aber es kommt nur Müll raus.

Bei mir läuft das so gar nicht erst durch den Compiler. Nachdem ich das 
hier
1
ConsoleApplication2.cpp:4:20: Schwerwiegender Fehler: stdafx.h: Datei oder Verzeichnis nicht gefunden
behoben hab, kommt:
1
ConsoleApplication2.cpp:17:11: Fehler: »::main« muss »int« zurückgeben
2
ConsoleApplication2.cpp: In Funktion »void eingabe(int&, int&, int&)«:
3
ConsoleApplication2.cpp:51:31: Fehler: »scanf« wurde in diesem Gültigkeitsbereich nicht definiert
4
ConsoleApplication2.cpp: In Funktion »void ausgabe(int, int, int, int)«:
5
ConsoleApplication2.cpp:76:39: Fehler: »printf« wurde in diesem Gültigkeitsbereich nicht definiert
6
ConsoleApplication2.cpp: In Funktion »void begruessung()«:
7
ConsoleApplication2.cpp:81:41: Fehler: »printf« wurde in diesem Gültigkeitsbereich nicht definiert

und wenn ich das auch noch behebe, funktioniert es.
Gast #3202377
Lesenswert?
• ▲
▼
Da ist die berühmt berüchtigte "Division durch Null"! Diese Grundlage 
lernt man im Mathematikunterricht.

Einfach eine "if" Abfrage in die divisons Funktion einbauen und wenn der 
zweite Operand "0" ist eine Meldung ausgeben, dass eine Fehleingabe 
vorliegt.

Grundregel: Bei einer Division immer den Divisor auf != 0 prüfen. Sonst 
stürzt ein Programm unter allen Umständen ab!!!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren