Problema codigo c++.

Iniciado por elkiy, 7 Junio 2012, 23:12 PM

0 Miembros y 1 Visitante están viendo este tema.

elkiy

Hola miren mi problema es este:

quiero crear un programa que te pregunte que operacion queres hacer?

1 para sumar y 2 para restar.

el problema con este codigo c++ es que si el usuario pone 1 o 2 la respuesta siempre va a ser sumar, es que no se como hacer para decirle al programa que if o else depende de el numero ingresado, intente hacerlo y me di cuenta del error, el tema es que no se como hacer para decirle que si la variable SUMAR es = a A; dado que sumar entra deltro de la constante enumerada llamada Operaciones, y el resultado de a; es de el int main.

Aca esta el codigo si alguien lo pueda analizar entenderá bien que funcion quiero realizar.

#include <iostream>

/***** Objetos usados en el programa */

using std::cout;
using std::cin;
using std:: endl;

/***** Funcion Respuesta de Sumar */
int Add (int primero,int segundo)
{
cout << "Los numeros ingresados son: " << primero << " y " << segundo << endl;
cin.get();
return (primero + segundo);
}

/***** Funcion Respuesta de restar */

int Rest (int primerorest, int segundorest)
{
cout << "Los numeros ingresados son: " << primerorest << " y " << segundorest << endl;
cin.get();
return (primerorest - segundorest);
}

/***** Codigo principal del Programa */

int main()
{
cout << "Bienvenido a has tus operaciones\n";
int respuesta;
cout << "Si quieres sumar escribi: 1\n";
cout << "si queres restar escribi: 2\n";
cin >> respuesta;
cout << "Tu respuesta a sido:\t" << respuesta << endl;

enum Operaciones {sumar = 1,restar};

Operaciones proceder;
proceder = sumar;

if (sumar)
{
cout << "Escribe dos numeros para sumar, recuerda dejar un espacio separado del otro\n";
int a,b,c;
    cout << "Ejemplo: 12 (espacio) 44.";
cin >> a;
cin >> b;
c=Add (a,b);
cout << "El resultado de la suma es: " << c;
cin.get();
return 0;
}

else
{
cout << "Escribe dos numeros para restar, recuerda dejar un espacio separado del otro\n";
int d,e,f;
cout << "Ejemplo : 12 (espacio) 44.";
cin >> d;
cin >> e;
f=Rest (d,e);
cout << "El resultado de la suma es: " << f;
cin.get();
return 0;
}

cout << "Programa creado por 1996marioful\n";
cout << "Gracias a Foro.Elhacker.net\n";
cin.get();
return 0;
}

Oblivi0n

Te complicas demasiado la vida:

#include "stdafx.h"
#include <stdio.h>

void printMenu();
int add(int n1, int n2);
int resta(int n1, int n2);

int _tmain(int argc, _TCHAR* argv[])
{
bool salir = false;
int seleccion,a,b;
while(salir!=true){
printMenu();
scanf("%d",&seleccion);
switch(seleccion){
case 1:
printf("Introduzca a\n>>");
scanf("%d",&a);
printf("Introduzca b\n>>");
scanf("%d",&b);
printf("La suma es %d\n", add(a,b));
break;
case 2:
printf("Introduzca a\n>>");
scanf("%d",&a);
printf("Introduzca b\n>>");
scanf("%d",&b);
printf("La resta es %d\n", resta(a,b));
break;
case 0:
salir = true;
break; }
}

return 0;
}

void printMenu(){
printf("Que desea hacer\n 1- Sumar \n 2-Restar \n 0- Salir\n>>");
}

int add(int n1, int n2){
return n1+n2;
}

int resta(int n1, int n2){
return n1-n2;
}

elkiy

Cita de: Oblivi0n en  7 Junio 2012, 23:33 PM
Te complicas demasiado la vida:

#include "stdafx.h"
#include <stdio.h>

void printMenu();
int add(int n1, int n2);
int resta(int n1, int n2);

int _tmain(int argc, _TCHAR* argv[])
{
bool salir = false;
int seleccion,a,b;
while(salir!=true){
printMenu();
scanf("%d",&seleccion);
switch(seleccion){
case 1:
printf("Introduzca a\n>>");
scanf("%d",&a);
printf("Introduzca b\n>>");
scanf("%d",&b);
printf("La suma es %d\n", add(a,b));
break;
case 2:
printf("Introduzca a\n>>");
scanf("%d",&a);
printf("Introduzca b\n>>");
scanf("%d",&b);
printf("La resta es %d\n", resta(a,b));
break;
case 0:
salir = true;
break; }
}

return 0;
}

void printMenu(){
printf("Que desea hacer\n 1- Sumar \n 2-Restar \n 0- Salir\n>>");
}

int add(int n1, int n2){
return n1+n2;
}

int resta(int n1, int n2){
return n1-n2;
}


Huu perdona mi ignorancias, es que soy nuevo y voy por el tutorial numero 4 de jesus conde, e intento hacer este tipo de programa con los codigos que por ahora he aprendido.

tambien cuando intento con tu codigo, me da error en el primero preprocesador, quisiera saber si es que me falta ese archivo o que pasa hay, desde ya gracias por tu respuesta y perdona mi ignorancia, soy noob :D

Oblivi0n

Jajaja no te disculples hombre, aqui todos somos noob's en algo

si el problema del preprocesador es porque copíe del visual studio tal cual, si borras el #include "stdafx.h" debería de funcionar creo

Para cualquier duda ya sabes, saludos!

elkiy

Cita de: Oblivi0n en  8 Junio 2012, 00:54 AM
Jajaja no te disculples hombre, aqui todos somos noob's en algo

si el problema del preprocesador es porque copíe del visual studio tal cual, si borras el #include "stdafx.h" debería de funcionar creo

Para cualquier duda ya sabes, saludos!

ajjaja si, ahora pude solucionar ese problema del preprocesador, el unico error que me tira esta en la linea 7:

int _tmain(int argc, _TCHAR* argv[])

el problema es que me dice que _TCHAR no esta definido  :(

durasno

int main(int argc, char *argv[]) {


}
Ahorrate una pregunta, lee el man

darkvidhack

Código (cpp) [Seleccionar]
int main () {

int opcion;
cout<<"Introduce opción"<<endl;
cin>>opcion;

switch(opcion) {

case 1:
Sumar();
break;

case 2:
Restar();
break;

}

}


Un estilo a esto creo que es lo que quieres...

Saludos ;)
live and let die

la duda es la base de todo conocimiento

elkiy

Hola... muchas gracias a los tres!!!

durasno cambie esa parte y andubo de maravilla!!!

darkvidhack use ese codigo y tuve que editarlo deacuerdo a los names de las funciones y andubo de 10!!!

agradezco a todos los que me constestaron mi problema, desde ya gracias y saludos!!!

elkiy

#8
Bueno aunque sepa poco de c++ debo aceptar que entiendo mucho para recien haber empezado.

Agarre como codigo fundamental el de darkvidhack.
tambien utilize de mis codigos.
Y obiamente analize el codigo que me paso Oblivi0n y saque lo de volver a main() asi:

return main();

y otra cosa que saque de su codigo fue esto:

bool salir = false;
salir = true;

y terminé creando este codigo, corto espero que les guste, no se olviden que soy nuevaso y esos codigos no los entendia :

#include <iostream>

using namespace std;

int main () {

int opcion;
cout << "Que desea hacer?\n";
cout << "1- Sumar \n";
cout << "2-Restar \n";
cout << "0- Salir\n>>";
cout<<"Introduce opción"<<endl;
cin>>opcion;
bool salir = false;

switch(opcion) {

case 0:
cout << "Creado by 1996marioful\n";
cout << "Gracias a los de usuarios de Foro.elhacker.net\n";
cout << " En especial a: Oblivi0n, darkvidhack y durasno\n";
cin.get();
salir = true;
break;

case 1:
int a,b,c;
cout << "Escriba su primer n\xa3mero\n recuerde dejar espacio antes de escribir el otro: ";
cin >> a;
cin >> b;
c=a+b;
cout << "Resultado: " << c << endl;
   cin.get();
return main();
break;

case 2:
int d,e,f;
cout << "Escriba su primer n\xa3mero\n";
cout << "recuerde dejar espacio antes de escribir el otro: ";
cin >> d;
cin >> e;
c=d-e;
cout << "Resultado: " << c << endl;
   cin.get();
return main();
break;

}
cin.get();
return 0;

}

darkvidhack

Hola de nuevo!! Te comento:

La variable bool salir, no te sirve en este caso, ya que si por ejemplo escoges la opción 1, cuando la ejecución del programa llega a "break;", sale del switch.

El cin.get(), tanto los de dentro de los case, como cuando terminas el switch, tampoco te sirve, ya que con eso lo que haces es leer un caracter de la entrada standar (teclado), y ya lees con "cin>>opcion" arriba del switch.

El return main tampoco, cuando quieres terminar la ejecución del programa, simplemente con el return 0 tienes suficiente.

Nada más, sigue aprendiendo :D
live and let die

la duda es la base de todo conocimiento