metodo para pago de salario (JAVA)

urgido

Lanero Regular
17 Abr 2006
6
hola pues fijense que estoy apenas estudiando java y como tarea el M.C. me encargo crear una clase la cual definiera un "n" número de trabajadores y me dio dos salarios uno t1 y t2. Me dijo que a los trabajadores hay que pagarles con billetes de numeración: 500, 200, 50, 20, 5 y que por medio del metodo ya sea while, for vaya diciendo, ejemplo: si tengo la cantidad 1200 debo decir: "se le va a pagar con dos de quinientos y uno de 200". Bueno a continuación les pego el código que he creado pero no se como asignarle esa interpretación. Saludos

PHP:
class Empleados{

 public void empresa(int trabajadores, int t1, int t2){
  trabajadores = 100;
  t1 = 570; // 500 + 50 + 20
  t2 = 975; // 500 + 200 + 200 + 50 + 20 + 5

  String billetes[];
  billetes = new String[5];
  billetes[0] = new String( "500" );
  billetes[1] = new String( "200" );
  billetes[2] = new String( "50" );
  billetes[3] = new String( "20" );
  billetes[4] = new String( "5" );
 }
}
 

eMc-velezbunzl

Lanero Reconocido
23 Oct 2005
294
viejo mria un codigo mas o menos parecido que me toco hacer a mi, es de c++ pero algo si de algo te puede servir ahi lo tenes, es una maquina de cambio que le das una cantidad y dice la cantidad necesaria de billetes de todas las denominaciones y de monedas

int totbillcin,difc,totbillvei,difv,totbilldie,difd,totbillcinco,difcinco,totbilldos,difdos;
int totbillmil,difmil,totmonqui,difqui,totmondosi,difdosi,totmoncien,difcien;
int totmoncincuenta,difcincuenta,totmonvei,difvei,totmondiez,difdiez,totmoncincop,difcincop;
int totmonpeso,difpeso;
cout<<endl;
cout<<"Entre la cantidad en pesos para hacer el cambio: ";
cin>>valor;
cout<<endl;
//50.000
totbillcin=valor/50000;
difc=50000*totbillcin;
difc=valor-difc;
if(totbillcin!=0)
{
cout<<"Billetes de cincuenta mil "<<totbillcin<<endl;
}
//20.000
totbillvei=difc/20000;
difv=20000*totbillvei;
difv=difc-difv;
if(totbillvei!=0)
{
cout<<"Billetes de veinte mil "<<totbillvei<<endl;
}
//10.000
totbilldie=difv/10000;
difd=10000*totbilldie;
difd=difv-difd;
if(totbilldie!=0)
{
cout<<"Billetes de diez mil "<<totbilldie<<endl;
}
//5.000
totbillcinco=difd/5000;
difcinco=5000*totbillcinco;
difcinco=difd-difcinco;
if(totbillcinco!=0)
{
cout<<"Billetes de cinco mil "<<totbillcinco<<endl;
}
//2.000
totbilldos=difcinco/2000;
difdos=2000*totbilldos;
difdos=difcinco-difdos;
if(totbilldos!=0)
{
cout<<"Billetes de dos mil "<<totbilldos<<endl;
}
//1.000
totbillmil=difdos/1000;
difmil=1000*totbillmil;
difmil=difdos-difmil; if(totbillmil!=0)
{
cout<<"Billetes de mil "<<totbillmil<<endl;
}
//500
totmonqui=difmil/500;
difqui=500*totmonqui;
difqui=difmil-difqui;
if(totmonqui!=0)
{
cout<<"Monedas de quinientos "<<totmonqui<<endl;
}
//200
totmondosi=difqui/200;
difdosi=200*totmondosi;
difdosi=difqui-difdosi;
if(totmondosi!=0)
{
cout<<"Monedas de docientos "<<totmondosi<<endl;
}
//100
totmoncien=difdosi/100;
difcien=100*totmoncien;
difcien=difdosi-difcien;
if(totmoncien!=0)
{
cout<<"Monedas de cien "<<totmoncien<<endl;
}
//50
totmoncincuenta=difcien/50;
difcincuenta=50*totmoncincuenta;
difcincuenta=difcien-difcincuenta;
if(totmoncincuenta!=0)
{
cout<<"Monedas de cincuenta "<<totmoncincuenta<<endl;
}
//20
totmonvei=difcincuenta/20;
difvei=20*totmonvei;
difvei=difcincuenta-difvei;
if(totmonvei!=0)
{
cout<<"Monedas de veinte "<<totmonvei<<endl;
}
//10
totmondiez=difvei/10;
difdiez=10*totmondiez;
difdiez=difvei-difdiez;
if(totmondiez!=0)
{
cout<<"Monedas de diez "<<totmondiez<<endl;
}
//5
totmoncincop=difdiez/5;
difcincop=5*totmoncincop;
difcincop=difdiez-difcincop;
if(totmoncincop!=0)
{
cout<<"Monedas de cinco "<<totmoncincop<<endl;
}
//1
totmonpeso=difcincop/1;
difpeso=1*totmonpeso;
difpeso=difcincop-difpeso;
if(totmonpeso!=0)
{
cout<<"Monedas de peso "<<totmonpeso<<endl;
}
 

Alexeyev

Lanero Reconocido
6 Ene 2004
809
Para Java lo primero que debes de crear es un objeto que sea trabajador, tienes que crear otro objeto con los billetes y otro con salario, el pago de los salarios debe de ser tu interface entre los billetes y el salario del trabajador, el metodo que te pone eMc-velezbunzl es bueno y simplemente tendrias que creear una instancia para que puedas pasar el numero y el tipo de billetes que vas a dar al salario
 

urgido

Lanero Regular
17 Abr 2006
6
:S pues al de c si le logre pillar bien el asunto aunque en mi código de java si tengo dudas.. veamos ya tengo el objeto pero se llama empleado igual el objeto billetes ahora bien... en este momento voy a crear el objeto salario... lo que no sé en realidad es como imprimir la cantidad de billetes que debo usar, bueno el profesor me dijo ke para t1 me debe decir que tengo que pagar con: 500 + 50 + 20 ¿como logro esto? es mi única duda.... creo que esto me esta matando. Y aunque no lo crean este maestro no enseña nada ¬¬. Haber que tal. Un saludo
 

urgido

Lanero Regular
17 Abr 2006
6
mmm estudiaria eso si tuviese tiempo pero esto es una tarea de un "profesor" por llamarlo así... y digo por llamarlo asi por que no enseña nada!!!. En fin.
 

jomunoz

Lanero Reconocido
31 Mar 2004
682
urgido dijo:
mmm estudiaria eso si tuviese tiempo pero esto es una tarea de un "profesor" por llamarlo así... y digo por llamarlo asi por que no enseña nada!!!. En fin.

La tarea la puso para que aprendas, pongase juicioso que estudiar eso no lleva mucho tiempo. Aqui le dejo un link http://web.jet.es/jqc/progii1.html

Intente hacer la función recursiva usted solo, y si no le funciona como quiere ponga el codigo y comente sus dudas.
 

Yeison

Lanero Líder
Lanero VIP
1 Feb 2004
11,256
class Empleados{

public void empresa(int trabajadores, int t1, int t2){
trabajadores = 100;
t1 = 570; // 500 + 50 + 20
t2 = 975; // 500 + 200 + 200 + 50 + 20 + 5

String billetes[];
billetes = new String[5];
billetes[0] = new String( "500" );
billetes[1] = new String( "200" );
billetes[2] = new String( "50" );
billetes[3] = new String( "20" );
billetes[4] = new String( "5" );
}
}

Como dijeron por ahi con recursividad se puede lograr este ejercicio,, lo que tienes que hacer es dividir entre las cantidades e ir disminuyendo la cantidad total:

Ej:
PHP:
T1 = 975
int rta = 0;
boolean seguir = true;
while(seguir = true){
     if(t1>500){
            int div = t1/500;//# Numero de billetes de 500
             rta = T1-(div*500);
             t1 = rta;
     }else if(t1>200){
             int div = t1/500;//# Numero de billetes de 200
             rta = T1-(div*200);
     }
}

y asi continuas con las comprobaciones, y lo que tienes que hacer es una lista enlazada parai ir guandando el numero de billetes de tal cantidad.