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; } }