Programa para imprimir en pantalla el desglose de la venta de un producto, con códigos como precios

Tengo que hacer un programa que imprima en pantalla el desglose de una venta de un producto en el que aparecerá los datos de código descripción cantidad y precio unitario ya con iva, precios de subtotal iva y total y preguntar al usuario si quiere salir o usarlo otra vez.
Hice 4 programas
Uno es perecedero, otro no perecedero, otro producto y otro venta, (también tengo un programa para leer los datos algo así como el scan de java pero mejor, me lo paso un amigo)
pero ya no supe que hacer con el main y me atasque, este es el código del os programas;
de antemo gracias y espero no molestar con esta pregunta
Perecedero:
public class Perecedero extends Producto {int duracion, diasTrans; 
    public Perecedero(String codigo,String descripcion,int cantidad,double precioU,int duracion,int diasTrans) {    super (codigo,descripcion,cantidad, precioU);    this.duracion=duracion;    this.diasTrans=diasTrans; 
    }public String toString(){return super.toString()+"\nDuración : "+duracion+ "\nDias trancurridos : "+diasTrans+(duracion>=diasTrans?" NO":"")+ " Vencido!";} 

No perecedero 
public class NoPerecedero extends Producto{int anaquel; 
    public NoPerecedero(String codigo,String descripcion,int cantidad,double precioU,int anaquel) {    super (codigo,descripcion,cantidad, precioU);    this.anaquel=anaquel;    }    public String toString(){return super.toString()+"\nAnaquel"+anaquel;    }} 
Producto 
public class Producto {double precioU;String codigo;String descripcion;int cantidad; 
public Producto(){System.out.println("Venta Productos");} 
    public Producto(String codigo,String descripcion,int cantidad,double precioU){    this.codigo=codigo;    this.precioU=precioU;    this.descripcion=descripcion;    this.cantidad=cantidad; 
    } 
    public String toString(){    return "Código : "+ codigo+ "\nDescripción : "+descripcion+ "\nCantidad : "+cantidad+ "\nPrecio Unitario : "+precioU;    } 

venta 
public class Venta {Producto [] factura; //String productoint numP=0; 
    public Venta(int n) {    factura=new Producto[n]; //new Producto factura    }public void captaProducto(){double precioU;String codigo;String descripcion;int cantidad;int duracion, diasTrans;int anaquel;int opc;System.out.println("\nCaptura de Producto\n");System.out.print("Código: "); codigo=Lector.lee();System.out.print("Descripción: "); descripcion=Lector.lee();System.out.print("Cantidad: "); cantidad=Lector.leeEnt();System.out.print("Precio Unitario: "); precioU=Lector.leeDoble(); 
do{System.out.println("1. Perecedero");System.out.println("2. No Perecedero");System.out.println("Elegir Opción [1-2]: ");opc=Lector.leeEnt();}while(opc!=1&&opc!=2);if (opc==1){System.out.print("Duración: "); duracion=Lector.leeEnt();System.out.print("Días Transcurridos: "); diasTrans=Lector.leeEnt();Perecedero pro=new Perecedero(codigo, descripcion, cantidad, precioU, duracion, diasTrans);System.out.println(pro.toString());}elseSystem.out.print("Anaquel: "); anaquel=Lector.leeEnt();NoPerecedero Nopro=new NoPerecedero(codigo, descripcion, cantidad, precioU, anaquel);System.out.println(Nopro.toString());} 
public void agregaProd(){for(numP=0; numP<factura.length; numP++){factura[numP++]=new Producto();captaProducto();} 

public static void main (String arg[]){System.out.print("Cuantos productos vas a comprar:  ");int num=Lector.leeEnt();Venta V= new Venta(num);V.agregaProd();}}

1 Respuesta

Respuesta
1
aa bueno mira según veo lo que haces es que preguntas cuantos productos son y luego creas el objeto venta y al crearlo creas los productos y los imprimes en pantalla pero hasta ahí, según yo si no me equivoco solo puedes crear un producto y ya. Mira lo que puedes hacer es hacerlo un poquito más estructurado por ejemplo agrega dos métodos
public Producto crearPerecedero(){
System.out.print("Duración: ");                                                                                      duracion = Lector.leeEnt();                               
System.out.print("Días Transcurridos: ");                        
diasTrans = Lector.leeEnt();           
Perecedero pro = new Perecedero(codigo, descripcion, cantidad, precioU, duracion, diasTrans);           
System.out.println(pro.toString());

//y el otro 
public void crearNoPerecedero(){// Nos devolvera el producto para agregarlo a la lista
System.out.print("Anaquel: ");       
anaquel = Lector.leeEnt();       
NoPerecedero Nopro = new NoPerecedero(codigo, descripcion, cantidad, precioU, anaquel); 
System.out.println(Nopro.toString());
}
////////////////////////////////y en el constructor de Venta quedaria algo asi:////////////////////////////////////////
public Venta(int n) {       
factura = new Producto[n]; 
for (int i=0;i<factura.length;i++){        
do{
System.out.println("1. Perecedero");           
System.out.println("2. No Perecedero");           
System.out.println("Elegir Opción [1-2]: ");   
opc = Lector.leeEnt();
}while (opc!=1 && opc!=2)
 if (opc==1){
factura=crearPerecedero();
}else{
factura=crearNoPerecedero();
}
}
}
//////////////////////////////////////
Bueno creo que seria algo así, la vdd por ahora no tengo el java instalado y menos algún IDE jaja pero más o menos la idea es esa, espero que te sirva,, y si puedes muéstrame el código del lector que dices, me gustaría verlo por lo que dices que es mejorado al Scanner ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas