Ir ao conteúdo
  • Cadastre-se
Caio Cassimiro

Java Como implementar dados em um array?

Recommended Posts

Olá!

 

Então galera, to com uma dúvida estarrecedora em programação Java. Pra situar melhor, é importante dizer que meu conhecimento é ultra básico, entretanto, os exercícios propostos pela faculdade já estão em um nível que não consigo acompanhar. A situação é a seguinte: possuo uma classe Pessoa, a qual o usuário digita o nome, o endereço e o RG de uma pessoa. Após isso, há uma classe Funcionário, que, com extends em Pessoa, além desses dados, pede-se o salário e o cargo. No fim, imprime-se um "holerite" do funcionário, contendo os dados da classe Pessoa e Funcionario juntos, como um relatório. (Além disso, há uma classe TestaPessoa, que possui o main e o objeto Pessoa e Funcionario, com os metodos de imprimir e ler os dados de cada um). Agora, esse é o exercício final:

 

Uma Empresa contratou você para implementar uma folha de pagamento de seus 5 Funcionários. Nesta empresa deseja-se cadastrar um funcionário, imprimir seus dados pessoais, imprimir o holerite, além disso, deve haver a opção de imprimir um relatório com o holerite de todos 5 funcionários, com um subtotal no final do relatório que some todos os salários.

Obs: deve haver no minimo, três classes: Pessoa, Funcionário, Empresa. considere que a Empresa tem implementados os 5 funcionários em formato de array.

 

SOCORRO <3 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Caio Cassimiro Fala meu quirido, tudo bom?

Aqui, a moderação do forum não incentiva o ato de resolver uma questão ( principalmentes referentes a faculdades ) sem o autor da postagem, poste algum tipo de racíocinio ou construção.

Uma dica: Tente começar a implementar as classes e poste aqui pra gente ( lembre-se de utilizar a tag <code> na postagem do código ).

Duas dicas: Acredito que quando ele diz, que os os 5 funcionários estão em uma array, quer dizer que: existe uma variável array, do tipo Funcionário, algo tipo assim:

Funcionario[] meusFuncionarios = new Funcionario[5];

Que inicializa um array com tamanho 5, podendo ter dentro dele, 5 objetos da classe Funcionario.

Ai, utilize os loops for ou while, para percorrer e fazer as requisições solicitadas.

Espero ter ajudado!
Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Nicolas Porto Campana disse:

@Caio Cassimiro Fala meu quirido, tudo bom?

Aqui, a moderação do forum não incentiva o ato de resolver uma questão ( principalmentes referentes a faculdades ) sem o autor da postagem, poste algum tipo de racíocinio ou construção.

Uma dica: Tente começar a implementar as classes e poste aqui pra gente ( lembre-se de utilizar a tag <code> na postagem do código ).

Duas dicas: Acredito que quando ele diz, que os os 5 funcionários estão em uma array, quer dizer que: existe uma variável array, do tipo Funcionário, algo tipo assim:


Funcionario[] meusFuncionarios = new Funcionario[5];

Que inicializa um array com tamanho 5, podendo ter dentro dele, 5 objetos da classe Funcionario.

Ai, utilize os loops for ou while, para percorrer e fazer as requisições solicitadas.

Espero ter ajudado!
Abraço!

 

Eu entendo!

Aqui está o código que construí por enquanto:

 

CLASSE TESTAPESSOA (Main Method) 

import Modelo.Funcionario;
import Modelo.Pessoa;

public class TestaPessoa {
    public static void main(String[] args) {
        Pessoa pessoa = new Pessoa();
        pessoa.leiaDados();
        pessoa.imprimeDados();
        Funcionario funcionario = new Funcionario();
        funcionario.leiaDadosFuncionario();
        funcionario.imprimeDadosFuncionario();
    }
}


CLASSE PESSOA 
  
import java.io.InputStream;
import java.util.Scanner;

public class Pessoa {
    
    private String nome;
    private String endereco;
    private String rg;
    
    public void imprimeDados(){
        String mensagem = "--------------\n" + 
                          "DADOS PESSOAIS\n" +
                          "--------------\n" +
                          "Nome: " + this.nome +
                          "\nEndereço: " + this.endereco +
                          "\nRG: " + this.rg +
                          "\n--------------";
        System.out.println(mensagem);
    }
    
    public void leiaDados(){ 
        InputStream is = System.in;
        Scanner sc = new Scanner(is);
        System.out.print("Nome: ");
        this.nome = sc.nextLine();
        System.out.print("Endereço: ");
        this.endereco = sc.nextLine();
        System.out.print("RG: ");
        this.rg = sc.nextLine();
    }
    
}

CLASSE FUNCIONARIO
  
import java.io.InputStream;
import java.util.Scanner;

public class Funcionario extends Pessoa {
    
    private String cargo;
    private double salario;
    
    public void leiaDadosFuncionario() {
        this.leiaDados();
        InputStream is = System.in;
        Scanner sc = new Scanner(is);
        System.out.print("Cargo: ");
        this.cargo = sc.nextLine();
        System.out.print("Salário: ");
        this.salario = Double.parseDouble(sc.nextLine());
    }
    
    public void imprimeDadosFuncionario() {
        String mensagem = "==============" +
                          "\nHOLERITE";
        System.out.println(mensagem);
        this.imprimeDados();
        mensagem = "Cargo: " + this.cargo +
                   "\nSalário: " + this.salario +
                   "\n==============";
        System.out.println(mensagem);
    }
    
}

CLASSE EMPRESA (Holerites)
  
  
import java.io.InputStream;
import java.util.Scanner;

public class Empresa extends Funcionario{
   
    Funcionario n[] = new Funcionario [5];
    
    void repetirFuncionario(){
    for(int i = 0 ; i < 5 ; i++){
        n[i] = new Funcionario();
        
    }
    }
    
    void lerFuncionario(){
    for(int i = 0;  i <5; i++){
        n[i].leiaDadosFuncionario();
    }
    }
    
    public void imprimeDadosFuncionario(){
        
    }
}

A questão é: como inserir os funcionarios dentro desse array, juntando os métodos de ler e imprimir seus dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que ficaria mais bonito dentro da classe empresa você ter o método: 

inserirFuncionario(Funcionario f)

então instanciar e carregar os dados do funcionário na sua classe principal, onde estará a sua classe empresa

Empresa empresa = new Empresa()

o título do exercício dá a entender que  a aplicação deve ter um menu para executar as ações de inclusão de Funcionário e impressão de holerite avulso ou de todos os funcionarios.

Crie um mennu com as ações permitidas pelo programa:

Exemplo:

boolean executar = true;
while(executar){
	System.out.println("---------MENU--------")
	System.out.println("1 - Inserir Funcionario")
	System.out.println("2 - Imprimir holerite")
	System.out.println("3 - Imprimir todos")
	System.out.println("4 - sair")
	
	byte opcao = 0;
	//Capturar a opção digitada
	(...)

	switch(opcao){
		case 1:
		//Método que insere um funcionário;
		break;
		case 2:
			//Método que imprime um holerite;
		break;
		case 3:
			//Método que imprime todos;
		break;
		case 4:
			System.out.println("Fim da execucao");
			executar = false;
		break;
		default:
		break;
	}

}

 

 

Exemplo do conteúdo do método para inserir funcionário chamado no case:

Funcionario func = new Funcionario();
System.out.println("Insira os dados do funcionario ");
func.leiaFuncionario();
empresa.inserirFuncionario(func);    

Não esqueça de inserir uma regra para limitar o número de funcionários até 5.

Espero que ajude

Editado por Heuwald

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×