Advertisement
Guest User

2nd

a guest
Apr 26th, 2017
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.92 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3. public class Main {
  4.  
  5. private static String fichero = "contactos.dat";
  6.  
  7.  
  8. public static void main(String args[]) throws IOException, ClassNotFoundException {
  9. int opcion=-1, telefono=-1,diaNa, mesNa, anioNa;
  10. Scanner sc = new Scanner(System.in);
  11. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  12.  
  13. String nombre, apellidos, direccion, fechNaci, email;
  14. String menu = "\n[ Opciones de la Agenda ]\n"
  15. + "[1] Dar de alta a contactos.\n"
  16. + "[2] Dar de baja a contactos.\n"
  17. + "[3] Buscar un contacto.\n"
  18. + "[4] Ordenar contactos por nombre o apellidos.\n"
  19. + "[5] Listado de contactos que cumplen años dentro de 5 dias.\n"
  20. + "[6] Listado completo de todos los contactos.\n"
  21. + "[0] Salir de la aplicación.";
  22.  
  23. serializacion();
  24. // Muestra los contactos guardados en el archivo contactos.dat
  25. Collections.sort(Contacto.agenda);
  26. Contacto.mostrarTodos(Contacto.agenda);
  27.  
  28. do {
  29. System.out.println(menu);
  30. opcion = sc.nextInt();
  31.  
  32. switch(opcion) {
  33. case 1:
  34. System.out.println("Dar de alta a un nuevo contacto:"
  35. + "\nIntroduce el nombre, apellidos, dirección y email");
  36.  
  37. nombre = br.readLine();
  38. if("".equals(nombre)) {
  39. System.err.println("Debes de escribir algo.");
  40. break;
  41. }
  42.  
  43. apellidos = br.readLine();
  44. if("".equals(apellidos)) {
  45. System.err.println("Debes de escribir algo.");
  46. break;
  47. }
  48.  
  49. direccion = br.readLine();
  50. if("".equals(direccion)) {
  51. System.err.println("Debes de escribir algo.");
  52. break;
  53. }
  54.  
  55. email = br.readLine();
  56. if("".equals(email)) {
  57. System.err.println("Debes de escribir algo.");
  58. break;
  59. }
  60.  
  61. System.out.println("Fecha de nacimiento. Dia, mes y año:");
  62.  
  63. try {
  64. diaNa = sc.nextInt();
  65. if(diaNa > 31 || diaNa < 0) {
  66. System.err.println("El dia de nacimiento debe ser de 1 a 31.");
  67. break;
  68. }
  69.  
  70. mesNa = sc.nextInt();
  71. if(mesNa > 12 || mesNa < 0) {
  72. System.err.println("El mes de nacimiento debe ser de 1 a 12.");
  73. break;
  74. }
  75. anioNa = sc.nextInt();
  76. if(anioNa > 2000 || anioNa < 1000 ) {
  77. System.err.println("Error año de nacimiento.");
  78. break;
  79. }
  80.  
  81. System.out.println("Introduce su número de teléfono: (0 para terminar) ");
  82. telefono = sc.nextInt();
  83.  
  84. for (int i=0; i<Contacto.agenda.size(); i++) {
  85. Contacto.telefonos.add(telefono);
  86. }
  87. //Contacto.telefonos.forEach(System.out::print);
  88.  
  89. Contacto.agenda.add(new Contacto(nombre, apellidos, direccion, email, diaNa, mesNa, anioNa, Contacto.telefonos));
  90.  
  91. }
  92. catch (java.util.InputMismatchException ex) {
  93. System.err.println("El dia de nacimiento debe ser un entero.");
  94. return;
  95. }
  96.  
  97. break;
  98.  
  99. case 2:
  100. System.out.println("[ Dar de baja a un contacto ]"
  101. + "\nIntroduce el nombre a eliminar:\n");
  102.  
  103. System.out.format("%-5S%-30S\n", "ID", "Nombre");
  104. for(int i=0; i < Contacto.agenda.size(); i++) {
  105. System.out.format("%-5d%-30S\n", i, Contacto.agenda.get(i).getNombre());
  106. }
  107.  
  108. String idNombre = br.readLine();
  109. for(int i=0; i < Contacto.agenda.size(); i++) {
  110. if(Contacto.agenda.get(i).getNombre().equalsIgnoreCase(idNombre)) {
  111. Contacto.agenda.remove(i);
  112. }
  113. }
  114. break;
  115.  
  116. case 3:
  117. String buscar_nombre;
  118. System.out.println("[ Buscar un contacto ]\nIntroduce un nombre:");
  119. buscar_nombre = br.readLine();
  120.  
  121. for(int i=0; i < Contacto.agenda.size(); i++) {
  122. if(buscar_nombre.equalsIgnoreCase(Contacto.agenda.get(i).getNombre())) {
  123. System.out.format("%-10S%-15S%-20S%-24S%-15S\n", "Nombre", "Apellidos", "Dirección", "Email", "Fecha de nacimiento");
  124. 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());
  125. } else {
  126. System.err.println("Contacto no encontrado.");
  127. break;
  128. }
  129. }
  130. break;
  131.  
  132. case 4:
  133. System.out.println("[ Ordenar los contactos por nombre o apellido ]");
  134. break;
  135. case 5:
  136. System.out.println("[ Contactos que cumplen años dentro de 5 dias ]");
  137. break;
  138.  
  139. case 6:
  140. System.out.println("[ Listado de todos los contactos de la agenda ]");
  141. System.out.format("%-15S%-20S%-20S%-24S%-24S%-15S\n", "Nombre", "Apellidos", "Dirección", "Email", "Fecha de nacimiento", "Número de telefono");
  142. for(int i=0; i<Contacto.agenda.size(); i++) {
  143. 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());
  144. }
  145.  
  146. break;
  147. }
  148.  
  149.  
  150. guardar();
  151.  
  152. } while(opcion!=0);
  153. }
  154.  
  155. public static void serializacion() throws IOException, ClassNotFoundException {
  156. try {
  157. ObjectInputStream entrada = null;
  158. entrada = new ObjectInputStream(new FileInputStream(fichero));
  159. Object contactos = entrada.readObject();
  160. Contacto.agenda = (LinkedList<Contacto>)contactos;
  161. entrada.close();
  162. } catch(FileNotFoundException e) {
  163. }
  164. }
  165.  
  166. public static void guardar() throws IOException {
  167. try {
  168. ObjectOutputStream out = null;
  169. out = new ObjectOutputStream(new FileOutputStream(fichero));
  170. out.writeObject(Contacto.agenda);
  171. out.close();
  172. } catch(FileNotFoundException e) {
  173. }
  174. }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement