Una empresa grande paga a sus
vendedores mediante comisiones. Los vendedores reciben $200 por semana, más el
9% de sus ventas brutas durante esa semana. Por ejemplo, un vendedor que vende
$5000 de mercancía en una semana, recibe $200 más el 9% de 5000, o un total de
$650. La empresa ofrece los siguientes productos:
Código
|
Descripción
|
Precio Unitario
|
1
|
Impresora
|
239.99
|
2
|
Teclado
|
129.75
|
3
|
Memoria Flash
|
99.95
|
4
|
Monitor LCD
|
350.89
|
Desarrolle una aplicación en Java
que reciba como entrada los artículos vendidos por un vendedor durante la
última semana, y que calcule y muestre los ingresos de ese vendedor. No hay límite en cuanto al número de
artículos que un vendedor puede vender.
1 /* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5 6 package datos; 7 8 import java.io.BufferedReader; 9 import java.io.IOException; 10 import java.io.InputStreamReader; 11 12 /** 13 * 14 * @author igor 15 */ 16 public class Lectura { 17 18 private static BufferedReader candena = new BufferedReader( 19 new InputStreamReader(System.in)); 20 21 public static String leer(String mensaje) throws IOException{ 22 System.out.print(mensaje); 23 return candena.readLine(); 24 } 25 26 public static char leerCaracter(String mensaje) throws IOException{ 27 System.out.println(mensaje); 28 return candena.readLine().charAt(0); 29 } 30 } 31
1 /* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5 6 package entidades; 7 8 /** 9 * 10 * @author iAlexander 11 */ 12 public class Empleado { 13 public String codigo; 14 public String nombre; 15 public Producto[] listaProductos = new Producto[5]; 16 public int i = 0; 17 18 public Empleado(String codigo, String nombre){ 19 this.codigo = codigo; 20 this.nombre = nombre; 21 } 22 23 public void registrarProducto(Producto producto){ 24 if(i == listaProductos.length) 25 duplicaCapacidad(); 26 listaProductos[i++] = producto; 27 } 28 29 private void duplicaCapacidad(){ 30 Producto[] listaAux = new Producto[listaProductos.length+5]; 31 for(int j=0; j<listaProductos.length; j++) 32 listaAux[j] = listaProductos[j]; 33 listaProductos = listaAux; 34 } 35 36 @Override 37 public String toString() { 38 return "\nEmpleado:" 39 + "\nCodigo: " + codigo 40 + "\nNombre: " + nombre; 41 } 42 } 43 44
1 /* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5 6 package entidades; 7 8 /** 9 * 10 * @author iAlexander 11 */ 12 public class Producto { 13 public int codigo; 14 public String descripcion; 15 public double precio; 16 public int cantidad; 17 public double total; 18 19 public Producto(int codigo,String descripcion, double precio, int cantidad, double total) { 20 this.codigo = codigo; 21 this.descripcion = descripcion; 22 this.precio = precio; 23 this.cantidad = cantidad; 24 this.total = total; 25 } 26 } 27 28
1 /* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5 6 package ejercicios; 7 8 import datos.Lectura; 9 import entidades.Empleado; 10 import entidades.Producto; 11 import java.io.IOException; 12 import java.text.DecimalFormat; 13 14 /** 15 * 16 * @author iAlexander 17 */ 18 public class Ejercicio2 { 19 public static void main(String[] args) throws IOException { 20 int opcion; 21 String codigo; 22 String nombre; 23 DecimalFormat decimalFormat = new DecimalFormat("0.00"); 24 String menuP = "\nMenu - Principal:" 25 + "\n1. Registrar Empleado" 26 + "\n2. Listar Todos los empleados" 27 + "\n3. Registrar Productos para un Empleado" 28 + "\n4. Salir" 29 + "\nDigite opcion: "; 30 String menuRP = "Menu - Lista de Productos:" 31 + "\nLista de Productos:" 32 + "\nCodigo \tDescripcion \tPrecio($)" 33 + "\n1 \tImpresora \t239.99" 34 + "\n2 \tTeclado \t129.75" 35 + "\n3 \tMemoria Flash \t99.75" 36 + "\n4 \tMonitor LCD \t350.89" 37 + "\nRegistrar Producto [y~n]?: "; 38 39 Empleado[] listaEmpleado = new Empleado[10]; 40 int i = 0; 41 int l = 0; 42 String cadena = ""; 43 char r; 44 while(true){ 45 opcion = Integer.parseInt(Lectura.leer(menuP)); 46 if(opcion == 4) break; 47 switch(opcion){ 48 case 1: 49 if(i<10){ 50 codigo = Lectura.leer("Ingrese un codigo: "); 51 nombre = Lectura.leer("Ingrese un nombre: "); 52 listaEmpleado[i++] = new Empleado(codigo, nombre); 53 } 54 else 55 System.out.println("Ya no queda memoria para agregar a otro empleado"); 56 break; 57 case 2: 58 for(int j=0; j<i; j++) 59 cadena += listaEmpleado[j].toString(); 60 System.out.println(cadena); 61 break; 62 case 3: 63 String cod; 64 65 boolean band = false; 66 if(listaEmpleado[0] == null) 67 System.out.println("Registre un empleado primero"); 68 else{ 69 while(true){ 70 cod = Lectura.leer("Digite el codigo del empleado del cual" 71 + " desea registrar productos: "); 72 int k = 0; 73 while(k<i){ 74 if(listaEmpleado[k].codigo.compareTo(cod) == 0){ 75 band = true; 76 l = k; 77 } 78 k++; 79 } 80 if(band){ 81 Empleado empleado = listaEmpleado[l]; 82 System.out.println("\n\nEmpleado: "+empleado.nombre); 83 while(true){ 84 r = Lectura.leerCaracter(menuRP); 85 switch (r){ 86 case 'y': 87 int code; 88 String descripcion = ""; 89 double precio = 0; 90 int cantidad; 91 double total; 92 do{ 93 code = Integer.parseInt(Lectura.leer("Ingrese codigo " 94 + "Producto: ")); 95 }while(code < 1 || code > 4); 96 switch (code){ 97 case 1: 98 descripcion = "Impresora"; 99 precio = 239.39; 100 break; 101 case 2: 102 descripcion = "Teclado"; 103 precio = 179.75; 104 break; 105 case 3: 106 descripcion = "Memoria Flash"; 107 precio = 99.75; 108 break; 109 case 4: 110 descripcion = "Monitor LCD"; 111 precio = 350.89; 112 break; 113 } 114 do{ 115 cantidad = Integer.parseInt(Lectura.leer("Cantidad: ")); 116 }while(i<1); 117 total = cantidad*precio; 118 empleado.registrarProducto(new Producto(code, descripcion, 119 precio, cantidad, total)); 120 break; 121 case 'n': 122 double suma = 0; 123 System.out.println("\nResumen:" 124 + "\nCod.\t\tCant.\t\tDesp.\t\t precio\t\t total"); 125 for(int m=0; m<empleado.i; m++){ 126 Producto[] list = empleado.listaProductos; 127 System.out.println(list[m].codigo 128 + " \t\t"+list[m].cantidad 129 + " \t\t"+list[m].descripcion 130 + " \t"+list[m].precio 131 + " \t\t"+decimalFormat.format(list[m].total)); 132 suma += list[m].total; 133 } 134 System.out.println("Total Ventas: "+decimalFormat.format(suma) 135 + "\nComision Semanal: $200.00" 136 + "\nComision de Ventas(9%): "+decimalFormat.format( 137 0.09*suma) 138 + "\nTotal Comision: "+decimalFormat.format( 139 0.09*suma+200)); 140 break; 141 default: 142 System.out.println("Opcion no válida"); 143 continue; 144 } 145 if(r=='n') break; 146 } 147 }else{ 148 149 System.out.println("Codigo no registrado"); 150 continue; 151 } 152 if(r=='n') break; 153 } 154 } 155 break; 156 default: 157 System.out.println("Opcion no válida"); 158 continue; 159 } 160 } 161 } 162 } 163 164
run:
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 1
Ingrese un codigo: 46914430
Ingrese un nombre: Igor
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 1
Ingrese un codigo: 45698523
Ingrese un nombre: Nathan
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 2
Empleado:
Codigo: 46914430
Nombre: Igor
Empleado:
Codigo: 45698523
Nombre: Nathan
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 3
Digite el codigo del empleado del cual desea registrar productos: 46914430
Empleado: Igor
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 1
Cantidad: 5
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
t
Opcion no válida
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 4
Cantidad: 6
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 2
Cantidad: 3
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 3
Cantidad: 5
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
n
Resumen:
Cod. Cant. Desp. precio total
1 5 Impresora 239.39 1196,95
4 6 Monitor LCD 350.89 2105,34
2 3 Teclado 179.75 539,25
3 5 Memoria Flash 99.75 498,75
Total Ventas: 4340.29
Comision Semanal: $200.00
Comision de Ventas(9%): 390,63
Total Comision: 590,63
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 5
Opcion no válida
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 1
Ingrese un codigo: 69587425
Ingrese un nombre: Violeta
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 3
Digite el codigo del empleado del cual desea registrar productos: 45698523
Empleado: Nathan
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 1
Cantidad: 10
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
n
Resumen:
Cod. Cant. Desp. precio total
1 10 Impresora 239.39 2393,90
Total Ventas: 2393.90
Comision Semanal: $200.00
Comision de Ventas(9%): 215,45
Total Comision: 415,45
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 4
GENERACIÓN CORRECTA (total time: 3 minutes 2 seconds)
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 1
Ingrese un codigo: 46914430
Ingrese un nombre: Igor
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 1
Ingrese un codigo: 45698523
Ingrese un nombre: Nathan
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 2
Empleado:
Codigo: 46914430
Nombre: Igor
Empleado:
Codigo: 45698523
Nombre: Nathan
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 3
Digite el codigo del empleado del cual desea registrar productos: 46914430
Empleado: Igor
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 1
Cantidad: 5
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
t
Opcion no válida
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 4
Cantidad: 6
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 2
Cantidad: 3
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 3
Cantidad: 5
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
n
Resumen:
Cod. Cant. Desp. precio total
1 5 Impresora 239.39 1196,95
4 6 Monitor LCD 350.89 2105,34
2 3 Teclado 179.75 539,25
3 5 Memoria Flash 99.75 498,75
Total Ventas: 4340.29
Comision Semanal: $200.00
Comision de Ventas(9%): 390,63
Total Comision: 590,63
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 5
Opcion no válida
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 1
Ingrese un codigo: 69587425
Ingrese un nombre: Violeta
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 3
Digite el codigo del empleado del cual desea registrar productos: 45698523
Empleado: Nathan
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
y
Ingrese codigo Producto: 1
Cantidad: 10
Menu - Lista de Productos:
Lista de Productos:
Codigo Descripcion Precio($)
1 Impresora 239.99
2 Teclado 129.75
3 Memoria Flash 99.75
4 Monitor LCD 350.89
Registrar Producto [y~n]?:
n
Resumen:
Cod. Cant. Desp. precio total
1 10 Impresora 239.39 2393,90
Total Ventas: 2393.90
Comision Semanal: $200.00
Comision de Ventas(9%): 215,45
Total Comision: 415,45
Menu - Principal:
1. Registrar Empleado
2. Listar Todos los empleados
3. Registrar Productos para un Empleado
4. Salir
Digite opcion: 4
GENERACIÓN CORRECTA (total time: 3 minutes 2 seconds)