Está en la página 1de 8

UNIVERSIDAD TECNOLGICA DE PANAM

CENTRO REGIONAL DE CHIRIQU

FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES

LICENCIATURA EN DESARROLLO DE SOFTWARE

PROYECTO No.2

PROFESOR

Eduardo Beitia

INTEGRANTES

Jess Sarmiento 4-785-205

13 de octubre 2015
Frase clebre

"Se dice que las grandes disciplinas cientficas son ejemplos de gigantes subidos a los
hombros de otros gigantes. Tambin se dice que la industria del software es un ejemplo de
enanos subidos a los dedos de los pies de otros enanos"

-- Alan Cooper
Definicin 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
promocin de ofrecer una bonificacin especial de la siguiente manera:

Salario Normal = horas trabajadas * pago por hora

Salario Total = Salario Normal + bonificaciones

La bonificacin total corresponde a la sumatoria de cada una de las siguientes opciones, a medida
que se cumplan:

a. Si la sumatoria de los dgitos del da de nacimiento (1-31), corresponde a un nmero perfecto,


se le suman B/.50.00 a la bonificacin.
b. Si el mes de nacimiento (1-12), corresponde a un nmero primo, se le suman B/.30.00 a la
bonificacin.
c. Generar dos nmeros aleatorios (RANDOM) entre 250 y 8500. Si estos son nmeros amigos,
se le suman B/.100.00 a la bonificacin. (definir si son nmeros amigos).
d. Si uno de los nmeros o los dos generados en el punto anterior, es un nmero Armstrong,
se le suman B/.150.00 a la bonificacin.
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 nmero 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 nmero invertido (367) es menor que
el original (763).

Por cada registro debe leer: Nombre, horas trabajadas, pago por hora, da y mes de cumpleaos,
dos nmeros aleatorios

Por cada empleado debe imprimir: Nombre, Salario Normal, Bonificacin, Salario Total, Salario
Real

Al finalizar el proceso imprimir, con su correspondiente mensaje, los totales de: Bonificaciones,
Salario Total, Salario Real.

Construya, completo, la clase principal con el correspondiente mtodo de ejecucin (main)


Cdigo 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);