Java Code Frank
Java Programming
martes, 26 de noviembre de 2013
sábado, 24 de agosto de 2013
Estructuras de Control Parte 1: Ejercicio 2
Ejercicio 2:
Lectura.java
Empleado.java
Producto.java
Ejercicio2.java
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)
Etiquetas:
array,
clases,
ejemplo,
ejercicio,
Estructuras de control
Ubicación:
Chepen, Perú
jueves, 22 de agosto de 2013
Estructuras de Control Parte 1: Ejercicio 1
Ejercicio 1:
Ejercicio1.java
run:
Los
conductores se preocupan acerca del kilometraje de sus automóviles. Un
conductor ha llevado el registro de varios reabastecimientos de gasolina,
registrando los kilómetros conducidos y los litros usados en cada
reabastecimiento. Desarrolle una aplicación en java que reciba como entrada los
kilómetros conducidos y los litros usados (ambos enteros) por cada
reabastecimiento. El programa debe calcular y mostrar los kilómetros por litro
obtenidos en todos los reabastecimientos hasta este punto. Todos los cálculos
del promedio deben producir resultados en números de punto flotante.
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 java.io.IOException; 10 11 /** 12 * 13 * @author iAlexander 14 */ 15 public class Ejercicio1 { 16 public static void main(String[] args) throws IOException { 17 //declaracion de variables 18 int kilometros = 0; 19 int litrosGasolina = 0; 20 char r; 21 int contador = 0; 22 while(true){ 23 r = Lectura.leerCaracter("Registrar reabastecimiento (y~n)?: "); 24 switch(r){ 25 case 'n': 26 break; 27 case 'y': 28 System.out.println("Reabastecimiento #"+(++contador)); 29 kilometros += Integer.parseInt(Lectura.leer("Distancia(Km): ")); 30 litrosGasolina += Integer.parseInt(Lectura.leer("Gasolina(l): ")); 31 break; 32 default: 33 System.out.println("Opcion no válida"); 34 break; 35 } 36 if(r=='n') break; 37 } 38 System.out.println("Reporte:"); 39 System.out.println("Total Kilómetros: "+kilometros 40 + "\nTotal Gasolina: "+litrosGasolina 41 + "\nPromedio: "+((double)kilometros/contador)+"/"+ 42 (double)litrosGasolina/contador+" km/l"); 43 } 44 } 45 46
run:
Registrar reabastecimiento (y~n)?:
y
Reabastecimiento #1
Distancia(Km): 80
Gasolina(l): 5
Registrar reabastecimiento (y~n)?:
y
Reabastecimiento #2
Distancia(Km): 50
Gasolina(l): 3
Registrar reabastecimiento (y~n)?:
n
Reporte:
Total Kilómetros: 130
Total Gasolina: 8
Promedio: 65.0/4.0 km/l
GENERACIÓN CORRECTA (total time: 23 seconds)
Suscribirse a:
Comentarios (Atom)
