Java ArrayList

5 respostas Resolvido
J

eu não sei qual o erro ocorre no meu código

String nomeDcp = JOptionPane.showInputDialog(Digite o Nome da disciplina:);

String nomeCurso = JOptionPane.showInputDialog(Digite o Nome do Curso:);

String horasDcpstr = JOptionPane.showInputDialog(Digite a quantidade de horas semanais da disciplina:);

String professorDcp = JOptionPane.showInputDialog(Digite o Nome do Professor que dará a disciplina:);
for (Curso proc : cursos) {
                                // Procurar nome do curso
                                if (proc.getNomeCurso().equals(nomeCurso)) {
                                    // Conferir se existe uma Disciplina IQUAL dentro de um curso
                                    int d = 1;
                                    for (Disciplina procD : proc.getDisciplinas()) {
                                        if (procD.getNomeDcp().equals(nomeDcp)) {
                                            System.out.println("Disciplina existente!!");
                                            d = 0;
                                            break;
                                        }
                                    }
                                    // achar o professor para comparar horas semanais e tambem já usa-lo no construtor
                                    if (d == 1) {
                                        for (Professor procP : professores) {// colocar for normal ???
                                            if (professorDcp.equals(procP.getNome())) {
                                                int horasDcp = Integer.parseInt(horasDcpstr);
                                                if (horasDcp <= procP.getHorasAulaSemana()) {
                                                    // Criar disciplina em um curso
                                                    cursos.setDisciplinas(nomeDcp, nomeCurso, horasDcp, procP);
                                                }else{
                                                    System.out.println("Professor com horas menores q a disciplina");
                                                }
                                            }

                                        }
                                    }

                                }
public class Curso {

private int id = 0;

private String nomeCurso;

private ArrayList disciplinas = null;
public void setDisciplinas(String nomeDcp, String nomeCurso, int horasDcp, Professor procP) {

disciplinas.add(new Disciplina(nomeDcp, nomeCurso, horasDcp, procP));

}

}

5 Respostas

J

o erro ocorre na chamada cursos.setDisciplinas();
o arraylist de curso foi criado certo o erro é só no setDisciplinas();

S

Pode postar o erro completo?

J
public static void main(String[] args) {

        ArrayList<Login> logins = new ArrayList<>();
        ArrayList<Curso> cursos = new ArrayList<>();
        ArrayList<Professor> professores = null;

        String nomeDcp = JOptionPane.showInputDialog("Digite o Nome da disciplina:");
        String nomeCurso = JOptionPane.showInputDialog("Digite o Nome do Curso:");
        String horasDcpstr = JOptionPane.showInputDialog("Digite a quantidade de horas semanais da disciplina:");
        String professorDcp = JOptionPane.showInputDialog("Digite o Nome do Professor que dará a disciplina:");
        for (Curso proc : cursos) {
            // Procurar nome do curso
            if (proc.getNomeCurso().equals(nomeCurso)) {
                // Conferir se existe uma Disciplina IQUAL dentro de um curso
                int d = 1;
                for (Disciplina procD : proc.getDisciplinas()) {
                    if (procD.getNomeDcp().equals(nomeDcp)) {
                        System.out.println("Disciplina existente!!");
                        d = 0;
                        break;
                    }
                }
                // achar o professor para comparar horas semanais e tambem já usa-lo no construtor
                if (d == 1) {
                    for (Professor procP : professores) {// colocar for normal ???
                        if (professorDcp.equals(procP.getNome())) {
                            int horasDcp = Integer.parseInt(horasDcpstr);
                            if (horasDcp <= procP.getHorasAulaSemana()) {
                                // Criar disciplina em um curso
                                cursos.setDisciplinas(nomeDcp, nomeCurso, horasDcp, procP);
                            } else {
                                System.out.println("Professor com horas menores q a disciplina");
                            }
                        }

                    }
                }

            }
        }
    }
}

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package trabalho;

import java.util.ArrayList;

/**
*

  • @author augus
    
    */
    
    public class Curso implements Comparable{
    
    private int id = 0;
    
    private String nomeCurso;
    
    private ArrayList disciplinas;
    
    public Curso(String nomeCurso) {
    
    setNomeCurso(nomeCurso);
    
    id++;
    

    }

    public String getNomeCurso() {
    
    return nomeCurso;
    
    }
    
    public void setNomeCurso(String nomeCurso) {
    
    this.nomeCurso = nomeCurso;
    
    }
    
    public ArrayList getDisciplinas() {
    
    return disciplinas;
    
    }
    
    public void setDisciplinas(String nomeDcp, String nomeCurso, int horasDcp, Professor procP) {
    
    disciplinas.add(new Disciplina(nomeDcp, nomeCurso, horasDcp, procP));
    
    }
    
    public int compareTo(Curso outroCurso){
    
    return this.nomeCurso.compareTo(outroCurso.getNomeCurso());
    
    }
    

}

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package trabalho;

/**
*

  • @author augus
    */
    public class Disciplina extends Curso {

    private int idDcp = 0;
    
    private String nomeDcp;
    
    private String nomeCurso;
    
    private Professor professor;
    
    private int horasDcp;
    
    public Disciplina(String nomeDcp, String nomeCurso,int horasDcp, Professor professorDcp) {
    
    super(nomeCurso);
    
    setProfessor(professor);
    
    setHorasDcp(horasDcp);
    
    idDcp++;
    
    }
    
    public Professor getProfessor() {
    
    return professor;
    
    }
    
    public void setProfessor(Professor professor) {
    
    this.professor = professor;
    
    }
    
    public int getHorasDcp() {
    
    return horasDcp;
    
    }
    
    public void setHorasDcp(int horasDcp) {
    
    this.horasDcp = horasDcp;
    
    }
    
    public String getNomeDcp() {
    
    return nomeDcp;
    
    }
    
    public void setNomeDcp(String nomeDcp) {
    
    this.nomeDcp = nomeDcp;
    
    }
    

}

Sem%20t%C3%ADtulo

D
Solucao aceita

cursos é do tipo ArrayList, acho que seria proc.

Sugestão, para cada loop crie um método:

public static Curso buscarCursoPorNome(ArrayList<Curso> cursos, String nomeCurso) {
  for (Curso proc : cursos) {
    // Procurar nome do curso 
    if (proc.getNomeCurso().equals(nomeCurso)) {
      return proc;
    }
  }
  return null; // não encontrou
}

e no main:

Curso curso = buscarCursoPorNome(cursos, nomeCurso);
if (curso != null) {
  Disciplina disciplina = buscarDisciplinaPorNome(disciplinas, nomeDcp);
  if (disciplina != null) {
    System.out.println("Disciplina existente!!");
    Professor professor = buscarProfessorPorNome(professores, professorDcp);
    if (professor != null) {
      int horasDcp = Integer.parseInt(horasDcpstr);
      if (horasDcp <= professor.getHorasAulaSemana()) {
        curso.setDisciplinas(nomeDcp, nomeCurso, horasDcp, procP);
      } else {
         System.out.println("Professor com horas menores q a disciplina");
      }
    }
  }
}
J

consegui resolver
e fiz oq vc falou ficou bem melhor

Criado 21 de maio de 2018
Ultima resposta 21 de mai. de 2018
Respostas 5
Participantes 3