Concretamente, consegui hacer funcionar el metodo agregar y creo que he detectado el fallo de mi code en los metodos buscar modificar y arreglar pero no me funciona.He conseguido hacer que me busque pero me devuelve valores nulos.Yo creo que se deberia de cambiar unicamente while de agregar en vez de pasare una posicion nula sustituirlo por lo que tiene que buscar pero a mi no me funciona...Me serviria que lo respondieran para mañana , porque hasta ese dia me daban de plazo pero sino no importa no es caso de vida y muerte ahora pondre aqui la clase principal y en los dos post siguientes las otras dos clases
PD: Deje el code listo para compilar y ejecutar el programa. Solo almacenaria los datos ya que lo unico que esta es el de agregar.Recomiendo completar primero el de buscar ya que creo que sera el mas facil pero yo no lo logre funcionar dado que tengo mal casi seguro el bucle while y entonces no me funcionaba en ninguno de los 3
Código:
public class Agenda {
static InputStreamReader isr = new InputStreamReader(System.in);
static BufferedReader br = new BufferedReader(isr);
static Registro registros[];
public static void main(String[] args)throws IOException {
String opcion;
int i=0;
registros = new Registro [2];
for (i=0; i<registros.length; i++)
registros[i] = null;
System.out.println("1 - Añadir");
System.out.println("2 - Modificar");
System.out.println("3 - eliminiar");
System.out.println("4 - Buscar");
System.out.println("5 - Salir");
opcion = br.readLine();
while (!opcion.equals ("0")){
if (opcion.equals("1"))
agregar();
else if (opcion.equals("2"))
modificar ();
else if (opcion.equals("3"))
eliminar();
else if (opcion.equals("4"))
buscar();
else
System.out.println ("Opción incorrecta..");
System.out.println("1 - Añadir");
System.out.println("2 - Modificar");
System.out.println("3 - eliminiar");
System.out.println("4 - Buscar");
System.out.println("5 - Salir");
opcion = br.readLine();
}
}
static void agregar()throws IOException{
String nombre, localidad, calle, provincia;
int numero, piso, cp, i=0;
char letra;
long telefono;
while (registros [i] != null && i<registros.length)
i++;
if (i<registros.length){
System.out.print("Nombre: ");
nombre = br.readLine();
System.out.print("Calle: ");
calle = br.readLine();
System.out.print("Numero: ");
numero = Integer.parseInt(br.readLine());
System.out.print("Piso: ");
piso = Integer.parseInt(br.readLine());
System.out.print("Letra: ");
letra = br.readLine().charAt(0);
System.out.print("Codigo postal: ");
cp = Integer.parseInt(br.readLine());
System.out.print("Localidad: ");
localidad = br.readLine();
System.out.print("Provincia: ");
provincia = br.readLine();
System.out.print("Telefono: ");
telefono = Long.parseLong(br.readLine());
Direccion aux = new Direccion(calle, numero, piso,
letra, cp, localidad, provincia);
registros[i]= new Registro(nombre, aux, telefono);
}
}
static void modificar()throws IOException{
}
static void eliminar() throws IOException {
}
static void buscar() throws IOException {
}
static void salir() throws IOException {
}
}
Aqui va la clase direccion, aqui creo que no hay que modificar nada, solo hay que hacerlo en la clase agenda pero bueno revisen el code
Código:
public class Direccion {
private String calle, localidad, provincia;
private int numero, piso, cp;
private char letra;
public Direccion(String calle, int numero, int piso, char letra,
int cp, String localidad, String provincia){
this.calle = new String (calle);
this.piso = piso;
this.letra =letra;
this.cp = cp;
this.localidad = new String (localidad);
this.provincia = new String (provincia);
this.numero = numero;
}
public Direccion(Direccion d){
calle = new String (d.calle);
numero = d.numero;
piso = d.piso;
letra = d.letra;
cp = d.cp;
localidad = d.localidad;
provincia = d.provincia;
}//fin metodo direcion
public void setCalle (String calle){
this.calle = new String (calle);
}//fin metodo set Calle
public void setNumero (int numero){
this.numero = numero;
}//fin metodo seyNumero
public void setPiso(int piso){
this.piso = piso;
}//fin metodo setPiso
public void setLocalidad (String localidad){
this.localidad = new String (localidad);
}//fin metodo setLocalidad
public void setProvincia (String provincia){
this.provincia = new String (provincia);
}//fin metodo setProvincia
public void setCp (int cp){
this.cp = cp;
}//fin metodo setCp
public void setLetra (char letra){
this.letra = letra;
}//fi metodo setLetra
public void print (){
System.out.println(calle + ", " + numero + " - " + piso + letra);
System.out.println(cp + " - "+ localidad);
System.out.println(provincia);
}
}//fin metodo print
Y por ultimo la clase registro
Código:
public class Registro {
String nombre;
Direccion direccion;
long telefono;
Registro (String nombre, Direccion direccion, long telefono){
this.nombre = new String (nombre);
this.direccion = new Direccion(direccion);
this.telefono =telefono;
}
public void setNombre (String nombre){this.nombre = new String (nombre); }
public void setDireccion(Direccion direccion){
this.direccion = new Direccion(direccion);}
public void setDireccion(String calle, int numero, int piso,
char letra, int cp, String localidad, String provincia){
direccion = new Direccion (calle, numero, piso, letra, cp,
localidad, provincia);
}
public void setTelefono (long telefono){this.telefono = telefono;}
public String getNombre(){return nombre;}
public Direccion getDireccion(){return direccion;}
public long getTelefono(){return telefono;}
Registro (Registro r){
nombre = new String (r.nombre);
direccion = new Direccion(r.direccion);
telefono = r.telefono;
}
public void print (){
System.out.println("Nombre: " + nombre);
System.out.println("Direccion: ");
direccion.print();
System.out.println("Telefono: " + telefono);
}
}