elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ARREGLOS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ARREGLOS  (Leído 1,758 veces)
padiuwu

Desconectado Desconectado

Mensajes: 34


Ver Perfil
ARREGLOS
« en: 6 Febrero 2019, 05:53 am »

Alguien que me pueda ayudar con el siguiente ejercicio, esto de los arreglos aun no me queda muy claro.
Una fabrica tiene varios talleres y cada taller tiene varios
empleados, diseñar y codificar un algoritmo que lea los salarios por hora y las horas semanales trabajadas por cada empleado y que calcule e imprima el salario semanal de cada uno, la nomina de cada taller y la nomina total de la fabrica cada hora extra de un empleado se paga el doble de la hora normal.

***La clase principal la tengo en otra clase***
Código:
import java.util.Scanner;

public class fabrica {

    int n, m, salario = 20, semanal, horas, h_extras, nomina, nominaFabrica;
    int talleres[];
    int empleados[];

    public void leerDatos() {
        Scanner read = new Scanner(System.in);
        System.out.print("Ingrese el numero de talleres: ");
        n = read.nextInt();

        talleres = new int[n];
        for (int i = 0; i < n; i++) {
            System.out.print("\nIngrese el numero de empleados: ");
            m = read.nextInt();
            empleados = new int[m];
            for (int j = 0; j < m; j++) {
                System.out.print("Cuantas horas trabajo a la semana: ");
                horas = read.nextInt();
                System.out.print("Horas extras: ");
                h_extras = read.nextInt();
                semanal = (horas * salario) + (h_extras * 40);
                System.out.println("Salario semanal: " + semanal + "\n");
            }
            nomina=nomina+semanal;
            System.out.println("Nomina del taller " +nomina);
        }

    }

}


« Última modificación: 6 Febrero 2019, 06:04 am por padiuwu » En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.067



Ver Perfil
Re: ARREGLOS
« Respuesta #1 en: 7 Febrero 2019, 03:06 am »

Saludos,

- Los Arrays multidimensionales tienen su complejidad y más si se trata de ir construyéndolos a medida de que avanza el programa ...

int[][][] fabrica;
    ^ ^ ^--------- datos del empleados, salario y horas
    ^ ^----------- empleados
    ^------------- talleres


- Te recomiendo leer este e-book gratuito en español: Estructuras Básicas de Datos en Java (Array y String), en el él se explica la teoría de los Array, como funcionan y como se implementan. Cubre Arrays Unidimensionales y Multidimensionales:
http://jorgesanchez.net/manuales/viejos/fpr/fpr0509.pdf

- Te sugiero revisar este avance y complementarlo para acabar con tu ejercicio:

Código
  1. import java.util.Scanner;
  2.  
  3. public class Fabrica {
  4.  public static void main(String[] args) {
  5.    Scanner scanner = new Scanner(System.in);
  6.  
  7.    int[][][] fabrica;
  8.    int nTalleres; // Una fabrica tiene n cantidad de talleres
  9.    int nEmpleados; // Un taller tiene una n cantidad de empreados
  10.    int salario; // salario por hora de un empleado
  11.    int horas; // horas trabajadas a la semana de un empleado
  12.  
  13.    System.out.print( "\nIndique la cantidad de talleres: " );
  14.    nTalleres = scanner.nextInt();
  15.  
  16.    fabrica = new int[nTalleres][][]; // fabrica tiene n cantidad de talleres
  17.  
  18.    for ( int taller = 0; taller < nTalleres; taller++ ) {
  19.      System.out.print( "\n\tTaller: " + (taller + 1) );
  20.      System.out.print( "\n\tIndique la cantidad de empleados: " );
  21.      nEmpleados = scanner.nextInt();
  22.      fabrica[taller] = new int[nEmpleados][]; // taller tiene n cantidad de empleados
  23.  
  24.      /** Llena Empleados */
  25.      for ( int empleado = 0; empleado < nEmpleados; empleado++ ) {
  26.        System.out.print( "\n\t\tEmpleado: " + (empleado + 1) );
  27.        System.out.print( "\n\t\tIndique el salario por hora: ");
  28.        salario = scanner.nextInt();
  29.        System.out.print( "\t\tIndique la cantidad de horas trabajadas en la semana: ");
  30.        horas = scanner.nextInt();
  31.        System.out.println( "\t\tTotal salario semanal: " + (salario * horas) );
  32.        fabrica[taller][empleado] = new int[2];
  33.        fabrica[taller][empleado][0] = salario;
  34.        fabrica[taller][empleado][1] = horas;
  35.      }
  36.    }
  37.  
  38.    /** Muestra nonimas */
  39.    System.out.println( "\n..:: IMPRIMIENDO NOMINA ::.." );
  40.    for ( int taller = 0; taller < fabrica.length; taller++ ) {
  41.      System.out.println( "Taller " + (taller + 1) );
  42.      for ( int empleado = 0; empleado < fabrica[taller].length; empleado++ ) {
  43.        System.out.println( "\tEmpleado: " + (empleado + 1) );
  44.        System.out.println( "\t\tSueldo por hora: " + fabrica[taller][empleado][0]);
  45.        System.out.println( "\t\tHoras trabajas en la semana: " + fabrica[taller][empleado][1]);
  46.      }
  47.    }
  48.  
  49.  }
  50. }

Código:
C:\Users\EdSon\Desktop>javac Fabrica.java && java Fabrica

Indique la cantidad de talleres: 2

        Taller: 1
        Indique la cantidad de empleados: 2

                Empleado: 1
                Indique el salario por hora: 15
                Indique la cantidad de horas trabajadas en la semana: 10
                Total salario semanal: 150

                Empleado: 2
                Indique el salario por hora: 10
                Indique la cantidad de horas trabajadas en la semana: 5
                Total salario semanal: 50

        Taller: 2
        Indique la cantidad de empleados: 1

                Empleado: 1
                Indique el salario por hora: 20
                Indique la cantidad de horas trabajadas en la semana: 8
                Total salario semanal: 160

..:: IMPRIMIENDO NÓMINA ::..
Taller 1
        Empleado: 1
                Sueldo por hora: 15
                Horas trabajas en la semana: 10
        Empleado: 2
                Sueldo por hora: 10
                Horas trabajas en la semana: 5
Taller 2
        Empleado: 1
                Sueldo por hora: 20
                Horas trabajas en la semana: 8

C:\Users\EdSon\Desktop>



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
con arreglos
Java
artang 0 2,155 Último mensaje 31 Marzo 2009, 04:54 am
por artang
arreglos
Java
diegormirez134 1 2,147 Último mensaje 19 Junio 2016, 03:24 am
por hectornunezrivas
arreglos en c
Programación C/C++
megadethrust1 5 2,099 Último mensaje 13 Diciembre 2016, 04:33 am
por engel lex
Arreglos
Programación C/C++
angeljonh 4 2,122 Último mensaje 20 Agosto 2017, 18:16 pm
por angeljonh
Arreglos
Programación C/C++
angeljonh 1 1,499 Último mensaje 23 Agosto 2017, 07:10 am
por angeljonh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines