Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Black Lotus en 10 Febrero 2013, 21:02 pm



Título: Duda con una calculadora C++
Publicado por: Black Lotus en 10 Febrero 2013, 21:02 pm
Hola a todos... el código siguiente es de un programa es de una calculadora con 4 operaciones básicas en forma de menú y de ahi se selecciona la opción y los manda a realizar la operación. No se si sera posible que me digan como hacer para que después de realizar una operación regrese nuevamente al menú... Y tambien me gustaria que alguno de ustedes me dijera si esta bien asi o necesita alguna mejora ese codigo... El código del programa lo hize yo...


Código
  1. #include <iostream.h>
  2. #include <conio.h>
  3. int main ()
  4. {
  5. int a,b,opcion;
  6. cout<<"Seleccione la operacion a realizar: \n";
  7. cout<<"1 Suma\n";
  8. cout<<"2 Resta\n";
  9. cout<<"3 Multiplicaci\xa2nn\n";
  10. cout<<"4 Divisi\xa2n\n";
  11. cout<<"5 Salir\n";
  12. cin>>opcion;
  13. clrscr();
  14. switch (opcion){
  15.     case 1:
  16.   cout<<"Ingrese la primera cantidad a sumar: ";
  17.   cin>>a;
  18.   cout<<"Ingrese la primera cantidad a sumar: ";
  19.   cin>>b;
  20.   cout<<"El resultado es: "<<(a+b)<<endl;
  21.     break;
  22.     case 2:
  23.     cout<<"Ingrese la primera cantidad a restar: ";
  24.            cin>>a;
  25.   cout<<"Ingrese la primera cantidad a restar: ";
  26.   cin>>b;
  27.     cout<<"El resultado es: "<<(a+b)<<endl;
  28.       break;
  29.       case 3:
  30.   cout<<"Ingrese la primera cantidad a Multiplicar: ";
  31.   cin>>a;
  32.   cout<<"Ingrese la primera cantidad a Multiplicar: ";
  33.   cin>>b;
  34. cout<<"El resultado es: "<<(a*b)<<endl;
  35.       break;
  36.       case 4:
  37.   cout<<"Ingrese la  cantidad a Dividir: ";
  38.   cin>>a;
  39.   cout<<"Ingrese la primera cantidad a Dividir: ";
  40.   cin>>b;
  41. cout<<"El resultado es: "<<(a/b)<<endl;
  42.     break;
  43.       case 5:
  44.   cout<<"Presione cualquier tecla para Salir ";
  45.     break;
  46.       default:
  47.       cout<<"Solo puede seleccionar una de las opciones de el Menu... : ";
  48.            cout<<"Presione cualquier tecla para salir";
  49.            break;
  50. }
  51. getch();
  52. return 0;
  53. }
  54.  
Gracias :)


Título: Re: Duda con una calculadora C++
Publicado por: do-while en 10 Febrero 2013, 21:15 pm
¡Buenas!

Si el menu tiene una opcion para salir, lo unico que tienes que hacer es repetir el codigo mientras no se indique esa opcion...

¡Saludos!


Título: Re: Duda con una calculadora C++
Publicado por: leosansan en 10 Febrero 2013, 22:50 pm
... Y tambien me gustaria que alguno de ustedes me dijera si esta bien asi o necesita alguna mejora ese codigo... El código del programa lo hize yo...
Está bastante ben, salvo por "pequeños detelles. como el uso de "#include <iostream.h>, que debe ser "<iostream>" así como el uso de la librería "conio" y sus acólitos" clrscr" y "getch" que no forman parte del estándar de C. Existen otras opciones sí estándar.

Repites primera en donde debería decir segunda y olvidaste incluir "using namespace std;", el declarar a y b como float, por si entras decimales o por siel resultado de la división es decimal (aunque esto se podría solventar con un cast si sigues declarando a y b como int) y ya de paso hago uso de "#include<clocale>" que con "setlocale(LC_ALL, "Spanish");" permite en los cout escribir en español (acentos, ñ, ¿,¡, ..), evitándote los códigos ASCII:

Código
  1. #include <iostream>
  2. #include<clocale>
  3. using namespace std;
  4. int main ()
  5. {
  6. setlocale(LC_ALL, "Spanish");
  7. int opcion;
  8. float a,b;
  9. while (1) {
  10. cout<<"Seleccione la operación a realizar: \n";
  11. cout<<"1 Suma\n";
  12. cout<<"2 Resta\n";
  13. cout<<"3 Multiplicación\n";
  14. cout<<"4 División\n";
  15. cout<<"5 Salir\n";
  16.    cin>>opcion;
  17.  
  18. switch (opcion){
  19.     case 1:
  20.   cout<<"Ingrese la primera cantidad a sumar: ";
  21.   cin>>a;
  22.   cout<<"Ingrese la segunda cantidad a sumar: ";
  23.   cin>>b;
  24.   cout<<"El resultado es: "<<(a+b)<<endl;
  25.     break;
  26.     case 2:
  27.     cout<<"Ingrese la primera cantidad a restar: ";
  28.            cin>>a;
  29.   cout<<"Ingrese la segunda cantidad a restar: ";
  30.   cin>>b;
  31.     cout<<"El resultado es: "<<(a+b)<<endl;
  32.       break;
  33.       case 3:
  34.   cout<<"Ingrese la primera cantidad a Multiplicar: ";
  35.   cin>>a;
  36.   cout<<"Ingrese la segunda cantidad a Multiplicar: ";
  37.   cin>>b;
  38. cout<<"El resultado es: "<<(a*b)<<endl;
  39.       break;
  40.       case 4:
  41.   cout<<"Ingrese la  cantidad a Dividir: ";
  42.   cin>>a;
  43.   cout<<"Ingrese la  cantidad  Dividir: ";
  44.   cin>>b;
  45. cout<<"El resultado es: "<<(float)a/b<<endl;
  46.     break;
  47.       case 5:
  48.          return 1;
  49.     break;
  50.       default:
  51.       cout<<"Sólo puede seleccionar una de las opciones de el Menú... : ";
  52.            cout<<"Presione cualquier tecla para continuar";
  53.            break;
  54.    }
  55. }
  56. return 0;
  57. }
  58.  
Saluditos!.
                                   


Título: Re: Duda con una calculadora C++
Publicado por: amchacon en 10 Febrero 2013, 22:53 pm
Otra opción es usar las etiquetas goto (aunque se considera código sucio)

Código
  1. #include <iostream>
  2. #include<clocale>
  3. using namespace std;
  4. int main ()
  5. {
  6. setlocale(LC_ALL, "Spanish");
  7. int opcion;
  8. float a,b;
  9. Menu:
  10. cout<<"Seleccione la operación a realizar: \n";
  11. cout<<"1 Suma\n";
  12. cout<<"2 Resta\n";
  13. cout<<"3 Multiplicación\n";
  14. cout<<"4 División\n";
  15. cout<<"5 Salir\n";
  16.    cin>>opcion;
  17.  
  18. switch (opcion){
  19.     case 1:
  20.   cout<<"Ingrese la primera cantidad a sumar: ";
  21.   cin>>a;
  22.   cout<<"Ingrese la segunda cantidad a sumar: ";
  23.   cin>>b;
  24.   cout<<"El resultado es: "<<(a+b)<<endl;
  25.     break;
  26.     case 2:
  27.     cout<<"Ingrese la primera cantidad a restar: ";
  28.            cin>>a;
  29.   cout<<"Ingrese la segunda cantidad a restar: ";
  30.   cin>>b;
  31.     cout<<"El resultado es: "<<(a+b)<<endl;
  32.       break;
  33.       case 3:
  34.   cout<<"Ingrese la primera cantidad a Multiplicar: ";
  35.   cin>>a;
  36.   cout<<"Ingrese la segunda cantidad a Multiplicar: ";
  37.   cin>>b;
  38. cout<<"El resultado es: "<<(a*b)<<endl;
  39.       break;
  40.       case 4:
  41.   cout<<"Ingrese la  cantidad a Dividir: ";
  42.   cin>>a;
  43.   cout<<"Ingrese la  cantidad  Dividir: ";
  44.   cin>>b;
  45. cout<<"El resultado es: "<<(float)a/b<<endl;
  46.     break;
  47.       case 5:
  48.          return 1;
  49.     break;
  50.       default:
  51.       cout<<"Sólo puede seleccionar una de las opciones de el Menú... : ";
  52.            cout<<"Presione cualquier tecla para continuar";
  53.  
  54. }
  55. goto Menu;
  56. return 0;
  57. }
  58.