AYUDA EN PROGRAMA POO

Iniciado por AXELG4205, 22 Febrero 2020, 05:14 AM

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

AXELG4205

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 (cpp) [Seleccionar]
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;

int edad=1;
int salud=100;
int x;

class mascota{
private:
char nombre[25];
int comida;
int inteligencia;
float sum_com;
float sum_int;
public:
void dar_nombre();
void dar_comida();
void dar_agua();
void jugar();
void ver_estadisticas();
void ensenar();
};

void mascota::dar_nombre()
{
cout<<"Dele un nombre a su mascota: "<<endl;
cin>>nombre;
}

void mascota::dar_comida()
{

for(x=0; x==100; x+10)
sum_com= x=20 + 10;
cout<<"Tu mascota tiene "<<sum_com<<" de comida"<<endl;

}

void mascota::dar_agua()
{
cout<<"Dele un nombre a su mascota: "<<endl;

}

void mascota::jugar()
{
cout<<"Dele un nombre a su mascota: "<<endl;

}

void mascota::ver_estadisticas()
{
cout<<"Su mascota tiene:\n|"<<sum_com<<" de comida\n|"<<salud<< " de salud\n|"<<sum_int<<" de inteligencia\n|"<<edad<<" de edad"<<endl;

}
void mascota::ensenar()
{
cout<<"Le ensenas a tu mascota: +5"<<endl;
sum_int= inteligencia=10 + 5;
cout<<"Tu mascota tiene "<<sum_int<<" de inteligencia"<<endl;

}

int main()

{

int res;

mascota m;

cout<<"°°BIENVENIDO A MI JUEGO- AXEL GABRIEL 4205°°"<<endl;
cout<<"MENU:"<<endl;
cout<<"|CREAR MASCOTA: 1\n|SALIR DEL JUEGO: 2"<<endl;
cin>>res;
if(res==1)
{
system("cls");
cout<<"BIENVENIDO AL CREADOR DE MASCOTA :D"<<endl;
m.dar_nombre();
men:
cout<<"|VER ESTADISTICAS: 1\n|DAR DE COMER: 2\n|ENSENAR: 3 "<<endl;
cin>>res;
if(res==1)
{
m.ver_estadisticas();
system("pause");
system("cls");
goto men;
}
if(res==2)
{
m.dar_comida();
system("pause");
system("cls");
goto men;
}
if(res==3)
{
m.ensenar();
system("pause");
system("cls");
goto men;
}
//AQUI SIGUE EL PROGRAMA
}
else
{
cout<<"ADIOS :D"<<endl;//AQUI FINALIZA SI SE ELIGIO NO XD
};

system("pause");
return 0;
};



MOD: Etiqueta GeSHi agregada.

ThunderCls

#1
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 (cpp) [Seleccionar]
for(x=0; x==100; x+10)
sum_com= x=20 + 10;
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 (cpp) [Seleccionar]
// -----------------------------------------------------------------------------
// main.cpp
// -----------------------------------------------------------------------------

#include<iostream>
#include "Mascota.h"

void flush_buffer();

int main()
{
   int respuesta;
   Mascota mascota;

   cout << "BIENVENIDO A MI JUEGO- AXEL GABRIEL 4205" << endl;
   cout << "MENU:" << endl;
   cout << "|CREAR MASCOTA: 1\n|SALIR DEL JUEGO: 2" << endl;
   cin >> respuesta;
   
   if(respuesta == 2)
   {
       cout << "ADIOS :D" << endl;
       return 0;
   }
   
   flush_buffer();
   //system("cls"); // windows
   system("clear"); // unix
   cout << "BIENVENIDO AL CREADOR DE MASCOTA :D" << endl;
   cout << "Dele un nombre a su mascota: ";
   string nombre;
   getline(cin, nombre);
   mascota.dar_nombre(nombre);
   cout << "Su mascota se llama: " << mascota.get_nombre() << endl;
   
   do
   {
       cout << "|VER ESTADISTICAS: 1\n|DAR DE COMER: 2\n|ENSENAR: 3\n|DAR AGUA: 4 \n|SALIR: 0" << endl;
       cin >> respuesta;
       int cantidad = 0;
       switch(respuesta)
       {
           case 1:
               cout << "Su mascota tiene:\n|"
                    << mascota.get_comida() << " de comida\n|"
                    << mascota.get_salud() << " de salud\n|"
                    << mascota.get_inteligencia() << " de inteligencia\n|"
                    << mascota.get_edad() << " de edad" << endl;
           break;
           
        case 2:
           cout << "Cuanto le das de comer a tu mascota: ";
           cin >> cantidad;
           cout << "Le das a tu mascota comida: +" << cantidad << endl;
           mascota.dar_comida(cantidad);
           cout << "Tu mascota tiene " << mascota.get_comida() << " de comida" << endl;
        break;
       
        case 3:
           cout << "Cuanto le ensenas a tu mascota: ";
           cin >> cantidad;
           cout << "Le ensenas a tu mascota: +" << cantidad << endl;
           mascota.ensenar(cantidad);
           cout << "Tu mascota tiene " << mascota.get_inteligencia() << " de inteligencia" << endl;
        break;
       
        case 4:
           cout << "Cuanto le das de agua a tu mascota: ";
           cin >> cantidad;
           cout << "Le das a tu mascota agua: +" << cantidad << endl;
           mascota.dar_agua(cantidad);
           cout << "Tu mascota tiene " << mascota.get_agua() << " de agua" << endl;
        break;
       
        default:
        break;
    }
   
    flush_buffer();
    getchar();
   } while(respuesta != 0);

return 0;
}

void flush_buffer()
{
   string buff;
   getline(cin, buff);
}



Código (cpp) [Seleccionar]
// -----------------------------------------------------------------------------
// Mascota.h
// -----------------------------------------------------------------------------
#include <string>
#include<stdlib.h>

using namespace std;

class Mascota
{
   const int LIMITE_NECESIDADES = 100;
   const int LIMITE_SALUD = 100;
   
   private:
       string nombre;
       int edad;
       int agua;
       int comida;
       int salud;
       int inteligencia;

   public:
       Mascota();
       void dar_nombre(string nombre);
       void dar_comida(int cantidad);
       void dar_agua(int cantidad);
       void ensenar(int cantidad);

       string get_nombre();
       int get_edad();
       int get_agua();
       int get_comida();
       int get_inteligencia();
       int get_salud();
};



Código (cpp) [Seleccionar]
// -----------------------------------------------------------------------------
// Mascota.cpp
// -----------------------------------------------------------------------------
#include "Mascota.h"
#include <stdio.h>

using namespace std;

Mascota::Mascota()
{
   nombre = "";
   edad = 1;
   agua = LIMITE_NECESIDADES;
   comida = LIMITE_NECESIDADES;
   inteligencia = 0;
   salud = LIMITE_SALUD;
}

string Mascota::get_nombre()
{
   return nombre;    
}

int Mascota::get_edad()
{
   return edad;    
}

int Mascota::get_agua()
{
   return agua;    
}

int Mascota::get_comida()
{
   return comida;    
}

int Mascota::get_inteligencia()
{
   return inteligencia;    
}

int Mascota::get_salud()
{
   return salud;    
}

void Mascota::dar_nombre(string pnombre)
{
   nombre.assign(pnombre);
}

void Mascota::dar_comida(int porcion_comida)
{
    comida = (comida + porcion_comida <= LIMITE_NECESIDADES) ?
                    comida + porcion_comida :
                    LIMITE_NECESIDADES;
}

void Mascota::dar_agua(int porcion_agua)
{
    agua = (agua + porcion_agua <= LIMITE_NECESIDADES) ?
                agua + porcion_agua :
                LIMITE_NECESIDADES;
}

void Mascota::ensenar(int porcion_inteli)
{
    inteligencia = (inteligencia + porcion_inteli <= LIMITE_NECESIDADES) ?
                  inteligencia + porcion_inteli :
                  LIMITE_NECESIDADES;
}
-[ "...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/