2017-06-14 30 views
0

我开始学习java,我试图做一个简单的系统来关联学生和科目,我的问题是我如何将一个学生关联到很多科目,我希望你能帮助我。为学生和科目创建一个简单的系统

主类

package exercicios; 

public class Exercicio3_Main { 

public static void main(String[] args) { 
    //Criando Alunos 
    Exercicio3_Aluno aluno[] = new Exercicio3_Aluno[3]; 
    aluno[0] = new Exercicio3_Aluno("Douglas", "Telematica", 201391); 

    //Criando as Disciplinas 
    Exercicio3_Disciplina disciplina[] = new Exercicio3_Disciplina[7]; 
    disciplina[0] = new Exercicio3_Disciplina("POO"); 

    aluno[0].cadastrarDisciplina(disciplina[0]); 
    //aluno[0].listarAluno(); 
} 
} 

学生班级

package exercicios; 

import java.util.ArrayList; 

public class Exercicio3_Aluno { 
public String nome; 
public String curso; 
private int matricula; 
private ArrayList<Exercicio3_Disciplina> disciplina; 

public Exercicio3_Aluno(String nome, String curso, int matricula) { 
    super(); 
    this.nome = nome; 
    this.curso = curso; 
    this.matricula = matricula; 
} 

public void listarAluno(){ 
    System.out.println("------------- ALUNO --------------"); 
    System.out.println("Nome: " + this.getNome()); 
    System.out.println("Curso: " + this.getCurso()); 
    System.out.println("Matricula: " + this.getMatricula()); 
    System.out.println("Disciplinas: " + disciplina); 
    System.out.println("----------------------------------"); 
} 

//Metodos Acessores 
public String getNome() { 
    return nome; 
} 
public void setNome(String nome) { 
    this.nome = nome; 
} 
public String getCurso() { 
    return curso; 
} 
public void setCurso(String curso) { 
    this.curso = curso; 
} 
public int getMatricula() { 
    return matricula; 
} 
public void setMatricula(int matricula) { 
    this.matricula = matricula; 
} 

public void cadastrarDisciplina(Exercicio3_Disciplina disciplina){ 
    this.disciplina.add(disciplina); 
} 
} 

主题类

package exercicios; 

public class Exercicio3_Disciplina { 
public String nome; 
private float nota1; 
private float nota2; 
private float nota3; 
private float media; 

public Exercicio3_Disciplina(String nome) { 
    super(); 
    this.nome = nome; 
} 

public String getNome() { 
    return nome; 
} 

public void setNome(String nome) { 
    this.nome = nome; 
} 

public float getNota1() { 
    return nota1; 
} 

public void setNota1(float nota1) { 
    this.nota1 = nota1; 
} 

public float getNota2() { 
    return nota2; 
} 

public void setNota2(float nota2) { 
    this.nota2 = nota2; 
} 

public float getNota3() { 
    return nota3; 
} 

public void setNota3(float nota3) { 
    this.nota3 = nota3; 
} 

public float getMedia() { 
    return media; 
} 

public void setMedia(float media) { 
    this.media = media; 
} 
} 

这段代码的输出是这样的:

诺姆:道格拉斯

CURSO:TLM

Matrícula:102050

Disciplinas:ProgramaçãoOrientada一个Objetos

我需要的是列表许多科目的学生,我知道这可能是很简单,但我开始学习这对我来说是新的; D

+1

你可能想看看[地图](http://tutorials.jenkov.com/java-collections/map.html )。一旦你重写'equals'和'hashCode',你可以像'Map > tempMap = new HashMap <>();' –

回答

0

而不是一个主题,你需要学生的多个科目,所以在学生类中使用List<Subjects>,并调整getter和setters。然后,您可以将学科添加到学生的列表中。

示例代码

public static void main(String[] args) { 

    //Criando os Alunos 
    Exercicio3_Aluno aluno[] = new Exercicio3_Aluno[3]; 
    aluno[0] = new Exercicio3_Aluno("Douglas", "TLM", 102050); 

    //Criando as Disciplinas 
    Exercicio3_Disciplina disciplina[] = new Exercicio3_Disciplina[7]; 
    disciplina[0] = new Exercicio3_Disciplina("Programação Orientada a Objetos"); 
    disciplina[1] = new Exercicio3_Disciplina("Sistemas Operacionais"); 

    //Mostrando os dados do Aluno 
    aluno[0].cadastrarDisciplina(disciplina[0]); 
    aluno[0].cadastrarDisciplina(disciplina[1]); 
    aluno[0].listaAluno(); 
} 

在你的学生方法

//Lista o Aluno 
public void listaAluno(){ 
    System.out.println("--------- DADOS DO ALUNO --------"); 
    System.out.println("Nome: " + this.nome); 
    System.out.println("Curso: " + this.curso); 
    System.out.println("Matrícula: " + this.matricula); 

    System.out.println("Disciplinas: "); 
    String disciplinasString = ""; 
    for(Exercicio3_Disciplina disciplina : this.disciplinas) 
    { 
     disciplinasString = disciplinasString + disciplina.getNome()); 
    } 
    System.out.println(disciplinasString); 
    System.out.println("---------------------------------"); 
} 
+0

我试过这样做,我试试这个: public类Exercicio3_Aluno { \t私人的ArrayList disciplina;} 插入 公共无效cadastrarDisciplina(Exercicio3_Disciplina disciplina){ \t \t this.disciplina.add(disciplina);}该方法 和主代码 \t \t \t \t Exercicio3_Disciplina disciplina [] = new Exercicio3_Disciplina [7]; \t \t disciplina [0] = new Exercicio3_Disciplina(“POO”); \t \t \t \t aluno [0] .cadastrarDisciplina(disciplina [0]); \t \t aluno [0] .listarAluno(); – DouglasNickson

+0

这看起来有点不对,让我添加我认为应该看起来像你的答案。 –

+0

我的评论是可怕的,所以我编辑我的代码,我认为这是更好看。谢谢 – DouglasNickson

相关问题