Duvida com programa em ArrayList

1 resposta
J

Tenho que fazer um programa para gerenciamento de alunos.
No meio do caminho surgiu um probleminha que nao to conseguindo resolver.
Como vou repor as notas dos alunos pendentes?
O codigo:
MAIN:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prova_de_logica;

import javax.swing.JOptionPane;

/**
 *
 * @author Usuario
 */
public class Prova_de_Logica {

    static int aprovados, pendentes, reprovados;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Logica classe = new Logica();
        int menu = 0;
        JOptionPane.showMessageDialog(null, "Bem vindo ao School Gerenciator!");
        while (menu != 7) {
            menu = Integer.parseInt(JOptionPane.showInputDialog(null, "MENU:"
                    + "\n[1] Cadastrar alunos"
                    + "\n[2] Alunos aprovados"
                    + "\n[3] Alunos pendentes"
                    + "\n[4] Alunos reprovados"
                    + "\n[5] Repor notas pendentes"
                    + "\n[6] Estatísticas"
                    + "\n[7] Sair"
                    + "\nPor favor, escolha uma opção e digite abaixo:"));

            if (menu == 1) {
                String Cadastro_de_nome = JOptionPane.showInputDialog(null, "Digite o nome do aluno:");
                classe.getNomes().add(Cadastro_de_nome);
                Double Cadastro_de_nota = Double.parseDouble(JOptionPane.showInputDialog(null, "Digite a nota do aluno:"));
                classe.getNotas().add(Cadastro_de_nota);

            } else if (menu == 2) {
                for (int i = 0; i < classe.getNotas().size(); i++) {
                    if (classe.getNotas().get(i) > 59 && classe.getNotas().get(i) <= 100) {
                        aprovados++;
                        classe.getSituacao().add('A');
                        JOptionPane.showMessageDialog(null, "APROVADOS:" //Mostra ao usuario os resultados
                                + "\nNome: " + classe.getNomes().get(i)
                                + "\nNota: " + classe.getNotas().get(i) + " pts"
                                + "\nSituacao: " + classe.getSituacao().get(i));

                    }
                }
            } else if (menu == 3) {
                for (int i = 0; i < classe.getNotas().size(); i++) {
                    if ((classe.getNotas().get(i) >= 50 && classe.getNotas().get(i) <= 60) && classe.getNotas().get(i) <= 100) {
                        pendentes++;
                        classe.getSituacao().add('P');
                        JOptionPane.showMessageDialog(null, "PENDENTES:" //Mostra ao usuario os resultados
                                + "\nNome: " + classe.getNomes().get(i)
                                + "\nNota: " + classe.getNotas().get(i) + " pts"
                                + "\nSituacao: " + classe.getSituacao().get(i));
                    }
                }
            } else if (menu == 4) {
                for (int i = 0; i < classe.getNotas().size(); i++) {
                    if (classe.getNotas().get(i) < 50 && classe.getNotas().get(i) <= 100) {
                        reprovados++;
                        classe.getSituacao().add('R');
                        JOptionPane.showMessageDialog(null, "REPROVADOS:" //Mostra ao usuario os resultados
                                + "\nNome: " + classe.getNomes().get(i)
                                + "\nNota: " + classe.getNotas().get(i) + " pts"
                                + "\nSituacao: " + classe.getSituacao().get(i));
                    }
                }
            } else if (menu == 5) {
                //????????????????????????????????????????????????????
                                  
            } else if (menu == 6) {
                double soma = 0;
                for (int i = 0; i < classe.getNotas().size(); i++) {
                    soma += classe.getNotas().get(i);

                }
                double media = soma / classe.getNotas().size();
                JOptionPane.showMessageDialog(null, "ESTATÍSTICAS:"
                        + "\nMédia Geral: " + media + "pts"
                        + "\nSoma de todas as notas: " + soma + " pts"
                        + "\nQuantidade de alunos aprovados: " + aprovados
                        + "\nQuantidade de alunos pendentes: " + pendentes
                        + "\nQuantidade de alunos reprovados: " + reprovados);

            }
        }
        JOptionPane.showMessageDialog(null, "Você saiu do sistema!");
    }
}

CLASSE:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prova_de_logica;

import java.util.ArrayList;

/**
 *
 * @author Usuario
 */
public class Logica {

    private ArrayList<String> nome = new ArrayList();
    private ArrayList<Double> nota = new ArrayList();
    private ArrayList<Character> situacao = new ArrayList();
    
    
    public void setNomes(ArrayList<String> nome) {
        this.nome = nome;
    }

    public ArrayList<String> getNomes() {
        return nome;
    }

    public void setNotas(ArrayList<Double> nota) {
        this.nota = nota;
    }

    public ArrayList<Double> getNotas() {
        return nota;
    }

    public void setSituacao(ArrayList<Character> situacao ) {
        this.situacao = situacao;
    }

    public ArrayList<Character> getSituacao() {
        return situacao;
    }
}

1 Resposta

RafaelCassau

Bom dia, uma solução viavel seria criar uma lista auxiliar e após cria-la adicionar os alunos pendentes nela, e na opção 5 percorrer ela e reatribuir a nota daquele respectivo aluno, e a cada passo do for() adicionar ele na lista original, espero ter ajudado!

Criado 4 de fevereiro de 2012
Ultima resposta 4 de fev. de 2012
Respostas 1
Participantes 2