Obviamente yo también tuve unos inicios y no me ofende que no sepas programar o que tengas errores básicos porque para eso es el foro, para ayudar. Lo que me molesta es que haya muchas personas que comentan ocasionalmente y no se molesten en poner los códigos entre etiquetas y más cuando siempre aconsejo usar dichas etiquetas (puedes comprobar en el otro post que hiciste
AQUÍ que también te avisé de poner los códigos entre etiquetas y creo que lo hice con toda la educación que tengo).
Dicho esto, que no quiero que sea el comienzo de una pelea, sólo mostrar porque a veces no tengo tanta paciencia para repetir lo de las etiquetas, vamos al problema.
Ahora tu código ya tiene mejor pinta, lo que te falta es pedir al usuario una opción:
Cuando en la línea 9 preguntas qué operación realizar, lo que responda el usuario debe ir a la variable <opcion> y dicha variable no tiene que ser un array/vector. El array sería para almacenar a la vez todas las opciones (que eso es lo que tienes tú hecho en la línea 7). En tu caso debe ser una variable normal porque sólo contendrá 1 de esos 5 valores.
Y después de haber guardado la opción, es cuando hay que pedir los dos operandos. Los condicionales están bien, te faltaría hacer más para el resto de opciones, pero vas bien.
No sé si habrás visto el <switch>. Es otra estructura como el <if()> muy común para realizar menús y temas de opciones:
switch(opcion){ // Segun lo que vale opcion...
case 1: // ...si vale 1...
resultado = numero1 + numero2; // ...hace esto
break; //...y Sale. Si no se pone el break haria tambien las instrucciones del case 2, del 3... hasta el default o hasta encontrar un break
case 2:
resultado = numero1 - numero2;
break;
// todos los case que quieras con su numero de opcion correspondiente
default: // ...si opcion no vale ninguna de las cosas anteriores...
cout << "La opcion no es valida" << endl; // ...muestra esto
// Como despues del default ya no hay mas opciones, el break es opcional.
}
Como veo que eso ya lo llevas bastante bien, aprovecho para explicarte lo del bucle.
Lo normal es hacerlo con una estructura <do{} while()> pero si te mandan hacerlo con un <while()> también se puede adaptar.
Para ello hay que tener una condición que será la que determine si el programa se repite o no. En tu caso es 1=sale 0=repite. Esto se puede hacer con otra variable <int> por ejemplo llamada <salir> o con una variable de tipo <bool salir> que valdrá true/false (1/0).
Te hago un pequeño programa muy sencillo para que veas su uso y después aplicarlo tú a tu problema:
// ALTERNATIVA 1: Usando un int
int main(){
int salir = 0; // le damos el valor 0 para que la primera vez que se ejecuta, funcione.
// La condicion para finalizar el programa es que salir valga 1. Entonces el programa se repetira mientras salir sea distinto de 1:
while(salir != 1){
cout << "Hola" << endl;
cout << "Desea salir: (1 = Si / 0 = No): ";
cin >> salir;
}
}
// ALTERNATIVA 2: Usando un bool de forma un poco rara
int main(){
bool salir = false;
while(!salir){ // esto es equivalente a decir: salir == false
cout << "Hola" << endl;
cout << "Desea salir: (1 = Si / 0 = No): ";
cin >> salir; // Si no recuerdo mal, el 0 lo guardara como false y cualquier otro numero lo guardara como true
}
}
//ALTERNATIVA 3: Usando un bool de forma mas facil de entender
int main(){
bool salir = false;
int respuesta; // para guardar la respuesta del usuario y no hacerlo directamente en bool
while(!salir){
cout << "Hola" << endl;
cout << "Desea salir (1 = Si / 0 = No): ";
cin >> respuesta;
// Ahora si la respuesta vale 1, salir debe valer true y si vale 0, salir debe valer false
salir = (respuesta == 1); // Asi valdra true cuando respuesta sea 1 y false en cualquier otro caso
}
}
Como ves hay muchas formas de hacerlo y esto sólo usando el while(), si usas el <do while()> tendrás el doble de alternativas. Lo que todas tienen en común es que si el usuario no introduce ni 1 ni 0, el programa tomará una decisión según la alternativa.