- 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