Java - Rutina Productores de leche

 
Vista:

Rutina Productores de leche

Publicado por Gabriel Monney (1 intervención) el 21/11/2018 01:39:17
Buenas necesito ayuda con esto de java main class y java class




Como promedio se realizan en el período un total de 60 entregas de leche. Se sabe que, en la zona, hay 12 productores de leche que realizan entregas
El programa llevará el control del número de productores que han realizado entregas por medio de una variable, denominada cantProductores. El programa llevará control de la posición en la lista de producción para una nueva entrega mediante una variable, denominada nuevoIndice.
Se sabe que se tienen las rutinas siguientes: La que calcula la cantidad total de botellas entregadas por un productor (calcularTotalBotellasProductor) dado el índice del id del productor, la que devuelve la cantidad de entregas realizadas por un productor (cantidadEntregasProductor) dado el id del productor, la que busca un productor (buscarProductor) dado el id y retorna el índice donde se encuentra ese productor (por ello puede usarlas y no necesita modelarlas).
También se tiene una variable global denominada PGBE que almacena el promedio global histórico de botellas entregadas por productor en la compañía que es inicializada por el sistema al ejecutarse y puede ser modificada a través de opciones en el menú del programa.
Para cada uno de los siguientes puntos, realizar el diagrama de flujo de la rutina y la codificación Java.
A. Haga una rutina que recibiendo el id del productor, retorne una lista con la cantidad de botellas que realizó en cada entrega.

B. Haga una rutina que determine si el promedio de botellas de un productor es mayor al PGBE.

C. Haga una rutina que reciba el arreglo con las botellas entregadas por cada productor (el mismo que se recibe al agregar el productor) y retorne el cambio porcentual lineal entre la primera entrega (E0) y la última entrega (E1) usando la siguiente fórmula: (E1 – E0)/E0

D. Haga una rutina que devuelva un arreglo con el cambio porcentual de todos los productores.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Rutina Productores de leche

Publicado por Billy Joel (876 intervenciones) el 21/11/2018 21:45:38
He leido el proyecto y la verdad que es complicado y largo, me ha tomado todo el día.
El enunciado es complicado de entender pero si se lee con calma habría que trabajar con 3 clases.
- La clase principal que tendrá los métodos que se describen en el enunciado
- Una clase Productor que sería una representación de los productores
- Una clase Entrega que sería una representación de cada entrega

Las entregas están relacionadas a los productores de 1 a N; en otras palabras un productor puede tener N entregas.
Las entregas tendrían por propiedades lo siguiente:
- id
- Nombre del cliente (Solo por referencia)
- botellas: Cantidad de botellas de la entrega

Los productorers tendrían por propiedades lo siguiente:
- id
- nombre: Nombre del productor
- cantidadEntregas: Cantidad de entregas que ha hecho el productor
- entregas: Una colección (Mapa) de las entregas que ha realizado. Cada elemento de esta colección sería un objeto de la clase entrega
- totalBotellasEntregadas: total de botellas de leche que ha entregado. Si bien esto se puede calcular iterando la colección de entregas y sumando las botellas, por cuestiones de eficiencia, cada vez que se agrega una nueva entrega se le suman las botellas a esta propiedad

Siguiendo el enunciado el programa principal debe contar con un menú así
- REGISTRAR_PRODUCTOR
- REGISTRAR_ENTREGA
- MOSTRAR_PRODUCTORES
- MOSTRAR_CANTIDAD_BOTELLAS_X_ENTREGA
- AJUSTAR_PGBE
- MOSTRAR_SI_PROMEDIO_MAYOR_PGBE
- MOSTRAR_CAMBIO_PORCENTUAL_LINEAL
- MOSTRAR_CAMBIO_PORCENTUAL_LINEAL_TODOS
- SALIR

Se debe leer la opción y dependiendo de la opción que escoja el usuario. Yo hice uso de un switch y he hice varios métodos para encauzar las acciones

En fin este es mi main()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public static void main(String[] args) {
    Lechero l = new Lechero();
    int opcion = -1;
    while (opcion != OPCION_SALIR) {
        opcion = l.readOpcion("Introduzca " + OPCION_REGISTRAR_PRODUCTOR + " para registrar productor\n"
                + "Introduzca " + OPCION_REGISTRAR_ENTREGA + " para registrar entrega\n"
                + "Introduzca " + OPCION_MOSTRAR_PRODUCTORES + " para mostrar productores\n"
                + "Introduzca " + OPCION_MOSTRAR_CANTIDAD_BOTELLAS_X_ENTREGA + " para mostrar la cantidad de botellas entregadas por productor\n"
                + "Introduzca " + OPCION_AJUSTAR_PGBE + " para ajustar el promedio global histórico de botellas entregadas (PGBE) por productor\n"
                + "Introduzca " + OPCION_MOSTRAR_SI_PROMEDIO_MAYOR_PGBE + " para mostrar si el promedio de botellas entregadas es mayor que el PGBE\n"
                + "Introduzca " + OPCION_MOSTRAR_CAMBIO_PORCENTUAL_LINEAL + " para mostrar el cambio porcentual lineal de un productor\n"
                + "Introduzca " + OPCION_MOSTRAR_CAMBIO_PORCENTUAL_LINEAL_TODOS + " para mostrar el cambio porcentual lineal de todos los productores\n"
                + "Introduzca " + OPCION_SALIR + " para salir\n",
                OPCION_SALIR, OPCION_MOSTRAR_CAMBIO_PORCENTUAL_LINEAL_TODOS);
        switch (opcion) {
            case OPCION_SALIR:
                System.out.println("Adios");
                break;
            case OPCION_REGISTRAR_PRODUCTOR:
                l.registrarProductor();
                break;
            case OPCION_REGISTRAR_ENTREGA:
                l.registrarEntrega();
                break;
            case OPCION_MOSTRAR_PRODUCTORES:
                l.mostrarProductores();
                break;
            case OPCION_MOSTRAR_CANTIDAD_BOTELLAS_X_ENTREGA:
                l.mostrarBotellasPorEntrega();
                break;
            case OPCION_AJUSTAR_PGBE:
                l.ajustarPGBE();
                break;
            case OPCION_MOSTRAR_SI_PROMEDIO_MAYOR_PGBE:
                l.mostrarSiPromedioMayorQuePGBE();
                break;
            case OPCION_MOSTRAR_CAMBIO_PORCENTUAL_LINEAL:
                l.mostrarCambioPorcentualLinealTotal();
                break;
        }
    }
}

Saludos!!
;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar