Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: WiseHidden en 7 Diciembre 2010, 12:07 pm



Título: Alguien podria orientarme con mi Menu?
Publicado por: WiseHidden en 7 Diciembre 2010, 12:07 pm
Hola,
Llevo poco tiempo aprendiendo C++
Esta semana me e propuesto hacer un menu.

Me han guiado y he aprendido muchas cosas, pero por el momento tengo una duda con mi menu y no se que estoy haciendo mal. Y m gustaria que me orientaran
Un saludo a todos aqui expongo mi codigo:

Código
  1. #include <iostream.h>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6.  
  7. {
  8.  
  9. cout<<"******MENU PRINCIPAL********"<<endl;
  10. cout<<"* 1)Editor de Texto        *"<<endl;
  11. cout<<"* 2)Calculadora            *"<<endl;
  12. cout<<"* 3)Juegos                 *"<<endl;
  13. cout<<"*--------------------------*"<<endl;
  14. cout<<"* 4)Ayuda                  *"<<endl;
  15. cout<<"* 5)Salir                  *"<<endl;
  16. cout<<"****************************"<<endl;
  17. cout<<"Eliga una Opcion:";
  18. cin>>opc;  //AQUI ESTA MI PRIMER FALLO
  19.  
  20. switch (opc)
  21. {
  22.    case 1:
  23.    cout<<"EDITOR DE TEXTO"<<endl; //CREO QUE ESTO NO ESTA BIEN
  24. //Y LA VERDAD NO SE COMO INSERTA ALGO PARA QUE SALGA COMO EL MENU :(
  25.  
  26.    case 2:
  27.    cout<<"CALCULADORA "endl;
  28.  
  29.    case 3:
  30.    cout<<"JUEGOS "endl;
  31.  
  32.    case 4:
  33.    cout<<"AYUDA "endl;
  34.  
  35.    case 5:
  36.    cout<<"-----SALIENDO----- "endl; //LO QUE VIENE ACONTINUACION HE DE
  37. //RECONOCER QUE LO HE COPIADO DE UN CODIGO CON AUTORIZACION DEL
  38. //AUTOR,   AUNQUE AUN NO SE SI ES EFECTIVO
  39.    x=4;
  40. }
  41. system ("pause");
  42. } while (x !=4);
  43. return 0;
  44.  
  45. }

agradeceria vuestra ayuda

Atentamente
WH


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: diskontrol en 7 Diciembre 2010, 14:27 pm
Deberías prestar atención a los errores del compilador. Por ejemplo el uso de variables no declaradas. También te has comido varios operadores "<<". Te aconsejo que vigiles los corchetes, parece ser que te sobra uno. En el switch deberías meter un break en cada caso para que únicamente se ejecute ese Y el while del final no tiene mucho sentido (básicamente no hace nada).


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: WiseHidden en 7 Diciembre 2010, 15:56 pm
Diskontrol gracias por tu respuesta pero hay algunas cosas que no entiendo:

Citar
Deberías prestar atención a los errores del compilador. Por ejemplo el uso de variables no declaradas

Presto Atencion alos errores del compilador, Imposible no prestarle atencion pero no entiendo eso de variables no declaradas. Podrias especificar?

Citar
También te has comido varios operadores "<<". Te aconsejo que vigiles los corchetes, parece ser que te sobra uno.
Disculpa mi ignorancia, los "corchetes" como tu dices creo medio tenerlos controlado, Pero he mirado mi codigo y no consigo ver cual me sobra ninguno, en todo caso si he visto que los he dejado olvidado en el switch.
YA CORREJIDO.

Citar
En el switch deberías meter un break en cada caso para que únicamente se ejecute ese
Gracias ya lo he "correjido" aunque no se si se ha quedado bien.

Citar
Y el while del final no tiene mucho sentido (básicamente no hace nada)
Agradezco tu observacion, como he dicho en el comentario "ha sido" copiado de otro codigo con permiso de su autor, pero ya lo quito, si no tiene nignuna funcion.

Bueno segun tus arreglos, el codigo se queda asi (menos el corchete que me sobra que no lo encuentro)

Agradeceria si copiaras mi codigo y me pusieras "en un comentario" donde errato.
Mil gracias un saludo

Código
  1. #include <iostream.h>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6.  
  7. {
  8.  
  9. cout<<"******MENU PRINCIPAL********"<<endl;
  10. cout<<"* 1)Editor de Texto        *"<<endl;
  11. cout<<"* 2)Calculadora            *"<<endl;
  12. cout<<"* 3)Juegos                 *"<<endl;
  13. cout<<"*--------------------------*"<<endl;
  14. cout<<"* 4)Ayuda                  *"<<endl;
  15. cout<<"* 5)Salir                  *"<<endl;
  16. cout<<"****************************"<<endl;
  17. cout<<"Eliga una Opcion:"<<endl;
  18. cin>>(opcion);
  19.  
  20. switch (opc)
  21. {
  22.    case 1:
  23.    cout<<"EDITOR DE TEXTO"<<endl;
  24.    break;
  25.  
  26.    case 2:
  27.    cout<<"CALCULADORA "<<endl;
  28.    break;
  29.  
  30.    case 3:
  31.    cout<<"JUEGOS "<<endl;
  32.    break;
  33.  
  34.    case 4:
  35.    cout<<"AYUDA "<<endl;
  36.    break;
  37.  
  38.    case 5:
  39.    cout<<"-----SALIENDO----- "<<endl;
  40.    break;
  41. }
  42.  
  43. system ("pause");
  44. return 0;
  45.  
  46. }


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: diskontrol en 7 Diciembre 2010, 16:17 pm
Buenas WiseHidden,

perdona por haber sido tan escueto, pero tenía que ir comer :-). Te digo e indico en el código.

Lo de las variables no declaradas, tomando como ejemplo el último código que has puesto; opc y opción no han sido declaradas, pero tú haces uso de ellas, por eso el compilador te lanza un error en las lineas donde intentas usarlas. Siempre que uses una variable tienes que declararla previamente. Hablando de estas variables, usas opcion para almacenar la lectura, pero en el switch utilizas opc.

Sobre los corchetes ahora están bien, pero si te fijas en el primer código había uno de más antes del while.

Los break los has implementado de forma correcta .

Si me indicas cual era tu intención con el while y cual es el código del que lo has copiado intentaré ayudarte con esa parte.

Código:
#include <iostream>

using namespace std;

int main()
{
int opcion; //DECLARACIÓN DE LA VARIABLE OPCIÓN

cout<<"******MENU PRINCIPAL********"<<endl;
cout<<"* 1)Editor de Texto        *"<<endl;
cout<<"* 2)Calculadora            *"<<endl;
cout<<"* 3)Juegos                 *"<<endl;
cout<<"*--------------------------*"<<endl;
cout<<"* 4)Ayuda                  *"<<endl;
cout<<"* 5)Salir                  *"<<endl;
cout<<"****************************"<<endl;
cout<<"Eliga una Opcion:"<<endl;
cin>>(opcion);  //ESTA VARIABLE Y LA DEL SWITCH DEBEN SER LA MISMA

switch (opcion)
{
    case 1:
    cout<<"EDITOR DE TEXTO"<<endl;
    break;

    case 2:
    cout<<"CALCULADORA "<<endl;
    break;

    case 3:
    cout<<"JUEGOS "<<endl;
    break;

    case 4:
    cout<<"AYUDA "<<endl;
    break;

    case 5:
    cout<<"-----SALIENDO----- "<<endl;
    break;
}


return 0;

}


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: WiseHidden en 7 Diciembre 2010, 16:29 pm
Todo lo contrario, no debes disculparte (te estoy muy agradecido por toda tu ayuda y orientacion)

Ahora me sale el programa compilado ala perfeccion.

* No sabia que habia que declarar con el mismo nombre, me has hecho entenderlo perfectamente :D gracias.

Referente a lo de mi Intención, no pretendia nada solo que al mirar como se hacia el menu vi que venia eso, y la verdad no sabia ni para que servia.

Lo facil esta hecho, lo dificil viene ahora.

*Ala hora de por ejemplo crear la calculadora, los juegos o el editor de texto. como lo hago?
lo inserto dentro de los case???

o tengo que crear programas independientes y luego enlazarlos de algun modo?

disculpen mi gran ignorancia pero apenas estoy empezando a gatear con C++

Un saludo a todos.

Atentamente
WiseHidden


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: satu en 7 Diciembre 2010, 16:58 pm
apenas estoy empezando a gatear con C++

y ya quieres programar juegos??? se ve que ganas de aprender no te faltan, enhorabuena por ello

Para lo que quieres, lo más sencillo es utilizar funciones, por ejemplo:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. //Funcion "calculadora"
  7. int calculadora()
  8. {
  9. //Aqui dentro va el codigo, por ejemplo
  10. int op1, op2, resultado;
  11. cout<<"Introduce el primer operando: ";
  12. cin>>op1;
  13. cout<<"Introduce el segundo operando: ";
  14. cin>>op2;
  15. resultado=op1+op2;
  16. return resultado;
  17.  
  18. //En tu programa deberias poner un switch con las operaciones que quieres que haga tu calculadora
  19. }
  20.  
  21. int main()
  22. {
  23. int opcion; //DECLARACIÓN DE LA VARIABLE OPCIÓN
  24. int resultado;  //DECLARACIÓN DE LA VARIABLE RESULTADO
  25.  
  26. cout<<"******MENU PRINCIPAL********"<<endl;
  27. cout<<"* 1)Editor de Texto        *"<<endl;
  28. cout<<"* 2)Calculadora            *"<<endl;
  29. cout<<"* 3)Juegos                 *"<<endl;
  30. cout<<"*--------------------------*"<<endl;
  31. cout<<"* 4)Ayuda                  *"<<endl;
  32. cout<<"* 5)Salir                  *"<<endl;
  33. cout<<"****************************"<<endl;
  34. cout<<"Eliga una Opcion:"<<endl;
  35. cin>>(opcion);  //ESTA VARIABLE Y LA DEL SWITCH DEBEN SER LA MISMA
  36.  
  37. switch (opcion)
  38. {
  39.    case 1:
  40.    cout<<"EDITOR DE TEXTO"<<endl;
  41.    break;
  42.  
  43.    case 2:
  44.    cout<<"CALCULADORA "<<endl;
  45.    resultado = calculadora();
  46.    //Aqui podrias mostrar el resultado o lo que quieras
  47.    break;
  48.  
  49.    case 3:
  50.    cout<<"JUEGOS "<<endl;
  51.    break;
  52.  
  53.    case 4:
  54.    cout<<"AYUDA "<<endl;
  55.    break;
  56.  
  57.    case 5:
  58.    cout<<"-----SALIENDO----- "<<endl;
  59.    break;
  60. }
  61.  
  62.  
  63. return 0;
  64.  
  65. }
  66.  

Saludos


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: WiseHidden en 7 Diciembre 2010, 17:26 pm
Satu, como bien has dicho no me faltan ganas de aprender.
Si bien si se que este lenguaje es muy completo, por lo tanto muy complejo, y me queda una largo,largisimo camino por andar.
Se que ahora mismo me seria imposible crear un juego, por simple que fuera, por lo que este "menu" se hara con tiempo, y añadiendo todo lo que voy aprendiendo.
es decir.

He creado este menu y dia a dia, o semana a semana, intentare ir añadiendo "nuevas opciones" Y exponerlo para todos aquellos que quieran aprender,participar u orientar en todo lo que se pueda.
:D

Me ha venido muy bien tu calculadora, es semejante alas operaciones que habia aprendido aunque menos "complejo" y sin tantos fallos como la mia. jajaja

por lo tanto si no te importa (la pondre en mi codigo) siempre y cuando no te importe.
Lo mismo que digo que todo aquel que quiera copiar mi codigo,tiene mi permiso previo. (Aunque por el momento no creo que a nadie le interese, pues no tiene gran cosa por el momento, pero intentare terminarlo.

Tengo tres pregunta para ti satu, o para todo aquel que pueda ayudarme como ha sido diskontrol.

1)He insertado "la calculadora" pero como puedo hacer para tener la opcion de elegir si quiero sumar,restar,multiplicar o dividir??
he de crear otro switch??

2)Cuando eliga una opcion como puedo volver al menu sin que se salga del programa en si

3)Y por ultimo si quiero salir del programa seleccionando el 5) como hacerlo para que se salga.

Gracias me veo muy apoyado en este foro, y la verdad que asi uno no se viene abajo y le da ganas de seguir con fuerza

un saludo a todos

expongo el ultimo añadido :

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6.  
  7. {
  8.  
  9. int opcion; //DECLARACIÓN DE LA VARIABLE OPCIÓN
  10.  
  11. cout<<"******MENU PRINCIPAL********"<<endl;
  12. cout<<"* 1)Editor de Texto        *"<<endl;
  13. cout<<"* 2)Calculadora            *"<<endl;
  14. cout<<"* 3)Juegos                 *"<<endl;
  15. cout<<"*--------------------------*"<<endl;
  16. cout<<"* 4)Ayuda                  *"<<endl;
  17. cout<<"* 5)Salir                  *"<<endl;
  18. cout<<"****************************"<<endl;
  19. cout<<"Eliga una Opcion:";
  20. cin>>(opcion);  //ESTA VARIABLE Y LA DEL SWITCH DEBEN SER LA MISMA
  21.  
  22. switch (opcion)
  23. {
  24.    case 1:
  25.    cout<<"EDITOR DE TEXTO"<<endl;
  26.    break;
  27.  
  28.    case 2:
  29.    cout<<"CALCULADORA "<<endl;
  30.    cout<<"------------------------------"<<endl;
  31.    cout<<"SUMAR:                        "<<endl;
  32.    int op1, op2, resultado;
  33.    cout<<"Introduce el primer operando: ";
  34.    cin>>op1;
  35.    cout<<"Introduce el segundo operando: ";
  36.    cin>>op2;
  37.    resultado=op1+op2;
  38.    return resultado;
  39.  
  40.    cout<<"RESTAR:                        "<<endl;
  41.    int op1, op2, resultado;
  42.    cout<<"Introduce el primer operando: ";
  43.    cin>>op1;
  44.    cout<<"Introduce el segundo operando: ";
  45.    cin>>op2;
  46.    resultado=op1-op2;
  47.    return resultado;
  48.  
  49.    cout<<"MULTIPLICAR:                        "<<endl;
  50.    int op1, op2, resultado;
  51.    cout<<"Introduce el primer operando: ";
  52.    cin>>op1;
  53.    cout<<"Introduce el segundo operando: ";
  54.    cin>>op2;
  55.    resultado=op1*op2;
  56.    return resultado;
  57.  
  58.    cout<<"DIVIDIR:                        "<<endl;
  59.    int op1, op2, resultado;
  60.    cout<<"Introduce el primer operando: ";
  61.    cin>>op1;
  62.    cout<<"Introduce el segundo operando: ";
  63.    cin>>op2;
  64.    resultado=op1/op2;
  65.    return resultado;
  66.    break;
  67.  
  68.    case 3:
  69.    cout<<"JUEGOS "<<endl;
  70.    break;
  71.  
  72.    case 4:
  73.    cout<<"____________________________________________________________________________________"<<endl;
  74.    cout<<"|_____________________________________________|"<<endl;
  75.    cout<<"|            HA SELECCIONADO AYUDA            |"<<endl;
  76.    cout<<"|                                             |"<<endl;
  77.    cout<<"|----------------Indice General---------------|"<<endl;
  78.    cout<<"|                                             |"<<endl;
  79.    cout<<"|* 1)Editor de Texto                          |"<<endl;
  80.    cout<<"|* 2)Calculadora                              |"<<endl;
  81.    cout<<"|* 3)Juegos                                   |"<<endl;
  82.    cout<<"|* 4)Ayuda                                    |"<<endl;
  83.    cout<<"|* 5)Salir                                    |"<<endl;
  84.    cout<<"|____________________________________________ |"<<endl;
  85.  
  86.    cout<<" "<<endl;
  87.  
  88.    cout<<"_________________________________________________________________________"<<endl;
  89.    cout<<"1)Editor de texto:"<<endl;
  90.    cout<<"Este Programa permite al usuario escribir,editar,cambiar,guardar y borrar"<<endl;
  91.    cout<<"Al antojo del susodicho de manera facil y amena"<<endl;
  92.    cout<<"_________________________________________________________________________"<<endl;
  93.    cout<<"2)Calculadora"<<endl;
  94.    cout<<"Una calculadora basica donde se pueden resolver problemas basicos:"<<endl;
  95.    cout<<"Donde se puede sumar"<<endl;
  96.    cout<<"(a+b=c)"<<endl;
  97.    cout<<"Restar"<<endl;
  98.    cout<<"(a-b=c) "<<endl;
  99.    cout<<"Multiplicar"<<endl;
  100.    cout<<"(a*b=c)"<<endl;
  101.    cout<<"Dividir"<<endl;
  102.    cout<<"(a/b=c)"<<endl;
  103.    cout<<"_________________________________________________________________________"<<endl;
  104.    cout<<"3)Juegos"<<endl;
  105.    cout<<"En nuestro Sistema hemos introducido un par de juegos: "<<endl;
  106.    cout<<"Ahorcado: Juego en donde debes acertar la palabra secreta"<<endl;
  107.    cout<<"y cada error te dara una pieza de un ahorcado, si este se completa "<<endl;
  108.    cout<<"habras perdido."<<endl;
  109.    cout<<"Serpiente: "<<endl;
  110.    cout<<"Clásico donde una pequeña serpiente debe ir comiendo y haciendose mas grande"<<endl;
  111.    cout<<"sin dar con ningun obstaculo "<<endl;
  112.    cout<<"_________________________________________________________________________"<<endl;
  113.    cout<<"4)Ayuda"<<endl;
  114.    cout<<"En una ayuda para los usuarios nuevos en este sistema "<<endl;
  115.    cout<<"_________________________________________________________________________"<<endl;
  116.    cout<<"5)Salir"<<endl;
  117.    cout<<"Con esta opcion saldremos directamente de nuestro sistemab "<<endl;
  118.    break;
  119.  
  120.    case 5:
  121.    cout<<"-----SALIENDO----- "<<endl;
  122.    break;
  123. }
  124.  
  125.  
  126. return 0;
  127.  
  128. }


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: winroot en 7 Diciembre 2010, 19:56 pm
Buenas!
Bien, perdona que te lo diga, y capas que yo soy el equivocado, pero...
Estás leyendo algún libro ?
Sobre la pregunta, en la función calculadora podrías pasarle un parámetro entero que indique que tipo de operación hacer...
Código
  1. enum calc{sumar=1,restar,div,mul};
  2. int calcular(const int mode=0)
  3. {
  4. switch(mode)
  5. {
  6. case sumar:
  7. //sumas
  8. break;
  9. case resta:
  10. //resta
  11. break;
  12. case div:
  13. //divides
  14. break;
  15. case mul:
  16. //multiplicas
  17. break;
  18. default:
  19. // ninguna de las otras operaciones
  20. break;
  21. }
  22. }
  23.  
  24.  
Aunque esto no es muy c++, en c++ tendríamos una clase calculadora, con sus otras clases de parseo...
Agregar también que el switch no es aconsejado en c++, justamente el tema del break es una de las cosas que se le cuestiona a c++.
Por último, fijate que pasa si  en la entrada el usuario escribe ffff.
Código
  1. int option=0;
  2. cin >>option;
  3. if(false ==cin)
  4. {
  5. cout <<" error en la entrada " <<endl;
  6. exit(1);
  7. }
  8. else cout <<option <<endl;
  9.  
Además, lo que se hace generalmente, es usar una variable de tipo string, y luego usar un objeto istringstream definido en sstream.
Saludos!


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: satu en 7 Diciembre 2010, 23:05 pm
Hola

Winroot tiene razón, algunos de tus fallos y preguntas indican que no estás leyendo ningún libro, aquí dentro del subforo de C/C++ hay un post en las chinchetas con muchos muy buenos, si estoy equivocado lo siento pero es lo que parece.

En cuanto a tus preguntas
1)Sí, debes crear otro switch dentro de la función como ya te dije en mi anterior post, pero copiar lo de la funcion al switch del main no está bien como tú lo has hecho, si lo quieres meter ahí tienes que poner otro switch dentro
2)Cuando elijas la opción puedes volver al menú metiendo el menú en un bucle
3)Para salir compruebas la condición en el bucle

Te lo muestro para que lo comprendas

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void calculadora()
  6. {
  7. char operacion;
  8. float op1, op2, resultado=0;
  9. cout<<"Introduce el primer operando: ";
  10. cin>>op1;
  11. cout<<"Introduce el segundo operando: ";
  12. cin>>op2;
  13. cout<<"Introduce la operacion (+,-,*,/): ";
  14. cin>>operacion;
  15. switch(operacion)
  16.    {
  17.    case '+': resultado=op1+op2;
  18.                 break;
  19.    case '-': resultado=op1-op2;
  20.                 break;
  21.    case '*': resultado=op1*op2;
  22.                 break;
  23.    case '/': resultado=op1/op2;
  24.                 break;
  25.    }
  26. cout<<op1<<operacion<<op2<<"="<<resultado<<endl;
  27. }
  28.  
  29.  
  30. int main()
  31. {
  32. int opcion; //DECLARACIÓN DE LA VARIABLE OPCIÓN
  33.  
  34. do{
  35.  cout<<"******MENU PRINCIPAL********"<<endl;
  36.  cout<<"* 1)Editor de Texto        *"<<endl;
  37.  cout<<"* 2)Calculadora            *"<<endl;
  38.  cout<<"* 3)Juegos                 *"<<endl;
  39.  cout<<"*--------------------------*"<<endl;
  40.  cout<<"* 4)Ayuda                  *"<<endl;
  41.  cout<<"* 5)Salir                  *"<<endl;
  42.  cout<<"****************************"<<endl;
  43.  cout<<"Eliga una Opcion:";
  44.  cin>>(opcion);  //ESTA VARIABLE Y LA DEL SWITCH DEBEN SER LA MISMA
  45.  
  46.  switch (opcion)
  47.  {
  48.      case 1:
  49.      cout<<endl<<"EDITOR DE TEXTO"<<endl;
  50.      break;
  51.  
  52.      case 2:
  53.      cout<<endl<<"CALCULADORA "<<endl;
  54.      calculadora();
  55.      break;
  56.  
  57.      case 3:
  58.      cout<<endl<<"JUEGOS "<<endl;
  59.      break;
  60.  
  61.      case 4:
  62.      cout<<"____________________________________________________________________________________"<<endl;
  63.      cout<<"|_____________________________________________|"<<endl;
  64.      cout<<"|            HA SELECCIONADO AYUDA            |"<<endl;
  65.      cout<<"|                                             |"<<endl;
  66.      cout<<"|----------------Indice General---------------|"<<endl;
  67.      cout<<"|                                             |"<<endl;
  68.      cout<<"|* 1)Editor de Texto                          |"<<endl;
  69.      cout<<"|* 2)Calculadora                              |"<<endl;
  70.      cout<<"|* 3)Juegos                                   |"<<endl;
  71.      cout<<"|* 4)Ayuda                                    |"<<endl;
  72.      cout<<"|* 5)Salir                                    |"<<endl;
  73.      cout<<"|____________________________________________ |"<<endl;
  74.  
  75.      cout<<" "<<endl;
  76.  
  77.      cout<<"_________________________________________________________________________"<<endl;
  78.      cout<<"1)Editor de texto:"<<endl;
  79.      cout<<"Este Programa permite al usuario escribir,editar,cambiar,guardar y borrar"<<endl;
  80.      cout<<"Al antojo del susodicho de manera facil y amena"<<endl;
  81.      cout<<"_________________________________________________________________________"<<endl;
  82.      cout<<"2)Calculadora"<<endl;
  83.      cout<<"Una calculadora basica donde se pueden resolver problemas basicos:"<<endl;
  84.      cout<<"Donde se puede sumar"<<endl;
  85.      cout<<"(a+b=c)"<<endl;
  86.      cout<<"Restar"<<endl;
  87.      cout<<"(a-b=c) "<<endl;
  88.      cout<<"Multiplicar"<<endl;
  89.      cout<<"(a*b=c)"<<endl;
  90.      cout<<"Dividir"<<endl;
  91.      cout<<"(a/b=c)"<<endl;
  92.      cout<<"_________________________________________________________________________"<<endl;
  93.      cout<<"3)Juegos"<<endl;
  94.      cout<<"En nuestro Sistema hemos introducido un par de juegos: "<<endl;
  95.      cout<<"Ahorcado: Juego en donde debes acertar la palabra secreta"<<endl;
  96.      cout<<"y cada error te dara una pieza de un ahorcado, si este se completa "<<endl;
  97.      cout<<"habras perdido."<<endl;
  98.      cout<<"Serpiente: "<<endl;
  99.      cout<<"Clásico donde una pequeña serpiente debe ir comiendo y haciendose mas grande"<<endl;
  100.      cout<<"sin dar con ningun obstaculo "<<endl;
  101.      cout<<"_________________________________________________________________________"<<endl;
  102.      cout<<"4)Ayuda"<<endl;
  103.      cout<<"En una ayuda para los usuarios nuevos en este sistema "<<endl;
  104.      cout<<"_________________________________________________________________________"<<endl;
  105.      cout<<"5)Salir"<<endl;
  106.      cout<<"Con esta opcion saldremos directamente de nuestro sistema "<<endl<<endl;
  107.      break;
  108.  
  109.      case 5:
  110.      cout<<endl<<"-----SALIENDO----- "<<endl;
  111.      break;
  112.  }
  113. }while(opcion!=5);
  114.  
  115. return 0;
  116. }
  117.  

Todo el código que tienes en el case 4 yo lo metería en otra función para aligerar el main

No sé si me habré dejado algo, pero te animo a que sigas posteando lo que vayas haciendo para que los demás aprendamos de ti y también te podamos ayudar en tus programas.

Saludos


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: WiseHidden en 8 Diciembre 2010, 14:10 pm
 La verdad que he de reconocer que no estoy leyendo libro alguno.

Pero si me he molestado mi tiempo y mi esfuerzo en buscar todo lo que he ido aprendiendo, y la verdad que aunque me queda mucho,muchisimo que aprender he ido y voy comprendiendo este magnifico lenguaje.

He ojeado ademas los "libros que vienen en el foro" y alguno que otro en el tito google
- Como programar C++ de harley o algo asi no recuerdo.
- Aprende C++ orientada a objetos.
- C++ desde 0
-ect..................

Pero al menos ami entender veo mas eficaz "conocer" un poco como funcionan las cosas atraves de ejemplo y de intencion y logica. como estoy haciendo, y la verdad que solo en este post de "Alguien podria orientarme con mi Menu? " he aprendido muchisimas cosas, que creo que un libro me costaria mas entender no es cierto???

y agradezco a todos vosotros vuestro interes por enseñar cuanto sabeis, y prometo que iré añadiendo todos mis avances en este menu.

Y exponerlo en el foro para todo aquel que le sirviera para aprender o simplemente pa estudiarlo, modificarlo o tenerlo.



PD: Cuando valla entendiendo mejor este maravilloso lenguaje, me centrare en leerme un buen libro, y seguro que entonces me enterare mejor de todo.

Un saludo a todos
Atentamente
WiseHidden


Lh: No hagas doble post. Utiliza el botón modificar.


Acabo de hacerle unos pequeños cambios que ami parecer le dan mas tiron y atractivo ala pantalla.

He tenido varios problemas ala hora de "poder poner el color tanto al fondo como al texto"

En muchos sitios (y al decir muchos digo en la mayoria) te dicen que para introducir texto debes poner la libreria:
<conio.h>
y luego seleccionar el color de la siguiente manera.

usando textbackground("color") ...............PARA EL FONDO
textcolor("color")....................................... PARA EL TEXTO

Lo que en muchos sitios no dicen, es que estas "sentencias" son para ciertos IDE o compiladores como es el Borland.

Nota: Si cometo algun error, diganmelo, de hecho no se apenas un carajo, como se dice aqui en mi tierra, pero pongo esto aqui porque ami me ha llevado mucho tiempo dar con el fallo, y me gustaria que todo aquel que por h o por b no haya dado aun con la solucion,pueda guiarse aqui. :D

Cuestion que ciertos compiladores aceptan algunas librerias y comandos que otras no "reconocen" (segun tengo entendido)
y en mi caso tengo el Code::Blocks y para poder poner tanto al fondo como ala letra un color deseado solo debemos poner:

system("color 0a");

Leyenda:

el (primero) en este caso 0 corresponde al fondo.
el (segundo)en este caso a corresponde ala letra.

Me molesto en añadiros una pequeña tabla con los correspondientes numeros/colores:

Citar

0= Negro 8= Gris
1= Azul 9= Azul Claro
2= Verde A= Verde Claro
3= Aguamarina B= Aguamarina Claro
4= Rojo C= Rojo Claro
5= Purpura D= Purpura Claro
6= Amarillo E= Amarillo Claro
7= Blanco F= Blanco Brillante


Tambien he añadido un "Juego" que consiste en descifrar un codigo.
con un numero determinado de vidas e intentos.

PD: Este "programa" lo ha creado Grib Jr. Aunque no tengo el honor de conocerlo, he de dejar constancia de su trabajo.
Yo simplemente me he limitado a hacer copy&paste y hacerle unas pequeñesimas modificaciones como por ejemplo cambiarle el color para que no distorsionara mucho con mi menu.

El programa en si no me ha dado ningun Fallo al compilarlo, pero al introducirlo en mi case no me da error en ese codigo pero si en el case 4 podrian decirme por que??
bueno aqui os dejo el codigo:

Un saludo a todos.

Atentamente

WH

Código
  1. #include<iostream.h>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<conio.h>
  5. #include<time.h>
  6.  
  7.  
  8. using namespace std;
  9.  
  10. void calculadora()
  11. {
  12.  
  13. char operacion;
  14. float op1, op2, resultado=0;
  15. cout<<"Introduce x: ";
  16. cin>>op1;
  17. cout<<"Introduce y: ";
  18. cin>>op2;
  19. cout<<"Introduce la operacion (+,-,*,/): ";
  20. cin>>operacion;
  21. switch(operacion)
  22. {
  23. case '+': resultado=op1+op2;
  24. break;
  25. case '-': resultado=op1-op2;
  26. break;
  27. case '*': resultado=op1*op2;
  28. break;
  29. case '/': resultado=op1/op2;
  30.  
  31. break;
  32. }
  33. cout<<op1<<operacion<<op2<<"="<<resultado<<endl;
  34. }
  35.  
  36.  
  37. int main()
  38. {
  39.  
  40. system("color 2f");
  41.  
  42. int opcion; //DECLARACIÓN DE LA VARIABLE OPCIÓN
  43.  
  44. do{
  45.  
  46.  
  47. cout<<"****************************MENU PRINCIPAL******************************"<<endl;
  48. cout<<"* 1)Editor de Texto *"<<endl;
  49. cout<<"* 2)Calculadora *"<<endl;
  50. cout<<"* 3)Juegos *"<<endl;
  51. cout<<"*----------------------------------------------------------------------*"<<endl;
  52. cout<<"* 4)Ayuda *"<<endl;
  53. cout<<"* 5)Salir *"<<endl;
  54. cout<<"************************************************************************"<<endl;
  55. cout<<" Eliga una Opcion:";
  56. cin>>(opcion);
  57.  
  58. switch (opcion)
  59. {
  60. case 1:
  61. cout<<endl<<"EDITOR DE TEXTO"<<endl;
  62. break;
  63.  
  64. case 2:
  65. cout<<endl<<"CALCULADORA "<<endl;
  66. calculadora();
  67. break;
  68.  
  69. case 3:
  70. cout<<endl<<"JUEGOS "<<endl;
  71. RETRY:
  72. system("color 2f");
  73. int vida=3, hp=3;
  74. int win=1;
  75. int PDC; // Aqui declaro el "posible digito del codigo" que es el valor que ingresara
  76. // el usuario para tratar de asertar a algun digito del codigo
  77.  
  78. int c1,c2,c3,c4,c5,c6,i; // Aqui declaro las variables que equivalen a cada digito en
  79. // el codigo oculto
  80. int a1='*',a2='*',a3='*',a4='*',a5='*',a6='*'; // Aqui los asteriscos (digito a digito)
  81.  
  82. srand(time(NULL)); // Aqui declaro que la semilla de la funcion rand varie por tiempo
  83.  
  84. c1=(rand()%10)+48;
  85. c2=(rand()%10)+48; // Luego aqui las variables anteriormente declaradas toman un valor al
  86. c3=(rand()%10)+48; // azar del 0 al 9 (se preguntaran ¿Por que 48 a 58?, bueno, prueba
  87. c4=(rand()%10)+48; // hacerlo de otro modo, haber si descubres el por que lo ise asi)
  88. c5=(rand()%10)+48;
  89. c6=(rand()%10)+48;
  90.  
  91. INICIO: // Punto de referencia para el "goto" que pondre despues
  92.  
  93. system("cls"); // Limpio la pantalla
  94.  
  95. printf(" DESCIFRA EL CODIGO OCULTO DE 6 DIGITOS, INGRESANDO 1 DIGITO ALA VEZ");
  96. printf(" VIDAS: ");
  97. for(i=1;i<=hp;i++) printf("%c", vida );
  98. printf("xxxx--> %c%c%c%c%c%c <--xxxx--> ", a1,a2,a3,a4,a5,a6); // Los Asteriscos
  99. if (win==1) scanf ("%i", &PDC); // Aqui se escanea el "posible digito del codigo"
  100.  
  101. if (PDC==0)PDC=48;
  102. if (PDC==1)PDC=49;
  103. if (PDC==2)PDC=50;
  104. if (PDC==3)PDC=51;
  105. if (PDC==4)PDC=52; // Una traduccion
  106. if (PDC==5)PDC=53;
  107. if (PDC==6)PDC=54;
  108. if (PDC==7)PDC=55;
  109. if (PDC==8)PDC=56;
  110. if (PDC==9)PDC=57;
  111.  
  112. // Aqui va la sentencia que hara que los asteriscos sean remplazados al ser
  113. // revelada una parte del codigo
  114. if (PDC==c1) a1=c1;
  115. if (PDC==c2) a2=c2;
  116. if (PDC==c3) a3=c3;
  117. if (PDC==c4) a4=c4;
  118. if (PDC==c5) a5=c5;
  119. if (PDC==c6) a6=c6;
  120. if (PDC!=c1&&PDC!=c2&&PDC!=c3&&PDC!=c4&&PDC!=c5&&PDC!=c6)hp--;
  121. if (hp==-1)
  122. {
  123. printf("No te quedan vidas...nn");
  124. system("pause");
  125. goto RETRY;
  126. }
  127.  
  128. if (a1==c1&&a2==c2&&a3==c3&&a4==c4&&a5==c5&&a6==c6) win++;
  129. if (win==3) printf("WINNER <--nn");
  130. else goto INICIO;
  131. system("pause");
  132. system("cls");
  133. printf("Por WisseHidden.");
  134. system("pause");
  135. break;
  136.  
  137. case 4:
  138.  
  139. cout<<" HA SELECCIONADO AYUDA "<<endl;
  140. cout<<" "<<endl;
  141. cout<<"|---------------------------Indice General-------------------------|"<<endl;
  142. cout<<"| |"<<endl;
  143. cout<<"| 1)Editor de Texto |"<<endl;
  144. cout<<"| 2)Calculadora |"<<endl;
  145. cout<<"| 3)Juegos |"<<endl;
  146. cout<<"| 4)Ayuda |"<<endl;
  147. cout<<"| 5)Salir |"<<endl;
  148. cout<<"|_________________________________________________________________ |"<<endl;
  149.  
  150. cout<<"LEYENDA: "<<endl;
  151. cout<<"_________________________________________________________________________"<<endl;
  152. cout<<"1)Editor de texto:"<<endl;
  153. cout<<"Este Programa permite al usuario escribir,editar,cambiar,guardar y borrar"<<endl;
  154. cout<<"Al antojo del susodicho de manera facil y amena"<<endl;
  155. cout<<"_________________________________________________________________________"<<endl;
  156. cout<<"2)Calculadora"<<endl;
  157. cout<<"Una calculadora basica donde se pueden resolver problemas basicos:"<<endl;
  158. cout<<"Donde se puede sumar"<<endl;
  159. cout<<"(a+b=c)"<<endl;
  160. cout<<"Restar"<<endl;
  161. cout<<"(a-b=c) "<<endl;
  162. cout<<"Multiplicar"<<endl;
  163. cout<<"(a*b=c)"<<endl;
  164. cout<<"Dividir"<<endl;
  165. cout<<"(a/b=c)"<<endl;
  166. cout<<"_________________________________________________________________________"<<endl;
  167. cout<<"3)Juegos"<<endl;
  168. cout<<"En nuestro Sistema hemos introducido un par de juegos: "<<endl;
  169. cout<<"_________________________________________________________________________"<<endl;
  170. cout<<"4)Ayuda"<<endl;
  171. cout<<"Esta opcion permite tener una ayuda para los usuarios nuevos en este sistema "<<endl;
  172. cout<<"_________________________________________________________________________"<<endl;
  173. cout<<"5)Salir"<<endl;
  174. cout<<"Con esta opcion saldremos directamente de nuestro sistema "<<endl<<endl;
  175. break;
  176.  
  177. case 5:
  178. cout<<endl<<"Desea salir del sistema [S/N]"<<endl;
  179. break;
  180. }
  181. }while(opcion!=5);
  182.  
  183. return 0;
  184. }


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: winroot en 8 Diciembre 2010, 15:39 pm
Buenas!
Goto está completamente desaconsejado, usar stdio.h en c++....
La entrada sigue teniendo los mismos errores.
http://www.cplusplus.com/doc/tutorial/
Se me pasó esto?
Código:
#include<conio.h>// lee un libro !
Lo más cómico es qe si no me equivoco le haces un include, pero no la utilizas?
No uses system, en la consola a nadie le importa si tiene colores o no, en todo caso si tenés ganas de hacer algo con color usa qt o winapi.
Lee el post lo que no hay que hacer en c/c++ by Littlehorse

Saludos,
:-\


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: WiseHidden en 8 Diciembre 2010, 16:26 pm
Winroot, Winroot, Winroot, agradezco tu "interes" y tu orientacion, creeme que si, de verdad.

Pero ayer creo que explique bien mi razon de porque no me leo un libro de pe a pa para no entender nada, pues por lo menos ami parecer,asi entiendo y comprendo mejor este complejo lenguaje, y una vez que "entienda" un poquito cojere un buen libro y me lo leere detenidamente.

Pero si leere: lo que no hay que hacer en c/c++ by Littlehorse

y apartir de ahora me centrare en leer un libro.

Pero creeme no quiero que mal interpretes mi curiosidad y mi pasividad.

Mientras tanto agradeceria que dejarais "vuestra opinion" De como aprender cada uno a un lado, y aportais de una manera "un poco mas amena" la duda que se tiene, y no te lo tomes a mal, (pues seguire tu consejo) y empezare a leer algun buen libro o tutorial.

PD: No utilizo goto (aun no he podido tener la oportunidad de utilizarlo) pero si te has tomado la molestia de leer el post entero, sabras que he "copiado" el codigo de un autor Gibs. Jr. si mal no recuerdo, y solo he realizado unos minimos cambios.


Atentamente

WiseHidden



Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: ~ Ghost_Networks ~ en 8 Diciembre 2010, 17:37 pm
Yo te diria que leer un libro no te hace daño, por el contrario te haria mucho bien, los libros no muerden a nadie :)


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: winroot en 8 Diciembre 2010, 17:52 pm
Buenas!
Perdoname si fui muy duro en mi respuesta.
El tema es que los libros de c/c++, no son todo teoría, también tienen mucha práctica la mayoría.
Pero, (capas que estoy equivocado ), no vas a aprender nada si vas copiando y pegando código, código que parece mas un c que un c++, y tratando de programar sin siquiera tener cosas básicas como funciones, arrays,estructuras de datos, punteros,clases,etc.
Por lo que mi consejo es que te leas algún libro que sea más o menos reciente, y si quieres ir completando el menú con lo que vas aprendiendo del libro.
El link que te pasé, es un tutorial muy bueno para empezar desde mi punto de vista.
Algo antiguo pero aún de utilidad,
http://www.zator.com/cpp/
Este es en español, y junto con el de conclase, creo que es de lo mejor que anda dando vueltas en la red.
Despues de lo básico?
Thinking in c++,
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html#HTMLFormat
Luego, ya podés pasar a temas mas especiales
[Addison Wesley] Andrei Alexandrescu - Modern C++ Design Generic Programming and Design Patterns Applied
addison wesley - c++ in action - industrial-strength programming techniques
Effective C++ Third Edition 55 Specific Ways to Improve Your Programs and Designs
By Scott Meyers
// lectura obligatoria si piensas estar en un grupo de programadores
C++.Coding.Standards.101.Rules.Guidelines.2004.Addison-Wesley// otro muy bueno
Imperfect C++ Practical Solutions for Real-Life Programming

Y más o menos eso es lo que he leído, aunque creo que no le saqué ni la mitad a esos libros, cada vez que leo alguno aprendo algo distinto.
Claro que, esto es lo que yo hice, lo que no significa que sea lo que tengas que hacer vos ni mucho menos...
En fin, discculpa si te ofendí (no fue mi intención).
Abrazo


Título: Re: Alguien podria orientarme con mi Menu?
Publicado por: WiseHidden en 8 Diciembre 2010, 18:47 pm
Todo lo contrario.
Te estoy muy agradecido.
De hecho seguiré tu consejo, ya he empezado a leer el tuto que me has
Indicado

Mil gracias


Pd: leer no come a nadie!!! Muy bueno, he de decir en mi defensa
Q m encanta leer, de hecho 1 d mis grandes hobby pero me gusta
Leer libros de historia, suspense ect...
Y lo entiendo porque entiendo el castellano pero cuando hojee c++
creí leer japonés jaja pero tenéis razón lo mas lógico para empezar es leer un buen libro o por lo menos un buen tutorial


Gracias

Un saludo

Wh