1) Haz una clase llamada Persona que siga las siguientes condiciones:
Sus atributos son: nombre, edad, DNI, sexo (H hombre, M mujer), peso y altura. No queremos que se accedan directamente a ellos. Piensa que modificador de acceso es el más adecuado, también su tipo. Si quieres añadir algún atributo puedes hacerlo.
Por defecto, todos los atributos menos el DNI serán valores por defecto según su tipo (0 números, cadena vacía para String, etc.). Sexo sera hombre por defecto, usa una constante para ello.
Se implantaran varios constructores:
Un constructor por defecto.
Un constructor con el nombre, edad y sexo, el resto por defecto.
Un constructor con todos los atributos como parámetro.
Los métodos que se implementaran son:
calcularIMC(): calculara si la persona esta en su peso ideal (peso en kg/(altura^2 en m)), devuelve un -1 si esta por debajo de su peso ideal, un 0 si esta en su peso ideal y un 1 si tiene sobrepeso .Te recomiendo que uses constantes para devolver estos valores.
esMayorDeEdad(): indica si es mayor de edad, devuelve un booleano.
comprobarSexo(char sexo): comprueba que el sexo introducido es correcto. Si no es correcto, sera H. No sera visible al exterior.
toString(): devuelve toda la información del objeto.
generaDNI(): genera un numero aleatorio de 8 cifras, genera a partir de este su número su letra correspondiente. Este método sera invocado cuando se construya el objeto. Puedes dividir el método para que te sea más fácil. No será visible al exterior.
Métodos set de cada parámetro, excepto de DNI.
Ahora, crea una clase ejecutable que haga lo siguiente:
Pide por teclado el nombre, la edad, sexo, peso y altura.
Crea 3 objetos de la clase anterior, el primer objeto obtendrá las anteriores variables pedidas por teclado, el segundo objeto obtendrá todos los anteriores menos el peso y la altura y el último por defecto,para este último utiliza los métodos set para darle a los atributos un valor.to,
Para cada objeto, deberá comprobar si esta en su peso ideal, tiene sobrepeso o por debajo de su peso ideal con un mensaje.
Indicar para cada objeto si es mayor de edad.
Por último, mostrar la información de cada objeto.
Puedes usar métodos en la clase ejecutable, para que os sea mas fácil.
los problemas se hacerlos son faciles pero no entiendo algunas cosas que dice el ejercicio:
Los que estan en rojo, es lo que no entiendo, osea no comprendo que hay que hacer
Pongo el código que yo tengo hecho por si acaso, tengo la clase PERSONA, y la clase Program
Program --> tiene el método Main, es decir Program hace de clase ejecutable(clase ejecutable esta en el ejercicio, pero yo le cambie el nombre a Program)
Persona:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EjercicioClase
{
class Persona
{
string nombre;
int edad;
string DNI = "34830958";
const string sexo = "H";
int peso;
double altura;
public Persona (char sexo)
{
comprobarSexo(sexo);
}
public Persona(string nombre,int edad,string sexo)
{
esMayorDeEdad(edad);
}
public Persona(string nombre,int edad,string sexo,int peso,double altura)
{
calcularIMC(peso, altura);
esMayorDeEdad(edad);
}
public static void calcularIMC(int peso,double altura)
{
double calcularPeso;
calcularPeso = peso/(altura * altura) ;
if(calcularPeso < 18)
{
calcularPeso = -1;
}
if (calcularPeso >= 18 && calcularPeso <= 24.9)
{
calcularPeso = 0;
}
if(calcularPeso == -1)
{
Console.WriteLine("Tienes muy poco peso para tu estatura");
}
if (calcularPeso == 0)
{
Console.WriteLine("Tienes peso normal para tu estatura");
}
else
{
Console.WriteLine("Tienes mucho peso para tu estatura");
}
}
public void esMayorDeEdad(int edad)
{
bool mayor;
if (edad >= 18)
{
mayor = true;
}
else
{
mayor = false;
}
Console.WriteLine("Soy mayor?: "+mayor);
}
private void comprobarSexo(char sexo)
{
if(sexo != 'H' || sexo != 'M')
{
sexo = 'H';
}
Console.WriteLine(sexo);
}
public void toString()
{
}
private static void generaDNI()
{
int DNI;
int resultadoA;
int resultadoB;
int resultado;
string[] letras = new string[23] {"T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"};
Random r = new Random();
DNI = r.Next(99999999);
resultadoA = DNI / 23;
resultadoB = resultadoA * 23;
resultado = DNI - resultadoB;
Console.WriteLine(DNI + "-" + letras[resultado]);
}
}
}
Program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EjercicioClase
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Nombre:");
string nombre = Console.ReadLine();
Console.WriteLine("Edad:");
int edad = int.Parse(Console.ReadLine());
Console.WriteLine("sexo:");
string sexo = Console.ReadLine();
Console.WriteLine("peso:");
int peso = int.Parse(Console.ReadLine());
Console.WriteLine("altura:");
double altura = double.Parse(Console.ReadLine());
Persona objeto1 = new Persona(nombre, edad, sexo, peso, altura);
Persona objeto2 = new Persona(nombre, edad, sexo);
}
}
}
Es decir, todavía no esta completo,todavía falta lo rojo