Zum Inhalt springen

Aufgabe vom Ausbilder : schreibe einen Konsolen TR in C++


boeseskeksi

Empfohlene Beiträge

Hallo :)

soweit sogut, rechnen tut er schonmal hier ist der Code :

#include <iostream>                         // Input Output Bibliothek

using namespace std;


void Aufforderung()                         // Funktion ohne Rückgabewert

{

cout << "Bitte geben Sie eine Zahl ein";

cout << endl;

}

void error()

{

cout << "nicht moeglich!";

cout << endl;

}

void errordivide()

{

cout << "teilen durch 0 nicht moeglich!";

cout << endl;

}

int main ()

{

int zeichen;

double zahl1, zahl2, ergebnis;

cout <<  endl;

cout << "Geben Sie die Rechenart ein:  [1] -> +  [2] -> -  [3) -> * [4] -> /  ";

cin >> zeichen;

if( zeichen < 0 || zeichen > 4 ) error();



Aufforderung();

cin >> zahl1;


Aufforderung();

cin >> zahl2;


if(zeichen == 1){

ergebnis = zahl1 + zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}



if (zeichen == 2){

ergebnis = zahl1 - zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}


if (zeichen == 3){

ergebnis = zahl1 * zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}


if (zeichen == 4){

if(zahl2 == 0) errordivide();

else if (ergebnis = zahl1 / zahl2);

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}




system("pause");

return (0);


}




Er hat noch ein paar "Kinderkrankheiten" wie teilen durch null funktioniert noch nicht so recht und was mein Hauptproblem ist, die eingabe von Buchstaben, ich möchte das er eine Fehlermeldung ausgibt und wieder in die Auswahl zurückspringt, jedoch steh ich da grade n bisis auf dem Schlauch ^^ kann mit jmd helfen ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, was dein Problem mit dem durch "0" teilen ist, versteh ich nicht so ganz gerade.

Aber wenn du prüfen willst, ob eine Zahleingegeben ist, lautet das Stichwort "isdigit".

Das heißt, du musst die einzelnen Stellen deiner Eingabe überprüfen.

z.B.

for (i=0; i<[Die Länge der Eingabe]; i++)

{

if( isdigit([eingabe(i)]) )

//nischts

else

error();

}

C++ hab ich schon länger nicht mehr gemacht, aber ich hoffe es hilft.

die Angaben in eckigen Klammern musst du noch ersetzen.

mfG

Marco

Bearbeitet von mharms
Link zu diesem Kommentar
Auf anderen Seiten teilen

Diese Entwicklungsumgebung ist fehlerbehaftet und wird seit Jahren nicht mehr weiterentwickelt. Kann gut sein, dass der Code deshalb nicht funktioniert.

Wenn du nicht dazu gezwungen bist, Dev-C++ zu benutzen, steig auf etwas aktuelles um, wie Code::Blocks oder Microsoft Visual C++ Express.

Ich würde dir auch Microsoft Visual C++ Express empfehlen. Bekommst du kostenfrei und die Debuggingfunktion ist sehr gut.

Link zu diesem Kommentar
Auf anderen Seiten teilen


if(zeichen == 1){

ergebnis = zahl1 + zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}



if (zeichen == 2){

ergebnis = zahl1 - zahl2;

cout <<"Das Ergebins lautet:";

cout << ergebnis;

cout << endl;}


[...]


Ich vermisse ein else ... oder noch besser/übersichtlicher wäre switch und Funktionskapselung.
system("pause");
Müffelt.
cin.get();
Er hat noch ein paar "Kinderkrankheiten" wie teilen durch null funktioniert noch nicht so recht
Mathematisch funktioniert das nie.
und was mein Hauptproblem ist, die eingabe von Buchstaben, ich möchte das er eine Fehlermeldung ausgibt und wieder in die Auswahl zurückspringt, jedoch steh ich da grade n bisis auf dem Schlauch ^^ kann mit jmd helfen ^^
Hinweis:
bool isNumeric( const std::string& s )

{

[INDENT]std::stringstream ss(s);

double d;

ss >> d;

return ss.good();[/INDENT]


}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...