elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Calculadora con switch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Calculadora con switch  (Leído 10,115 veces)
cazagavilan

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Calculadora con switch
« 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:/.


« Última modificación: 21 Julio 2011, 06:45 am por cazagavilan » En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Calculadora con switch
« Respuesta #1 en: 21 Julio 2011, 06:51 am »

En el case 4 te falta el break.


En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: Calculadora con switch
« Respuesta #2 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.
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Calculadora con switch
« Respuesta #3 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
En línea

Breakbeat como forma de vida
cazagavilan

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Re: Calculadora con switch
« Respuesta #4 en: 22 Julio 2011, 05:41 am »

Muchas gracias :)
En línea

KaL3o

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: Calculadora con switch
« Respuesta #5 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 ;)
En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Calculadora con switch
« Respuesta #6 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
En línea

Breakbeat como forma de vida
KaL3o

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: Calculadora con switch
« Respuesta #7 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 ;)
« Última modificación: 22 Julio 2011, 12:56 pm por KaL3o » En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Calculadora con switch
« Respuesta #8 en: 22 Julio 2011, 13:15 pm »

OK, te entendí mal jeje

Saludos
En línea

Breakbeat como forma de vida
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Calculadora con switch
« Respuesta #9 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
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Calculadora
Electrónica
Neobius 2 4,580 Último mensaje 11 Noviembre 2005, 17:24 pm
por Neobius
switch
Programación C/C++
C4ss4ndr4__4__4 2 2,412 Último mensaje 5 Mayo 2021, 19:33 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines