UNIVERSIDAD TECNOLÓGICA DE PANAMÁ CENTRO REGIONAL DE CHIRIQUÍ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES LICENCIATURA EN DESARROLLO DE SOFTWARE
PROYECTO No.2
PROFESOR Eduardo Beitia
INTEGRANTES Jesús Sarmiento 4-785-205
13 de octubre – 2015 2015
F rasecélebre
"Se dice que las grandes disciplinas científicas son ejemplos de gigantes subidos a los hombros de otros gigantes. También se dice que la industria del software es un ejemplo de enanos subidos a los dedos de los pies de otros enanos" -- Alan Cooper
Defi nición del Problema Una empresa paga a sus cincuenta (50) empleados el Salario Normal que les corresponde. Si el mes es diciembre, a cada empleado le corresponde un bono de 50 balboas. Adicional a esto, mantiene una promoción de ofrecer una bonificación especial de la siguiente manera: Salario Normal = horas Salario Total = Salario
trabajadas * pago por hora
Normal + bonificaciones
La bonificación total corresponde a la sumatoria de cada una de las siguientes opciones, a medida que se cumplan: a. Si la sumatoria de los dígitos del día de nacimiento (1-31), corresponde a un número perfecto, se le suman B/.50.00 a la bonificación. b. Si el mes de nacimiento (1-12), corresponde a un número primo, se le suman B/.30.00 a la bonificación. c. Generar dos números aleatorios (RANDOM) entre 250 y 8500. Si estos son números amigos, se le suman B/.100.00 a la bonificación. (definir si son números amigos). d. Si uno de los números – o los dos – generados en el punto anterior, es un número Armstrong, se le suman B/.150.00 a la bonificación. El Salario Real para este mes viene dado de la siguiente forma: » »
Invierta la parte entera del Salario Total. El Salario Real será el mayor valor de los dos. Ejemplo: i. Salario Total = 157.36 entonces Salario Real = 751.00 Cambia el salario porque el número invertido (751) es mayor que el original (157). ii. Salario Total = 763.45 entonces Salario Real = 763.45 Se mantiene el Salario Total porque el número invertido (367) es menor que el original (763).
Por cada registro debe leer: Nombre, horas trabajadas, pago por hora, día y mes de cumpleaños, dos números aleatorios
Por cada empleado debe imprimir: Real
Nombre, Salario Normal, Bonificación, Salario Total, Salario
Al finalizar el proceso imprimir, con su correspondiente mensaje, los totales de: Salario Total, Salario Real.
Bonificaciones,
Construya, completo, la clase principal con el correspondiente método de ejecución ( main)
Código Fuente
package proyecto2; import java.util.Scanner; import java.util.Random; import proyecto1.CaracteristicaNumeros;
public class proyecto2 { public static Scanner teclado; static String nom,mes; static int ht,n1,n2,dia,mesc;//ht son horas trabajas,n1 es un numero cualquiera al igual que n2, dia es el dia del cumple y mesc es mes de cumpleanios static float salreal, salnormal,saltotal,bono,pg;//variables utlizadas para manejar el calculo del salario long inv;’//utilizada para llamar a metodo invetir CaracteristicaNumeros NumCarac=new CaracteristicaNumeros (); public static void main (String[]args) { proyecto2 objeto=new proyecto2(); int x;//variable para el ciclo for float sumb = 0,sumsaln=0,sumsalr=0;//acumuladores para los totals for (x=1;x<50;x++) { objeto.mtdLeer(); objeto.mtdCal_bono(); sumb+=bono; objeto.calc_salario();
sumsaln+=salnormal; sumsalr+=salreal; objeto.imprimir();
} System.out.println("\nTOTAL DE BONOS : "+sumb); System.out.println("TOTAL SALARIOS NORMAL : "+sumsaln); System.out.println("TOTAL SALARIOS REAL : "+sumsalr); } public void mtdLeer() { teclado =new Scanner (System.in); System.out.println("\nIngresa(Nombre)DE_Mes Actual: "); mes=teclado.nextLine();
System.out.println("Ingresa un Nombre: "); nom=teclado.nextLine();
System.out.println("Ingresa Horas Trabajadas: "); ht=teclado.nextInt(); System.out.println("Ingresa Pago por Hora: "); pg=teclado.nextFloat(); System.out.println("Ingresa dia de cumpleanios: "); dia=teclado.nextInt(); System.out.println("Ingresa Mes de Nacimiento: "); mesc=teclado.nextInt();
}
int sumadigitos(int num) { int sum=0;//sumar digitos del dia sum=num/10+num%10; return sum; } public void mtdCal_bono() {
int x,nrand;//variable para numerous random if (mes=="diciembre") bono=50; dia=sumadigitos(dia); if (NumCarac.calc_perfecto(dia)=='s') bono=bono+50; if (NumCarac.calc_primo(mesc)=='s') bono=bono+30;
Random r = new Random(); int n1 = r.nextInt(8500 - 250) + 250; int n2 = r.nextInt(8500 - 250) + 250; if (NumCarac.calc_amigos(n1,n2)=='s') bono=bono+30; if (NumCarac.calc_armstrong(n1)||
NumCarac.calc_armstrong(n2))
bono=bono+150;
}
public void calc_salario() { salnormal=ht*pg; saltotal=salnormal+bono; inv=NumCarac.calc_invetir((int)saltotal);
if (inv>saltotal) salreal=inv; else salreal=saltotal;
} public void imprimir () { System.out.println("EL Nombre de Empleado Es: "+nom); System.out.println("Su Salario Normal Es: "+salnormal); System.out.println("Su Bonificacion Es: "+bono); System.out.println("Su Salario total Es: "+saltotal); System.out.println("Su Salario Real Es: "+inv); } }