Foros del Web » Programación para mayores de 30 ;) » Java »

Constructores y Arrays

Estas en el tema de Constructores y Arrays en el foro de Java en Foros del Web. bueno les cuento que soy un novato en java y me pidieron hacer el siguiente ejercicio: construir estas 2 clases... @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código JAVA: Ver ...
  #1 (permalink)  
Antiguo 06/11/2010, 19:59
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 8 meses
Puntos: 0
Constructores y Arrays

bueno les cuento que soy un novato en java y me pidieron hacer el siguiente ejercicio: construir estas 2 clases...

Código JAVA:
Ver original
  1. import java.util.Scanner;
  2.  
  3. public class Deportista
  4. {
  5.     private String nombres;
  6.     private String apellidos;
  7.     private double estatura;
  8.     private int peso;
  9.     private boolean sexo;
  10.     private String genero;
  11.    
  12.     Deportista(String losNombres,String losApellidos)
  13.    {
  14.        nombres=losNombres;
  15.        apellidos=losApellidos;
  16.    }
  17.    
  18.    Deportista(String losNombres,String losApellidos,double laEstatura,int elPeso,boolean elSexo)
  19.    {
  20.        nombres=losNombres;
  21.        apellidos=losApellidos;
  22.        estatura=laEstatura;
  23.        peso=elPeso;
  24.        sexo=elSexo;
  25.     }
  26.    
  27.    public void setNombres()
  28.     {
  29.       Scanner name;
  30.       String temp;
  31.      
  32.       System.out.print("Ingrese los nuevos nombres: ");
  33.       name = new Scanner(System.in);
  34.       temp=name.next();
  35.       nombres=temp;
  36.     }
  37.    
  38.     public void setApellidos()
  39.     {
  40.       Scanner last_name;
  41.       String temp;
  42.      
  43.       System.out.print("Ingrese los nuevos apellidos: ");
  44.       last_name = new Scanner(System.in);
  45.       temp=last_name.next();
  46.       apellidos=temp;
  47.     }
  48.    
  49.     public void setEstatura()
  50.     {
  51.       Scanner stature;
  52.       String temp;
  53.      
  54.       System.out.print("Ingrese la nueva estatura (mts): ");
  55.       stature = new Scanner(System.in);
  56.       temp=stature.next();
  57.       estatura=Double.parseDouble(temp);
  58.     }
  59.    
  60.     public void setPeso()
  61.     {
  62.       Scanner weight;
  63.       String temp;
  64.      
  65.       System.out.print("Ingrese el nuevo peso (kgs): ");
  66.       weight = new Scanner(System.in);
  67.       temp=weight.next();
  68.       peso=Integer.parseInt(temp);
  69.     }
  70.    
  71.     public void setSexo()
  72.     {
  73.       Scanner gender;
  74.       String temp;
  75.      
  76.       System.out.print("Ingrese el nuevo sexo: ");
  77.       gender = new Scanner(System.in);
  78.       temp=gender.next();
  79.         if(temp.equals("masculino")){
  80.             sexo=true;
  81.             genero="masculino";
  82.         }
  83.           else{
  84.                 if(temp.equals("femenino")){
  85.                   sexo=false;
  86.                   genero="femenino";
  87.                 }
  88.           }
  89.          
  90.     }
  91.    
  92.     public String getNombres()
  93.     {
  94.         return nombres;
  95.     }
  96.    
  97.     public String getApellidos()
  98.     {
  99.         return apellidos;
  100.     }
  101.    
  102.     public double getEstatura()
  103.     {
  104.         return estatura;
  105.     }
  106.    
  107.     public int getPeso()
  108.     {
  109.         return peso;
  110.     }
  111.    
  112.     public String getSexo()
  113.     {
  114.         return genero;
  115.     }
  116.    
  117.     public void mostrarTodo()
  118.     {
  119.         System.out.print("Nombres: "+getNombres()+"\nApellidos: "+getApellidos()+"\nEstatura: "+getEstatura()+" mts\nPeso: "+getPeso()+" kgs\nSexo: "+getSexo());
  120.     }
  121. }

Código JAVA:
Ver original
  1. import java.util.Scanner;
  2.  
  3. public class Atleta extends Deportista
  4. {
  5.    private int edad;
  6.    private float record;
  7.    private String nacionalidad;
  8.    
  9.    Atleta(String losNombres,String losApellidos,int laEdad,float elRecord,String laNacionalidad)
  10.    {
  11.        super(losNombres,losApellidos);
  12.        edad=laEdad;
  13.        record=elRecord;
  14.        nacionalidad=laNacionalidad;
  15.    }
  16.    
  17.    Atleta(String losNombres,String losApellidos,double laEstatura,int elPeso,boolean elSexo,int laEdad,float elRecord,String laNacionalidad)
  18.    {
  19.        super(losNombres,losApellidos,laEstatura,elPeso,elSexo);
  20.        edad=laEdad;
  21.        record=elRecord;
  22.        nacionalidad=laNacionalidad;
  23.    }
  24.    
  25.     public void setEdad()
  26.     {
  27.       Scanner age;
  28.       String temp;
  29.      
  30.       System.out.print("Ingrese la nueva edad: ");
  31.       age = new Scanner(System.in);
  32.       temp=age.next();
  33.       edad=Integer.parseInt(temp);
  34.     }
  35.    
  36.     public void setRecord()
  37.     {
  38.       Scanner tiempo;
  39.       String temp;
  40.      
  41.       System.out.print("Ingrese el nuevo record (segundos): ");
  42.       tiempo = new Scanner(System.in);
  43.       temp=tiempo.next();
  44.       record=Float.parseFloat(temp);
  45.     }
  46.    
  47.     public void setNacionalidad()
  48.     {
  49.       Scanner nationality;
  50.       String temp;
  51.      
  52.       System.out.print("Ingrese la nueva nacionalidad: ");
  53.       nationality = new Scanner(System.in);
  54.       temp=nationality.next();
  55.       nacionalidad=temp;
  56.     }
  57.    
  58.     public int getEdad()
  59.     {
  60.         return edad;
  61.     }
  62.    
  63.     public float getRecord()
  64.     {
  65.         return record;
  66.     }
  67.    
  68.     public String getNacionalidad()
  69.     {
  70.         return nacionalidad;
  71.     }
  72.    
  73.     public void mostrar()
  74.     {
  75.         System.out.print("Edad: "+getEdad()+"\nRecord: "+getRecord()+"\nNacionalidad: "+getNacionalidad());
  76.     }
  77. }

y una clase adicional a modo de menu.
y lo que estoy tratando de hacer en este menu
es de guardar los datos en un constructor de la clase Atleta
pero el tema es que queria crear un array de 5 posiciones para guardar 5 registros. el problema es que no se si esto es posible. Lo intente de esta manera
pero no se que estare haciendo mal porque no puedo crearlo.

Código Java:
Ver original
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.io.IOException;
  4.  
  5. public class Menu
  6. {
  7.    //private String datos[] = new String[50];
  8.    //private int indice = 0;
  9.  
  10.    public static void crear_atleta()throws IOException
  11.     {
  12.        Atleta datos[];
  13.        datos = new Atleta[5];
  14.        int indice = 0;
  15.        
  16.        BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));    
  17.        System.out.print("Ingrese los nombres: ");
  18.        String losNombres=teclado.readLine();
  19.        System.out.print("Ingrese los apellidos: ");
  20.        String losApellidos=teclado.readLine();
  21.        System.out.print("Ingrese la estatura: ");
  22.        double laEstatura=Double.parseDouble(teclado.readLine());
  23.        System.out.print("Ingrese el peso (kgs): ");
  24.        int elPeso=Integer.parseInt(teclado.readLine());
  25.        System.out.print("Ingrese el sexo: ");
  26.        boolean elSexo=Boolean.parseBoolean(teclado.readLine());
  27.        System.out.print("Ingrese la edad: ");
  28.        int laEdad=Integer.parseInt(teclado.readLine());
  29.        System.out.print("Ingrese el record (segundos): ");
  30.        float elRecord=Float.parseFloat(teclado.readLine());
  31.        System.out.print("Ingrese la nacionalidad: ");
  32.        String laNacionalidad=teclado.readLine();
  33.        
  34.         Atleta persona = new Atleta(losNombres,losApellidos,laEstatura,elPeso,elSexo,laEdad,elRecord,laNacionalidad);
  35.        indice++;
  36.        /*BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));    
  37.        System.out.print("Ingrese los nombres: ");
  38.        String losNombres=teclado.readLine();
  39.        System.out.print("Ingrese los apellidos: ");
  40.        String losApellidos=teclado.readLine();
  41.        System.out.print("Ingrese la estatura: ");
  42.        double laEstatura=Double.parseDouble(teclado.readLine());
  43.        System.out.print("Ingrese el peso (kgs): ");
  44.        int elPeso=Integer.parseInt(teclado.readLine());
  45.        System.out.print("Ingrese el sexo: ");
  46.        boolean elSexo=Boolean.parseBoolean(teclado.readLine());
  47.        System.out.print("Ingrese la edad: ");
  48.        int laEdad=Integer.parseInt(teclado.readLine());
  49.        System.out.print("Ingrese el record (segundos): ");
  50.        float elRecord=Float.parseFloat(teclado.readLine());
  51.        System.out.print("Ingrese la nacionalidad: ");
  52.        String laNacionalidad=teclado.readLine();*/
  53.        
  54.         //Atleta persona = new Atleta(losNombres,losApellidos,laEstatura,elPeso,elSexo,laEdad,elRecord,laNacionalidad);
  55.            try {
  56.                Thread.sleep(2500);
  57.                } catch (InterruptedException e) {
  58.                 e.printStackTrace();
  59.             }
  60.         menu();
  61.     }
  62.  
  63.     public static void menu()throws IOException
  64.     {
  65.         int opc;
  66.        
  67.         BufferedReader opcion=new BufferedReader(new InputStreamReader(System.in));
  68.         System.out.print("\n\n\n\t\t\t\tMenu\n\n");
  69.         System.out.print("1.- Crear atleta\n2.- Mostrar atleta\n3.- Modificar peso atleta\n4.- Modificar record atleta\n5.- Modificar edad atleta\n6.- Salir");
  70.         System.out.println("\n\nIngrese su opcion: ");
  71.         opc=Integer.parseInt(opcion.readLine());
  72.        
  73.             if(opc<1||opc>6){
  74.                     System.out.println("Error!!!\nIngrese una opcion valida\n");
  75.                     menu();
  76.             }
  77.            
  78.         switch (opc){
  79.             case 1:
  80.                crear_atleta();
  81.                break;
  82.             case 2:
  83.            
  84.                break;
  85.             case 3:
  86.                
  87.                break;
  88.             case 4:
  89.                
  90.                break;
  91.             case 5:
  92.                
  93.                break;
  94.             case 6:
  95.                System.exit(0);
  96.                break;
  97.             default:
  98.                System.out.println("Vuelva a intentar");
  99.                break;
  100.         }    
  101.     }
  102.    
  103.    
  104. }

yo lo que se de java es muy poco por eso les pido que por favor me ayuden.
espero haberme hecho entender
de antemano gracias.
  #2 (permalink)  
Antiguo 07/11/2010, 01:19
Avatar de leocente  
Fecha de Ingreso: diciembre-2009
Mensajes: 62
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Constructores y Arrays

Hola, bueno si es posible guardar 5 objetos en un 1 Vector. Tendrias que hacer un pequeña modificacion en tu clase Menu mas precisamente en el metodo crear_atleta().

Código Java:
Ver original
  1. public static void crear_atleta()throws IOException
  2.     {
  3.         Atleta datos[];
  4.         datos = new Atleta[5];
  5.         int indice = 0;
  6.        
  7.         while (indice<datos.length)
  8.         {
  9.             BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));
  10.             System.out.print("Ingrese los nombres: ");
  11.             String losNombres=teclado.readLine();
  12.             System.out.print("Ingrese los apellidos: ");
  13.             String losApellidos=teclado.readLine();
  14.             System.out.print("Ingrese la estatura: ");
  15.             double laEstatura=Double.parseDouble(teclado.readLine());
  16.             System.out.print("Ingrese el peso (kgs): ");
  17.             int elPeso=Integer.parseInt(teclado.readLine());
  18.             System.out.print("Ingrese el sexo: ");
  19.             boolean elSexo=Boolean.parseBoolean(teclado.readLine());
  20.             System.out.print("Ingrese la edad: ");
  21.             int laEdad=Integer.parseInt(teclado.readLine());
  22.             System.out.print("Ingrese el record (segundos): ");
  23.             float elRecord=Float.parseFloat(teclado.readLine());
  24.             System.out.print("Ingrese la nacionalidad: ");
  25.             String laNacionalidad=teclado.readLine();
  26.             System.out.println();
  27.            
  28.             datos[indice]= new Atleta(losNombres,losApellidos,laEstatura,elPeso,elSexo,laEdad,elRecord,laNacionalidad);
  29.             indice++;
  30.         }
  31.        
  32.         try {
  33.             Thread.sleep(2500);
  34.         }
  35.         catch (InterruptedException e) {
  36.             e.printStackTrace();
  37.         }
  38.         menu();
  39.     }

Lo demas no sé muy bien lo que hace, confio en vos que este bien ja!
Lo que si te puedo decir Que es eso de que los contructores de la clase Deportista y Atleta no estan definidos!

Acordate que los contructores de las clases son public NombreClase (Y si hay algun parametro se ingresa, sino no)

Y tambien acordate que en la clase donde esta el metodo principal (Main) tenes que crear una referencia a un objeto de la clase Menu para crear atletas, asi:
Código Java:
Ver original
  1. public static void  main (String[]args)throws IOException{
  2.           Menu m=new Menu();
  3.           m.crear_Atleta();
  4.          }


Suerte Maquina! estoy pendiente a tu tema
  #3 (permalink)  
Antiguo 07/11/2010, 11:51
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Constructores y Arrays

gracias leocente por tu pronta respuesta
he intentado lo que me propusiste y al parecer funciona
pero cree otro metodo que deberia mostrar todos los datos del vector (mostrar_atletas())...

Código Java:
Ver original
  1. mport java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.io.IOException;
  4.  
  5. public class Menu
  6. {
  7.     public Atleta datos[];
  8.     int indice = 0;
  9.    
  10.    public void crear_atleta()throws IOException
  11.     {
  12.         datos = new Atleta[5];
  13.         int espacios = 5;
  14.        
  15.             while (indice<datos.length)
  16.             {
  17.                 BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));
  18.                 System.out.print("Quedan "+espacios+" espacios.\n");
  19.                 System.out.print("Ingrese los datos que se requeriran a continuacion:\n");
  20.                 System.out.print("Ingrese los nombres: ");
  21.                 String losNombres=teclado.readLine();
  22.                 System.out.print("Ingrese los apellidos: ");
  23.                 String losApellidos=teclado.readLine();
  24.                 System.out.print("Ingrese la estatura (mts): ");
  25.                 double laEstatura=Double.parseDouble(teclado.readLine());
  26.                 System.out.print("Ingrese el peso (kgs): ");
  27.                 int elPeso=Integer.parseInt(teclado.readLine());
  28.                 System.out.print("Ingrese el sexo: ");
  29.                 boolean elSexo=Boolean.parseBoolean(teclado.readLine());
  30.                 System.out.print("Ingrese la edad: ");
  31.                 int laEdad=Integer.parseInt(teclado.readLine());
  32.                 System.out.print("Ingrese el record (segundos): ");
  33.                 float elRecord=Float.parseFloat(teclado.readLine());
  34.                 System.out.print("Ingrese la nacionalidad: ");
  35.                 String laNacionalidad=teclado.readLine();
  36.                 System.out.println();
  37.            
  38.                 datos[indice] = new Atleta(losNombres,losApellidos,laEstatura,elPeso,elSexo,laEdad,elRecord,laNacionalidad);
  39.                 indice++;
  40.                 espacios--;
  41.             }
  42.        System.out.print("Se ha llenado la memoria con el limite de registros.\nVolviendo al menu principal...");
  43.        try {
  44.        Thread.sleep(2500);
  45.        } catch (InterruptedException e) {
  46.        e.printStackTrace();
  47.        }
  48.        menu();
  49.     }
  50.  
  51.     public void mostrar_atletas()throws IOException
  52.     {
  53.         int i;
  54.            
  55.             for(i=0;i<indice;i++)
  56.             {
  57.                 System.out.println("\nNombres: "+datos[i].losNombres);
  58.                 System.out.println("\nApellidos: "+datos[i].losApellidos);
  59.                 System.out.println("\nEstatura (mts): "+datos[i].laEstatura);
  60.                 System.out.println("\nPeso (kgs): "+datos[i].elPeso);
  61.                 System.out.println("\nSexo: "+datos[i].elSexo);
  62.                 System.out.println("\nEdad: "+datos[i].laEdad);
  63.                 System.out.println("\nRecord (segundos): "+datos[i].elRecord);
  64.                 System.out.println("\nNacionalidad: "+datos[i].laNacionalidad);
  65.             }
  66.            try {
  67.                Thread.sleep(5000);
  68.                } catch (InterruptedException e) {
  69.                 e.printStackTrace();
  70.             }
  71.         menu();
  72.     }
  73.    
  74.     public void menu()throws IOException
  75.     {
  76.         int opc;
  77.         int control=0;
  78.        
  79.         BufferedReader opcion=new BufferedReader(new InputStreamReader(System.in));
  80.         System.out.print("\n\n\n\t\t\t\tMenu\n\n");
  81.         System.out.print("1.- Crear atletas\n2.- Mostrar atletas\n3.- Modificar peso atleta\n4.- Modificar record atleta\n5.- Modificar edad atleta\n6.- Salir");
  82.         System.out.println("\n\nIngrese su opcion: ");
  83.         opc=Integer.parseInt(opcion.readLine());
  84.        
  85.             if(opc<1||opc>6){
  86.                     System.out.println("Error!!!\nIngrese una opcion valida\n");
  87.                     menu();
  88.             }
  89.            
  90.         switch (opc){
  91.             case 1:
  92.                 crear_atleta();  
  93.                break;
  94.             case 2:
  95.                 mostrar_atletas();
  96.                break;
  97.             case 3:
  98.                
  99.                break;
  100.             case 4:
  101.                
  102.                break;
  103.             case 5:
  104.                
  105.                break;
  106.             case 6:
  107.                System.exit(0);
  108.                break;
  109.             default:
  110.                System.out.println("Vuelva a intentar");
  111.                break;
  112.         }    
  113.     }
  114.    
  115.    
  116. }

pero me el compilador me lanza un error diciendo que no encuentra las variables: losNombres, losApellidos, laEstaura, etc
no se que estare haciendo mal ahora.
una vez mas gracias
  #4 (permalink)  
Antiguo 07/11/2010, 16:11
Avatar de leocente  
Fecha de Ingreso: diciembre-2009
Mensajes: 62
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Constructores y Arrays

Cita:
Iniciado por AndresFomeyko Ver Mensaje
gracias leocente por tu pronta respuesta
he intentado lo que me propusiste y al parecer funciona
pero cree otro metodo que deberia mostrar todos los datos del vector (mostrar_atletas())...

Código Java:
Ver original
  1. mport java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.io.IOException;
  4.  
  5. public class Menu
  6. {
  7.     public Atleta datos[];
  8.     int indice = 0;
  9.    
  10.    public void crear_atleta()throws IOException
  11.     {
  12.         datos = new Atleta[5];
  13.         int espacios = 5;
  14.        
  15.             while (indice<datos.length)
  16.             {
  17.                 BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));
  18.                 System.out.print("Quedan "+espacios+" espacios.\n");
  19.                 System.out.print("Ingrese los datos que se requeriran a continuacion:\n");
  20.                 System.out.print("Ingrese los nombres: ");
  21.                 String losNombres=teclado.readLine();
  22.                 System.out.print("Ingrese los apellidos: ");
  23.                 String losApellidos=teclado.readLine();
  24.                 System.out.print("Ingrese la estatura (mts): ");
  25.                 double laEstatura=Double.parseDouble(teclado.readLine());
  26.                 System.out.print("Ingrese el peso (kgs): ");
  27.                 int elPeso=Integer.parseInt(teclado.readLine());
  28.                 System.out.print("Ingrese el sexo: ");
  29.                 boolean elSexo=Boolean.parseBoolean(teclado.readLine());
  30.                 System.out.print("Ingrese la edad: ");
  31.                 int laEdad=Integer.parseInt(teclado.readLine());
  32.                 System.out.print("Ingrese el record (segundos): ");
  33.                 float elRecord=Float.parseFloat(teclado.readLine());
  34.                 System.out.print("Ingrese la nacionalidad: ");
  35.                 String laNacionalidad=teclado.readLine();
  36.                 System.out.println();
  37.            
  38.                 datos[indice] = new Atleta(losNombres,losApellidos,laEstatura,elPeso,elSexo,laEdad,elRecord,laNacionalidad);
  39.                 indice++;
  40.                 espacios--;
  41.             }
  42.        System.out.print("Se ha llenado la memoria con el limite de registros.\nVolviendo al menu principal...");
  43.        try {
  44.        Thread.sleep(2500);
  45.        } catch (InterruptedException e) {
  46.        e.printStackTrace();
  47.        }
  48.        menu();
  49.     }
  50.  
  51.     public void mostrar_atletas()throws IOException
  52.     {
  53.         int i;
  54.            
  55.             for(i=0;i<indice;i++)
  56.             {
  57.                 System.out.println("\nNombres: "+datos[i].losNombres);
  58.                 System.out.println("\nApellidos: "+datos[i].losApellidos);
  59.                 System.out.println("\nEstatura (mts): "+datos[i].laEstatura);
  60.                 System.out.println("\nPeso (kgs): "+datos[i].elPeso);
  61.                 System.out.println("\nSexo: "+datos[i].elSexo);
  62.                 System.out.println("\nEdad: "+datos[i].laEdad);
  63.                 System.out.println("\nRecord (segundos): "+datos[i].elRecord);
  64.                 System.out.println("\nNacionalidad: "+datos[i].laNacionalidad);
  65.             }
  66.            try {
  67.                Thread.sleep(5000);
  68.                } catch (InterruptedException e) {
  69.                 e.printStackTrace();
  70.             }
  71.         menu();
  72.     }
  73.    
  74.     public void menu()throws IOException
  75.     {
  76.         int opc;
  77.         int control=0;
  78.        
  79.         BufferedReader opcion=new BufferedReader(new InputStreamReader(System.in));
  80.         System.out.print("\n\n\n\t\t\t\tMenu\n\n");
  81.         System.out.print("1.- Crear atletas\n2.- Mostrar atletas\n3.- Modificar peso atleta\n4.- Modificar record atleta\n5.- Modificar edad atleta\n6.- Salir");
  82.         System.out.println("\n\nIngrese su opcion: ");
  83.         opc=Integer.parseInt(opcion.readLine());
  84.        
  85.             if(opc<1||opc>6){
  86.                     System.out.println("Error!!!\nIngrese una opcion valida\n");
  87.                     menu();
  88.             }
  89.            
  90.         switch (opc){
  91.             case 1:
  92.                 crear_atleta();  
  93.                break;
  94.             case 2:
  95.                 mostrar_atletas();
  96.                break;
  97.             case 3:
  98.                
  99.                break;
  100.             case 4:
  101.                
  102.                break;
  103.             case 5:
  104.                
  105.                break;
  106.             case 6:
  107.                System.exit(0);
  108.                break;
  109.             default:
  110.                System.out.println("Vuelva a intentar");
  111.                break;
  112.         }    
  113.     }
  114.    
  115.    
  116. }

pero me el compilador me lanza un error diciendo que no encuentra las variables: losNombres, losApellidos, laEstaura, etc
no se que estare haciendo mal ahora.
una vez mas gracias


lo que pasa es cuando tratas de retornar el nombre y demas vos haces:

datos[i].losNombres y como esos atributos (losNombres, losApellidos ,etc) NO existen dentro del metodo "mostrar_atleta" nunca los va a reconocer. Esas varibales SOLO EXISTEN dentro de tu metodo "crear_atleta" ya que es en ese metodo donde las declarastes, y por eso actuan como variables locales del metodo "crear_atleta"

La forma correcta de retornar los nombres, apellidos, edad y demas de los atletas seria:

dato[i].getNombres();
dato[i].getApellidos();
.
.
etc


Nos vemos! avisa si era eso!
  #5 (permalink)  
Antiguo 07/11/2010, 17:28
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Constructores y Arrays

funciono!!!

muchas gracias leocento

disculpa que abuse de tu buena voluntad leocento
pero me podrias explicar como puedo hacer un metodo que cuando yo ingrese por teclado el nombre junto con el apellido busque en el vector el registro y me muestre todos sus datos

gracias
  #6 (permalink)  
Antiguo 09/11/2010, 22:15
Avatar de leocente  
Fecha de Ingreso: diciembre-2009
Mensajes: 62
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Constructores y Arrays

Gracias! lo que mas me gusta es ayudar mientras pueda!

Bueno, mira desarrolle este codigo sin checarlo en java pero confio y creo que esta bien.
Código Java:
Ver original
  1. public void mostrarAtleta(String nom){
  2.        
  3.         String[]aux=nom.split(" ");
  4.         boolean bol=true;
  5.         for (int i=0;(i<datos.length) && (bol);i++){
  6.            
  7.             if(datos[i].getNombres().equalsIgnoreCase(aux[0]) || datos[i].getNombres().equalsIgnoreCase(aux[1])){
  8.                
  9.                 if(datos[i].getApellidos().equalsIgnoreCase(aux[0]) || datos[i].getApellidos().equalsIgnoreCase(aux[1])){
  10.                    
  11.                     System.out.println("\nNombres: "+datos[i].getNombres());
  12.                     System.out.println("\nApellidos: "+datos[i].getApellidos());
  13.                     System.out.println("\nEstatura (mts): "+datos[i].getEstatura());
  14.                     System.out.println("\nPeso (kgs): "+datos[i].getPeso());
  15.                     System.out.println("\nSexo: "+datos[i].getSexo());
  16.                     System.out.println("\nEdad: "+datos[i].getEdad());
  17.                     System.out.println("\nRecord (segundos): "+datos[i].getRecord());
  18.                     System.out.println("\nNacionalidad: "+datos[i].getNacionalidad());
  19.                    
  20.                     bol=false;
  21.                 }
  22.             }
  23.         }
  24.         if (bol)
  25.             System.out.println("El Atleta no Esta registrado!")
  26. };

Lo que hace es:

-Entra por parametro el nombre completo, ej: "Arturo Torres" y lo que hace el Split es separar esas dos palabras y almacernarlas como elementos de un array de tipo String.
Asi, aux[0] seria Arturo y aux[1] seria Torres

-Y despues recorre todo los nombres y apellidos hasta que coincidan estos dos, cuando los encuentra, Imprime la info y bol se vuelve en false para que termine la ejecucion del bucle.
En caso de que Coincida solo el nombre o apellido es como si el atleta no estuviera.

-Y al final del codigo, si bol es true significa que no encontro en el registro a nadie con ese nombre y apellido.

Vos en el case pones "Ingrese el nombre completo del Atleta que quiere buscar..."
y de ahi llamas a este metodo con el parametro que leiste recien!


Saludos! avisame si te sirvio que sino no voy a poder dormir!

Etiquetas: arrays
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:23.