Taschenrechner m. Wortdeutungsfunktion
-
Guten Tag,
Ich habe da ein kleines Problem. Ich soll einen Taschenrechner mit Wortdeutungsfunktion schreiben. Nun hapert es aber schon bei einfachen berechnungen. Irgendwie berechnent er nichts weiss aber nicht woran es liegt beim compilieren gibt er mir auch keine fehlermeldung aus. hier der Quelltext:
#include <vcl.h>
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<iomanip>
#include <stdio.h>
#pragma hdrstop//----------------------------Globale Deklarationen-----------------------------
int i, op, zahl1, zahl2;
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
cout<<"Taschenrechner mit Wortdeutungsfunktion auf Konsolenebene "<<endl;
cout<<endl<<"Bitte geben sie Ihre zu berechnende aufgabe ein."<<endl;
cin>>zahl1>>op>>zahl2;
switch( op ) {
case'+': cout<<endl<<zahl1+zahl2; break;
case'-': cout<<endl<<zahl1-zahl2; break;
case'': cout<<endl<<zahl1zahl2; break;
case'/': cout<<endl<<zahl1/zahl2; break;
}
return 0;
}//---------------------------------------------------------------------------
Kann mir jemand sagen wo mein fehler liegt ?!
Ausserdem wäre ich für tipps dankbar wie ich eine Wortdeutungsfunktion einbauen kann.
Beispiel einer berechnung : einhundertsechsundzwanzig plus 2 "enter"
Ergebniss ist 128
-
Das mit der Wortdeutungsfunktion versteh ich nicht (hab ich noch nie gehört, aber bei dem quelltext, nimm mal char las Datentyp für op.
-
Glamdrink schrieb:
Das mit der Wortdeutungsfunktion versteh ich nicht (hab ich noch nie gehört, aber bei dem quelltext, nimm mal char las Datentyp für op.
Wortdeutung vermute ich mal soll das sein:
Eingabe: einhundertsechsundzwanzig
Computer denkt ... 126@ Alban, denk doch selbst ein wenig nach:
1.) Durchsuche den string nach
"hundert" wenn davor noch was steht, dann
zahl = pre * hundert;
dann nach der nächsten zahl (next) (von ein(s) bis 9)
zahl = zahl + next;
dann nach "kommt und" wenn nicht fertig;
sonst zahl = zahl + was dann kommt.So einfach ist das nicht, musst du dir halt selber was ausdenken!
-
#include <vcl.h>
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<iomanip>
#include <stdio.h>
#pragma hdrstopAls erstes: Wenn du schon c++ programmierst solltest du bitte den Suffix bei
den Dateien weglasen. (.h) denn das ist C und nicht c++iostream.h >> iostream
stdio.h >> cstdio
time.h >> ctimefür die meisten Dateien reicht das entfernen des Suffix, falls es diese Datei
nicht gibt setze ein 'c' vor die Dateien. wie ich es dir oben geschrieben habe.Hier der verbesserte Code:
#include<iostream> #include<cstdlib> #include<cmath> #pragma hdrstop //----------------------------Globale Deklarationen----------------------------- char op; // char erfasst ein Zeichen (ASCII) int i, zahl1, zahl2; //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { cout<<"Taschenrechner mit Wortdeutungsfunktion auf Konsolenebene "<<endl; cout<<endl<<"Bitte geben sie Ihre zu berechnende aufgabe ein."<<endl; cin>>zahl1>>op>>zahl2; switch( op ) { case'+': cout<<endl<<zahl1+zahl2; break; case'-': cout<<endl<<zahl1-zahl2; break; case'*': cout<<endl<<zahl1*zahl2; break; case'/': cout<<endl<<zahl1/zahl2; break; } system("pause"); return 0; } //---------------------------------------------------------------------------
So die nächste Überlegung wäre jetzt wie es mit mehreren Rechnungen aussieht wie z.B. 12+35*23
Hoffe ich konnte helfen
Searence