Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: dalrick en Noviembre 28, 2012, 02:45:17 am

Título: Problema en C++ / resolver
Publicado por: dalrick en Noviembre 28, 2012, 02:45:17 am
Hola amigos les explico, a una amiga le mandaron a hacer un ejercicio en C++ y fue a mi en busca de ayuda de la cual es imposible que me le niegue XD, y la verdad no estoy con C++ ya que lo vi de pasada y fue hace mucho, necesito que me ayuden a resolver este problema... Saludos

Desarrolle un programa que muestre el siguiente menú:
1.   Aprender a sumar
2.   Aprender a multiplicar
3.   Salir

Si selecciona la opción 1, mostrara la operación suma entre dos número y pedirá el resultado.

Si el resultado es correcto mostrara la frase: “Correcto!”, en caso contrario, deberá mostrar el mensaje: “Se equivocó, la respuesta era…”  y a continuación se deberá mostrar la respuesta correcta.
Se deberá mostrar 10 sumas. Al final de la práctica se indicara el porcentaje de acierto.

Si se selecciona la opción 2, se deberá pedir la tabla que se desea practicar. Se mostrara la multiplicación del número introducido multiplicado por otro número entre 1 y 10.

Este proceso se realizara 10 veces y así mismo en cada operación se indicar si el resultado fue o no correcto.
Si el resultado introducido es correcto, se mostrara el mensaje  “Bien hecho!” y en caso contrario deberá escribir  “Lo siento, se ha equivocado”, “La respuesta correcta era…” y a continuación de deberá mostrar  la respuesta correcta.

Luego de hacer 10 operaciones, se mostrara el mensaje “Ud. Ha realizado 10 operaciones de las cuales ha contestado “X” correctamente”.

Las operaciones tanto para las sumas como para las multiplicaciones, 1 a 10, respectivamente.

Librerías: iostream y conio
Título: Re:Problema en C++ / resolver
Publicado por: JAG en Noviembre 28, 2012, 12:33:21 pm
Uff es un código muy simple... bueno te lo he hecho más o menos (aunque no me gusta darlo todo hecho), sobre todo míralo e intenta comprenderlo todo para aprender, sino, no te servirá de nada... solo para pincharte a esta chica que comentas xD

Código: [Seleccionar]
#include<cstdlib>
#include<iostream>

using namespace std;

int menu(){
int op;
do{
cout<<"1. Aprender a sumar\n";
cout<<"2. Aprender a multiplicar\n";
cout<<"3. Salir\n";
cin>>op;
}while((op>3)||(op<1));
return op;
}

int suma(){
int num1,num2,resultado;
cout<<"Realice la siguiente operacion\n";
num1=1+rand()%(11-1);
num2=1+rand()%(11-1);
cout<<num1<<" + "<<num2<<" = ";
cin>>resultado;
if(resultado==(num1+num2)){
cout<<"Respuesta correcta\n";
return 1;
}else{
cout<<"Respuesta incorrecta\n";
return 0;
}
}

int multiplica(int mult){
int num1,resultado;
cout<<"Realice la siguiente operacion\n";
num1=1+rand()%(11-1);
cout<<mult<<" x "<<num1<<" = ";
cin>>resultado;
if(resultado==(mult*num1)){
cout<<"Respuesta correcta\n";
return 1;
}else{
cout<<"Respuesta incorrecta\n";
return 0;
}
}

int main(){
int op, acertadas=0,mult;
for(int i=1; i<11; i++){
op=menu();
switch(op){
case 1:
acertadas+=suma();
break;

case 2:
cout<<"Elige el numero de tabla que quieres practicar\n";
cin>>mult;
acertadas+=multiplica(mult);
break;

case 3:
cout<<"Llevas "<<acertadas<<" acertadas hasta el momento\n";
return 0;
break;
}
}
cout<<"Has acertado "<<acertadas<<" operaciones\n";
return 0;
}

Adáptalo a lo que necesites y lo dicho, intenta entenderlo. Si tienes alguna duda pregunta ok? Y espero que te pinches a esta chica a la cual nada puedes negarle jejejeje Saludos ;)
Título: Re:Problema en C++ / resolver
Publicado por: dalrick en Noviembre 28, 2012, 01:01:47 pm
Venga JAG sos un Tío, la verdad en mi agenda no tenia C++ para estudiarlo ya que estoy con javascrpt, sin embargo voy a tener que modificar la agenda y meter C++ en ella debido que a esta chica l están pasando C++ xD y si no lo estudio no llegare a mi objetivo (todo requiere un esfuerzo),, gracias JAG intentare entenderlo y adaptarlo, cualquier duda te comento.

Una cosita mas, porque le dijeron que utilizara las librerías conio e iostream, se podra sin incluir a cstdlib??.
Título: Re:Problema en C++ / resolver
Publicado por: JAG en Noviembre 28, 2012, 01:09:25 pm
La de cstdlib la he utilizado para el rand con los números aleatorios, no se si se podrá hacer de otra forma sin usar rand (seguro que sí), la de conio.h no se por qué se la pidieron, yo no la suelo utilizar porque no es portable, solo está en Windows y yo programo en linux...
Título: Re:Problema en C++ / resolver
Publicado por: dalrick en Noviembre 28, 2012, 01:26:05 pm
Amigo gracias por esa explicación, le explicare eso a la chica, ya estoy estudiando el código y se ve fácil, lo compilare y probare a ver que tal. si tengo duda te busco por todo el foro e IRC xD
Título: Re:Problema en C++ / resolver
Publicado por: dalrick en Noviembre 28, 2012, 07:53:41 pm
Que tal amigos, hola JAG te cuento que ya he adaptado la mayor parte del código como lo dice el enunciado del ejercicio, creo me faltan algunos detalles; vaya que eso me llevo a leer toda una guía anoche sobre programación C++.. Fíjate a ver como voy xD

Código: [Seleccionar]
#include<cstdlib>
#include<iostream>

using namespace std;

int menu(){
int op;
do{
cout<<"1. Aprender a sumar\n";
cout<<"2. Aprender a multiplicar\n";
cout<<"3. Salir\n\n";
cout<< "Elija una opcion valida: "; cin>>op;
}while((op>3)||(op<1));
return op;
}

int suma(){
int num1,num2,resultado;
cout<<"\nRealice la siguiente operacion\n\n";
num1=1+rand()%(11-1);
num2=1+rand()%(11-1);
cout<<num1<<" + "<<num2<<" = ";
cin>>resultado;
if(resultado==(num1+num2)){
cout<<"\nCorrecto!\n";
return 1;
}else{
cout<<"\nSe equivoco, la respuesta era: "<<num1+num2<<"\n";
return 0;
}
}

int multiplica(int mult){
int num1,resultado;
cout<<"\nRealice la siguiente operacion\n\n";
num1=1+rand()%(11-1);
cout<<mult<<" x "<<num1<<" = ";
cin>>resultado;
if(resultado==(mult*num1)){
cout<<"\nBien echo!\n";
return 1;
}else{
cout<<"\nLo siento, se ha equivocado, la respuesta correcta era: "<<mult*num1<<"\n";
return 0;
}
}

int main(){
int op, acertadas=0,mult;
op=menu();
    for(int i=1; i<11; i++){
switch(op){
case 1:
acertadas+=suma();
break;

case 2:
                 
cout<<"\nElige el numero de tabla que quieres practicar: ";cin>>mult;
acertadas+=multiplica(mult);
break;

case 3:
cout<<"Llevas "<<acertadas<<" acertadas hasta el momento\n";
return 0;
break;
}
}
cout<<"\n\nHas acertado "<<acertadas<<" operaciones\n\n\n";
system("PAUSE");
return 0;
}
Título: Re:Problema en C++ / resolver
Publicado por: JAG en Noviembre 28, 2012, 07:57:18 pm
Va bien... lo has adaptado según tu gusto... Lo que te recomiendo es que averigües para que querían que utilizases la librería conio y si puedes usar la cstdlib para hacer el rand... Saludos ;)
Título: Re:Problema en C++ / resolver
Publicado por: dalrick en Noviembre 28, 2012, 08:03:49 pm
Gracias amigo, te cuento que la chica me dijo que anoto esas librerías porque eran las que el profesor usaba mas, lo cual es permitido usar otras librerías, así que no hay problema con "cstdlib" ;)
Título: Re:Problema en C++ / resolver
Publicado por: JAG en Noviembre 28, 2012, 08:28:48 pm
Ok genial entonces!! Podemos dar por solucionado el tema verdad?? Acuerdate de tu amigo JAG si llegas a pinchartela xD Saludos!!