// Autor: Juan Antonio Ripoll // Fecha: 09/10/13 /* Objetivo * * REALIZA UN PROGRAMA QUE PIDA POR PANTALLA DE UN VEHICULO; LA MARCA, EL MODELO DEL COCHE, LA MATRICULA, LA POTENCIA Y EL COLOR, LOS GUARDE EN UN OBJETO VEHICULO Y LOS ESCRIBA EN UN FICHERO. SI CERRAMOS EL PROGRAMA Y VOLVEMOS A ABRIRLO SE AÑADIRÁN OBJETOS AL FINAL DEL FICHERO.EN EL MISMO PROGRAMA INCORPORA UNA OPCIÓN QUE PERMITA VISUALIZAR POR PANTALLA TODOS LOS COCHES DEL FICHERO. OPCIÓN 1.- INSERTAR VEHICULO. OPCIÓN 2.- VISUALIZAR VEHICULOS. OPCIÓN 3.- SALIR. * */ package ad_practica2_ejercicio1; import java.io.BufferedReader; import java.io.EOFException; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; public class Main { private static final String LISTADO_VEHICULOS = "vehiculos.dat"; /* * Cuerpo del programa. * */ public static void main(String[] args) throws NumberFormatException, IOException { boolean exit = false; do { DibujarMenu(); switch(getOpcion()) { case 1: InsertarVehiculos(); break; case 2: VisualizarVehiculos(); break; case 3: exit = true; break; } } while(!exit); System.out.println("Bye!"); } /* * Muestra el menu de opciones de usuario en pantalla. * */ private static void DibujarMenu() { System.out.println("1.- INSERTAR VEHICULO"); System.out.println("2.- VISUALIZAR VEHICULOS"); System.out.println("3.- SALIR."); System.out.println(); } /* * Obtiene la opción seleccionada por el usuario. * */ public static int getOpcion() throws NumberFormatException, IOException { System.out.print("Introduzca una opción: "); try { BufferedReader in = new BufferedReader( new InputStreamReader( System.in )); return Integer.parseInt(in.readLine()); } catch(Exception e) { System.out.println("\nOpción no reconocida por el sistema. Opciones validas [1-3].\n"); return 0; } } /* * Actualiza un nuevo vehículo al listado. Si el listado no existe, * lo crea y introduce el vehículo * */ private static void InsertarVehiculos() { if (ExisteListado()) ActualizaListado(); else CrearListado(); System.out.println("\nVehículo insertado correctamente en el listado.\n"); } /* * Muestra un listado de todos los vehículos disponibles en pantalla. * */ private static void VisualizarVehiculos() { if (ExisteListado()) { ArrayListvehiculos = LeerListado(); System.out.println("\nLISTADO DE VEHÍCULOS\n"); for (int i=0;i LeerListado() { ArrayList vehiculos = new ArrayList (); try { ObjectInputStream o = new ObjectInputStream( new FileInputStream(LISTADO_VEHICULOS)); Vehiculo vehiculo = (Vehiculo)o.readObject(); while (vehiculo!=null) { vehiculos.add(vehiculo); vehiculo = (Vehiculo)o.readObject(); } o.close(); return vehiculos; } catch (EOFException ex1) { return vehiculos; } catch (Exception ex2) { System.out.println ("Error intentanto leer listado de vehículos."); return null; } } /* * Obtiene el vehículo que introduce el usuario. * */ private static Vehiculo getVehiculo() { try { BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); Vehiculo vehiculo = new Vehiculo(); System.out.print("Marca: "); vehiculo.setMarca(reader.readLine()); System.out.print("Modelo: "); vehiculo.setModelo(reader.readLine()); System.out.print("Matrícula: "); vehiculo.setMatricula(reader.readLine()); System.out.print("Potencia: "); vehiculo.setPotencia(reader.readLine()); System.out.print("Color: "); vehiculo.setColor(reader.readLine()); return vehiculo; } catch (Exception e){ System.out.println("Error en la recogida de datos del vehículo."); System.out.println(); return null; } } /* * Muestra todos los datos de un vehículo en pantalla * */ public static void Mostrar(Vehiculo v) { System.out.println("Marca: " + v.getMarca()); System.out.println("Modelo: " + v.getModelo()); System.out.println("Matrícula: " + v.getMatricula()); System.out.println("Potencía: " + v.getPotencia()); System.out.println("Color: " + v.getColor()); System.out.println(); } } package ad_practica2_ejercicio1; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.OutputStream; public class MiObjectOutputStream extends ObjectOutputStream { /** Constructor que recibe OutputStream */ public MiObjectOutputStream(OutputStream out) throws IOException { super(out); } /** Constructor sin parámetros */ protected MiObjectOutputStream() throws IOException, SecurityException { super(); } /** Redefinición del método de escribir la cabecera para que no haga nada. */ protected void writeStreamHeader() throws IOException { } } package ad_practica2_ejercicio1; import java.io.Serializable; public class Vehiculo implements Serializable { private static final long serialVersionUID = 1L; private String marca; private String modelo; private String matricula; private String potencia; private String color; public Vehiculo (String marca, String modelo, String matricula, String potencia, String color) { this.marca = marca; this.modelo = modelo; this.matricula = matricula; this.potencia = potencia; this.color = color; } public Vehiculo () { this.marca = null; this.modelo = null; this.matricula = null; this.potencia = null; this.color = null; } public String getMatricula() { return matricula; } public void setMatricula(String matricula) { this.matricula = matricula; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getModelo() { return modelo; } public void setModelo(String modelo) { this.modelo = modelo; } public String getPotencia() { return potencia; } public void setPotencia(String potencia) { this.potencia = potencia; } public String getMarca() { return marca; } public void setMarca(String marca) { this.marca = marca; } }
Friday, December 13, 2013
Objetos
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment