010
14.11.2004, 19:52 Uhr
0xdeadbeef
Gott (Operator)
|
Waaaaah! goto et al? Das ist mal ziemlich umständlich. Schau dir mal das hier an:
C++: |
#include <iostream> #include <cmath>
int op_menu() { int i; do { std::cout << "--- Rechner ---" << std::endl << "(1) Addieren" << std::endl << "(2) Subtrahieren" << std::endl << "(3) Multiplizieren" << std::endl << "(4) Dividieren" << std::endl << "(5) Quadrieren" << std::endl << "(6) Wurzeln" << std::endl << "(7) Beenden" << std::endl;
std::cin >> i; } while(i < 1 || i > 7);
return i; }
int main() { int op_code; bool quit = false;
while(!quit) { double x, y;
op_code = op_menu(); switch(op_code) { case 1: case 2: case 3: case 4: std::cout << "Bitte geben Sie zwei Zahlen ein: " << std::flush; std::cin >> x >> y; switch(op_code) { case 1: std::cout << x << " + " << y << " = " << x + y << std::endl; break; case 2: std::cout << x << " - " << y << " = " << x - y << std::endl; break; case 3: std::cout << x << " * " << y << " = " << x * y << std::endl; break; case 4: std::cout << x << " / " << y << " = " << x / y << std::endl; break; } break; case 5: case 6: std::cout << "Bitte geben sie eine Zahl ein: " << std::flush; std::cin >> x; switch(op_code) { case 5: std::cout << x << "^2 = " << x*x << std::endl; break; case 6: std::cout << "sqrt(" << x << ") = " << std::sqrt(x) << std::endl; break; } break; default: quit = true; } }
return 0; }
|
Ich habs grad in ner Viertelstunde zusammengekloppt, ist also nicht der schönste Code, den ich je geschrieben habe, aber er funktioniert, und, großer Vorteil, er hat keine gotos drin. Vielleicht findest du ja ein paar Anregungen für deinen Code. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |