Ejemplo de Tienda con Vectores

Se describe como se realiza una tienda que administra clientes, proveedores y productos como objetos y los almacena en un vector.

Tienda.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tienda;

import utileria.teclado;
import java.util.Vector;
public class Tienda {
static Vector tienda;
    public static void main(String[] args)
    {
        tienda = new Vector(10, 5);
        teclado entrada = new teclado();
        int opcion = 0;
        while(true)
        {
            menu();
            opcion = entrada.leeEntero("Selecciona opcion: ",
                    "Error numero no valido");
            switch(opcion)
            {
                case 1:
                    tienda.add(agrega_cliente(entrada));
                break;
                case 2:
                    imprime_clientes();
                break;
                case 3:
                    tienda.add(agrega_proveedor(entrada));
                break;
                case 4:
                    imprime_proveedores();
                break;
                case 7:
                    imprime("Hasta Luego");
                    System.exit(0);
                break;
                default:
                    imprime("Opcion No Valida");
                break;
            }
        }
    }
    public static void menu()
    {
        imprime("----------Tienda de Abarrotes----------");
        imprime("1) Agregar Clientes");
        imprime("2) Listar Clientes");
        imprime("3) Agregar Proveedor");
        imprime("4) Listar Provedor");
        imprime("5) Agregar Producto");
        imprime("6) Listar Producto");
        imprime("7) Salir");
        
    }
    public static Proveedor agrega_proveedor(teclado entrada)
    {
        Proveedor proveedor = new Proveedor();
        proveedor.setNombre(entrada.leeCadena("Dame el nombre del proveedor"));
        proveedor.setTelefono(entrada.leeCadena("Telefono del proveeedor"));
        return proveedor;
    }
    public static Cliente agrega_cliente(teclado entrada)
    {
        Cliente cliente = new Cliente();
        cliente.setNombre(entrada.leeCadena("Dame el Nombre"));
        cliente.setDireccion(entrada.leeCadena("Dame la Direccion"));
        cliente.setTelefono(entrada.leeCadena("Dame el Telefono"));
        cliente.setRFC(entrada.leeCadena("Dame el RFC"));
        return cliente;
    }
    public static void imprime_clientes()
    {
        //tienda.capacity();//regresa el tamaño total del vector
        //tienda.size();//regresa el numero de elementos del vector
        //Enumeration
        imprime2("\nNombre\t");
        imprime2("Direccion\t");
        imprime2("Telefono\t");
        imprime2("RFC\n");
        for(int x = 0; x < tienda.size(); x++)
        {
          if(tienda.elementAt(x) instanceof Cliente)
          {
              imprime_cliente((Cliente) tienda.elementAt(x));
          }
        }
    }
    public static void imprime_cliente(Cliente cliente)
    {
        imprime2(cliente.getNombre()+"\t");
        imprime2(cliente.getDireccion()+"\t");
        imprime2(cliente.getTelefono()+"\t");
        imprime2(cliente.getRFC()+"\n");
    }
    public static void imprime_proveedores()
    {
        //tienda.capacity();//regresa el tamaño total del vector
        //tienda.size();//regresa el numero de elementos del vector
        //Enumeration
        imprime2("\nNombre\t");
        imprime2("Telefono\n");
        for(int x = 0; x < tienda.size(); x++)
        {
          if(tienda.elementAt(x) instanceof Proveedor)
          {
              imprime_proveedor((Proveedor) tienda.elementAt(x));
          }
        }
    }
    public static void imprime_proveedor(Proveedor proveedor)
    {
        imprime2(proveedor.getNombre()+"\t");
        imprime2(proveedor.getTelefono()+"\n");
    }
    public static void imprime(String mensaje)
    {
        System.out.println(mensaje);
    }
    public static void imprime2(String mensaje)
    {
        System.out.print(mensaje);
    }
}

Cliente.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tienda;

/**
 *
 * @author David
 */
public class Cliente
{
    private String nombre, telefono, direccion, RFC;

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getRFC() {
        return RFC;
    }

    public void setRFC(String RFC) {
        this.RFC = RFC;
    }
    
}


Producto.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tienda;

/**
 *
 * @author David
 */
public class Producto
{
    private String nombre, descripcion;
    float precio;

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public float getPrecio() {
        return precio;
    }

    public void setPrecio(float precio) {
        this.precio = precio;
    }
}


Proveedor.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tienda;

/**
 *
 * @author David
 */
public class Proveedor
{
    private String nombre, telefono;

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
    
}


teclado.java

package utileria;

import java.util.Scanner;

public class teclado {

    public void teclado() {
        //String entrada = "cadena";varible local
    }

    public int leeEntero(String mensaje_pedir_numero, String mensaje_error) {
        Scanner entrada = new Scanner(System.in);//variable global
        int numeroEntero = 0;
        int error = 0;
        do {
            System.out.println(mensaje_pedir_numero);
            try {
                numeroEntero = entrada.nextInt();
                error = 0;
            } catch (Exception ex) {
                System.out.println(mensaje_error);
                entrada.next();
                error = 1;
            }
        } while (error == 1);

        return numeroEntero;
    }

    public float leeFlotante(String mensaje_pedir_numero, String mensaje_error) {
        Scanner entrada = new Scanner(System.in);//variable global
        float numeroEntero = 0;
        int error = 0;
        do {
            System.out.println(mensaje_pedir_numero);
            try {
                numeroEntero = entrada.nextFloat();
                error = 0;
            } catch (Exception ex) {
                System.out.println(mensaje_error);
                entrada.next();
                error = 1;
            }
        } while (error == 1);

        return numeroEntero;
    }
    public String leeCadena(String mensaje) {
        Scanner entrada = new Scanner(System.in);//variable global
        String cadena;
        System.out.println(mensaje);
        cadena = entrada.nextLine();
        return cadena;
    }
}