• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sofiarw4

Ajuda resoluçao de exercicio em java..

10 mensagens neste tópico

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).

:P 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para compilar tens de fazer

javac TeuPrograma.java

Era esta a tua dúvida?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ajudamos com problemas que tenhas com o código ou dificuldades mas não fazemos trabalhos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.. :hmm:... 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;
    }
    
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Coloca o código que te permite escolher novas opções dentro de um ciclo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Coloca o código que te permite escolher novas opções dentro de um ciclo.

Ta-m a dar erro... =/.. devo tar a por o ciclo mal... podes mostrar como tas a por o ciclo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não estou a pôr ciclo nenhum! Simplesmente isso é o truque básico para este tipo de questões.

Mostra aqui como colocaste o ciclo e vê-se qual é o problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora