• Viernes 8 de Noviembre de 2024, 20:35

Autor Tema:  Introducir un registro nuevo en un vector de registros  (Leído 1479 veces)

Hispasat88

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Introducir un registro nuevo en un vector de registros
« en: Miércoles 7 de Enero de 2009, 11:36 »
0
Hola a todos,

En un ejercicio me piden que creado un registro, lo introduzca en un vector de registros, y si la posicion del vector esta ocupada, busque una posicion que no lo este. Seria como para crear un agenda para el movil y despues buscar segun algunos criterios dentro del registro. Ya he implementado el registro y el vector de registros de la siguiente manera:

registroContacto[] vectorAgenda;//Creo el vector agenda donde iran los contactos
      vectorAgenda=new registroContacto[50];//Creo el vector de registros
      for(i=0;i<vectorAgenda.length;i++){
         vectorAgenda=new registroContacto();//Inicializo cada registro

Solo me falta el metodo para una vez relleno el registro con los datos, meterlo dentro del vector.

Gracias de antemano.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Introducir un registro nuevo en un vector de registros
« Respuesta #1 en: Miércoles 7 de Enero de 2009, 12:07 »
0
Cita de: "Hispasat88"
vectorAgenda=new registroContacto();
Aquí ya creas un registro dentro del vectorAgenda, sólo tienes que rellenarlo con vectorAgenda.*, es decir, por ejemplo:

Código: Java
  1.  
  2. vectorAgenda[i].insertar_nombre("Alberto");
  3. vectorAgenda[i].insertar_telefono("600000000");
  4.  
  5.  

Salud

Hispasat88

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Introducir un registro nuevo en un vector de registros
« Respuesta #2 en: Jueves 8 de Enero de 2009, 13:10 »
0
El problema viene dado porque el ejercicio es de una agenda para un movil, y es muy basico, es decir no puedo utilizar clases util, etc, entonces yo creo un registro con los datos del nuevo contacto fuera del vector, y luego quiero que, recorra todo el vector y cuando vea un hueco libro asigne ese registro, de tal manera que vaya ocupando espacios.

Gracias por todo,
Un saludo

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Introducir un registro nuevo en un vector de registros
« Respuesta #3 en: Jueves 8 de Enero de 2009, 13:15 »
0
Cita de: "Hispasat88"
y luego quiero que, recorra todo el vector y cuando vea un hueco libro asigne ese registro
Entonces no debes inicializar el vector con objetos, sino con un valor de vacío, o bien añadirle un valor que indique si esa posición está libre o no (lo puedes hacer con otro vector de booleanos, por ejemplo).

Salud

Hispasat88

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Introducir un registro nuevo en un vector de registros
« Respuesta #4 en: Viernes 9 de Enero de 2009, 13:45 »
0
He creado este bucle, para que cuando encuentre un registro vacio en el vector sea asignado al registro creado. Decir que tienen como tu decias todos los registros inicializados. Aqui dejo el bucle por si le hace falta a alguien:
Código: Text
  1.  
  2.  
  3. for(n=0;n<=49;n++){
  4.      if(vectorAgenda[n].movil==0){
  5.             vectorAgenda[n]=R;
  6.         break;//Sale del for al haber encontrado un hueco libre y haber asignado ya el registro creado.
  7.      }
  8. }
  9.  
  10.  
  11.  

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Introducir un registro nuevo en un vector de registros
« Respuesta #5 en: Viernes 9 de Enero de 2009, 15:47 »
0
Código: Text
  1. vectorAgenda[n].movil==0
  2.  
Vale, has usado el miembro movil para controlar si está ocupado o no. Me parece bien. Un consejo: intenta encapsular los miembros de una clase usando métodos que comprueban la validez de los datos a insertar. Es decir, haz los miembros privados (movil por ejemplo) sólo accesibles por métodos públicos que tú defines.

Cita de: "Hispasat88"
Decir que tienen como tu decias todos los registros inicializados.
No deberías hacerlo así, es un gasto de memoria inútil. Inicialízalos cuando vayas a rellenarlos.