elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  AYUDA EN PROGRAMA POO
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA EN PROGRAMA POO  (Leído 2,809 veces)
AXELG4205

Desconectado Desconectado

Mensajes: 1


Ver Perfil
AYUDA EN PROGRAMA POO
« en: 22 Febrero 2020, 05:14 am »

QUIERO HACER QUE EN MI PROGRAMA CADA VEZ QUE EL USUARIO SELECCIONE LA OPCIÓN SE VAYAN SUMANDO DE 10 EN 10 HASTA LLEGAR A CIERTO LIMITE AL DARLE COMIDA EN EL MÉTODO DAR_COMIDA

Código
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. using namespace std;
  5.  
  6. int edad=1;
  7. int salud=100;
  8. int x;
  9.  
  10. class mascota{
  11. private:
  12. char nombre[25];
  13. int comida;
  14. int inteligencia;
  15. float sum_com;
  16. float sum_int;
  17. public:
  18. void dar_nombre();
  19. void dar_comida();
  20. void dar_agua();
  21. void jugar();
  22. void ver_estadisticas();
  23. void ensenar();
  24. };
  25.  
  26. void mascota::dar_nombre()
  27. {
  28. cout<<"Dele un nombre a su mascota: "<<endl;
  29. cin>>nombre;
  30. }
  31.  
  32. void mascota::dar_comida()
  33. {
  34.  
  35. for(x=0; x==100; x+10)
  36. sum_com= x=20 + 10;
  37. cout<<"Tu mascota tiene "<<sum_com<<" de comida"<<endl;
  38.  
  39. }
  40.  
  41. void mascota::dar_agua()
  42. {
  43. cout<<"Dele un nombre a su mascota: "<<endl;
  44.  
  45. }
  46.  
  47. void mascota::jugar()
  48. {
  49. cout<<"Dele un nombre a su mascota: "<<endl;
  50.  
  51. }
  52.  
  53. void mascota::ver_estadisticas()
  54. {
  55. cout<<"Su mascota tiene:\n|"<<sum_com<<" de comida\n|"<<salud<< " de salud\n|"<<sum_int<<" de inteligencia\n|"<<edad<<" de edad"<<endl;
  56.  
  57. }
  58. void mascota::ensenar()
  59. {
  60. cout<<"Le ensenas a tu mascota: +5"<<endl;
  61. sum_int= inteligencia=10 + 5;
  62. cout<<"Tu mascota tiene "<<sum_int<<" de inteligencia"<<endl;
  63.  
  64. }
  65.  
  66. int main()
  67.  
  68. {
  69.  
  70. int res;
  71.  
  72. mascota m;
  73.  
  74. cout<<"°°BIENVENIDO A MI JUEGO- AXEL GABRIEL 4205°°"<<endl;
  75. cout<<"MENU:"<<endl;
  76. cout<<"|CREAR MASCOTA: 1\n|SALIR DEL JUEGO: 2"<<endl;
  77. cin>>res;
  78. if(res==1)
  79. {
  80. system("cls");
  81. cout<<"BIENVENIDO AL CREADOR DE MASCOTA :D"<<endl;
  82. m.dar_nombre();
  83. men:
  84. cout<<"|VER ESTADISTICAS: 1\n|DAR DE COMER: 2\n|ENSENAR: 3 "<<endl;
  85. cin>>res;
  86. if(res==1)
  87. {
  88. m.ver_estadisticas();
  89. system("pause");
  90. system("cls");
  91. goto men;
  92. }
  93. if(res==2)
  94. {
  95. m.dar_comida();
  96. system("pause");
  97. system("cls");
  98. goto men;
  99. }
  100. if(res==3)
  101. {
  102. m.ensenar();
  103. system("pause");
  104. system("cls");
  105. goto men;
  106. }
  107. //AQUI SIGUE EL PROGRAMA
  108. }
  109. else
  110. {
  111. cout<<"ADIOS :D"<<endl;//AQUI FINALIZA SI SE ELIGIO NO XD
  112. };
  113.  
  114. system("pause");
  115. return 0;
  116. };


MOD: Etiqueta GeSHi agregada.


« Última modificación: 22 Febrero 2020, 05:27 am por MCKSys Argentina » En línea

ThunderCls


Desconectado Desconectado

Mensajes: 455


Coder | Reverser | Gamer


Ver Perfil WWW
Re: AYUDA EN PROGRAMA POO
« Respuesta #1 en: 24 Febrero 2020, 23:15 pm »

Necesitas aprender muchos conceptos fundamentales de la POO y de las buenas practicas de programacion en general, si de verdad quieres aprender deberias buscar y estudiar bastante material, por otra parte si solo quieres que te hagan la tarea y pasar la materia puedes ignorar este y el resto de consejos

1- Deberias separar tu codigo de clases de tu main
2- Por convencion la declaracion de la clase debe estar en un fichero .h y la definicion en un fichero .cpp
3- Debes leer acerca de conceptos de POO como la encapsulacion por ejemplo
4- Estas usando C++ por lo tanto evita a toda costa el tratamiento de bajo nivel de un arreglo de chars para manipular cadenas, usa std::string en su lugar
5- Evita las variables globales a toda costa
6- Necesitas separar la manipulacion de la interfaz de la logica de tu clase. Puedes leerte algo de patrones de diseño (por ejemplo MVC)
7- Jamas utilices etiquetas+goto
8- Tienes varios errores logicos y de conceptos en todo el codigo como por ejemplo:

Código
  1. for(x=0; x==100; x+10)
  2. sum_com= x=20 + 10;
  3. cout<<"Tu mascota tiene "<<sum_com<<" de comida"<<endl;

Que crees tu que haga ese codigo? Porque estoy seguro que no es lo que piensas.

9- Evita el uso de literales en tu codigo, utiliza constantes en su lugar
10- Aprende a usar un depurador
BONUS: Se considera de muy mala educacion escribir todo en mayusculas en lugares publicos. El tamaño del texto no influye en las respuestas que pueda obtener tu hilo o en el enfasis que quieras añadirle a tu tema

Y bueno, como no tenia nada mejor que hacer aqui te dejo un ejemplo de como abordar los comentarios anteriores.


Código
  1. // -----------------------------------------------------------------------------
  2. // main.cpp
  3. // -----------------------------------------------------------------------------
  4.  
  5. #include<iostream>
  6. #include "Mascota.h"
  7.  
  8. void flush_buffer();
  9.  
  10. int main()
  11. {
  12.    int respuesta;
  13.    Mascota mascota;
  14.  
  15.    cout << "BIENVENIDO A MI JUEGO- AXEL GABRIEL 4205" << endl;
  16.    cout << "MENU:" << endl;
  17.    cout << "|CREAR MASCOTA: 1\n|SALIR DEL JUEGO: 2" << endl;
  18.    cin >> respuesta;
  19.  
  20.    if(respuesta == 2)
  21.    {
  22.        cout << "ADIOS :D" << endl;
  23.        return 0;
  24.    }
  25.  
  26.    flush_buffer();
  27.    //system("cls"); // windows
  28.    system("clear"); // unix
  29.    cout << "BIENVENIDO AL CREADOR DE MASCOTA :D" << endl;
  30.    cout << "Dele un nombre a su mascota: ";
  31.    string nombre;
  32.    getline(cin, nombre);
  33.    mascota.dar_nombre(nombre);
  34.    cout << "Su mascota se llama: " << mascota.get_nombre() << endl;
  35.  
  36.    do
  37.    {
  38.        cout << "|VER ESTADISTICAS: 1\n|DAR DE COMER: 2\n|ENSENAR: 3\n|DAR AGUA: 4 \n|SALIR: 0" << endl;
  39.        cin >> respuesta;
  40.        int cantidad = 0;
  41.        switch(respuesta)
  42.        {
  43.            case 1:
  44.                cout << "Su mascota tiene:\n|"
  45.                     << mascota.get_comida() << " de comida\n|"
  46.                     << mascota.get_salud() << " de salud\n|"
  47.                     << mascota.get_inteligencia() << " de inteligencia\n|"
  48.                     << mascota.get_edad() << " de edad" << endl;
  49.            break;
  50.  
  51.         case 2:
  52.            cout << "Cuanto le das de comer a tu mascota: ";
  53.            cin >> cantidad;
  54.            cout << "Le das a tu mascota comida: +" << cantidad << endl;
  55.            mascota.dar_comida(cantidad);
  56.            cout << "Tu mascota tiene " << mascota.get_comida() << " de comida" << endl;
  57.         break;
  58.  
  59.         case 3:
  60.            cout << "Cuanto le ensenas a tu mascota: ";
  61.            cin >> cantidad;
  62.            cout << "Le ensenas a tu mascota: +" << cantidad << endl;
  63.            mascota.ensenar(cantidad);
  64.            cout << "Tu mascota tiene " << mascota.get_inteligencia() << " de inteligencia" << endl;
  65.         break;
  66.  
  67.         case 4:
  68.            cout << "Cuanto le das de agua a tu mascota: ";
  69.            cin >> cantidad;
  70.            cout << "Le das a tu mascota agua: +" << cantidad << endl;
  71.            mascota.dar_agua(cantidad);
  72.            cout << "Tu mascota tiene " << mascota.get_agua() << " de agua" << endl;
  73.         break;
  74.  
  75.         default:
  76.         break;
  77.     }
  78.  
  79.     flush_buffer();
  80.     getchar();
  81.    } while(respuesta != 0);
  82.  
  83. return 0;
  84. }
  85.  
  86. void flush_buffer()
  87. {
  88.    string buff;
  89.    getline(cin, buff);
  90. }


Código
  1. // -----------------------------------------------------------------------------
  2. // Mascota.h
  3. // -----------------------------------------------------------------------------
  4. #include <string>
  5. #include<stdlib.h>
  6.  
  7. using namespace std;
  8.  
  9. class Mascota
  10. {
  11.    const int LIMITE_NECESIDADES = 100;
  12.    const int LIMITE_SALUD = 100;
  13.  
  14.    private:
  15.        string nombre;
  16.        int edad;
  17.        int agua;
  18.        int comida;
  19.        int salud;
  20.        int inteligencia;
  21.  
  22.    public:
  23.        Mascota();
  24.        void dar_nombre(string nombre);
  25.        void dar_comida(int cantidad);
  26.        void dar_agua(int cantidad);
  27.        void ensenar(int cantidad);
  28.  
  29.        string get_nombre();
  30.        int get_edad();
  31.        int get_agua();
  32.        int get_comida();
  33.        int get_inteligencia();
  34.        int get_salud();
  35. };


Código
  1. // -----------------------------------------------------------------------------
  2. // Mascota.cpp
  3. // -----------------------------------------------------------------------------
  4. #include "Mascota.h"
  5. #include <stdio.h>
  6.  
  7. using namespace std;
  8.  
  9. Mascota::Mascota()
  10. {
  11.    nombre = "";
  12.    edad = 1;
  13.    agua = LIMITE_NECESIDADES;
  14.    comida = LIMITE_NECESIDADES;
  15.    inteligencia = 0;
  16.    salud = LIMITE_SALUD;
  17. }
  18.  
  19. string Mascota::get_nombre()
  20. {
  21.    return nombre;    
  22. }
  23.  
  24. int Mascota::get_edad()
  25. {
  26.    return edad;    
  27. }
  28.  
  29. int Mascota::get_agua()
  30. {
  31.    return agua;    
  32. }
  33.  
  34. int Mascota::get_comida()
  35. {
  36.    return comida;    
  37. }
  38.  
  39. int Mascota::get_inteligencia()
  40. {
  41.    return inteligencia;    
  42. }
  43.  
  44. int Mascota::get_salud()
  45. {
  46.    return salud;    
  47. }
  48.  
  49. void Mascota::dar_nombre(string pnombre)
  50. {
  51.    nombre.assign(pnombre);
  52. }
  53.  
  54. void Mascota::dar_comida(int porcion_comida)
  55. {
  56.    comida = (comida + porcion_comida <= LIMITE_NECESIDADES) ?
  57.                    comida + porcion_comida :
  58.                    LIMITE_NECESIDADES;
  59. }
  60.  
  61. void Mascota::dar_agua(int porcion_agua)
  62. {
  63.    agua = (agua + porcion_agua <= LIMITE_NECESIDADES) ?
  64.                agua + porcion_agua :
  65.                LIMITE_NECESIDADES;
  66. }
  67.  
  68. void Mascota::ensenar(int porcion_inteli)
  69. {
  70.    inteligencia = (inteligencia + porcion_inteli <= LIMITE_NECESIDADES) ?
  71.                  inteligencia + porcion_inteli :
  72.                  LIMITE_NECESIDADES;
  73. }


« Última modificación: 24 Febrero 2020, 23:22 pm por ThunderCls » En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines