Friday, December 13, 2013

Objetos

// 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())
		{
			ArrayList vehiculos = 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;
	}	
}

No comments:

Post a Comment