Respuesta: guardar una una class(con set y get) en una matriz de tipo class Gracias por la observacion, pero si tengo los (), la cuestion es que en el programa tengo que sumar el importe de improducto (precion* cantidad) y hacer lo mismo por los n producto y despues de esto sumar lo y sacar el importe total de total de todos lo productos (la suma de todo los importes), pero mi codigo solo me esta considerando un solo producto, pero si me considera el numero de todos los que he introducido y solo me saca el importe de una el numero de veces que he introduccido productos...... por aqui les dejo el codigo (main, clase producto, clase matriz).
///// 1.- main /////
import javax.swing.JOptionPane;
class Main{
public static void main(String args[]){
int op, cont = 0, cont1 = 0, cont2 = 0, cont3 = 0, pl, op1, imp;
Producto p = new Producto();
MatrizProducto m = new MatrizProducto();
int Clave, Cantidad, cant=0;
float Precio;
String Nombre;
do{
op = Integer.parseInt(JOptionPane.showInputDialog(null, "1.- Alta de producto\n2.- Importe Planta\n3.- Importe Total","Maquiladora",JOptionPane.PLAIN_MESSAGE));
switch(op){
// Lectura de Datos
case 1: pl = Integer.parseInt(JOptionPane.showInputDialog(null, "Selecciona una planta para introducir producto\n 1.- [Planta 1]\n 2.- [Planta 2]\n 3.- [Planta 3]"));
switch(pl){
case 1:
if(cont1 < 3){
Clave = Integer.parseInt(JOptionPane.showInputDialog(null, "Clave","Datos Producto",JOptionPane.PLAIN_MESSAGE));
Nombre = JOptionPane.showInputDialog(null,"Nombre","Datos Producto",JOptionPane.PLAIN_MESSAGE);
Precio = Float.parseFloat(JOptionPane.showInputDialog(null, "Precio","Datos Producto",JOptionPane.PLAIN_MESSAGE));
Cantidad = Integer.parseInt(JOptionPane.showInputDialog(null, "Cantidad","Datos Producto",JOptionPane.PLAIN_MESSAGE));
p.setClave(Clave);
p.setNombre(Nombre);
p.setPrecio(Precio);
p.setCantidad(Cantidad);
// Llenado de Matriz
m.setPlanta(pl);
m.setContador(cont1);
m.setMatriz(p);
cont1 += 1;
} else {
JOptionPane.showMessageDialog(null,"Planta Llena","Planta 1",JOptionPane.WARNING_MESSAGE);
}break;
case 2:
if(cont2 < 3){
Clave = Integer.parseInt(JOptionPane.showInputDialog(null, "Clave","Datos Producto",JOptionPane.PLAIN_MESSAGE));
Nombre = JOptionPane.showInputDialog(null,"Nombre","Datos Producto",JOptionPane.PLAIN_MESSAGE);
Precio = Float.parseFloat(JOptionPane.showInputDialog(null, "Precio","Datos Producto",JOptionPane.PLAIN_MESSAGE));
Cantidad = Integer.parseInt(JOptionPane.showInputDialog(null, "Cantidad","Datos Producto",JOptionPane.PLAIN_MESSAGE));
p.setClave(Clave);
p.setNombre(Nombre);
p.setPrecio(Precio);
p.setCantidad(Cantidad);
// Llenado de Matriz
m.setPlanta(pl);
m.setContador(cont2);
m.setMatriz(p);
cont2 += 1;
} else {
JOptionPane.showMessageDialog(null,"Planta Llena","Planta 1",JOptionPane.WARNING_MESSAGE);
}break;
case 3:
if(cont3 < 3){
Clave = Integer.parseInt(JOptionPane.showInputDialog(null, "Clave","Datos Producto",JOptionPane.PLAIN_MESSAGE));
Nombre = JOptionPane.showInputDialog(null,"Nombre","Datos Producto",JOptionPane.PLAIN_MESSAGE);
Precio = Float.parseFloat(JOptionPane.showInputDialog(null, "Precio","Datos Producto",JOptionPane.PLAIN_MESSAGE));
Cantidad = Integer.parseInt(JOptionPane.showInputDialog(null, "Cantidad","Datos Producto",JOptionPane.PLAIN_MESSAGE));
p.setClave(Clave);
p.setNombre(Nombre);
p.setPrecio(Precio);
p.setCantidad(Cantidad);
// Llenado de Matriz
m.setPlanta(pl);
m.setContador(cont3);
m.setMatriz(p);
cont3 += 1;
} else {
JOptionPane.showMessageDialog(null,"Planta Llena","Planta 1",JOptionPane.WARNING_MESSAGE);
}break;
}break;
case 2: pl = Integer.parseInt(JOptionPane.showInputDialog(null, "Selecciona una planta para ver importe\n 1.- [Planta 1]\n 2.- [Planta 2]\n 3.- [Planta 3]"));
switch(pl){
case 1: m.setPlanta(pl);
m.setContador(cont1);
m.calcImporte();
break;
case 2: m.setPlanta(pl);
m.setContador(cont2);
m.calcImporte();
break;
case 3: m.setPlanta(pl);
m.setContador(cont3);
m.calcImporte();
break;
}
break;
case 3: m.calcImporteTotal(cont1,cont2,cont3);
break;
}
}while(op <= 3);
}
}
///// 2.- clase producto(set y get) /////
class Producto{
private int clv, cant;
private String nom;
private float pre;
// Set
public void setClave(int nuevaClv){
clv = nuevaClv;
}
public void setNombre(String nuevoNombre){
nom = nuevoNombre;
}
public void setPrecio(float precioUnit){
pre = precioUnit;
}
public void setCantidad(int nuevaCantidad){
cant = nuevaCantidad;
}
// Get
public int getClave(){
return clv;
}
public String getNombre(){
return nom;
}
public float getPrecio(){
return pre;
}
public int getCantidad(){
return cant;
}
}
///// 3.- clase matriz donde pretendo guardar clase producto ////
import javax.swing.JOptionPane;
class MatrizProducto{
private Producto p = new Producto();
private Producto matriz[][] = new Producto[3][10];
private int cont, pla, cant, clv;
private float pre, importe, importeTotal;
private String nom, tx="";
public void setPlanta(int planta){
pla = planta - 1;
}
public void setContador(int contador){
cont = contador;
}
public void setMatriz(Producto p){
matriz[pla][cont] = p;
}
public void calcImporte(){
importe = 0;
tx = "";
for(int i=0; i<cont; i++){
clv = matriz[pla][i].getClave();
nom = matriz[pla][i].getNombre();
pre = matriz[pla][i].getPrecio();
cant = matriz[pla][i].getCantidad();
tx += "Clave = "+clv+"\nNombre = "+nom+"\nPrecio = "+pre+"\nCantidad "+cant;
tx += "\n\n";
importe += pre * cant;
}
JOptionPane.showMessageDialog(null,tx+"Importe Planta = "+importe);
}
public void calcImporteTotal(int c1, int c2, int c3){
int c = c1;
for(int j=0; j<3; j++){
if(j == 1) c = c2;
if(j == 2) c = c3;
for(int i=0; i<c; i++){
float cnt = matriz[j][i].getPrecio();
int coy = matriz[j][i].getCantidad();
importeTotal += coy * cnt;
}
}
JOptionPane.showMessageDialog(null,"Importe Total = "+importeTotal);
}
} |