1
I am creating a very simple system for enrolling students. I took a class Aluno
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 made a main method called Academic System that 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 must associate each of the options with some methods, but I stalled on the first because I did not understand the signature I was asked to.
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 opinion, I should have a method without parameters, instantiating an object aluno
at the beginning and ask the user through prints on the screen to enter 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.
The question is not at all clear. The relevant information on how the
cadastrarAluno
is not in it. It is unclear why this method has this signature. If you do not want to pass a parameter, do not. You may not understand what a parameter is. It is a local variable whose initialization occurs at the time of the method call. This is the question?– Maniero
I am studying java and this is an exercise that was passed to me. In the statement I am asked to implement a method with this signature. But if the method will be called by the user at runtime, I don’t know how to assign this parameter. I know how to solve the problem without the parameter, but I kept thinking that if it was asked this way, there must be a way to do that I don’t know by knowing little.
– leoSandrini