Jump to content

Ajuda resoluçao de exercicio em java..


Sofiarw4

Recommended Posts

A Câmara Municipal de Curral dos SeteSete pretende um programa que lhe permita fazer a gestão dos seus 77 funcionários. Apenas pretende saber o seu nome!

Desenvolva um programa em Java, com:

a) Um módulo para apresentar um menu com as várias funcionalidades do programa (indicadas nas alíneas seguintes).

😛 Um módulo para admitir funcionários;

c) Um módulo para pesquisar funcionários;

d) Um módulo para alterar funcionários;

e) Um módulo para despedir funcionários;

f) Um módulo para listar todos os funcionários;

g) Um módulo para determinar e devolver o valor da despesa mensal com salários, sabendo que cada funcionário ganha 7€/hora e trabalha 7horas por semana;

h) Um módulo para listar todos os funcionários com um dado apelido no nome;

Alguem me ajude por favor... agradecia ajuda.. Obrigado

Link to comment
Share on other sites

Isto é uma possivel resposta ao problema? a minha duvida é q o programa realiza mas depois nao volta a repetir... ou seja, n vai novamente ao menu.. ?... n sei como faxer... sera q alguem agr m pode ajudar?

import java.util.Scanner;

public class Main {
    public Main() {
    }
    public static void main(String[] args) {
        int op,nelem;
        String [] funcionários=new String [77];
        String nome = null;
        Scanner ler=new Scanner(System.in);
        System.out.println("|----------------MENU---------------|");
        System.out.println("|1-| Admitir funcionário(s)---------|");
        System.out.println("|2-| Procurar funcionário(s)--------|");
        System.out.println("|3-| Alterar funcionário(s)---------|");
        System.out.println("|4-| Despedir funcionário(s)--------|");
        System.out.println("|5-| Listar todos os funcionário(s)-|");
        System.out.println("|6-| Salários-----------------------|");
        System.out.println("|7-| Busca por apelido--------------|");
        System.out.println("Escolha a sua opção");
        op=ler.nextInt();
        System.out.println("Qual o número de funcionários a inserir?");
        nelem=ler.nextInt();
        switch (op){
            case 1:while(nelem>funcionários.length){
                   System.out.println("Erro! Digite um número de funcionários inferior ou igual a "+funcionários.length+"!!");
                   nelem=ler.nextInt();}
                   admitir(funcionários,nome,nelem);
                   break;
            case 2: procurar(funcionários,nome,nelem);
                    break;
            case 3: alterar(funcionários,nome,nelem);
                    break;
            case 4: despedir(funcionários,nome,nelem);
                    break;
            case 5: listar(funcionários,nelem);
                    break;
            case 6: salarios(nelem);
                    break;
        }
    }
    public static void admitir(String [] funcionários,String nome,int nelem){
        Scanner ler=new Scanner(System.in);
        for (int i=0;i<nelem;i++){
            System.out.println("Qual o nome do funcionário?");
            nome=ler.next();
            funcionários[i]=nome;
        }
    }
    public static void procurar(String[]funcionários,String nome,int nelem){
        boolean encontrou=false;
        int i=0;
        Scanner ler=new Scanner(System.in);
        System.out.println("Qual o funcionário que deseja procurar?");
        nome=ler.next();
        while(i<nelem && encontrou==false){
            if (nome==funcionários[i])
                encontrou=true;
            else i++;}
        if (encontrou==true)
            System.out.println("O funcionário "+nome+" existe na posição "+i);
    }
    public static void alterar(String[]funcionários, String nome,int nelem){
        int i;
        Scanner ler=new Scanner(System.in);
        System.out.println("Qual a posição em que se encontra o funcionário que pretende alterar?");
        i=ler.nextInt();
        System.out.println(funcionários[i]);
        System.out.println("Digite o novo nome:");
        nome=ler.next();
        funcionários[i]=nome;
    }
    public static void despedir(String[]funcionários, String nome,int nelem){
        Scanner ler=new Scanner(System.in);
        System.out.println("Qual o funcionário que pretende despedir?");
        nome=ler.next();
        procurar(funcionários,nome,nelem);
        int i=0;
        while(i<nelem){
            funcionários[i-1]=funcionários[i];
            i++;}
        System.out.println("O funcionário "+nome+" foi despedido.");
    }
    public static void listar(String[]funcionários,int nelem){
        for(int i=0;i<nelem;i++)
            System.out.println(funcionários[i]);
    }
    public static int salarios(int nelem){
        int dias,despesa,mes;
        Scanner ler=new Scanner(System.in);
        System.out.println("Qual o número do mês?");
        mes=ler.nextInt();
        while(mes<1 || mes>12){
            System.out.println("Mês inválido!Digite um número válido!");
            mes=ler.nextInt();
        }
        switch(mes){
            case 2: dias=28;break;
            case 1: dias=31;break;
            case 3: dias=31;break;
            case 5: dias=31;break;
            case 7: dias=31;break;
            case 8: dias=31;break;
            case 10: dias=31;break;
            case 12: dias=31;break;
            default: dias=30;break;
        }
        despesa=(7*nelem)*dias;
        return despesa;
    }
    
}
Link to comment
Share on other sites

import java.util.Scanner;

public class Main {
    public Main() {
    }
    public static void main(String[] args) {
        int op,nelem;
        String [] funcionários=new String [77];
        String nome = null;
        Scanner ler=new Scanner(System.in);
        do{
        System.out.println("|----------------MENU---------------|");
        System.out.println("|1-| Admitir funcionário(s)---------|");
        System.out.println("|2-| Procurar funcionário(s)--------|");
        System.out.println("|3-| Alterar funcionário(s)---------|");
        System.out.println("|4-| Despedir funcionário(s)--------|");
        System.out.println("|5-| Listar todos os funcionário(s)-|");
        System.out.println("|6-| Salários-----------------------|");
        System.out.println("|7-| Busca por apelido--------------|");
        System.out.println("Escolha a sua opção");
        op=ler.nextInt();
        System.out.println("Qual o número de funcionários a inserir?");
        nelem=ler.nextInt();
        switch (op){
            case 1:while(nelem>funcionários.length){
                   System.out.println("Erro! Digite um número de funcionários inferior ou igual a "+funcionários.length+"!!");
                   nelem=ler.nextInt();}
                   admitir(funcionários,nome,nelem);
                   break;
            case 2: procurar(funcionários,nome,nelem);
                    break;
            case 3: alterar(funcionários,nome,nelem);
                    break;
            case 4: despedir(funcionários,nome,nelem);
                    break;
            case 5: listar(funcionários,nelem);
                    break;
            case 6: salarios(nelem);
                    break;
        }
        }while(op!=0);
    }
    public static void admitir(String [] funcionários,String nome,int nelem){
        Scanner ler=new Scanner(System.in);
        for (int i=0;i<nelem;i++){
            System.out.println("Qual o nome do funcionário?");
            nome=ler.next();
            funcionários[i]=nome;
        }
    }
    public static void procurar(String[]funcionários,String nome,int nelem){
        boolean encontrou=false;
        int i=0;
        Scanner ler=new Scanner(System.in);
        System.out.println("Qual o funcionário que deseja procurar?");
        nome=ler.next();
        while(i<nelem && encontrou==false){
            if (nome==funcionários[i])
                encontrou=true;
            else i++;}
        if (encontrou==true)
            System.out.println("O funcionário "+nome+" existe na posição "+i);
    }
    public static void alterar(String[]funcionários, String nome,int nelem){
        int i;
        Scanner ler=new Scanner(System.in);
        System.out.println("Qual a posição em que se encontra o funcionário que pretende alterar?");
        i=ler.nextInt();
        System.out.println(funcionários[i]);
        System.out.println("Digite o novo nome:");
        nome=ler.next();
        funcionários[i]=nome;
    }
    public static void despedir(String[]funcionários, String nome,int nelem){
        Scanner ler=new Scanner(System.in);
        System.out.println("Qual o funcionário que pretende despedir?");
        nome=ler.next();
        procurar(funcionários,nome,nelem);
        int i=0;
        while(i<nelem){
            funcionários[i-1]=funcionários[i];
            i++;}
        System.out.println("O funcionário "+nome+" foi despedido.");
    }
    public static void listar(String[]funcionários,int nelem){
        for(int i=0;i<nelem;i++)
            System.out.println(funcionários[i]);
    }
    public static int salarios(int nelem){
        int dias,despesa,mes;
        Scanner ler=new Scanner(System.in);
        System.out.println("Qual o número do mês?");
        mes=ler.nextInt();
        while(mes<1 || mes>12){
            System.out.println("Mês inválido!Digite um número válido!");
            mes=ler.nextInt();
        }
        switch(mes){
            case 2: dias=28;break;
            case 1: dias=31;break;
            case 3: dias=31;break;
            case 5: dias=31;break;
            case 7: dias=31;break;
            case 8: dias=31;break;
            case 10: dias=31;break;
            case 12: dias=31;break;
            default: dias=30;break;
        }
        despesa=(7*nelem)*dias;
        return despesa;
    }
    
}

Deve ser tipo isto, isto é adicionando um do{ ... while(op!=0);

Toma em atenção que é necessário adicionares a opção 0 para quando a escolheres o programa sair fora.

Não testei.

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other sites

Desculpa a pergunta , mas porque não criar uma classe Funcionario ??

E criavas vários métodos consoante esses que precisas nos menus..

Pelo meu ponto de vista seria muito mais fácil e útil...

Porque que há pessoal que apesar de estar numa linguagem OO, gosta de programar "à la C".

Dependendo do contexto em que se está a fazer o programa pode-se justificar ou não esta alternativa (quanto mais não seja para se conhecer uma alternativa ao metodologia OO).

Link to comment
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.