jueves, 24 de marzo de 2011

Avance Parcial de mi Proyecto

Buenos Días, aquí les adjunto el código y algunas capturas de pantalla del avance que llevo en mi proyecto.
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;
 
 
    List list = 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.

5 comentarios:

  1. 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

    ResponderEliminar
  2. Mira, 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.

    ResponderEliminar
  3. Hola 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.
    Saludos

    ResponderEliminar
  4. 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
    Saludos

    ResponderEliminar
  5. 8 por la entrada, 2 extra al autor, extras a Roberto y Cecy.

    ResponderEliminar