import java.util.Scanner;
/*
* Diseñar una aplicación que se comporte como una pequeña agenda. Mediante un menú
* el usuario podrá elegir entre:
* 1) añadir un nuevo contacto (nombre y telefono), siempre y cuando la agenda no
* esté llena
* 2) buscar el teléfono de un contacto partiendo de su nombre
* 3) mostrar la información de todos los contactos ordenados alfabéticamente
* mediante el nombre
* En la agenda guardaremos el nombre y el teléfono de un máximo de 20 contactos.
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner S = new Scanner(System.in);
boolean end = false;
boolean orderList=false;
int option;
String[] contactName = new String[20];
int[] contactNumber = new int[20];
int contactCounter=0;
do{
System.out.println("AGENDA 1.0: ");
System.out.println("1. Nuevo contacto");
System.out.println("2. Buscar telefono contacto");
System.out.println("3. Mostrar contactos alfabéticamente");
System.out.println("4. Salir");
System.out.print("Elige una opción: ");
boolean repeatWhile;
do{
repeatWhile=false;
option = S.nextInt();
if(option<1&&option>4){
System.out.print("Error, escribe de nuevo: ");
repeatWhile=true;
}
}while(repeatWhile);
switch(option){
case 1:
if(contactCounter<20){
System.out.println("Escribe el nombre del contacto:");
contactName[contactCounter] = S.nextLine();
do{
repeatWhile=false;
System.out.println("Escribe el número del contacto:");
contactNumber[contactCounter] = S.nextInt();
if(contactNumber[contactCounter]<0){
System.out.print("\nERROR: Valor no válido - ");
}
}while(repeatWhile);
System.out.println("Se ha guardado el número \""+contactNumber[contactCounter]+"\" para \""+contactName[contactCounter]+"\".");
contactCounter++;
orderList=true;
}else{
System.out.println("ERROR: Hay 20 contactos, no se pueden poner más.");
}
break;
case 2:
boolean nameFound=false;
char retry = 0;
do{
System.out.println("Escribe el nombre del contacto a buscar: ");
String nameToFind = S.nextLine();
int resultCount=1;
System.out.println("Resultados encontrados para \""+nameToFind+"\": ");
for(int i=0; i<20; i++){
if(contactName[i]==nameToFind){
nameFound=true;
System.out.println("\t"+resultCount+") "+contactNumber[i]);
resultCount++;
}
}
if(!nameFound){
do{
repeatWhile=false;
System.out.println("No se ha encontrado ninguna coincidencia. ¿Reintentar (s/n)?");
retry = S.nextLine().charAt(0);
if(retry != 's' && retry != 'n'){
repeatWhile=true;
System.out.print("ERROR: Responde correctamente -");
}
}while(repeatWhile);
}
}while(!nameFound && retry == 's');
break;
case 3:
if(orderList){
boolean isExchange=true;
String auxName; int auxNumber;
while(isExchange){
isExchange=false;
for(int i=0; i<20-1; i++){
if(contactName[i].compareTo(contactName[i+1])>0){
isExchange=true;
auxName=contactName[i];
contactName[i]=contactName[i+1];
contactName[i+1]=auxName;
auxNumber=contactNumber[i];
contactNumber[i]=contactNumber[i+1];
contactNumber[i+1]=auxNumber;
}
}
}
orderList=false;
}
System.out.println("LISTA DE CONTACTOS");
for(int i=0; i<contactCounter; i++){
System.out.println("\t"+i+") "+contactName[i]+": "+contactNumber[i]);
}
break;
case 4:
end = true;
break;
}
System.out.println();
}while(!end);
}
}