Buenas, les presento mi duda en programación.

Hace ya unos cuantos meses empece a aprender algo de programación en C++ (solo un par de semanas aprendiendo algo). El caso es que se me ha ocurrido juntar dos códigos para hacer una especie de juego de números en la consola, se trata de un randon y una calculadora.

El objetivo de la unión de estos dos códigos es hacer un juego estilo, acierta la incógnita, donde se nos dará lo siguiente valor+acción+incógnita=valor y nos pedirá la incógnita, pondremos una valor y nos dirá si hemos acertado o no pongo un par de ejemplos:

(pantalla) 2*?=8 ¿que valor tiene la incognita?
(pulsamos en el teclado) 4
(pantalla) correcto.

(pantalla) 5-?=3 ¿que valor tiene la incógnita?
(pulsamos en el teclado) 3
(pantalla) te has equivocado, el valor era 2

Código fuente de la calculadora.
#include <iostream>
#include <ctype.h> //Para usar la funcion toupper()

#define SI 'Y'

using namespace std;

int main(){
float a;
int eleccion;
int menu(float a);

cout<<"---------------------------------------------------------------<<endl;
cout<<"| Calculadora basica en C++|"<<endl;
cout<<"---------------------------------------------------------------<<endl;
while(1){
cout<<"Introducir un numero mayor a 5 o menor a 1 para finalizar el programa"<<endl;
cout<<"\n\nIntroduce el primer valor: ";
cin>>a;
cout<<"\n\n";
eleccion = menu(a);
if (eleccion == 0) break;
}

return 0;
}

int menu(float a){
int accion, nada, i = 0;
char eleccion;
float b, resultado;
float computarresultado(int accion, float a, float b);

while (1){
cout<<"\n\nTipos de acciones"<<endl;
cout<<"- 1.)Sumar"<<endl;
cout<<"- 2.)Restar"<<endl;
cout<<"- 3.)Multiplicar"<<endl;
cout<<"- 4.)Dividir"<<endl;
cout<<"- 5.)Resultado"<<endl;
cout<<"-Numero fuera de rango para parar"<<endl;
cout<<"\nSeleccione la accion a realizar: ";
cin>>accion;
if (accion == 5){
cout<<"\n\nEl resultado es"<<resultado<<endl;
cout<<"\nDesea seguir computando calculos? (Y/N): ";
cin>>eleccion;
cout<<"\n\n";
if (toupper(eleccion) == SI)
return(eleccion = 1);
else
accion == 111;
}
if (accion < 1 || accion > 5){
cout<<"\n\nFin del programa. Gracias por utilizarme"<<endl;
cin>>nada;
return 0;
}
cout<<"\nIntroduce el segundo valor"<<endl;
cin>>b;
if (i == 0) {
resultado = computarresultado(accion, a, b);
i = 1;
}
else
resultado = computarresultado(accion, resultado, b);
cout<<"\nEl resultado actual es: "<<resultado<<endl;
}
return 0;
}


float computarresultado(int accion, float a, float b){
switch(accion){
case 1:
return(a + b);
case 2:
return(a - b);
case 3:
return(a * b);
case 4:
if (b == 0){
cout<<"\n\nNo se puede dividir entre 0, por favor, vuelva a intentarlo"<<endl;
return(a);
}
return(a / b);
}
}
Código fuente del randon.
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main() {
int i;

srand((unsigned)time(NULL));

for (i=0; i<2; i++) {
cout << (rand()%100) << endl;
}
return 0;
}