lunes, 17 de octubre de 2011

Deitel_Java_7.10 ( Comisión por Ventas)

_____________________________________________________________________________________
7.10 (Comisión por ventas) Utilicele un arreglo unidimensional para resolver el siguiente problema: una compañía paga a sus vendedores por comisión. Los vendedores reciben $200 por semana  más el 9% de sus ventas totales de esa semana. Por ejemplo, un vendedor que acumule $5000 en ventas en una semana recibirá $200 más el 9% de $5000, o un total de $650.00 Escriba una aplicación (utilizando un arreglo de contadores) que determine cuántos vendedores recibieron salarios en cada uno de los siguientes rangos. (Suponga que el salario de cada vendedor su trunca a una cantidad entera):

a) $200-299
b) $300-399
c) $400-499
d) $500-599
e) $600-699
f) $700-799
g) $800-899
h) $900-999
i) $1000
_______________________________________________________________________________________
SOLUCIÓN:
Este archivo debe guardarse con el nombre
public class UsaTrabajadores

public class UsaDeitel_7_10

{  // Abre clase publica UsaDeitel_7_10
public static void main(String args[])
{  //Abre main
Deitel_7_10 miObjeto = new Deitel_7_10();
miObjeto.Recibe();
}  // cierra main
}   //Cierra clase publica UsaDeitel_7_10

Éste código debe guardarse con el nombre Deitel_7_10.java

import java.util.Scanner;
public class Deitel_7_10
{  // Abre clase
private int Trabajadores = 10;  
float ArregloA[] = new float[Trabajadores + 1];
int ArregloB[] = new int[Trabajadores + 1];
int ArregloC[] = new int[11];

public void Recibe()
{  // Abre metodo Recibe
Scanner entrada = new Scanner(System.in);
System.out.printf("\nEste programa recibe los rangos en los que estan");
System.out.printf("\nlos salarios de los %d empleados.\n", Trabajadores);
float ventas;
  
for ( int j = 0; j < Trabajadores; j++ )
{  // Abre for
ArregloC[j] = 0;
}  // Cierra for
for ( int i = 1; i <= Trabajadores; i++ )
{  // Abre for
System.out.printf("\n\n\nIntroduzca las ventas del empleado numero %d  ", i);
ventas = entrada.nextFloat();
ArregloA[i] = ((float)(9)/100)*ventas + 200;
System.out.printf("\nEl salario del empleado %d es: %.2f\n ", i, ArregloA[i]);
ArregloB[i] = (int)(ArregloA[i])/100;
} 
  
for (int k = 1; k <= Trabajadores; k++ )
{
if (ArregloB[k] < 10)
ArregloC[ArregloB[k]]++;
else
ArregloC[Trabajadores]++;
}
for (int j = 2; j < Trabajadores; j++ )
{
System.out.printf("\nHay %d empleados que cobran entre %d", ArregloC[j], (j * 100));
System.out.printf(" y %d pesos.\n", (( j + 1 ) * 100 ) - 1 );
}

System.out.printf("Hay %d empleados que cobran 1000 o mas.\n\n", ArregloC[Trabajadores]);
  
}   // Cierra metodo Recibe

}   // Cierra clase

10 comentarios:

  1. BUENAS NOCHES:
    ¿ME PUEDEN AYUDAR A RESOLVER ESTE PROBLEMA?

    POR LA VENTA DE UN AUTO UN VENDEDOR COBRA EL 3% DE COMISION, GASTA DICHO VENDEDOR EL 40% DE SU GANANCIA Y EL RESTO LO PRESTA CON UN INTERES DEL 5%, RECIBIENDO POR CONCEPTO DE INTERES $63, ¿CUAL ERA EL PRECIO DEL AUTO?

    GRACIAS,ESPERO QUE PUEDA AYUDARME.

    ResponderEliminar
  2. hola

    soy nuevo en esto estoy ,estoy siguiendo el curso de Deitel..
    si es posible podrias comentar un poco linea por linea.

    gracias

    ResponderEliminar
  3. Lo podrias hacer en c++? Gracias!

    ResponderEliminar
  4. hola sera que me pueden ayudar para enviarles un ejercicio confirmen
    xfa

    ResponderEliminar
  5. a mi me funciono asi!


    public class ComisionPorVentas {

    private static int sueldo;
    private static int comisionValor;
    private static int[] sueldoMasComision;
    private static int[] totalPagos;
    private static int[] ventasPorVendedor;
    private static int[] sueldos;

    //constructor
    public ComisionPorVentas(int[] ventas) {
    sueldo = 200;
    comisionValor = 9;
    ventasPorVendedor = ventas;
    totalPagos = new int[ventas.length];
    sueldos = new int[ventas.length];
    }//fin constructor

    public static void main(String[] args) {
    int[] ventas = {4500, 6345, 9876, 3000, 4897};
    ComisionPorVentas misVentas = new ComisionPorVentas(ventas);
    calculoSueldoMasComision();
    imprimirResultados();
    mostrarGrafico();
    }

    //calcula el sueldo total
    public static void calculoSueldoMasComision() {
    for (int i = 0; i < sueldos.length; i++) {
    sueldos[i] = 200;
    }

    for (int i = 0; i < ventasPorVendedor.length; i++) {
    totalPagos[i] = sueldo + ventasPorVendedor[i] * comisionValor / 100;
    }

    // for (int i = 0; i < totalPagos.length; i++) {
    // System.out.printf("%d ", totalPagos[i]);
    // }
    }//fin metodo

    public static void imprimirResultados() {
    System.out.printf("Los pagos semanales por vendedor son: \n");//encabezados
    System.out.print(" ");
    System.out.printf("\t%s\t%s\t%s %s", "Sueldo", "Venta", "Comision", "Total a Pagar");

    for (int i = 0; i < totalPagos.length; i++) {
    System.out.printf("\nVendedor %d\t", i + 1);

    System.out.printf("$%3d\t$%d\t$%6d\t\t$%5d", sueldos[i], ventasPorVendedor[i],
    ventasPorVendedor[i] * comisionValor / 100, totalPagos[i]);
    }
    System.out.println();

    }//fin metodo imprimirResultados

    public static void mostrarGrafico() {
    System.out.println("\nDistribucion de Pagos");
    int[] frecuencia = new int[11];

    try {
    for (int pagos : totalPagos) {
    ++frecuencia[pagos / 100];
    }
    } catch (ArrayIndexOutOfBoundsException e) {
    System.out.println(e);

    }

    for (int i = 2; i < frecuencia.length; i++) {
    if (i == 10) {
    System.out.printf("%5s: ", "1000 +");
    } else {
    System.out.printf("%2s-%2s: ",
    i * 100, i * 100 + 99);
    }
    //fin else
    //imprime los asteriscos por frecuencia
    for (int j = 0; j < frecuencia[i]; j++) {
    System.out.print("*");
    }
    System.out.println();

    }//fin for

    }
    }


    y la salida quedo asi:

    run:
    Los pagos semanales por vendedor son:
    Sueldo Venta Comision Total a Pagar
    Vendedor 1 $200 $4500 $ 405 $ 605
    Vendedor 2 $200 $6345 $ 571 $ 771
    Vendedor 3 $200 $9876 $ 888 $ 1088
    Vendedor 4 $200 $3000 $ 270 $ 470
    Vendedor 5 $200 $4897 $ 440 $ 640

    Distribucion de Pagos
    200-299:
    300-399:
    400-499: *
    500-599:
    600-699: **
    700-799: *
    800-899:
    900-999:
    1000 +: *
    BUILD SUCCESSFUL (total time: 0 seconds)

    ResponderEliminar
  6. Scanner leer = new Scanner(System.in);
    int vendedores;
    System.out.print("ingrese la cantidad de vendores de la empresa: ");
    vendedores= leer.nextInt();
    double[] vendedoresVector= new double[vendedores];
    double[] valorAPagar= new double[vendedores];
    int[] frecuencia = new int[10];
    double x=0;
    for (int i = 0; i < vendedores; i++) {

    System.out.printf("Ingrese la cantidad acumulada de ventas por semana del "
    + "vendedor %d: ",i+1);
    vendedoresVector[i]=leer.nextInt();

    }

    for (int i = 0; i < vendedores; i++) {
    valorAPagar[i]=(vendedoresVector[i]*0.09)+ 200;
    }
    System.out.printf("%n%n---------------------------------------%n");
    System.out.printf("%19s%22s","semanal","total");
    System.out.println(" ");
    for (int i = 0; i < valorAPagar.length; i++) {
    System.out.printf("Usuario %d : %.2f %20.2f%n", i,vendedoresVector[i],valorAPagar[i]);
    }
    System.out.println("");
    for (int i = 0; i < vendedores; i++) {
    x=valorAPagar[i] ;
    if(x>199 && x<300)
    {
    ++frecuencia[0];
    }
    if(x>299 && x<400){
    ++frecuencia[1];
    }
    if(x>399 && x<500){
    ++frecuencia[2];
    }
    if(x>499 && x<600){
    ++frecuencia[3];

    }
    if(x>599 && x<700){
    ++frecuencia[4];
    }
    if(x>699 && x<800){
    ++frecuencia[5];
    }

    if(x>799 && x<900){

    ++frecuencia[6];
    }

    if(x>899 && x<100){
    ++frecuencia[7];
    }
    if(x>=1000){

    ++frecuencia[8];
    }

    }
    for (int i = 0; i < frecuencia.length; i++) {
    if(i>=0 && i<=8){
    if (i==8) {
    System.out.printf("1000: ");


    }else
    System.out.printf("%d-%d: ", 100*i+200,100*i+299);
    }
    for (int j = 0; j < frecuencia[i]; j++) {
    System.out.printf("*");
    }
    System.out.println("");
    }

    ResponderEliminar
  7. estoy tratando hacerlo con do-wile pero no me sale

    ResponderEliminar
  8. Podrían ayudarme????
    Determine el sueldo final de un vendedor:
    - Declare e inicialice un sueldo base de S/. 2000.00
    - Recibe una comisión de 10% (constante) por cada venta que
    realiza. Los montos de cada venta son S/. 580.00, S/.1200.00 y
    S/. 3200.00

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...