Good evening, I have to develop a code, but I have some doubts, follow the code below:
public class Aluno {
String nome;
int mat;
Aluno(String nome, int mat) {
this.nome = nome;
this.mat = mat;
}
@Override
public String toString() {
return nome + " - " + mat;
}
public static void main(String[] args) {
int escolha;
Scanner input = new Scanner(System.in);
System.out.println("Digite o tamanho do array: ");
int tamanho = input.nextInt();
ArrayList<Aluno> alunos = new ArrayList<>(tamanho);
Scanner choice = new Scanner(System.in);
do {
System.out.println(" Menu de opcões\n"
+ "1: Adicionar um nome na lista\n"
+ "2: adicionar um aluno em determinada posição do vetor\n"
+ "3: imprimir na tela o aluno em determinada posição do vetor\n"
+ "4: apagar (remover um aluno) de determinada posição do vetor\n"
+ "5: verificar de determinado aluno e/ou matrícula existem no vetor. Em caso positivo informar a posição do mesmo no vetor\n"
+ "6: imprimir a quantidade de alunos no vetor (não é o tamanho do vetor)\n"
+ "7: imprimir na tela todos os alunos\n"
+ "8:Sair");
int opcoes = choice.nextInt();
escolha = opcoes;
switch (escolha) {
case 1:
System.out.println("Digite o nome do Aluno ");
String nome = choice.next();
System.out.println("digite o numero de matricula");
int mat = choice.nextInt();
Aluno novoAluno = new Aluno(nome, mat);
alunos.add(novoAluno);
break;
case 2:
System.out.println("digite o nome do Aluno!!");
nome = choice.next();
System.out.println("digite a matricula");
mat = choice.nextInt();
System.out.println("digite a posiçao que o aluno vai estar!!");
int c = choice.nextInt();
novoAluno = new Aluno(nome, mat);
alunos.add(c, novoAluno);
break;
case 3:
System.out.println("Informe o numero da posiçao?");
int n = choice.nextInt();
if (n < tamanho) {
System.out.println("na posicao " + n + " esta: " + alunos.set(n, null));
} else {
System.out.println("Fora dos limites");
}
break;
case 4:
System.out.println(alunos);
System.out.println("qual posicao quer remover? ");
int r = choice.nextInt();
alunos.remove(r);
break;
case 5:
System.out.println("qual aluno quer pesquisar");
Scanner teste = new Scanner(System.in);
String p = teste.nextLine();
for (Aluno slt : alunos ){
if (alunos.contains(p)) {
System.out.println("o aluno " + p + " esta na posiçao " + alunos.indexOf(p));
} else {
System.out.println("Esse aluno nao existe!!");
}
}
break;
case 6:
System.out.println("Existem " + alunos.size() + " Alunos no vetor");
break;
case 7:
System.out.println("Os alunos sao: ");
for (int i = 0; i < alunos.size(); i++) {
System.out.println(alunos.get(i));
}
break;
default:
System.out.println("Obrigado por utilizar o programa");
}
} while (escolha <= 7);
}
}
My doubts are as follows:
In Case 1, I am not able to insert names with space, I already tried to put nextLine, but it does not work, if I put nextLine, in the execution of case1, it only appears to type the name and registration once, all on the same line.
In Case 5, where I need to look for the student, I can not get him to return me if the student is in the array and his position in the array, I tried both in the form above and the form below:
System.out.println("qual aluno quer pesquisar");
String p = choice.next();
if (alunos.contains(p)) {
System.out.println("o aluno " + p + " esta na posiçao " + alunos.indexOf(p));
} else {
System.out.println("Nome nao esta Inserido!!");
}
And the 2 do not work.
All other cases work without any problems.
Thanks for the help.