Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Phantasy en 22 Abril 2013, 12:06 pm



Título: Ejercicio Java
Publicado por: Phantasy en 22 Abril 2013, 12:06 pm
Hola muy buenas, estoy iniciandome en el mundo de Java y estoy haciendo los ejercicios de un libro. Necesito ayuda sobre un ejercicio concreto que no me sale y funciona con objetos. Dejo el enunciado.

Enunciado:

   Escribe un programa que pida los datos de los cuatro miembros de una familia. Los datos que nos interesa de cada uno de ellos son: nombre, direccion y edad.

   La direccion de todos los miembros de la familia sera siempre la misma. Con lo cual, este dato solo se pedira una vez y se cambia la direccion de un familiar, esto tendra que afectar al resto de la familia.

   Visualiza los datos de cada uno de los miembros de la familia.

   Posteriormente, la familia cambia de direccion, con lo cual, el programa pedira esa nueva direccion.

   Vuelve a visualizar los datos de todos los miembros de la familia con el fin de comprobar el cambio de direccion ha afectado a todos los miembros. POr ultimo, se visualizara la media de edad de dicha familia.



Codigo de las clases:

   Clase:

   
Código
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package ejercicio;
  6. import java.io.*;
  7.  
  8. /**
  9.  *
  10.  * @author ivan.urrea
  11.  */
  12. public class Clase {
  13.  
  14.    String nombre, direccion, direccion_nueva, introducir;
  15.    int edad, media;
  16.    int i = 0;
  17.  
  18.       String pedirCadena(){
  19.  
  20.       String cadena="";
  21.       InputStreamReader flujo = new InputStreamReader(System.in);
  22.       BufferedReader teclado = new BufferedReader(flujo);
  23.       try
  24.       {
  25.  
  26.           cadena = teclado.readLine();
  27.  
  28.       }
  29.  
  30.       catch (IOException e){
  31.  
  32.           System.out.println("Ha habido un error en la entrada de datos");
  33.  
  34.       }
  35.  
  36.       return cadena;
  37.  
  38.   }
  39.  
  40.    void pedirDatos(){
  41.  
  42.        while(i==0){
  43.  
  44.            pedirDireccion();
  45.            i++;
  46.        }
  47.  
  48.        pedirNombre();
  49.        pedirEdad();
  50.  
  51.        while(i==4){
  52.  
  53.        System.out.println("\n\n¿DESEA INTRODUCIR UNA NUEVA DIRECCION? SI o NO");
  54.        introducir = pedirCadena();
  55.  
  56.            if(introducir == "SI" || introducir == "si"){
  57.  
  58.            nuevosDatos();
  59.  
  60.            }
  61.        }
  62.       i++;
  63.  
  64.    }
  65.  
  66.   void pedirNombre() {
  67.  
  68.       System.out.println("\tInserte el nombre: ");
  69.       nombre = pedirCadena();
  70.  
  71.   }
  72.  
  73.   void pedirDireccion(){
  74.  
  75.       System.out.println("\tInserte la direccion: ");
  76.       direccion = pedirCadena();
  77.  
  78.   }
  79.  
  80.   void pedirEdad(){
  81.  
  82.      System.out.println("\tInserte una edad: ");
  83.      String linea = System.console().readLine();
  84.      edad = Integer.parseInt(linea);
  85.  
  86.   }
  87.  
  88.   void nuevosDatos(){
  89.  
  90.       System.out.println("\tInserte la direccion: ");
  91.       direccion_nueva = pedirCadena();
  92.       visualizarTodo();
  93.  
  94.   }
  95.  
  96.   void visualizarTodo(){
  97.  
  98.       System.out.println("\tDIRECCION DE TODA LA FAMILIA " +direccion);
  99.       System.out.println("\tNOMBRE: " + nombre);
  100.       System.out.println("\tEDAD: " + edad);
  101.  
  102.   }
  103.  
  104.   void visualizarMedia(){
  105.  
  106.       media = edad/4;
  107.       System.out.println("\tMEDIA " + media);  
  108.  
  109.   }
  110.  
  111. }
  112.  

   Principal:

Código
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package ejercicio;
  6. import java.io.*;
  7.  
  8. /**
  9.  *
  10.  * @author ivan.urrea
  11.  */
  12. public class Principal {
  13.  
  14.    /**
  15.      * @param args the command line arguments
  16.      */
  17.    public static void main(String[] args) throws IOException
  18.    {
  19.        // TODO code application logic here
  20.  
  21.       Clase clase1, clase2, clase3, clase4;
  22.  
  23.       clase1 = new Clase();
  24.       clase2 = new Clase();
  25.       clase3 = new Clase();
  26.       clase4 = new Clase();
  27.  
  28.       System.out.println("\n\nVAMOS A PEDIR LOS DATOS DE LA PERSONA 1: ");
  29.       clase1.pedirDatos();
  30.       System.out.println("\n\nVAMOS A PEDIR LOS DATOS DE LA PERSONA 2: ");
  31.       clase2.pedirDatos();
  32.       System.out.println("\n\nVAMOS A PEDIR LOS DATOS DE LA PERSONA 3: ");
  33.       clase3.pedirDatos();
  34.       System.out.println("\n\nVAMOS A PEDIR LOS DATOS DE LA PERSONA 4: ");
  35.       clase4.pedirDatos();
  36.  
  37.    }
  38.  
  39.    static void visualizarTodo(Clase clase1,Clase clase2,Clase clase3,Clase clase4){
  40.  
  41.        System.out.println("\n\nVAMOS A VISUALIZAR LOS DATOS DE LA PERSONA 1: ");
  42.        clase1.visualizarTodo();
  43.        System.out.println("\n\nVAMOS A VISUALIZAR LOS DATOS DE LA PERSONA 2: ");
  44.        clase2.visualizarTodo();
  45.        System.out.println("\n\nVAMOS A VISUALIZAR LOS DATOS DE LA PERSONA 3: ");
  46.        clase3.visualizarTodo();
  47.        System.out.println("\n\nVAMOS A VISUALIZAR LOS DATOS DE LA PERSONA 4: ");
  48.        clase4.visualizarTodo();
  49.  
  50.    }
  51.  
  52.    static void visualizarMedia(){
  53.  
  54.        visualizarMedia();
  55.  
  56.    }
  57.  
  58. }
  59.  


Título: Re: Ejercicio Java
Publicado por: Debci en 23 Abril 2013, 09:09 am
Se bienvenido al foro de Java de elhacker.net!
F.A.Q. (http://foro.elhacker.net/java/faqentry_point_sources_guias_manuales_tutoriales_y_demas-t298215.0.html)
Como no hacer un post en Java! (http://foro.elhacker.net/java/como_no_hacer_un_post_sobre_la_tematica_de_java-t298980.0.html)

Respecto a tu duda (aunque no has preguntado nada :P), te recomiendo que te mires el tema de entrada y salida básica con Java. Suponiendo que no vayas ha utilizar interfaz gráfica en tu programa, AWT o Swing, encontrarás todo en las clases System.in y System.out. Si no sabes de qué estoy hablando, te recomiendo que mires entonces declaración y uso de variables.

Es un ejercicio sencillo, no tendrás demasiados problemas para solventarlo :)

Qué es lo que no sabes hacer exactamente?

Un saludo, compañero!