Jump to content
sportal

Calcular salários anuais de uma empresa.

Recommended Posts

sportal

Boas, tenho um projecto para desenvolver na faculdade e ando a destinar um pouco com o código, se algum me conseguir ajudar ou dar umas luzes :D

salários anuais de uma empresa.

Uma empresa é composta pelo valor do seu capital social, a percentagem

do capital social a distribuir anualmente para cada gerente e o conjunto dos

seus empregados. Existem 3 tipos de empregados: O empregado normal, o

motorista e o gerente. Os empregados normais e os gerentes são descritos

pelo nome, pelo salário mensal e pela empresa a que estão associados. Os

motoristas, além dos dados dos empregados normais, têm também o nome

da marca do seu carro e um valor mensal para pagamento do combustível.

A forma de calcular o salário de cada um dos tipos de empregados é a

seguinte:

Empregados = (14 * salário mensal) * 0,79

Motoristas = (14 * salário mensal) * 0,79 + 12 * combustível

Gerentes = 12 * salário mensal + percentagem do capital social da empresa

De seguida são descritos os passos detalhados para criação de cada uma das

classes. O último passo é a criação de uma classe que vai instanciar alguns

empregados e realizar o cálculo salarial.

1. Crie uma classe Empresa dentro do package uatla.empresa. A classe deve ter os

seguintes atributos:

1. Capital social

2. Percentagem do capital a distribuir pelos gerentes

3. Array de 50 Empregados

4. Número de empregados

Crie um construtor que recebe o capital social e a percentagem a distribuir pelos

gerentes. Este construtor deve inicializar o número de empregados a 0 e o array

de empregados.

Faça um método get para cada um dos atributos da classe.

Faça um método set para o capital social e a percentagem de capital social.

Faça um método que devolve uma String com a descrição textual de todos os

dados da empresa (chame-lhe toString).

Todos os métodos anteriores são públicos e os atributos privados.

2. Crie uma classe Empregado dentro do package uatla.empresa. A classe deve ter

os seguintes atributos:

1. Nome

2. Salário mensal

3. Empresa associada

Crie um construtor que recebe os três campos do objecto.

Crie gets e sets para todos os atributos.

Crie um método para calcular o salário anual do empregado tal como descrito no

enunciado.

Crie um método (toString) que apresenta o empregado texualmente

3. Crie uma classe Gerente que herda da classe empregado e faz override dos

métodos relevantes.

4. Crie uma classe motorista que herda da classe empregado e que tem, além dos

parâmetros do empregado, os seguintes parâmetros:

1. O nome da marca do carro

2. Valor mensal para combustível

Esta classe deve implementar e fazer override dos métodos relevantes

5. Implemente na classe Empresa o método de cálculo dos pagamentos anuais que

percorre todo o array dos empregados, soma os salários de cada um e devolve o

valor final.

6. Implemente o método adicionaEmpregado na empresa. Este método recebe um

empregado, altera o número de empregados da empresa e coloca-o no array de

empregados.

7. Implemente o método toString na empresa que devolve uma string com as

informações da empresa, o valor anual de pagamentos aos seus empregados e a

descrição de todos os empregados da empresa (para este último caso, deve

percorrer o array dos empregados e invocar o método toString de cada um

deles).

8. Crie uma classe com apenas o método main. Este método deve instanciar uma

empresa, deve instanciar alguns empregados e associá-los à empresa.

Finalmente deve invocar o método toString da empresa.

Share this post


Link to post
Share on other sites
sportal
package uatla.empresa;

public class Empregado{
private String nome;
protected double salarioMensal;
private String empresa;

public Empregado(String nome, double salarioMensal, String empresa) {
	this.nome = nome;
	this.salarioMensal = salarioMensal;
	this.empresa = empresa;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public double getSalarioMensal() {
	return salarioMensal;
}

public void setSalarioMensal(double salarioMensal) {
	this.salarioMensal = salarioMensal;
}

public String getEmpresa() {
	return empresa;
}

public void setEmpresa(String empresa) {
	this.empresa = empresa;
}

public double salarioAnual(){
	return((salarioMensal * 14) * (79/100));
}

@Override
public String toString() {
	String descricao = "Empregado:\n";
	descricao = descricao + "\t" + nome;
	descricao = descricao + "\t" + empresa;
	descricao = descricao + "\t" + salarioMensal;
	return descricao;
}


}

Share this post


Link to post
Share on other sites
sportal
package uatla.empresa;

//import java.util.Arrays;

//import uatla.banco.Movimento;

public class Empresa {
private int capSocial;
private double perCapital;
private Empregado [] empregados;
private final int NUMERO_EMPREGADOS = 50;


public Empresa(){
	this.capSocial = 5000;
	this.perCapital = 0.02;
	empregados = new Empregado[NUMERO_EMPREGADOS];
}

public Empresa(int capSocial, double perCapital, Empregado[] empregados) {
	this.capSocial = capSocial;
	this.perCapital = perCapital;
	this.empregados = empregados;
	empregados = new Empregado[NUMERO_EMPREGADOS];
}

public int getCapSocial() {
	return capSocial;
}

public void setCapSocial(int capSocial) {
	this.capSocial = capSocial;
}

public double getPerCapital() {
	return perCapital;
}

public void setPerCapital(double perCapital) {
	this.perCapital = perCapital;
}

public Empregado[] getEmpregados() {
	return empregados;
}

public int getNUMERO_EMPREGADOS() {
	return NUMERO_EMPREGADOS;
}

@Override
public String toString() {
	String descricao = "Empresa:\n";
	descricao = descricao + "\t" + capSocial;
	//descricao = descricao + "\t" + perCapital;
	for (int i=0; i<NUMERO_EMPREGADOS; i++) {
		if (empregados [i] != null){
			descricao = descricao + "\t" + empregados[i].toString();
		}
	}
	return descricao;
}

public double valorCapSocial(){
	return getCapSocial()*getPerCapital();
}

Share this post


Link to post
Share on other sites
sportal
package uatla.empresa;

public class Gerente extends Empregado {

/*	public Gerente(){
	this("",0,"");
}*/

public Gerente(String nome, double salarioMensal, String empresa) {
	super(nome, salarioMensal, empresa);
}

@Override
public String toString() {
	String descricao = "Gerente:\n";
	descricao = descricao + super.toString();
	return descricao;
}

@Override
public double salarioAnual(){
	return((salarioMensal * 12) + valorCapSocial();
}



}

Share this post


Link to post
Share on other sites
sportal
package uatla.empresa;

public class Motorista extends Empregado{
private String marca;
private double combustivel;

/*	public Motorista(){
	this("",0,"");
}*/

public Motorista(String nome, double salarioMensal, String empresa, String marca, double combustivel) {
	super(nome, salarioMensal, empresa);
	this.marca = marca;
	this.combustivel = combustivel;
}

public String getMarca() {
	return marca;
}

public void setMarca(String marca) {
	this.marca = marca;
}

public double getCombustivel() {
	return combustivel;
}

public void setCombustivel(double combustivel) {
	this.combustivel = combustivel;
}

@Override
public String toString() {
	String descricao = "Motorista:\n";
	descricao = descricao + super.toString();
	descricao = descricao + "\t" + this.marca;
	descricao = descricao + "\t" + this.combustivel;
	return descricao;
}

@Override
public void salarioAnual(double valor){
	salarioAnual((super.salarioMensal * 14) + (12 * combustivel));
}
}

Share this post


Link to post
Share on other sites
sportal

A dificuldade é perceber como é que faço da alinea 5 para a frente, isto já está a fritar, principalmente que tenho a indicação que os atributos são private e preciso julgo eu de calcular o valor do capital social da empresa a distribuir pelos gerentes, mas o mesmo não permite ir buscar porque é private...

Obrigado.

Share this post


Link to post
Share on other sites
Knitter

O atributo pode ser privado mas é para isso que servem os métodos de acesso get/set: dar acesso a atributos privados garantido que as regras para a correcta utilização dos atributos são respeitadas.

Resumindo, usa os métodos get/set para aceder aos atributos que queres.

Como nota, não li a maioria do que escreveste e se tinhas dúvidas apenas na questão 5, não era necessário colares aqui todo o enunciado, do mesmo modo, o código deverá estar dentro das tags GESHI e se for tanto como tens aqui será mais simples usares o pastebin do P@P, http://paste.portugal-a-programar.org/

Share this post


Link to post
Share on other sites
sportal

Ok, obrigado, as dúvidas eram do 5 até ao 8 :D para o proximo post já faço como indicaste, sempre a aprender.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.