Por el momento cuento con un menú con 3 opciones Agregar Productos, Mostrar Listado, Salir.
La Clase Principal es Grocery, aquí aparece el menú principal de acceso a las opciones del Sistema.
package avance; import java.util.Scanner; public class Grocery{ public static void main(String[]args) //funcion main { Scanner lectura = new Scanner(System.in); //declaracion del scanner para poder leer los datos ingresados por el teclado Product Nombre = new Product(); //creamos un objeto para enlazar la clase Grocery con Product Inventory imprimir = new Inventory(); //creamos un objeto para enlazar la clase Grocery con Inventory int op=0; //esta variable controla la opcion del programa a la que queremos acceder System.out.println ("Almacen Cuellar"); System.out.println ("================================="); do { System.out.println ("Elije una Opcion:..."); System.out.println ("[1]Para Ingresar Productos-> "); //menu de opciones System.out.println ("[2]Para Mostrar Inventario -> "); System.out.println ("[3]Para Finalizar"); do { op = lectura.nextInt(); } while(op!=1&&op!=2&&op!=3); switch(op) { case 1: Nombre.ingproducto(); break; case 2: imprimir.printlist(Nombre); break; case 3: System.out.println ("Fin Del Programa"); break; } } while(op!=3); } }
Después está la Clase Product que es la encargada de recibir los datos para la generación del inventario de productos que se venden en el negocio.
package avance; import java.util.Scanner; import java.util.*; import java.lang.*; public class Product{ public String Nombre; private int ID,Cantidad; //nombramos los atributos para agregar los productos private float Precio; Listlist = new ArrayList (); //generamos listas de los datos que queremos almacenar List listid = new ArrayList (); //en el inventario List listcant = new ArrayList (); List listprice = new ArrayList (); protected void ingproducto() //metodo donde accedemos para ingresar productos { Integer ID = new Integer(0); //creamos un objeto para guardar los datos de tipo entero Float Precio = new Float(0); //creamos un objeto para guardar los datos de tipo flotante Scanner lectura = new Scanner(System.in); System.out.println ("Ingreso De Datos Del Producto"); System.out.println ("============================="); //menu de opciones para dar de alta un producto System.out.println ("Ingrese el Nombre del Producto-> "); Nombre = lectura.nextLine(); //guardar el nombre list.add(Nombre); //agregarlo a la lista System.out.println ("Ingrese el ID del Producto-> "); ID = lectura.nextInt(); //guardar el ID listid.add(ID); //agregarlo a la lista System.out.println ("Ingrese la Cantidad de Productos Disponibles-> "); Cantidad = lectura.nextInt(); //guardar la cantidad listcant.add(Cantidad); //agregarlo a la lista System.out.println ("Ingrese el Precio Producto-> "); Precio = lectura.nextFloat(); //guardar el precio listprice.add(Precio); //agregarlo a la lista } }
Y por último está la clase Inventory, encargada de generar y guardar las listas de productos agregados desde la opción agregar y tiene un acceso desde el menú principal para acceder al inventario que se ha generado hasta el momento.
package avance; import java.util.*; public class Inventory{ static void printlist(Product imprimir){ //metodo estatico para obtener los valores ingresados en producto //e imprimirlos, tambien es el metodo para acceder al listado del inventario generado System.out.println("Lista de Inventario\n"); Iterator iter = imprimir.list.iterator(); //recorrer la lista de nombres de productos guardados e imprimirlos while (iter.hasNext()) System.out.println("Nombre: "+iter.next()); Iterator itera = imprimir.listid.iterator(); while (itera.hasNext()) //recorrer la lista de ID's guardados e imprimirlos System.out.println("ID: "+itera.next()); Iterator iterac = imprimir.listcant.iterator(); while (iterac.hasNext()) //recorrer la lista de cantidades de productos guardados e imprimirlos System.out.println("Cantidad Disponible: "+iterac.next()); Iterator iteraci = imprimir.listprice.iterator(); //recorrer la lista de precios de productos guardados e imprimirlos while (iteraci.hasNext()) System.out.println("Precio Unitario: "+iteraci.next()); } }
Finalmente aquí adjunto unas capturas de pantalla con la compilación y ejecución del programa.
Hola, ya vi tu código creo que cantidad podría ser float, por que por ejemplo si vendes líquidos de limpieza estarán en litros y no se vende 1 lto, 2, etc si no 1/2 litro, entonces ese lo podrías poner float y además veo que menú(en tu diagrama) lo pusiste como una función que como ves no tiene un bueno nombre de función más bien suena a que debe ser clase, entonces yo te recomendaría que lo cambies,saludos
ResponderEliminarMira, por ejemplo yo veo que pudieras hacer dos clases, una que sea como dice Cecy, para productos que utilicen litros, y para otros en kilos, de manera similar a lo que yo divido en comidas y bebidas de mi proyecto, claro que no se de que se trata tus productos, pero estaria bien para complementarlo.
ResponderEliminarHola Cecy, muy buena tu observación creo si seria conveniente poner cantidad como un flotante de presentarse un caso de productos líquidos; y sip, ahora que va agarrando forma el programa, el método "menu" está de más ya que no es un método en si; lo único relevante de la clase Grocery es la función main; modificaré eso para la siguiente entrada de patrones de diseño ;) Gracias por comentar.
ResponderEliminarSaludos
Que tal Roberto, pues la idea de esto es algo como generalizar los productos, ya que el sistema no está orientado a un tipo de negocio en particular, mi tía tiene una tienda y maneja un buen surtido de productos, y es en lo que me estoy basando, en lo personal preferiría mantenerlo así general y ya después si se diera el caso de algo concreto orientarlo a algún tipo de negocio en particular. Gracias por comentar n_n
ResponderEliminarSaludos
8 por la entrada, 2 extra al autor, extras a Roberto y Cecy.
ResponderEliminar