[ Foro de C ]

Necesito Ayuda Con Este codigo sobre 2 Versiones de Una Calculadora

27-Sep-2019 03:53
Invitado (Novato De C)
1 Respuestas

Aquie Tengo Un Codigo Fuente que estaba realizando sobre 2 Versiones De 2 Calculadora

1. A Base De Preguntas utilizando funciones como scanf
2Y otra a base que no se de preguntas osea que sea como la de windows que no pida enter para introducir los numeros en el programa que cuando automaticamente ingrese el signo de operacion acoga la operacion y empieze a pedir el otro numero para realizar la operacion(de esta version de calculadora no tengo casi idea de como hacerla)

Ya que soy un poco nuevo aprendiendo en el lenguaje de C les pido ayuda  aqui les dejo el codigo para que vean lo que eh echo

Ojo En la primera version necesito Utilizar los caracteres 'E' Y 'C' E para volver al menu y C para Continuar la operacion (que tampoco se hacer) :c
[code]
//Calculadora
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>


int Calculadora_Polaca; //Interfaz De Calculadora Polaca
int Calculadora_Windows;//Interfaz De Calculadora Windows
int Opcion;//Opcion De Que Calculadora se utilizara
int operacion;// Operaciones A Realizar


int main()
{
   printf("\n            Eliga El Software A Utilizar:          \n");
   printf("\n    1.Calculadora_Polaca  2.Calculadora_Windows    \n");
   scanf("%i",&Opcion);
   system("cls"); //Limpiar La Pantalla
   
   switch (Opcion)
   {
   
 

   case 1: //Calculadora Polaca
   
   
     
    printf("\n------------------------------------------------------");
    printf("\n|          Bienvenidos A La Calculadora Polaca       |");
    printf("\n|                                                    |");
    printf("\n|            Elgina Una Operacion A Realizar         |");
    printf("\n|                                                    |");
    printf("\n|       1.- Suma                  2.Resta            |");
    printf("\n|       3.- Multiplicacion        4.Division         |");
    printf("\n|       5.- Raiz Cuadrada         6.Potenciacion     |");
    printf("\n|                                                    |");  
    printf("\n|        NOTA: Si Quiere Volver al Menu Utilize el   |");
    printf("\n|                       Caracter 'E'                 |");
    printf("\n------------------------------------------------------");
    printf("\n");
    scanf("%i",&operacion); //Operacion A Realizar

    system("cls"); //Limpiar Pantalla
   
    float num1;
    float num2;
    float resultado;
    int n,base,potencia;
    char e, c;
    int menu;
   
    switch (operacion)
    {
   
   
     
   
    case 1://Suma
    do
    {
   
   
    printf("\n                Digite la primera cantidad \n");
    scanf("%f",&num1);
    printf("\n                Digite la Segunda cantidad \n");
    scanf("%f",&num2);
   
    resultado = num1 + num2;
 
    printf("\n                  Su Resultado Es: %.2f\n",resultado);
    printf("\n            'E' Para Salir Y 'C' Para Continuar\n");
    fflush(stdin);
    scanf("%c",&c);
    }while (c != 'e');
   
     
   
   
 
    break;
   

   
   
    case 2://Resta

    printf("\n                Digite la primera cantidad \n");
    scanf("%f",&num1);
    printf("\n                Digite la Segunda cantidad \n");
    scanf("%f",&num2);
   
    resultado = num1 - num2;
 
    printf("\n                  Su Resultado Es: %.2f\n",resultado);


    break;

    case 3: //Multiplicacion

    printf("\n                Digite la primera cantidad \n");
    scanf("%f",&num1);    
    printf("\n                Digite la Segunda cantidad \n");    
    scanf("%f",&num2);

    resultado = num1 * num2;

    printf("\n                  Su Resultado Es: %.2f\n",resultado);
       
    break;
   
    case 4: //Division
   
    printf("\n                Digite la primera cantidad \n");
    scanf("%f",&num1);    
    printf("\n                Digite la Segunda cantidad \n");    
    scanf("%f",&num2);

    resultado = num1 / num2;

    printf("\n                  Su Resultado Es: %.2f\n",resultado);

    break;

    case 5: //Raiz Cuadrada

    printf("\n                Digite Su numero \n");
    scanf("%i,",&n);
   
    n = sqrt(n);

    printf("\n                  Su Resultado Es: %i\n",n);

    break;

    case 6: //Potenciacion

    printf("\n          Escriba el Numero que Quiere elevar: \n" );
    scanf("%d", &base );
    printf("\n                  Escriba la potencia: \n" );
    potencia = 2;

    printf("\n %d elevado a %d es %.2f\n", base, potencia, pow (base, potencia));

    break;
    }













       break;
       
    case 2://Calculadora Windows
   
    printf("\n          Bienvenidos A La Calculadora Windows       ");
   
   
    break;
   }
   
   
   
   
   
[code][code]Reemplace este texto[/code][code][code]Reemplace este texto[/code][code][code]Reemplace este texto[/code][indent][indent]Reemplace este texto[/indent][/indent][/code][/code][/code]
   
   system("pause");
   return 0;
}
[/code]


28-Sep-2019 07:43
marisa peña

hola novato en c

no se si te servira de ayuda pero creo que lo mejor seria no querer hacerlo todo de una tacada,
ya sabes eso de divide y venceras, por lo que seria mejor hacer una calculadora y cuando la tengas lista
haces la otra reutilizando el codigo que puedas de la primera

otra cosa que yo haria es meter cada bloque diferenciado en funciones,
por ejem uno con el 'menu' que valide la entrada y devuelva la opcion que utilizara el switch,
y una funcion por cada operacion, que una vez visualizado el resultado
toque cualquier tecla para volver al menu principal, asi despejaras el
main() y quedara muy clara la logica del programa

es decir pondria un bucle infinito con un 'do{...} while(1)' que empezaria con la funcion menu (de una sola calcuadora)
pasaria al switch que llamaria a la funcion pertinente y al volver seguiria en el bucle pidiendo opcion en la funcion menu()

la opcion 7 podria ser salir del programa y esta haria un return 0 para acabar y salir del programa

parece que seria interesante hacer una funcion que pida el operando uno y operando dos ya que
esta accion la repetiras para cada accion que realizas ya sea suma, resta, ... y es repetitiva

por ejem con pideDatos(&op1, &op2), asi no necesitas variables globales en main tienes opcion y
op1 y op2 son locales de cada funcion que se las pasaria a pideDatos para que los rellene

bien no se si te servira, ya me cuentas si haces cambios en el programa

chao chao






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)