Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: cazagavilan en 21 Julio 2011, 06:40 am



Título: Calculadora con switch
Publicado por: cazagavilan en 21 Julio 2011, 06:40 am
Código
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <stdio.h>
  4. using namespace std;
  5.  
  6. int main()
  7.  
  8. {
  9.   int dato1;
  10.   int dato2;
  11.   int resultado;
  12.      cout <<"****************************************\n";
  13.      cout <<"*****                              *****\n";
  14.      cout <<"****                                ****\n";
  15.      cout <<"***                                  ***\n";
  16.      cout <<"**                                    **\n";
  17.      cout <<"*             CALCULADORA              *\n";
  18.      cout <<"**                                    **\n";
  19.      cout <<"***                                  ***\n";
  20.      cout <<"****                                ****\n";
  21.      cout <<"*****                              *****\n";
  22.      cout <<"****************************************\n";
  23.  
  24.      cout <<"Que desea hacer?\n";
  25.      cout <<"[1]-Suma.\n";
  26.      cout <<"[2]-Resta.\n";
  27.      cout <<"[3]-Multiplicacion.\n";
  28.      cout <<"[4]-Division.\n";
  29.      cin >> resultado;
  30.  
  31.      cout <<"Escriba la primera cifra: ";
  32.      cin >> dato1;
  33.      cout <<"Escriba la segunda cifra: ";
  34.      cin >> dato2;
  35.  
  36.      switch(resultado)
  37.      {
  38.      case 1:
  39.         resultado = dato1 + dato2;
  40.         break;
  41.      case 2:
  42.         resultado = dato1 - dato2;
  43.         break;
  44.      case 3:
  45.         resultado = dato1 * dato2;
  46.         break;
  47.      case 4:
  48.         resultado = dato1 / dato2;
  49.        default:
  50.         cout <<"No ha seleccionado una opcion correcta";
  51.      }
  52.      cout << resultado <<"\n";
  53. }
  54.  
Hola, he hecho esta calculadora y me funciona todo menos cuando pongo un numero que no es ninguna de las opciones que doy, en vez de saltar el mensage cuando se selecciona una opcion incorrecta te dice que selecciones el dato1 y dato2 luego hace una suma y luego me salta el mensage... alguien me podria ayudar por favor.

Gracias.

P.D: He encontrado otro fallo, cuando selecciono la division siempre me salta el mensage de default y aparte me da el resultado:/.


Título: Re: Calculadora con switch
Publicado por: naderST en 21 Julio 2011, 06:51 am
En el case 4 te falta el break.


Título: Re: Calculadora con switch
Publicado por: Ferno en 21 Julio 2011, 07:15 am
La última parte no está bien diseñada. Primero que nada, debes mostrar el resultado dentro de cada case (porque sino, también mostraría un resultado si no hubiese elegido ninguna opción) o bien puedes con un if, mostrar el resultado si la opción fueron los primeros 4 (aunque para eso debes cambiar la variable "resultado" porque la usas para otra cosa también).
Además, falta un break tanto en el case 4 como en el default, y digamos, un getchar() al final del programa para pausarlo y ver el resultado o mensaje.


Título: Re: Calculadora con switch
Publicado por: satu en 21 Julio 2011, 12:39 pm
Hola

También falta el return del main y que no incluyas librerías que no utilizas

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.    int dato1;
  7.    int dato2;
  8.    int resultado;
  9.  
  10.    cout <<"****************************************\n";
  11.    cout <<"*****                              *****\n";
  12.    cout <<"****                                ****\n";
  13.    cout <<"***                                  ***\n";
  14.    cout <<"**                                    **\n";
  15.    cout <<"*             CALCULADORA              *\n";
  16.    cout <<"**                                    **\n";
  17.    cout <<"***                                  ***\n";
  18.    cout <<"****                                ****\n";
  19.    cout <<"*****                              *****\n";
  20.    cout <<"****************************************\n";
  21.  
  22.    cout <<"\nQue desea hacer?\n";
  23.    cout <<"[1]-Suma.\n";
  24.    cout <<"[2]-Resta.\n";
  25.    cout <<"[3]-Multiplicacion.\n";
  26.    cout <<"[4]-Division.\n";
  27.    cin >> resultado;
  28.  
  29.    if(resultado>=1 && resultado<=4)
  30.        {
  31.        cout <<"Escriba la primera cifra: ";
  32.        cin >> dato1;
  33.        cout <<"Escriba la segunda cifra: ";
  34.        cin >> dato2;
  35.  
  36.        switch(resultado)
  37.            {
  38.            case 1:
  39.                resultado = dato1 + dato2;
  40.                break;
  41.            case 2:
  42.                resultado = dato1 - dato2;
  43.                break;
  44.            case 3:
  45.                resultado = dato1 * dato2;
  46.                break;
  47.            case 4:
  48.                resultado = dato1 / dato2;
  49.                break;
  50.            }
  51.        cout << resultado <<"\n";
  52.        }
  53.    else
  54.        cout <<"No ha seleccionado una opcion correcta";
  55.  
  56.    cout<<endl<<endl<<endl<<"Pulsa Enter para salir";
  57.    while(cin.get() != '\n');
  58.    cin.get();
  59.    return 0;
  60. }
  61.  

Saludos


Título: Re: Calculadora con switch
Publicado por: cazagavilan en 22 Julio 2011, 05:41 am
Muchas gracias :)


Título: Re: Calculadora con switch
Publicado por: KaL3o en 22 Julio 2011, 06:39 am
También falta el return del main y que no incluyas librerías que no utilizas

en realidad el return no del main no es necesario... aunque depende del compilador. Puesto que casi todos los compiladores actuales lo ponen por defecto

Salu2 ;)


Título: Re: Calculadora con switch
Publicado por: satu en 22 Julio 2011, 11:15 am
en realidad el return del main es recomendable porque indica al SO el estado de finalización del programa, por lo tanto es bueno ponerlo  ;)

Saludos


Título: Re: Calculadora con switch
Publicado por: KaL3o en 22 Julio 2011, 12:49 pm
saludos satu... creoo que me exprese mal

El return siempre estara (y siempre sera necesario), a lo me referia es que no es necesario colocarlo dependiendo del compilador, puesto que la mayoria de compiladores te lo colocan por defecto.


Salu2 ;)


Título: Re: Calculadora con switch
Publicado por: satu en 22 Julio 2011, 13:15 pm
OK, te entendí mal jeje

Saludos


Título: Re: Calculadora con switch
Publicado por: rir3760 en 22 Julio 2011, 16:55 pm
En C++ estándar cuando no se indica el valor de retorno de la función "main" este es igual a cero. Sin embargo (por "buenas costumbres") se recomienda indicarlo explícitamente.

Un saludo


Título: Re: Calculadora con switch
Publicado por: Dark Invader en 25 Julio 2011, 16:25 pm
Tambien podrias echarle un ojo a la libreria math,ya que tiene un monton de funciones matematicas incorporadas.