I am creating a very simple system for registering students. I made a Aluno
class as follows:
public class Aluno {
private String nome;
private String matricula;
private String curso;
private int periodo;
private String[] disciplinasMatriculadas;
private int idade;
private String endereco;
public Aluno(String nome, String matricula, String curso, int periodo,
int quantidadeDisciplinasPermitidas) {
super();
this.nome = nome;
this.matricula = matricula;
this.curso = curso;
this.periodo = periodo;
disciplinasMatriculadas = new String[quantidadeDisciplinasPermitidas];
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public String getCurso() {
return curso;
}
public void setCurso(String curso) {
this.curso = curso;
}
public int getPeriodo() {
return periodo;
}
public void setPeriodo(int periodo) {
this.periodo = periodo;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
int d = 0;
public String fazMatricula(String disciplina){
if(d == disciplinasMatriculadas.length - 1){
return "Quantidade de disciplinas excedida. O limite de matriculas para esse aluno é de " +
disciplinasMatriculadas.length + " disciplina(s). Se desejar, cancele sua matricula em uma das disciplinas" +
" e faça uma nova matricula.";
} else if(disciplinasMatriculadas.length == 0){
return "Este aluno não pode ser matriculado em nenhuma disciplina. Por favor, fale com a secretaria.";
} else{
disciplinasMatriculadas[d] = disciplina;
d++;
return "Matricula na disciplina \"" + disciplina + "\" realizada com sucesso!";
}
}
public String cancelaMatricula(String disciplina){
boolean disciplinaMatriculada = false;
int j = 0;
for(int i = 0; i < disciplinasMatriculadas.length - 1; i++){
if(disciplinasMatriculadas[i].equals(disciplina)){
disciplinaMatriculada = true;
continue;
}else if(i == disciplinasMatriculadas.length - 1 && disciplinaMatriculada == false){
System.out.println("Aluno não está matriculado na disciplina \"" + disciplina +
"\", portanto não é possivel cancelar essa matricula");
break;
}else{
disciplinasMatriculadas[j] = disciplinasMatriculadas[i];
j++;
}
}return "Cancelamento da matricula na disciplina \"" + disciplina + "\" realizado com sucesso!";
}
public String imprime(){
return "-----------------------------------------------------\nNome do aluno: " + nome + "\nMatricula: " +
matricula + "\nCurso: " + curso + "\nPeriodo: " + periodo + "\nDisciplinas Matriculadas: " +
disciplinasMatriculadas.toString() + "\n-----------------------------------------------------\n";
}
Then I did a main method called SystemAcademic which should serve for the user to choose an option and perform the desired operation.
import java.util.Scanner;
public class SistemaAcademico {
public static void main(String[] args) {
Aluno alunos[];
Scanner s = new Scanner(System.in);
System.out.println("Informe a quantidade de alunos que será cadastrada:");
alunos = new Aluno[s.nextInt()];
System.out.println("Digite o número da opção escolhida:");
System.out.println("1 - Cadastrar aluno;");
System.out.println("2 - Excluir aluno por nome;");
System.out.println("3 - Listar alunos;");
System.out.println("4 - Matricular aluno em disciplina;");
System.out.println("5 - Cancelar disciplina;");
System.out.println("6 - Imprimir lista de alunos e disciplinas matriculadas");
}
}
I should associate each of the options with some methods, but I crashed the first one because I did not understand the signature that was requested.
public static void cadastrarAluno(Aluno aluno){}
The student object passed as a parameter left me confused, I do not know how to use it. In my understanding, I should have a method with no parameters, instantiate a aluno
object at the beginning and ask the user through prints on the screen to inform the value of each attribute of my object. >
I do not know if I left my doubt clear, but as it is the user who will decide to execute the method, I do not know how this parameter will be passed.