Exercício de JAVA, interface... Alguém pode me ajudar?

Estou com esse exercício para resolver, da faculdade, mas não estou conseguindo entender muito bem. Estou lendo, pesquisando, mas não consegui até agora. Alguém pode me ajudar?

O exercício é seguinte:

Você trabalha na área de tecnologia da informação (TI) em uma escola. A secretária da instituição solicitou a você a criação de um recurso no sistema que permita inserir a nota obtida pelo aluno em determinada disciplina. A nota deve ser definida em um campo específico em formato decimal, porém retornando ao cliente, após inserção do valor, o resultado obtido.

Você deverá criar uma interface com três constantes:

  1. “Parabéns, você atingiu todos os indicadores de avaliação com excelência”;

  2. “Parabéns, você obteve aproveitamento satisfatório nos indicadores de avaliação”;

  3. “Você não atingiu o mínimo esperado para aprovação”.

Para atender ao pedido, você deverá:

  • utilizar Java na construção do código;

  • criar uma classe para implementar a interface;

  • criar uma variável na classe para receber a opção digitada pelo usuário;

  • utilizar o método showInputDialog() da classe JOptionPane para solicitar as opções;

  • criar uma estrutura de decisão para verificar a opção digitada e printar na tela o conceito e sua descrição;

  • criar um projeto denominado ConceitoAluno; dentro dele, criar um pacote chamado interfaces, e, dentro do pacote, a interface e a classe para implementá-la.

1 curtida

O enunciado está bastante objetivo, o que exatamente você não entendeu?

Quando vejo um enunciado desses, fico desapontado que ainda existem professores insistindo em ensinar coisas erradas.
Usar interfaces para definir constantes é um Anti-Pattern.
Constantes você define em classes ou utiliza enum.

2 curtidas

Então, eu não consegui encontrar a forma certa de adicionar o JOpition, fiz de diversas maneiras, e todas me trouxeram resultados com erro, ou que simplesmente não funcionavam.
Creio q seja pelo fato de n conseguir usar o switch case da forma devida em meio a esse exercício em específico.
É que agora não estou com meu notebook, mas jaja mando mais ou menos oq eu consegui fazer.

Consultou a documentação do JOptionPane?
Posta o seu código.

public interface Constantes {
    
    public String E = "Parabéns, você atingiu todos os indicadores de avaliação com excelência";
    public String S = "Parabéns, você obteve aproveitamento satisfatório nos indicadores de avaliação";
    public String M = "Você não atingiu o mínimo esperado para aprovação";

    

    }
import javax.swing.JOptionPane;

public class Geral implements Constantes{
    public static void main(String[] args) {
        Geral geral = new Geral();
        geral.executar();
    }

    public void executar() {
        String opcao = solicitarOpcaoDoUsuario();
        String conceito = avaliarConceito(opcao);
        apresentar(opcao, conceito);
    }
    
    private String avaliarConceito(String opcao) {
        return null;
    }



    private String solicitarOpcaoDoUsuario() {
        Object mensagem = "Selecione a nota do aluno";
        String titulo = "Entrada de dados";
        double[] valoresSelecionaveis = new double[] { 1,2,3,4,5,6,7,8,9,10 };
        Object valorInicialSelecionado = 0;
        final String opcao = JOptionPane.showMessageDialog(mensagem, titulo, valoresSelecionaveis, valorInicialSelecionado);
        return opcao;
    }

    private String avaliarConceito(int opcao) {
        switch (opcao) {
            case 10:
                return E;
            case 9:
                return E;
            case 8:
                return E;
            case 7:
                return S;
            case 6:
                return S;
            case 5:
                return M;
            case 4:
                return M;
            case 3:
                return M;
            case 2:
                return M;
            case 1:
                return M;
            case 0:
            default:
                return M;
        }
    }






        private void apresentar(String opcao, String conceito) {
            Object mensagem = "A nota do aluno é: " + opcao + "\n" + conceito;
            String titulo = "Resultado";
            int tipoMensagem = JOptionPane.INFORMATION_MESSAGE;
            JOptionPane.showMessageDialog(null, mensagem, titulo, tipoMensagem);
        
    }

}


Por enquanto foi isso que eu consegui fazer, mas o erro “The method avaliarConceito(int) from the type Geral is never used locallyJava(603979894)” e o “JOptionPane is not applicable for the arguments (Object, String, double[], Object)” estão persistindo.

Sou graduanda em design e por alguma razão a faculdade quer que eu entenda linguagem de programação quando eu deveria criar interface. Estou com uma questão EXATAMENTE IGUAL e não faço ideia do que seja, alguém me ajuda pfvr :')

Cria um tópico aqui no fórum com a sua dúvida, só pra não misturar as coisas.

Se puder colocar no tópico o que você já aprendeu na sua matéria, vai ser uma bom ponto de partida pra qm começar a te ajudar

final String opcao = JOptionPane.showMessageDialog(mensagem, titulo, valoresSelecionaveis, valorInicialSelecionado);

Quando vc invoca o método showMessageDialog da classe JOptionPane, n tem retorno, o método é void, pois será apenas um aviso para o usuário, e não uma decisão, onde deveria escolher um Sim/Não, que nesse caso, teria que ser showConfirmDialog, e o retorno será um int e não String.
O primeiro argumento, é a referencia ao componente Pai, ou seja, o JFrame, mas vc pode passar como null também, a diferença é que se passar o JFrame, a mensagem será exibida centralizada nele, e já null, ao centro da tela, sem nenhuma referencia.