Taschenrechner
-
Hallo !
Wie baue ich eine Schleife ein,welche fragt ob weitere Rechnungen durchgeführt werden sollen ?
Danke !LG
#include <iostream> #include <cmath> //header für mathe ops using namespace std; int menu () { //modul für übersichtlichkeit int i; /*-------------------------------------------------------------------------------*/ // Begrüßung cout << "\n" "\n\tHerzlich Willkommen!" "\n" ; system ("Pause"); //pause system ("cls") ; //conolsentext löschen /*-------------------------------------------------------------------------------*/ // Funktionen in einem übersichtlichen Menü cout << "\n\t<----------Taschenrechner------------>" "\n" "\n\t[1] Addition" "\n\t[2] Subtraktion" "\n\t[3] Multiplikation" "\n\t[4] Division" "\n\t[5] Potenz" "\n\t[6] Wurzel" "\n\t[7] Programm beenden" "\n" "\n\t<------------------------------------>" "\n" "\nBitte waehlen sie eine Funktion und druecken sie enter" "\n" "\n" "\n" "\n" "\n" "\n" "\n" ; cin >> i; //eingabe der auswahl ist oben deklariert worden return i; //damit wir i in hauptfunktioen benutzen können } /*-------------------------------------------------------------------------------*/ int main () { //hauptmenü bool quit=false; //variable j/n int schluss; //beenden long double a, b; //variable int aus=menu(); //auswahl do { //do schleife damit bestimmte dinge wiederhollt werden switch (aus) { //bedingungsschleife /*-------------------------------------------------------------------------------*/ case 1: case 2: case 3: case 4: cout << "\n\n\tBitte ersten Operanden eingeben : "; cin >> a; cout << "\n\n\tBitte zweite Operanden eingeben : "; cin >> b; switch(aus) { //nochmal das selbe nur jetz einzeln case 1: cout << "\n\t" << a << " + " << b << " = " << a + b << endl; break; //plus case 2: cout << "\n\t" << a << " - " << b << " = " << a - b << endl; break; //minus case 3: cout << "\n\t" << a << " * " << b << " = " << a * b << endl; break; //mal case 4: cout << "\n\t" << a << " / " << b << " = " << a / b << endl; break; //geteilt } quit=true; //beenden--> wahr break; //break --> endlich /*-------------------------------------------------------------------------------*/ case 5: case 6: cout << "\n\n\tBitte Operanden eingeben : "; cin >> a; switch (aus) { case 5: cout << "\n\t" << a << " zum Quadrat ist = " << a*a << endl; break; //hochrechnen cout << "\n" "\n" "\n"; case 6: cout << "\n\tDie Wurzel von " << a << "=" << sqrt(a) << endl; break; //wurzel dafür cmath cout << "\n" "\n" "\n"; } quit=true; //beenden --> wahr break; //break --> endlich /*-------------------------------------------------------------------------------*/ case 7: exit(0) ; //programm beenden /*-------------------------------------------------------------------------------*/ default: cout << "\n\tFalsche eingabe"; //wenn falsche eingabe break; } }while (!quit); //do schleife schliesen mit bedingung das quit nicht wahr sein darf system ("Pause"); system ("cls"); /*-------------------------------------------------------------------------------*/ cout << "\n" "\n" "\nIch hoffe sie hatten viel Spass mit diesem kleinen Taschenrechner!" "\n" "\n" "\n" "\n" "\n\tBitte beliebige Taste und dann enter druecken zum beenden"; cin >> schluss; return 0; }
-
Überleg dir doch mal ob du system("Pause") und system("cls") nicht ändern willst.
Das ist dermaßen hässlich
-
Meinungsvertreter schrieb:
Überleg dir doch mal ob du system("Pause") und system("cls") nicht ändern willst.
Das ist dermaßen hässlich
Das mag sein. Aber wie baut er eine Schleife ein,welche fragt ob weitere Rechnungen durchgeführt werden sollen? Welchen Befehl soll er statt system("cls"); nehmen? Welchen Befehl soll er statt system("pause"); nehmen?
-
volkard schrieb:
Meinungsvertreter schrieb:
Überleg dir doch mal ob du system("Pause") und system("cls") nicht ändern willst.
Das ist dermaßen hässlich
Das mag sein. Aber wie baut er eine Schleife ein,welche fragt ob weitere Rechnungen durchgeführt werden sollen? Welchen Befehl soll er statt system("cls"); nehmen? Welchen Befehl soll er statt system("pause"); nehmen?
Wozu die beiden Befehle? Unter Linux gibts das nicht und ich kann mir nicht vorstellen wozu das gut wäre. Und um das ganze ding de while schleife zu packen bin ich zu faul, da er so merkwürdige Kommentar linien gemacht hat.

Für pause gibts sleep(unsigned int seconds) und dieses komische cls ist wohl windoof only

-
Meinungsvertreter schrieb:
Wozu die beiden Befehle?
zum bildschirmlöschen und auf-tastendruck-warten.
Unter Linux gibts das nicht
klar. system("clear") und system("read"). was bist denn du für ein linuxer?
und ich kann mir nicht vorstellen wozu das gut wäre.
das ist auch nicht deine aufgabe. es reicht, wenn nepu sich das vorstellen kann.
Und um das ganze ding de while schleife zu packen bin ich zu faul, da er so merkwürdige Kommentar linien gemacht hat.

das läßt sich beheben:
#include <iostream> #include <cmath> //header für mathe ops using namespace std; int menu () //modul für übersichtlichkeit { int i; // Begrüßung cout << "\n" "\n\tHerzlich Willkommen!" "\n" ; system ("Pause"); //pause system ("cls") ; //conolsentext löschen // Funktionen in einem übersichtlichen Menü cout << "\n\t<----------Taschenrechner------------>" "\n" "\n\t[1] Addition" "\n\t[2] Subtraktion" "\n\t[3] Multiplikation" "\n\t[4] Division" "\n\t[5] Potenz" "\n\t[6] Wurzel" "\n\t[7] Programm beenden" "\n" "\n\t<------------------------------------>" "\n" "\nBitte waehlen sie eine Funktion und druecken sie enter" "\n" "\n" "\n" "\n" "\n" "\n" "\n" ; cin >> i; //eingabe der auswahl ist oben deklariert worden return i; //damit wir i in hauptfunktioen benutzen können } int main () //hauptmenü { bool quit=false; //variable j/n int schluss; //beenden long double a, b; //variable int aus=menu(); //auswahl do //do schleife damit bestimmte dinge wiederhollt werden { switch (aus) //bedingungsschleife { case 1: case 2: case 3: case 4: cout << "\n\n\tBitte ersten Operanden eingeben : "; cin >> a; cout << "\n\n\tBitte zweite Operanden eingeben : "; cin >> b; switch (aus) //nochmal das selbe nur jetz einzeln { case 1: cout << "\n\t" << a << " + " << b << " = " << a + b << endl; break; //plus case 2: cout << "\n\t" << a << " - " << b << " = " << a - b << endl; break; //minus case 3: cout << "\n\t" << a << " * " << b << " = " << a * b << endl; break; //mal case 4: cout << "\n\t" << a << " / " << b << " = " << a / b << endl; break; //geteilt } quit=true; //beenden--> wahr break; //break --> endlich case 5: case 6: cout << "\n\n\tBitte Operanden eingeben : "; cin >> a; switch (aus) { case 5: cout << "\n\t" << a << " zum Quadrat ist = " << a*a << endl; break; //hochrechnen cout << "\n" "\n" "\n"; case 6: cout << "\n\tDie Wurzel von " << a << "=" << sqrt(a) << endl; break; //wurzel dafür cmath cout << "\n" "\n" "\n"; } quit=true; //beenden --> wahr break; //break --> endlich case 7: exit(0) ; //programm beenden /*-------------------------------------------------------------------------------*/ default: cout << "\n\tFalsche eingabe"; //wenn falsche eingabe break; } } while (!quit); //do schleife schliesen mit bedingung das quit nicht wahr sein darf system ("Pause"); system ("cls"); cout << "\n" "\n" "\nIch hoffe sie hatten viel Spass mit diesem kleinen Taschenrechner!" "\n" "\n" "\n" "\n" "\n\tBitte beliebige Taste und dann enter druecken zum beenden"; cin >> schluss; return 0; }Für pause gibts sleep(unsigned int seconds) und dieses komische cls ist wohl windows only

pause wartet auf einen tastendruck. es reicht, stattdessen auf enter zu warten.
-
nepu schrieb:
Wie baue ich eine Schleife ein,welche fragt ob weitere Rechnungen durchgeführt werden sollen ?
eigentlich hast du diese schleife schon. setzt halt nur dann quit=true, wenn der benutzer wirklich beenden will.
#include <iostream> #include <cstdlib> #include <cmath> //header für mathe ops using namespace std; int menu () //modul für übersichtlichkeit { int i; // Begrüßung cout << "\n" "\n\tHerzlich Willkommen!" "\n" ; system ("Pause"); //pause system ("cls") ; //conolsentext löschen // Funktionen in einem übersichtlichen Menü cout << "\n\t<----------Taschenrechner------------>" "\n" "\n\t[1] Addition" "\n\t[2] Subtraktion" "\n\t[3] Multiplikation" "\n\t[4] Division" "\n\t[5] Potenz" "\n\t[6] Wurzel" "\n\t[7] Programm beenden" "\n" "\n\t<------------------------------------>" "\n" "\nBitte waehlen sie eine Funktion und druecken sie enter" "\n" "\n" "\n" "\n" "\n" "\n" "\n" ; cin >> i; //eingabe der auswahl ist oben deklariert worden return i; //damit wir i in hauptfunktioen benutzen können } int main () //hauptmenü { bool quit=false; //variable j/n long double a, b; //variable do //do schleife damit bestimmte dinge wiederhollt werden { int aus=menu(); //auswahl switch (aus) //bedingungsschleife { case 1: case 2: case 3: case 4: cout << "\n\n\tBitte ersten Operanden eingeben : "; cin >> a; cout << "\n\n\tBitte zweite Operanden eingeben : "; cin >> b; switch (aus) //nochmal das selbe nur jetz einzeln { case 1: cout << "\n\t" << a << " + " << b << " = " << a + b << endl; break; //plus case 2: cout << "\n\t" << a << " - " << b << " = " << a - b << endl; break; //minus case 3: cout << "\n\t" << a << " * " << b << " = " << a * b << endl; break; //mal case 4: cout << "\n\t" << a << " / " << b << " = " << a / b << endl; break; //geteilt } break; //break --> endlich case 5: case 6: cout << "\n\n\tBitte Operanden eingeben : "; cin >> a; switch (aus) { case 5: cout << "\n\t" << a << " zum Quadrat ist = " << a*a << endl; break; //hochrechnen cout << "\n" "\n" "\n"; case 6: cout << "\n\tDie Wurzel von " << a << "=" << sqrt(a) << endl; break; //wurzel dafür cmath cout << "\n" "\n" "\n"; } break; case 7: quit=true; //beenden --> wahr break; /*-------------------------------------------------------------------------------*/ default: cout << "\n\tFalsche eingabe"; //wenn falsche eingabe break; } } while (!quit); //do schleife schliesen mit bedingung das quit nicht wahr sein darf system ("Pause"); system ("cls"); cout << "\n" "\n" "\nIch hoffe sie hatten viel Spass mit diesem kleinen Taschenrechner!" "\n" "\n" "\n" "\n" "\n\tBitte beliebige Taste und dann enter druecken zum beenden"; system ("Pause"); return 0; }