Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Asking4java

#1
Java / Re: Ayuda con programa java
23 Febrero 2018, 12:29 PM
Gracias, al final conseguí solucionarlo. Implemente algunas ideas que me dejaste y añadí nuevas cosas y conseguí realizarlo.
#2
Java / Ayuda con programa java
1 Febrero 2018, 14:31 PM
Buenas tengo un problema con un programa en java.

El programa solo tiene que pedirme datos de una persona y de las otras 2 personas generarlas aleatoriamente, pero en vez de eso, solo me rellena los datos de la persona que he introducido los datos y las otras 2 los deja o vacíos o copia los datos introducidos por mi.

¿Qué tendría que cambiar para que genere los datos de la persona1 y persona2 aleatoriamente?

Archivo principal:
Código (java) [Seleccionar]
package ejercicio1;

public class Ejercicio1 {

public static void main(String[] args) {


// Definimos variables y constantes
final int SOBREPESO = 1;
final int INFRAPESO = -1;
final int PESOIDEAL = 0;

Entrada entrada= new Entrada();

String nombre;
int edad;
String sexo;
float peso;
float altura;

// Obtenemos datos de la persona
System.out.println("Obtencion de datos");
System.out.println("------------------");
nombre = entrada.obtenerString("Dame el nombre de la persona:");
edad = entrada.obtenerEntero("Dame la edad de " + nombre);
sexo = entrada.obtenerString("Dime el sexo de " + nombre);
peso = entrada.obtenerFloat("Dime el peso de " + nombre);
altura = entrada.obtenerFloat("Dame la altura para " + nombre);

// Creamos las personas con los distintos constructores
System.out.println("\nCreando las personas");
System.out.println("--------------------");
Persona p1 = new Persona();
System.out.println("Persona 1 creada!");
Persona p2 = new Persona(nombre, edad, sexo);
System.out.println("Persona 2 creada!");
Persona p3 = new Persona(nombre, edad, sexo, peso, altura);
System.out.println("Persona 3 creada!");

//Mostramos la relacion de peso
System.out.println("\nMostrando relacion de pesos");
System.out.println("---------------------------");
System.out.print("El peso de la persona 1 es: ");

switch (p1.calcularIMC()) {

case SOBREPESO:
System.out.println("SOBREPESO");
break;
case INFRAPESO:
System.out.println("INFRAPESO");
break;
case PESOIDEAL:
System.out.println("PESOIDEAL");
break;
}

System.out.print("El peso de la persona 2 es: ");

switch (p2.calcularIMC()) {

case SOBREPESO:
System.out.println("SOBREPESO");
break;
case INFRAPESO:
System.out.println("INFRAPESO");
break;
case PESOIDEAL:
System.out.println("PESOIDEAL");
break;

}

System.out.print("El peso de la persona 3 es: ");

switch (p3.calcularIMC()) {

case SOBREPESO:
System.out.println("SOBREPESO");
break;
case INFRAPESO:
System.out.println("INFRAPESO");
break;
case PESOIDEAL:
System.out.println("PESOIDEAL");
break;

}

// Mostramos la mayoria de edad
System.out.println("\nMostrando mayorias de edad");
System.out.println("--------------------------");
System.out.println("La persona 1 es: " + (p1.esMayorDeEdad() ? "Mayor de edad" : "Menor de edad"));
System.out.println("La persona 2 es: " + (p2.esMayorDeEdad() ? "Mayor de edad" : "Menor de edad"));
System.out.println("La persona 3 es: " + (p3.esMayorDeEdad() ? "Mayor de edad" : "Menor de edad"));

// Mostramos todos los datos con el metodo toString() que ha sido Override
System.out.println("\nMostrando todos los datos");
System.out.println("-------------------------");
System.out.println(p1.toString());
System.out.println(p2.toString());
System.out.println(p3.toString());
}

}


Entrada:
Código (java) [Seleccionar]
package ejercicio1;

import java.util.Scanner;

public class Entrada {

private Scanner entrada = new Scanner(System.in);

public int obtenerEntero(String msg) {
boolean loop = true;
int valor=0;
String teclado;

do {
try {
System.out.println(msg);
teclado = entrada.nextLine();
valor = Integer.parseInt(teclado);
loop = false;
} catch (Exception e) {
System.out.println("El valor introducido debe ser un numero entero!!!");
}
} while (loop);
return valor;
}

public float obtenerFloat(String msg) {
boolean loop = true;
float valor=0;
String teclado;

do {
try {
System.out.println(msg);
teclado = entrada.nextLine();
valor = Float.parseFloat(teclado);
loop = false;
} catch (Exception e) {
System.out.println("El valor introducido debe ser un numero decimal!!!");
}
} while (loop);
return valor;
}

public String obtenerString(String msg) {
System.out.println(msg);
return entrada.nextLine();
}

public char obtenerChar(String msg) {
System.out.println(msg);
return entrada.nextLine().charAt(0);
}

}


Persona:
Código (java) [Seleccionar]
package ejercicio1;

public class Persona {

private final static char DEFAULT_SEX = 'H';

private final static int SOBREPESO = 1;
private final static int INFRAPESO = -1;
private final static int PESOIDEAL = 0;

private String nombre;
private int edad;
private int DNI;
private char letraDNI;
private char sexo;
private float peso;
private float altura;

public Persona(){
nombre = "";
edad = 0;
DNI = generaDNI();
letraDNI= generaLetraDNI();
sexo = DEFAULT_SEX;
peso = 0;
altura = 0;
}

public Persona(String nombre,int edad,String sexo){
this.nombre = nombre;
this.edad = edad;
DNI = generaDNI();
letraDNI = generaLetraDNI();
this.sexo = comprobarSexo(sexo.charAt(0));
peso = 0;
altura = 0;
}

public Persona(String nombre,int edad,String sexo, float peso, float altura){
this.nombre = nombre;
this.edad = edad;
this.DNI = generaDNI();
letraDNI = generaLetraDNI();
this.sexo = comprobarSexo(sexo.charAt(0));
this.peso = peso;
this.altura = altura;
}

public int calcularIMC(){
float imc = this.peso/(int)Math.pow(this.altura/100,2);
if (imc>=25) return SOBREPESO;
else if (imc<18.5) return INFRAPESO;
else return PESOIDEAL;
}

public boolean esMayorDeEdad(){
return (this.edad>=18) ? true : false ;
}

public String toString(){

return "Los datos de la persona son:\n" +
"Nombre: " + this.nombre + "\n" +
"Edad: " + this.edad + "\n" +
"DNI : " + this.DNI + "-" + this.letraDNI + "\n" +
"Sexo: " + ( (this.sexo=='H') ? "Hombre":"Mujer" ) + "\n" +
"Peso: " + this.peso + "\n" +
"Altura: " + this.altura + "\n";
}

private char comprobarSexo(char sexo){
if(sexo=='M' || sexo=='m') return 'M';
else return 'H';
}

private int generaDNI(){
return (int)(Math.random()*100000000);
}

private char generaLetraDNI(){
String letras = "TRWAGMYFPDXBNJZSQVHLCKE";
return letras.charAt(this.DNI%23);
}

}


Espero que puedan ayudarme.

Un saludo.