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

Agenda en Java

Estas en el tema de Agenda en Java en el foro de Java en Foros del Web. Hola, me han mandado hacer una agenda en Java guardando a personas con su nombre, dni, telefono y edad. Nos han dicho que lo tenemos ...
  #1 (permalink)  
Antiguo 23/02/2015, 07:38
 
Fecha de Ingreso: febrero-2015
Mensajes: 12
Antigüedad: 9 años, 9 meses
Puntos: 0
Agenda en Java

Hola, me han mandado hacer una agenda en Java guardando a personas con su nombre, dni, telefono y edad. Nos han dicho que lo tenemos que hacer mediante un array estatico.

Lo que he hecho ha sido crearme una clase Persona con sus getters y settes para cada atributo, luego me creo una clase Agenda y creo un array de tipo Persona:

[CODE]Persona [] personas = new Persona[10]/CODE]

Luego he hecho un menu con las opciones de insertar nombre, borrar, buscar y ver listado.

Mis dudas vienen a la hora de guardar los valores que vaya metiendo el usuario al array. He hecho algo asi:

Código:
System.out.println("Nombre: ");
			nombre = entrada.next();
			super.setNombre(nombre);
y asi para todos los campos....

Pero despues, como hago para guardar todos esos datos en la posicion correspondiente del array?
Me he creado una variable "pos" para ir contando las posiciones y he intentado hacer esto:

Código:
persona[pos] = {super.getNombre(),super.getEdad(),super.getTelefono(),super.getDni()};
Pero claro, da error.

Alguien me saca del apuro? gracias!
  #2 (permalink)  
Antiguo 23/02/2015, 07:53
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Agenda en Java

Buenas,

Tienes que poner el codigo completo porque no se entiende lo que estas haciendo. A que viene eso de "super.*"? Persona extiende de algo?


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 23/02/2015, 08:09
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Agenda en Java

Hola:

aparte lo que comenta Profesor_Falken (no está claro qué es eso de super), si persona es un array de Persona, en persona[pos] debes meter una instancia de persona. Algo asi

Código Java:
Ver original
  1. Persona p = new Persona(...)
  2. p.setNombre(super.getNombre());
  3. p.set....  // edad, telefono, dni, ...
  4.  
  5. persona[pos] = p;

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 23/02/2015, 08:24
 
Fecha de Ingreso: febrero-2015
Mensajes: 12
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Agenda en Java

Gracias...La verdad es que estoy muy verde (como se puede comprobar) y mezclo cosas, de ahi lo de super.

Puse que Agenda extendia de Persona.

@Chuidiang ya solo con lo que has puesto me has aclarado bastante.

Voy a seguir con ello, thanks!
  #5 (permalink)  
Antiguo 23/02/2015, 09:54
 
Fecha de Ingreso: febrero-2015
Mensajes: 12
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Agenda en Java

Pongo el codigo porque no me aclaro, en el tema del menu para insertar a una persona no se que debo hacer para ir añadiendo los campos del array:

Código:
public class Agenda{
	Scanner entrada = new Scanner(System.in);
	private int posNombre;
	private int pos = 0;
	private int contadorPersonas = 0;
	Personas persona[];


	public Agenda()
	{
		persona = new Personas[10];
		
		for(int i = 0 ; i < persona.length ; i++)
		{
			persona[i] = new Personas();
		}
	}
	
	public void menu()
	{
		System.out.print("*********\nBienvenido a tu Agenda Personal\n*********\n");
		System.out.println("Selecciona una opcion:");
		System.out.println("1- Insertar Persona\n2- Buscar(por nombre)\n3- Eliminar Persona\n4- Mostrar Agenda\n5- Salir");
		int opcion = entrada.nextInt();
		
		switch(opcion)
		{
		case 1: insertarPersona();
		break;
		
		case 2: buscarPersona();
		break;
		
		case 3: eliminarPersona();
		break;
		
		case 4: mostrarAgenda();
		break;
		
		case 5: System.out.println("Saliendo..."); System.exit(0);
		
		default: System.out.println("Opcion no valida"); menu();
		}
	}
	
	public void insertarPersona()
	{
		if(pos < persona.length)
		{
			System.out.println("Nombre: ");
			persona[pos].nombre = entrada.next();
			
                        System.out.println("Edad: ");
			persona[pos].edad = entrada.nextInt();
			
                        System.out.println("DNI; ");
			persona[pos].dni = entrada.nextInt();
			
                        System.out.println("Telefono: ");
			persona[pos].telefono = entrada.nextInt();
			
			System.out.println("Persona insertada con exito"); 
			pos++;
			contadorPersonas++;
			menu();
		}else
		{
			System.out.println("La agenda esta llena\n¿Desea borrar alguna persona? s\n");
			char opcion = entrada.next().charAt(0);
			
			if(opcion == 's')
				eliminarPersona();
			else
				menu();
		}
He puesto lo de "persona[pos].nombre = entrada.next();" etc.. por poner algo, porque no se como ir asignando todos esos campos al array de tipo persona.
  #6 (permalink)  
Antiguo 23/02/2015, 12:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Agenda en Java

Hola:

¿Qué métodos tiene persona para meter los datos? Si usas setter y getter que es lo normal, sería algo asi

Código Java:
Ver original
  1. persona[pos].setNombre(entrada.next());

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 23/02/2015, 13:56
 
Fecha de Ingreso: febrero-2015
Mensajes: 12
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Agenda en Java

Ya lo hice, pongo aqui el codigo por si a alguien en el futuro le puede ayudar. Gracias Chuidiang.

Puede haber errores, aun no lo he probado del todo

Código:
public class Agenda {

	Scanner entrada= new Scanner(System.in);
	
	Contactos contacto[] = new Contactos[10];
	String nombre;
	int dni, edad, telefono, pos, posNombre;
	boolean encontrado = false;
	
	public void menu()
	{
		System.out.print("*********************************\n*Bienvenido a tu Agenda Personal*\n*********************************\n");
		System.out.println("Selecciona una opcion:");
		System.out.println("1- Insertar Persona\n2- Buscar(por nombre)\n3- Eliminar Persona\n4- Mostrar Agenda\n5- Salir");
		int opcion = entrada.nextInt();
		
		switch(opcion)
		{
		case 1: insertarContacto();
		break;
		
		case 2: System.out.println("Escribe el nombre de la persona que desea encontrar: ");
				String nom = entrada.next();
				buscarContacto(nom);
		break;
		
		case 3: eliminarContacto();
		break;
		
		case 4: mostrarAgenda();
		break;
		
		case 5: System.out.println("Saliendo..."); System.exit(0);
		
		default: System.out.println("Opcion no valida"); System.exit(0);
		}
	}

	public void insertarContacto()
	{
		if(pos < contacto.length)
		{
			System.out.println("Nombre: ");
			nombre = entrada.next();
			System.out.println("Edad: ");
			edad = entrada.nextInt();
			System.out.println("DNI: ");
			dni = entrada.nextInt();
			System.out.println("Telefono: ");
			telefono = entrada.nextInt();
			
			contacto[pos] = new Contactos(nombre, edad, dni, telefono);
			
			pos++;
			System.out.println("Contacto insertado con exito");
		}else
		{
			System.out.println("Agenda completa. ¿Desea eliminar algun contacto? s\n");
			char resp = entrada.next().charAt(0);
			
			if(resp == 's')
				eliminarContacto();
			else
				menu();
		}
		menu();	
	}
	
	public void buscarContacto(String n)
	{
		for(int i = 0 ; i < pos ; i++)
		{
			if(contacto[i].getNombre().equalsIgnoreCase(n))
			{
				posNombre = i;
				mostrarContacto(i);
				encontrado = true;
			}
		}
		
		if(encontrado == false)
			System.out.println("No hay resultados con ese nombre");
		
		preguntar();
	}
	
	public void eliminarContacto()
	{
		System.out.println("Escribe el contacto que desea eliminar");
		String nom = entrada.next();
		buscarContacto(nom);
		
		if(encontrado == true)
		{
			for(int i = posNombre ; i < pos; i++)
			{
				if(posNombre == contacto.length)
					pos--;
				else
				{
					contacto[i + 1] = contacto[i];
					pos--;
				}
			}
		}else
			System.out.println("No existe dicho contacto");
		
		preguntar();
	}
	
	public void mostrarContacto(int contact)
	{
		System.out.println(contacto[contact].nombre+" "+contacto[contact].dni+" "+contacto[contact].edad
				+" "+contacto[contact].telefono);
		
		preguntar();
	}
	
	public void mostrarAgenda()
	{
		for(int i = 0 ; i < pos ; i++)
		{
			System.out.println(contacto[i].nombre+" "+contacto[i].dni+" "+contacto[i].edad
					+" "+contacto[i].telefono);
		}
		
		preguntar();
	}
	
	public void preguntar()
	{
		System.out.println("¿Desea realizar alguna otra operacion? s/n");
		char resp = entrada.next().charAt(0);
		
		if(resp == 's')
			menu();
		else
		{
			System.out.println("Saliendo....");
			System.exit(0);
		}
			
	}
}
Bueno, he puesto muy rapido el codigo...hay bastantes errores, aunque son tonterias.

Última edición por provocoaa; 23/02/2015 a las 14:16

Etiquetas: agenda, clase, valor
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 13:56.