También lo típico para ver el resultado del programa al ejecutarlo y para que no desaparezca solemos poner un "getchar()" o un "system("pause")" Aquí tenéis una función con un bucle for que lo hace sin salirse del ANSI ni tener que incluir ninguna biblioteca.
Si queréis practicar el lenguaje podéis arreglar los warning. Es muy sencillo, tal como están no dan ningún tipo de problemas para la función que hacen, pero esta bien que sepáis solucionarlos. Podéis añadir una función para que haga alguna cosa más la calculadora, por ejemplo la media aritmética y veréis que os va a dar algún que otro problema. También podéis hacer que el programa escriba un texto si el usuario elige un número que no está en la lista.
Repito que el código se puede mejorar y mucho. Lo pongo por si alguien que esté aprendiendo quiere algún reto para ver si puede con él.
El código está completamente comentado así que no puede ser muy difícil arreglarlo y añadirle funciones.
Un saludo y que no se os complique.
Código
#include <iostream> //Librería de entrada y salida. using namespace std; //Indicamos que usaremos la biblioteca standart. typedef long double LD; //Añadimos un identificador a long double llamado "LD". //A continuación la de claración de variables globales y funciones. int numeroUsuario ; //Variable para almacenar los números del usuario LD uno (LD,LD); //Prototipo de función para sumar. LD dos (LD,LD); //Prototipo de funcion para restar. LD tres (LD,LD); //Prototipo de funcion para multiplicar. LD cuatro (LD,LD); /*Prototipo de funcion para dividir que... ............................... .tambien devuelve el resto.*/ LD resto ; //El resto que devuelve la división. LD resultado ; //Resultado de las funciones. LD primerNumero ; //Primer numero para la opereción. LD segundoNumero ; //Segundo número para la operación. int numeroResto ; //Pasar a int el LD del primer número para usar modulus. int numeroResto2 ; //Igual que el anterior pero con el segundo número. int segundosSalir ; //Segundos que quiero que tarde el programa en cerrarse. void funcionEspera(int) ; //Funcion para que el programa espere "x" segundos antes de salir. int main() //Funcion principal del programa. { // Simbolo para declarar dentro de la funcion main. Reiniciar: //Punto desde donde se reiniciará el programa. cout << "\t\t\t ..CALCULADORA.. " << endl; //Muestra en pantalla el texto. cout << "........................................................." << "......................."<<endl; //Crea una linea de puntos para dar mejor aspecto. cout << endl << "Introduzca el numero correspondiente a la operacion y pulse enter..." << endl; cout <<endl<<endl<<endl<<endl<<endl; //Muestra el texto en pantalla. cout << "1 Sumar\n2 Restar\n3 Multiplicar\n4 Dividir\n8 Reiniciar\n9 Salir" << endl <<endl<<endl<<endl<<endl; //Muestra el texto en pantalla; cout << endl << " ..OPERACIONES.." <<endl;//Muestra el texto en pantalla. cout << "........................................................." << "......................."<<endl; //Muestra el texto en pantalla. cin >> numeroUsuario; // Guarda el numero que dio el usuario en la variable. if (numeroUsuario == 8){goto Reiniciar;} //Si introduce 8 y pulsa enter vuelve al principio. if (numeroUsuario != 9) //Si introduce 9 y pulsa enter no ejecuta acciones hasta llegar al "}" correspondiente. { cout << "Introduzca el primer numero:" << endl; //Muestra en pantalla. cin >> primerNumero; //Guarda el primer numero en la variable. cout << "Introduzca el segundo numero:" << endl; //Muestra en pantalla. cin >> segundoNumero; //Guarda el segundo numero en la variable. if (numeroUsuario == 1) //Si el usuario eligio uno... { uno(primerNumero,segundoNumero); //... Llama a la función. } if (numeroUsuario == 2) //Si el usuario eligio dos... { dos(primerNumero,segundoNumero); //... Llama a la función. } if (numeroUsuario == 3) //Si el usuario eligio tres... { tres(primerNumero,segundoNumero);//... Llama a la función. } if (numeroUsuario == 4) //Si el usuario eligio cuatro... { cuatro(primerNumero,segundoNumero);//... Llama a la función. } cout << "El resultado es: " << resultado << endl; /* Da el valor de resultado... ...Resultado es devolvido por la función que se ha ejecutado.*/ if (numeroUsuario == 4) //Si el usuario eligio cuatro... { cout << "El resto de la division si quitamos los decimales es: " << resto << endl; //... //...Muestra el texto anterior en pantalla. if (resto == 0) //Si el resto es cero... { cout << "La division sin los decimales es exacta" <<endl;//... //...muestra el texo anterior en la pantalla. } else cout << "La division sin decimales no es exacta"; //Si el resto no es cero muestra el texto anterior en pantalla. } cout <<endl << "Pulse 8 y enter para reiniciar..." <<endl; //Muestra el texto anterior en pantalla. cout << "Pulse 9 y enter para salir..."<<endl; //Muestra el texto anterior en pantalla. cin >> numeroUsuario; //Vuelve a guardar en la variable el numero dado por el usuario. if (numeroUsuario == 8) //Si el numero del usuario es ocho hace lo siguiente: { //Crea saltos de linea para dejar libre la pantalla al reiniciar y... cout <<endl <<endl <<endl <<endl <<endl <<endl <<endl<<endl<<endl<<endl<<endl; goto Reiniciar;//vuelve donde está "Reiniciar" } } //Salir cout << " OmarHack C++ 2013"; //Muestra el texto anterior en pantalla. funcionEspera(segundosSalir); //Llama a la función. return 0; //Devuelve 0 a la funcion principal. } //Cierra las delcaraciones de la función main. //Funcion de sumar LD uno (LD primerNumero,LD segundoNumero) { resultado = primerNumero + segundoNumero; return resultado; } //Funcion de restar LD dos (LD primerNumero,LD segundoNumero) { resultado = primerNumero - segundoNumero; return resultado; } //Funcion de MMultiplicar LD tres (LD primerNumero,LD segundoNumero) { resultado = primerNumero * segundoNumero; return resultado; } //Funcion de Dividir y resto. LD cuatro (LD primerNumero,LD segundoNumero) { numeroResto = primerNumero; numeroResto2 = segundoNumero; resultado = primerNumero / segundoNumero; resto = (numeroResto % numeroResto2); return resultado && resto; } //Funcion mostrar mensaje antes de salir automáticamente void funcionEspera(int segundosSalir) { segundosSalir =3; for(time_t i = (time(NULL) + segundosSalir); time(NULL) != i;); }