public class Main{
private static ArrayList<Usuario> usuarios;
private static Scanner teclado;
public static void main(String[] args) { usuarios = new ArrayList<Usuario>();
teclado = new Scanner(System.in);
System.out.println("No hay usuarios registrados." + "\nSe ha de registrar al menos un Administrador antes de continuar...");
registrarAdmin();
menuLogIn();
}
private static void menuLogIn() { do { Usuario userActivo = null;
System.out.println("\n\tLogin Usuario"); System.out.println("\t----- -------\n"); System.out.print("ID usuario: "); String id = teclado.nextLine();
System.out.print("Clave: "); String pass = teclado.nextLine();
for (Usuario usr: usuarios) { if (usr.getID().equals(id) && usr.getPass().equals(pass)) { userActivo = usr;
break;
}
}
if (userActivo == null) //No se ha encontrado ningún usuario con esos datos
System.out.println("Error en ID Usuario o clave de acceso"); else {
if (userActivo instanceof Administrador)
while(menuAdministrador()); //Esto repite su menú hasta que escoja finalizar sesion
else
while(menuCliente()); //Si no es Administrador, es un Cliente
System.out.println("\nSesión finalizada."); }
System.out.print("¿Desea cerrar el programa?[s/n]:");
}while (teclado.nextLine().toLowerCase().equals("n"));
System.out.println("\n\n\t\t--FIN DEL PROGRAMA--"); }
private static boolean menuAdministrador() { System.out.println("\n\tMenú Administrador"); System.out.println("\t---- -------------\n"); System.out.println("[1] -- Registrar Administrador"); System.out.println("[2] -- Registrar Cliente"); System.out.println("[3] -- Nueva Categoría de Producto"); System.out.println("[4] -- Nuevo Producto"); System.out.println("[5] -- Consultar Ventas por Fechas"); System.out.println("\n[0] -- FINALIZAR SESIÓN"); int opc = teclado.nextLine().charAt(0);
switch(opc) { case '0':
return false; //Fin de este método, sesión termina
case '1':
registrarAdmin();
break;
case '2':
registrarCliente();
break;
case '3':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN..."); break;
case '4':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN..."); break;
case '5':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN..."); break;
default:
System.out.println("\nOpción no válida."); }
System.out.println("\nPulse ENTER para continuar..."); teclado.nextLine();
return true; //Fin de este método, menú sigue ejecutándose
}
private static boolean menuCliente() { System.out.println("\n\tMenú Cliente"); System.out.println("\t---- -------\n"); System.out.println("[1] -- Ver catálogo de Productos"); System.out.println("[2] -- Comprar Productos"); System.out.println("[3] -- Consultar Mis Compras"); System.out.println("\n[0] -- FINALIZAR SESIÓN"); int opc = teclado.nextLine().charAt(0);
switch(opc) { case '0':
return false;
case '1':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN..."); break;
case '2':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN..."); break;
case '3':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN..."); break;
default:
System.out.println("\nOpción no válida."); }
System.out.println("\nPulse ENTER para continuar..."); teclado.nextLine();
return true;
}
private static void registrarAdmin() { System.out.println("\n\tRegistro Administrador"); System.out.println("\t-------- -------------\n"); System.out.print("ID Usuario: "); String id = teclado.nextLine();
System.out.print("Clave Usuario: "); String pass = teclado.nextLine();
System.out.print("Nombre: "); String nombre = teclado.nextLine();
System.out.print("E-Mail: "); String email = teclado.nextLine();
System.out.print("Teléfono: "); String telef = teclado.nextLine();
Administrador admin = new Administrador(id, pass, nombre, email, telef);
if (usuarios.contains(admin))
System.out.println("Usuario rechazado. Ya existe otro con el ID: " + id); else { usuarios.add(admin);
System.out.println("Usuario registrado."); }
}
private static void registrarCliente() { System.out.println("\n\tRegistrar Cliente"); System.out.println("\t--------- -------\n"); System.out.print("ID Usuario: "); String id = teclado.nextLine();
System.out.print("Clave Usuario: "); String pass = teclado.nextLine();
System.out.print("Nombre: "); String nombre = teclado.nextLine();
System.out.print("E-Mail: "); String email = teclado.nextLine();
System.out.print("Teléfono: "); String telef = teclado.nextLine();
System.out.print("Tarjeta compra asociada: "); String tarjeta = teclado.nextLine();
Cliente cliente = new Cliente(id, pass, nombre, email, telef, tarjeta);
if (usuarios.contains(cliente))
System.out.println("Usuario rechazado. Ya existe otro con el ID: " + id); else { usuarios.add(cliente);
System.out.println("Usuario registrado."); }
}
}