- HOMBRE. De tipo char, estático y constante (público).
- MUJER. De tipo char, estático y constante (público).
- nombre. De tipo String (público).
- edad. De tipo entero (público).
- sexo. De tipo char (público).
- dni. De tipo long (público).
public class Ficha {
public static final char HOMBRE = 'H';
public static final char MUJER = 'M';
public String nombre;
public int edad;
public char sexo;
public long dni; //sin letra
}
Realizar un programa para probar la clase anterior que pida los datos de varias fichas (utilizando una tabla de Ficha) al usuario. Además, el programa tendrá dos funciones estáticas:
- ordenar(Ficha[] f). Recibe una tabla de objetos Ficha y la ordena por edad.
- mostrar(Ficha f). Muestra los datos que contiene el objeto Ficha que recibe.
public class PruebaFicha {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
Ficha[] f = new Ficha[3];
String aux;
int pos;
for (pos=0; pos<f.length; pos++){
System.out.println("FICHA "+(pos+1));
f[pos] = new Ficha();
System.out.print("Nombre: ");
f[pos].nombre = entrada.nextLine();
System.out.print("Edad: ");
f[pos].edad = entrada.nextInt();
System.out.print("DNI: ");
f[pos].dni = entrada.nextLong();
entrada.nextLine();
System.out.print("Sexo (H/M): ");
aux = entrada.nextLine();
if(aux.equals("H"))
f[pos].sexo=Ficha.HOMBRE;
else
f[pos].sexo=Ficha.MUJER;
}
ordenar(f);
System.out.println();
for (pos=0; pos<f.length; pos++){
mostrar(f[pos]);
}
}
public static void ordenar(Ficha[] f) {
int ini, fin, i;
boolean intercambio;
Ficha aux; //no hace falta iniciarlo
ini=0;
fin=f.length - 1;
intercambio = true;
while (ini<fin & intercambio){
intercambio=false;
for(i=ini; i<fin; i++){
if (f[i].edad > f[i+1].edad){
aux = f[i];
f[i] = f[i+1];
f[i+1] = aux;
intercambio = true;
}
}
fin--;
if (intercambio){
intercambio = false;
for(i=fin-1; i>=ini; i--){
if (f[i].edad > f[i+1].edad){
aux = f[i];
f[i] = f[i+1];
f[i+1] = aux;
intercambio = true;
}
}
}
i++;
}
}
public static void mostrar(Ficha f1) {
System.out.print("Nombre: "+f1.nombre);
System.out.println();
System.out.print("Edad: "+f1.edad);
System.out.println();
System.out.print("DNI: "+f1.dni);
System.out.println();
if (f1.sexo == Ficha.MUJER)
System.out.print("Sexo: MUJER");
else
System.out.print("Sexo: HOMBRE");
System.out.println();
System.out.println();
}
}
No hay comentarios:
Publicar un comentario