Foro de elhacker.net

Programación => Java => Mensaje iniciado por: tmpDash en 31 Julio 2014, 17:40 pm



Título: Arreglos entre clases - Ayuda porfavor!!
Publicado por: tmpDash en 31 Julio 2014, 17:40 pm
Buenos Dias

Les explico, estoy empezando en la programacion y decidi empezar con Java.

Soy autodidacta pero nunca se puede nada solo, tengo el siguiente problema

Tengo una clase Ventas con las propiedades NombreMes y MontoMes con su respectivo Set y Get.
Ahi mismo tengo un constructor con parametros y otro sin ellos.
Mas abajo tengo una funcion en donde deseo hacer un for iterando cada elemento de un arreglo pasado por parametro.

Esta es mi clase:


Código
  1. public Class Ventas {
  2.  
  3. String NombreMes = "";
  4. Double MontoMes = 0;
  5.  
  6. public Ventas()
  7. {
  8. }
  9.  
  10. public Ventas(String _NombreMes, Double _MontoMes)
  11. {
  12. this.NombreMes = _NombreMes;
  13. this.MontoMes = _MontoMes;
  14. }
  15.  
  16. public void setNombreMes (String oNombreMes ) {
  17. NombreMes = oNombreMes;
  18. }
  19.  
  20. public String getNombreMes () { return NombreMes; }
  21.  
  22. public void setMontoMes (String oMontoMes) {
  23. MontoMes = oMontoMes;
  24. }
  25.  
  26. public String getMontoMes() { return MontoMes; }
  27.  
  28. public void fn_Sumar(String[] o Venta)
  29. {
  30. Double Total = 0;
  31.  
  32. for(int i=0; i<oVenta.lenght;i++)
  33. {
  34. Total += oVenta[i].getMontoMes();
  35. }
  36.  
  37. return Total;
  38. }
  39.  
  40. }
  41.  


Ahora este es mi main ( no estoy seguro como se le llame)

Código
  1. import Ventas;
  2.  
  3. Double oResultado = 0;
  4. Ventas[] oVenta;
  5. oVenta = new Ventas[2];
  6.  
  7. Ventas oVentaTemporal;
  8. oVentaTemporal = new Ventas();
  9. oVentaTemporal.setNombreMes("Enero");
  10. oVentaTemporal.setMontoMes(125.00);
  11. oVenta[0] = oVentaTemporal;
  12.  
  13. oResultado = Ventas.fn_Sumar(oVenta);
  14.  
  15.  

La idea es pasar varios meses (Enero, Febrero, Marzo,.... consu monto para sumarlo), creo que no pasa el arreglo, nose como psarlo para en la clase ventas puede ejecutar la funcion.

Espero haberme explicado bien,
Gracias por cualquier ayuda.


Título: Re: Arreglos entre clases - Ayuda porfavor!!
Publicado por: gordo23 en 31 Julio 2014, 17:43 pm
¿Y cuál es el problema? ¿te sale un error? ¿qué pasa?


Título: Re: Arreglos entre clases - Ayuda porfavor!!
Publicado por: tmpDash en 31 Julio 2014, 17:51 pm
Disculpa, el problema e sque al momento de pasar el parametro a la funcion, no me reconoce me dice que no se pude convertir de List<Venta> a String[].

Tendras algun ejemplo simple en todo caso para poderme guiar?.

Gracias


Título: Re: Arreglos entre clases - Ayuda porfavor!!
Publicado por: MinusFour en 31 Julio 2014, 18:05 pm
Disculpa, el problema e sque al momento de pasar el parametro a la funcion, no me reconoce me dice que no se pude convertir de List<Venta> a String[].

Tendras algun ejemplo simple en todo caso para poderme guiar?.

Gracias

Tienes:

Código
  1. public void fn_Sumar(String[] o Venta)
  2. {
  3. Double Total = 0;
  4.  
  5. for(int i=0; i<oVenta.lenght;i++)
  6. {
  7. Total += oVenta[i].getMontoMes();
  8. }
  9.  
  10. return Total;
  11. }

Necesitas, primeramente poner la variable bien. Es oVenta no o Venta, y en segundo no estás pasando un arreglo de Strings sino un Arreglo de Ventas.

Código
  1. public void fn_Sumar(Ventas[] o Venta)
  2. {
  3. Double Total = 0;
  4.  
  5. for(int i=0; i<oVenta.lenght;i++)
  6. {
  7. Total += oVenta[i].getMontoMes();
  8. }
  9.  
  10. return Total;
  11. }

Y en tu main, estas usando:

Código
  1. Ventas.fn_Sumar(oVenta);

Cuando fn_Sumar no es un metodo estático.

Puedes usar:

Código
  1. oVentaTemporal.fn_Sumar(oVenta);

Otro error que acaba de encontrar es que tienes public void cuando haces un return Double. Tienes:

Código
  1. public void fn_Sumar(Ventas[] oVenta)

Necesitas:

Código
  1. public double fn_Sumar(Ventas[] oVenta)

Y si quieres llamar al metodo desde su Clase como:

Código
  1. Ventas.fn_Sumar(oVentas);

Necesitas definir el metodo así:

Código
  1. public static double fn_Sumar(Ventas[] oVenta)


Título: Re: Arreglos entre clases - Ayuda porfavor!!
Publicado por: tmpDash en 31 Julio 2014, 20:59 pm
Gracias por tus correcciones, realmente me has ayudado.

Una cosa mas ante de cerrar, el texto es lo que me paso el profesor:

"Se tiene la siguiente situación: se debe de implementar un programa orientado a objetos que permita registrar las ventas mensuales de un vendedor mensualmente. El Administrador se encarga de administrar a estos vendedores y desea saber:
•   La suma de todas las ventas de los vendedores. (5p)
•   Dado un dni de vendedor saber la suma de sus ventas. (5p)
•   El promedio de ventas de cada vendedor dado su dni. (5p)
•   El nombre del vendedor que realizó mayor cantidad de ventas, si hay empate solo imprima el nombre de uno de ellos. (5p)
Datos de cada vendedor: Nombre y dni."

Lo estoy interpretando de la siguiente forma, me podrias decir si es la correcta?:

Una clase Ventas con las propiedades Get, Set, Constructor y funciones. y el main seria las inicializacions, cargas de arreglos y llamadas a las funciones de la clase ventas.

Es correcto?, o estoy alejado de la idea de como debe, agradecir mucho que me corrigas si es asi.

Gracias



Título: Re: Arreglos entre clases - Ayuda porfavor!!
Publicado por: MinusFour en 31 Julio 2014, 21:53 pm
Yo tendría tres clases:

1. Registro
-Mes
-Ingresos

2. Vendedor
-Registro[]
-Nombre o ID o DNI
-Metodo para Insertar Registro
-Metodo Promedio

3. Administrador
-Vendedor[]
-Meotod para insertar Vendedor
-Metodo para obtener mejor Vendedor

Y el Main seria tan facil como:
Creas el objeto de Administrador
Creas el Objeto de Vendedor
Insertas Registros en el Vendedor
Insertas Vendedor en el Administrador

Y usas los metodos que creaste.


Título: Re: Arreglos entre clases - Ayuda porfavor!!
Publicado por: tmpDash en 31 Julio 2014, 23:07 pm
Gracias por tu tiempo y por tu tiempo.