Clase Agenda en Java
public class Agenda {
private int maximo;
private Contacto[] ag;
private int Nusados;
public Agenda(int maximo) {
this.maximo = maximo;
ag = new Contacto[maximo];
this.Nusados = 0;
}
public String añadir(Contacto c) {
String salida = "No se puede añadir";
if (this.Nusados < maximo) {
ag[this.Nusados] = c;
this.Nusados++;
salida = "Añadiendo contacto..... " + c.toString();
}
return salida;
}
public String dameContactos() {
String salida = "";
for (int i = 0; i < this.Nusados; i++) {
salida += i + ". " + ag[i].toString() + "\n";
}
return salida;
}
public boolean haySitio() {
return Nusados < maximo;
}
}
Programa principal con menú
Scanner teclado = new Scanner(System.in);
Scanner tecladocad = new Scanner(System.in);
String[] menu = {"Salir", "Añadir", "Mostrar contactos"};
int op = 0;
System.out.println("¿Cuántos contactos como máximo guarda tu agenda?");
int num = teclado.nextInt();
Agenda a = new Agenda(num);
do {
for (int i = 0; i < menu.length; i++) {
System.out.println(i + ". " + menu[i]);
}
op = teclado.nextInt();
switch (op) {
case 0:
System.out.println("Adiós");
break;
case 1:
if (a.haySitio()) {
String nom, ap, tel, email;
System.out.println("Nombre: ");
nom = tecladocad.nextLine();
System.out.println("Apellidos: ");
ap = tecladocad.nextLine();
System.out.println("Teléfono: ");
tel = tecladocad.nextLine();
System.out.println("Email: ");
email = tecladocad.nextLine();
Contacto c = new Contacto(nom, ap, tel, email);
System.out.println(a.añadir(c));
} else {
System.out.println("No caben más contactos");
}
break;
case 2:
System.out.println(a.dameContactos());
break;
default:
System.out.println("Opción no válida");
}
} while (op != 0);