2017-06-14 54 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