Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. // clase de hijo
  2.  
  3. public class Hijo {
  4. private String nombre;
  5. private String edad;
  6.  
  7. public Hijo(String nombre,String edad){
  8. this.nombre = nombre;
  9. this.edad = edad;
  10. }
  11.  
  12. public String obtenerEdad(){return edad;}
  13.  
  14. public String toString(){
  15. return "NOMBRE " + nombre + "\n" +
  16. "EDAD " + edad;
  17. }
  18. }
  19. // clase para cada familia
  20. public class Familia {
  21. private Hijo[] hijos;
  22.  
  23. public Familia(int nroDeHijos){
  24. hijos = new Hijo[nroDeHijos];
  25. }
  26.  
  27. private boolean posicionEsValida(int pos){
  28. return pos >= 0 && pos < hijos.length;
  29. }
  30.  
  31. public void agregarHijo(Hijo hijoNuevo, int posicion){
  32. if(!posicionEsValida(posicion)){System.out.println("error! posicion invalida \n");return;}
  33. else{hijos[posicion] = hijoNuevo;}
  34. }
  35. public double promedioDeEdadesDeHijos(){
  36. double totalDeEdades = 0.0;
  37. for(int hijo = 0; hijo < hijos.length; ++hijo)
  38. totalDeEdades += Double.parseDouble(hijos[hijo].obtenerEdad());
  39. return totalDeEdades / hijos.length;
  40. }
  41. public void mostrarDatosDeHijos(){
  42. for(int hijo = 0; hijo < hijos.length; ++hijo){
  43. System.out.printf("%s \n\n",hijos[hijo].toString());
  44. }
  45. }
  46.  
  47. public int nroDeHijos(){
  48. return hijos.length;
  49. }
  50. }
  51. // clases para calcular los promedios
  52. import javax.swing.JOptionPane;
  53.  
  54. public class CensoDeEdades {
  55. private static int NRO_DE_FAMILIAS = 5;
  56. private Familia[] familias;
  57.  
  58. public CensoDeEdades(){
  59. familias = new Familia[NRO_DE_FAMILIAS];
  60. empezarSenso();
  61. }
  62. private Hijo crearHijo(int hijo){
  63. return new Hijo(JOptionPane.showInputDialog(
  64. "INGRESE DATOS PARA HIJO # "+ hijo +"\n"+
  65. "NOMBRE"),JOptionPane.showInputDialog("EDAD"));
  66. }
  67. private void reportarHijosPorFamilia(Familia familia){
  68. int nroDeHijosEnFamilia = familia.nroDeHijos();
  69. for(int hijo = 0; hijo < nroDeHijosEnFamilia; ++hijo)
  70. familia.agregarHijo(crearHijo(hijo + 1), hijo);
  71. }
  72.  
  73. private int numeroDehijos(int familia){
  74. return Integer.parseInt(JOptionPane.showInputDialog("INGRESE NRO DE HIJOS PARA FAMILIA # " + familia));
  75. }
  76. private void empezarSenso(){
  77. for(int familia = 0; familia < NRO_DE_FAMILIAS; ++familia){
  78. familias[familia] = new Familia(numeroDehijos(familia + 1));
  79. reportarHijosPorFamilia(familias[familia]);
  80. }
  81. }
  82.  
  83. public void mostrarPromediTotalDeEdades(){
  84. double sumaDePromediosPorFamilia = 0.0;
  85. for(int familia = 0; familia < familias.length; ++familia)
  86. sumaDePromediosPorFamilia += familias[familia].promedioDeEdadesDeHijos();
  87. System.out.format("PROMEDIO DE EDAD DE HIJOS DE TODAS LAS FAMILIAS DE MONTERRREY -----> %.2f",sumaDePromediosPorFamilia);
  88. }
  89.  
  90. public void mostrarPromedioDeEdadesPorFamilia(){
  91. for(int familia = 0; familia < familias.length; ++familia){
  92. System.out.printf("PROMEDIO DE FAMILIA # %d %s %.2f \n\n",
  93. familia + 1,"---->", familias[familia].promedioDeEdadesDeHijos());
  94. }
  95. }
  96. }
  97. //clase de prueba
  98. ublic class PruebaDeCensoDeEdadoesEnMonterrey {
  99. public static void main(String[] args){
  100. CensoDeEdades censoDeMonterrey = new CensoDeEdades();
  101. System.out.println("\tPROMEDIO TOTAL DE EDADES DE HIJOS DE CADA FAMILIAS\n"
  102. + "=============================================================================\n");
  103. censoDeMonterrey.mostrarPromedioDeEdadesPorFamilia();
  104. System.out.println("\tPROMEDIO TOTAL DE EDADES DE HIJOS DE LAS FAMILIAS DE MONTERREY\n"
  105. + "=============================================================================\n");
  106. censoDeMonterrey.mostrarPromediTotalDeEdades();
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement