Introducción
Este ejercicio en Java es ideal para aprender sobre estructuras de datos y el uso de clases y métodos para gestionar información. Vamos a crear una agenda de contactos donde podrás almacenar, buscar y eliminar contactos. Este ejercicio es adecuado para un nivel medio-bajo y te ayudará a reforzar el uso de arrays, listas, métodos y bucles en Java.
Enunciado del Ejercicio
Desarrolla un programa en Java que implemente una agenda de contactos. Cada contacto debe tener un nombre y un número de teléfono. La agenda debe permitir al usuario:
- Agregar un nuevo contacto.
- Buscar un contacto por nombre.
- Eliminar un contacto por nombre.
- Mostrar todos los contactos guardados.
- Salir del programa.
Requisitos
- Uso de clases: Crear una clase
Contacto
que contenga dos atributos: nombre y número de teléfono. - Almacenamiento de contactos: Usa un
ArrayList
para almacenar los contactos. - Operaciones de la agenda: Implementa métodos para agregar, buscar, eliminar y mostrar contactos.
- Control de flujo: Utiliza un bucle
do-while
para permitir que el usuario realice múltiples acciones hasta que decida salir.
Ejemplo de Salida
Bienvenido a la Agenda de Contactos
1. Agregar un nuevo contacto
2. Buscar un contacto por nombre
3. Eliminar un contacto por nombre
4. Mostrar todos los contactos
5. Salir
Seleccione una opción: 1
Ingrese el nombre del contacto: Juan
Ingrese el número del contacto: 123456789
Contacto agregado exitosamente.
Seleccione una opción: 4
Lista de contactos:
- Juan: 123456789
Seleccione una opción: 5
Gracias por usar la agenda de contactos.
Sugerencias para la Implementación
- Crear una clase
Contacto
con atributosnombre
ytelefono
y sus respectivos métodos. - Usar un
ArrayList
para almacenar los contactos, lo cual permite agregar y eliminar elementos de manera dinámica. - Implementar métodos en la clase
Agenda
para cada acción (agregar, buscar, eliminar, y mostrar).
Código de Ejemplo
A continuación, se presenta una implementación de la agenda de contactos en Java:
import java.util.ArrayList;
import java.util.Scanner;
class Contacto {
private String nombre;
private String telefono;
public Contacto(String nombre, String telefono) {
this.nombre = nombre;
this.telefono = telefono;
}
public String getNombre() {
return nombre;
}
public String getTelefono() {
return telefono;
}
@Override
public String toString() {
return nombre + ": " + telefono;
}
}
public class Agenda {
private ArrayList<Contacto> contactos = new ArrayList<>();
public void agregarContacto(String nombre, String telefono) {
contactos.add(new Contacto(nombre, telefono));
System.out.println("Contacto agregado exitosamente.");
}
public void buscarContacto(String nombre) {
boolean encontrado = false;
for (Contacto contacto : contactos) {
if (contacto.getNombre().equalsIgnoreCase(nombre)) {
System.out.println("Contacto encontrado: " + contacto);
encontrado = true;
break;
}
}
if (!encontrado) {
System.out.println("Contacto no encontrado.");
}
}
public void eliminarContacto(String nombre) {
boolean eliminado = false;
for (Contacto contacto : contactos) {
if (contacto.getNombre().equalsIgnoreCase(nombre)) {
contactos.remove(contacto);
System.out.println("Contacto eliminado.");
eliminado = true;
break;
}
}
if (!eliminado) {
System.out.println("Contacto no encontrado.");
}
}
public void mostrarContactos() {
if (contactos.isEmpty()) {
System.out.println("No hay contactos guardados.");
} else {
System.out.println("Lista de contactos:");
for (Contacto contacto : contactos) {
System.out.println("- " + contacto);
}
}
}
public static void main(String[] args) {
Agenda agenda = new Agenda();
Scanner scanner = new Scanner(System.in);
int opcion;
do {
System.out.println("\nAgenda de Contactos");
System.out.println("1. Agregar un nuevo contacto");
System.out.println("2. Buscar un contacto por nombre");
System.out.println("3. Eliminar un contacto por nombre");
System.out.println("4. Mostrar todos los contactos");
System.out.println("5. Salir");
System.out.print("Seleccione una opción: ");
opcion = scanner.nextInt();
scanner.nextLine(); // Limpiar el buffer
switch (opcion) {
case 1:
System.out.print("Ingrese el nombre del contacto: ");
String nombre = scanner.nextLine();
System.out.print("Ingrese el número del contacto: ");
String telefono = scanner.nextLine();
agenda.agregarContacto(nombre, telefono);
break;
case 2:
System.out.print("Ingrese el nombre del contacto a buscar: ");
String nombreBusqueda = scanner.nextLine();
agenda.buscarContacto(nombreBusqueda);
break;
case 3:
System.out.print("Ingrese el nombre del contacto a eliminar: ");
String nombreEliminar = scanner.nextLine();
agenda.eliminarContacto(nombreEliminar);
break;
case 4:
agenda.mostrarContactos();
break;
case 5:
System.out.println("Gracias por usar la agenda de contactos.");
break;
default:
System.out.println("Opción no válida. Intente de nuevo.");
break;
}
} while (opcion != 5);
scanner.close();
}
}
Explicación del Código
- Clase
Contacto
: Contiene los atributosnombre
ytelefono
, un constructor para inicializarlos, y el métodotoString()
para facilitar la impresión de los contactos. - Clase
Agenda
: Contiene unArrayList<Contacto>
para almacenar los contactos. También tiene métodos para agregar, buscar, eliminar y mostrar contactos. - Estructura
do-while
: Permite al usuario realizar múltiples operaciones en la agenda hasta que elige salir (opción 5). - Métodos de búsqueda y eliminación: La búsqueda es insensible a mayúsculas y minúsculas gracias a
equalsIgnoreCase
, yremove
elimina el primer contacto que coincida con el nombre dado.
Conclusión
Este ejercicio es una excelente práctica para gestionar datos con Java y comprender el uso de clases y métodos en un contexto práctico. Crear una agenda de contactos te ayudará a entender mejor cómo organizar y manipular datos en un programa realista.
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.
NUESTRAS ÚLTIMAS PUBLICACIONES
- La importancia de mantener un ritmo de estudio durante las navidades.
- Cómo Multiplicar Matrices en Java: Guía Completa con Ejemplo Práctico
- Triunfos y logros de nuestra Academia SanRoque
- Herramientas Imprescindibles para Realizar Ingeniería Inversa en Java
- ¿A qué nivel de conversación en inglés estás dispuesto a llegar con Academia SanRoque?
- Cómo Resolver una Ecuación de Segundo Grado con GNU Octave
- Cuando vienes a la Academia SaRoque justo antes del examen final.
- 25N Día Internacional para la Eliminación de la Violencia contra la Mujer
- Cuando el profesor nos da la última oportunidad.
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido
Comments are closed