Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class Main {
- private static String fichero = "contactos.dat";
- public static void main(String args[]) throws IOException, ClassNotFoundException {
- int opcion=-1, telefono=-1,diaNa, mesNa, anioNa;
- Scanner sc = new Scanner(System.in);
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String nombre, apellidos, direccion, fechNaci, email;
- String menu = "\n[ Opciones de la Agenda ]\n"
- + "[1] Dar de alta a contactos.\n"
- + "[2] Dar de baja a contactos.\n"
- + "[3] Buscar un contacto.\n"
- + "[4] Ordenar contactos por nombre o apellidos.\n"
- + "[5] Listado de contactos que cumplen años dentro de 5 dias.\n"
- + "[6] Listado completo de todos los contactos.\n"
- + "[0] Salir de la aplicación.";
- serializacion();
- // Muestra los contactos guardados en el archivo contactos.dat
- Collections.sort(Contacto.agenda);
- Contacto.mostrarTodos(Contacto.agenda);
- do {
- System.out.println(menu);
- opcion = sc.nextInt();
- switch(opcion) {
- case 1:
- System.out.println("Dar de alta a un nuevo contacto:"
- + "\nIntroduce el nombre, apellidos, dirección y email");
- nombre = br.readLine();
- if("".equals(nombre)) {
- System.err.println("Debes de escribir algo.");
- break;
- }
- apellidos = br.readLine();
- if("".equals(apellidos)) {
- System.err.println("Debes de escribir algo.");
- break;
- }
- direccion = br.readLine();
- if("".equals(direccion)) {
- System.err.println("Debes de escribir algo.");
- break;
- }
- email = br.readLine();
- if("".equals(email)) {
- System.err.println("Debes de escribir algo.");
- break;
- }
- System.out.println("Fecha de nacimiento. Dia, mes y año:");
- try {
- diaNa = sc.nextInt();
- if(diaNa > 31 || diaNa < 0) {
- System.err.println("El dia de nacimiento debe ser de 1 a 31.");
- break;
- }
- mesNa = sc.nextInt();
- if(mesNa > 12 || mesNa < 0) {
- System.err.println("El mes de nacimiento debe ser de 1 a 12.");
- break;
- }
- anioNa = sc.nextInt();
- if(anioNa > 2000 || anioNa < 1000 ) {
- System.err.println("Error año de nacimiento.");
- break;
- }
- System.out.println("Introduce su número de teléfono: (0 para terminar) ");
- telefono = sc.nextInt();
- for (int i=0; i<Contacto.agenda.size(); i++) {
- Contacto.telefonos.add(telefono);
- }
- //Contacto.telefonos.forEach(System.out::print);
- Contacto.agenda.add(new Contacto(nombre, apellidos, direccion, email, diaNa, mesNa, anioNa, Contacto.telefonos));
- }
- catch (java.util.InputMismatchException ex) {
- System.err.println("El dia de nacimiento debe ser un entero.");
- return;
- }
- break;
- case 2:
- System.out.println("[ Dar de baja a un contacto ]"
- + "\nIntroduce el nombre a eliminar:\n");
- System.out.format("%-5S%-30S\n", "ID", "Nombre");
- for(int i=0; i < Contacto.agenda.size(); i++) {
- System.out.format("%-5d%-30S\n", i, Contacto.agenda.get(i).getNombre());
- }
- String idNombre = br.readLine();
- for(int i=0; i < Contacto.agenda.size(); i++) {
- if(Contacto.agenda.get(i).getNombre().equalsIgnoreCase(idNombre)) {
- Contacto.agenda.remove(i);
- }
- }
- break;
- case 3:
- String buscar_nombre;
- System.out.println("[ Buscar un contacto ]\nIntroduce un nombre:");
- buscar_nombre = br.readLine();
- for(int i=0; i < Contacto.agenda.size(); i++) {
- if(buscar_nombre.equalsIgnoreCase(Contacto.agenda.get(i).getNombre())) {
- System.out.format("%-10S%-15S%-20S%-24S%-15S\n", "Nombre", "Apellidos", "Dirección", "Email", "Fecha de nacimiento");
- System.out.format("%-10S%-15S%-20S%-24S%-15S\n", Contacto.agenda.get(i).getNombre(), Contacto.agenda.get(i).getApellidos(), Contacto.agenda.get(i).getDireccion(), Contacto.agenda.get(i).getEmail(), Contacto.agenda.get(i).getFechaNac());
- } else {
- System.err.println("Contacto no encontrado.");
- break;
- }
- }
- break;
- case 4:
- System.out.println("[ Ordenar los contactos por nombre o apellido ]");
- break;
- case 5:
- System.out.println("[ Contactos que cumplen años dentro de 5 dias ]");
- break;
- case 6:
- System.out.println("[ Listado de todos los contactos de la agenda ]");
- System.out.format("%-15S%-20S%-20S%-24S%-24S%-15S\n", "Nombre", "Apellidos", "Dirección", "Email", "Fecha de nacimiento", "Número de telefono");
- for(int i=0; i<Contacto.agenda.size(); i++) {
- System.out.format("%-15S%-20S%-20S%-24S%-15S\n", Contacto.agenda.get(i).getNombre(), Contacto.agenda.get(i).getApellidos(), Contacto.agenda.get(i).getDireccion(), Contacto.agenda.get(i).getEmail(), Contacto.agenda.get(i).getFechaNac());
- }
- break;
- }
- guardar();
- } while(opcion!=0);
- }
- public static void serializacion() throws IOException, ClassNotFoundException {
- try {
- ObjectInputStream entrada = null;
- entrada = new ObjectInputStream(new FileInputStream(fichero));
- Object contactos = entrada.readObject();
- Contacto.agenda = (LinkedList<Contacto>)contactos;
- entrada.close();
- } catch(FileNotFoundException e) {
- }
- }
- public static void guardar() throws IOException {
- try {
- ObjectOutputStream out = null;
- out = new ObjectOutputStream(new FileOutputStream(fichero));
- out.writeObject(Contacto.agenda);
- out.close();
- } catch(FileNotFoundException e) {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement