Duda con una calculadora C++

Iniciado por Black Lotus, 10 Febrero 2013, 21:02 PM

0 Miembros y 1 Visitante están viendo este tema.

Black Lotus

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 (cpp) [Seleccionar]

#include <iostream.h>
#include <conio.h>
int main ()
{
int a,b,opcion;
cout<<"Seleccione la operacion a realizar: \n";
cout<<"1 Suma\n";
cout<<"2 Resta\n";
cout<<"3 Multiplicaci\xa2nn\n";
cout<<"4 Divisi\xa2n\n";
cout<<"5 Salir\n";
cin>>opcion;
clrscr();
switch (opcion){
    case 1:
    cout<<"Ingrese la primera cantidad a sumar: ";
    cin>>a;
    cout<<"Ingrese la primera cantidad a sumar: ";
    cin>>b;
    cout<<"El resultado es: "<<(a+b)<<endl;
      break;
     case 2:
      cout<<"Ingrese la primera cantidad a restar: ";
            cin>>a;
    cout<<"Ingrese la primera cantidad a restar: ";
    cin>>b;
      cout<<"El resultado es: "<<(a+b)<<endl;
      break;
      case 3:
    cout<<"Ingrese la primera cantidad a Multiplicar: ";
    cin>>a;
    cout<<"Ingrese la primera cantidad a Multiplicar: ";
    cin>>b;
cout<<"El resultado es: "<<(a*b)<<endl;
      break;
      case 4:
    cout<<"Ingrese la  cantidad a Dividir: ";
    cin>>a;
    cout<<"Ingrese la primera cantidad a Dividir: ";
    cin>>b;
cout<<"El resultado es: "<<(a/b)<<endl;
    break;
      case 5:
    cout<<"Presione cualquier tecla para Salir ";
    break;
      default:
      cout<<"Solo puede seleccionar una de las opciones de el Menu... : ";
            cout<<"Presione cualquier tecla para salir";
            break;
}
getch();
return 0;
}

Gracias :)

do-while

¡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!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

leosansan

Cita de: Black Lotus en 10 Febrero 2013, 21:02 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 (cpp) [Seleccionar]

#include <iostream>
#include<clocale>
using namespace std;
int main ()
{
setlocale(LC_ALL, "Spanish");
int opcion;
float a,b;
while (1) {
cout<<"Seleccione la operación a realizar: \n";
cout<<"1 Suma\n";
cout<<"2 Resta\n";
cout<<"3 Multiplicación\n";
cout<<"4 División\n";
cout<<"5 Salir\n";
    cin>>opcion;

switch (opcion){
    case 1:
    cout<<"Ingrese la primera cantidad a sumar: ";
    cin>>a;
    cout<<"Ingrese la segunda cantidad a sumar: ";
    cin>>b;
    cout<<"El resultado es: "<<(a+b)<<endl;
      break;
     case 2:
      cout<<"Ingrese la primera cantidad a restar: ";
            cin>>a;
    cout<<"Ingrese la segunda cantidad a restar: ";
    cin>>b;
      cout<<"El resultado es: "<<(a+b)<<endl;
      break;
      case 3:
    cout<<"Ingrese la primera cantidad a Multiplicar: ";
    cin>>a;
    cout<<"Ingrese la segunda cantidad a Multiplicar: ";
    cin>>b;
cout<<"El resultado es: "<<(a*b)<<endl;
      break;
      case 4:
    cout<<"Ingrese la  cantidad a Dividir: ";
    cin>>a;
    cout<<"Ingrese la  cantidad  Dividir: ";
    cin>>b;
cout<<"El resultado es: "<<(float)a/b<<endl;
    break;
      case 5:
          return 1;
    break;
      default:
      cout<<"Sólo puede seleccionar una de las opciones de el Menú... : ";
            cout<<"Presione cualquier tecla para continuar";
            break;
    }
}
return 0;
}

Saluditos!.
                                   

amchacon

Otra opción es usar las etiquetas goto (aunque se considera código sucio)

Código (cpp) [Seleccionar]
#include <iostream>
#include<clocale>
using namespace std;
int main ()
{
setlocale(LC_ALL, "Spanish");
int opcion;
float a,b;
Menu:
cout<<"Seleccione la operación a realizar: \n";
cout<<"1 Suma\n";
cout<<"2 Resta\n";
cout<<"3 Multiplicación\n";
cout<<"4 División\n";
cout<<"5 Salir\n";
   cin>>opcion;

switch (opcion){
    case 1:
  cout<<"Ingrese la primera cantidad a sumar: ";
  cin>>a;
  cout<<"Ingrese la segunda cantidad a sumar: ";
  cin>>b;
  cout<<"El resultado es: "<<(a+b)<<endl;
    break;
    case 2:
    cout<<"Ingrese la primera cantidad a restar: ";
           cin>>a;
  cout<<"Ingrese la segunda cantidad a restar: ";
  cin>>b;
    cout<<"El resultado es: "<<(a+b)<<endl;
      break;
      case 3:
  cout<<"Ingrese la primera cantidad a Multiplicar: ";
  cin>>a;
  cout<<"Ingrese la segunda cantidad a Multiplicar: ";
  cin>>b;
cout<<"El resultado es: "<<(a*b)<<endl;
      break;
      case 4:
  cout<<"Ingrese la  cantidad a Dividir: ";
  cin>>a;
  cout<<"Ingrese la  cantidad  Dividir: ";
  cin>>b;
cout<<"El resultado es: "<<(float)a/b<<endl;
    break;
      case 5:
         return 1;
    break;
      default:
      cout<<"Sólo puede seleccionar una de las opciones de el Menú... : ";
           cout<<"Presione cualquier tecla para continuar";
         
}
goto Menu;
return 0;
}
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar