Ir ao conteúdo
  • Cadastre-se

Como adicionar um estudante ao array?


Posts recomendados

Fala galera. Estou aqui no Canadá fazendo curso de web and mobile development e essa sexta feira tive uma prova. Apenas 2 questões não consegui desenvolver porque deu code blocking (que é como eles chamam aqui quando você n consegue pensar no codigo) e não consegui terminar a questão. vocês poderiam me ajudar?

 

Bem, basicamente a única coisa que preciso é no case 3 a opção é pra add um novo estudante e no case 4 tem que remover ele. Eu criei um método fora da classe main pra dobrar o número de arrays pra poder adicionar novo estudante. Vou mandar a Classe Student e a classe main pra vocês me ajudarem. To tentando descobrir atraves do livro e do youtube se consgo resolver mas se vocês me ajudarem agradeço. Ja entreguei o teste e tirei 90% mas enquanto n aprender essa porcaria eu n paro. ahuhaua valeu!

public class Student {
   private String name;
   private int id;
   private int age;
   int count = 0;

public String getName() {
   return name;
}

public void setName(String name) {
   this.name = name;
}
public int getId() {
    return id;
}

public void setId(int id) {
   this.id = id;
}

public int getAge() {
   return age;
}
public void setAge(int age) {
   this.age = age;
}

public String toString() {
    return (" "+name+" | "+age+" | "+id+"\n");
  }
}

 

-----------------------------------------Classe main-------------------------------

 

import java.util.Scanner;
public class MainApp {

public static void main(String[] args) {
    Student[] students = new Student[5];// instanciate a Student array with 5 students
//Initializing the arrays
    students[0] = new Student();
    students[1] = new Student();
    students[2] = new Student();
    students[3] = new Student();
    students[4] = new Student();

//Starting the menu
int menu = 0;

Scanner scanStudent = new Scanner(System.in); //While the menu options is small than 5 start a while loop to make the menu always working until exit comand.

    while (menu < 6) {
     System.out.println("Welcome to midterm app, please choose from the following: \n");
     System.out.println("1 - fill students data");
     System.out.println("2 - Print all students");
     System.out.println("3 - Add student");
     System.out.println("4 - Exit program");
     System.out.println("-----------------------------------------------------------");
     Scanner scan = new Scanner(System.in);
     menu = scan.nextInt(); //Menu options

     switch (menu) {
          case 1: for (int i = 0; i < students.length; i++) { //Filling the student informations.
                  System.out.println("Enter name student " + (i+1) + ": ");
                  students.setName(scanStudent.nextLine());
                  System.out.println("Enter Age student " + (i+1) + ": ");
                  students.setAge(scan.nextInt());
                  System.out.println("Enter ID student " + (i+1) + ":");
                  students.setId(scan.nextInt());
              } break;
         case 2:
         //If student have null it´s mean there´s no student. Else print the message telling that the program need something else
                  if (students == null) {
                           System.out.println("You have to fill all the students");
                  }else
                  { System.out.println("\t\tName\t\t|\t\tAge\t\t|\t\tId\t\t\n"+
                            "==========================================\n");
                  for (int i = 0; i < students.length; i++) {
                            System.out.println(students.toString());
                  }
          } break;
          case 3:
                  int count = 5;
                  if (students.length > count) {
                           Student[] studentSize = new Student[students.length * 2];
                           for (int student = 0; student < students.length; student++) {
                                    studentSize[student] = students[student];
                                    students = studentSize;
                                    students[students.length] = new Student();
                                    count++;
                           }
                  }else {
                           System.out.println("Enter name student : ");
                           students[students.length].setName(scanStudent.nextLine());
                           System.out.println("Enter Age student : ");
                           students[students.length].setAge(scan.nextInt());
                           System.out.println("Enter ID student :");
                           students[students.length].
                           setId(scan.nextInt());
                  } break;
 
                  //Exit the program
         case 4: System.exit(0);
                  break;
         }
      }
}
 
         private void increaseSize() {
         String students = null; Student[] temp = new Student[students.length * 2];
                  for (int i = 0; i < students.length; i++) {
                           temp = students; students = temp;
         }
}

 

valeu a ajuda galera.

adicionado 3 minutos depois

Desculpa galera, o título saiu errado. Poderiam me ajudar a mudar? =\ valeu!

Link para o comentário
Compartilhar em outros sites

Como você está usando Arrays, você precisa ter um contador para o numero de estudantes incluídos. (Lembrando que o contador deve ser inicializado no início da aplicação, com o valor mínimo de índice da array. Com isso você precisa de uma verificação assim
 

if (count < students.length) {
  	//...
	//adiciona o novo estudante
	System.out.println("Enter name student : ");
	students[count].setName(scanStudent.nextLine());
	System.out.println("Enter Age student : ");
	students[count].setAge(scan.nextInt());
	System.out.println("Enter ID student :");
	students[count].setId(scan.nextInt());
    count++;
}else{
	//mostra mensagem dizendo que o limite máximo foi atingido
}

Com isso já resolveu metade do seu problema ... agora são algumas alterações (como por exemplo deixar cada case em um método diferente, pra ficar mais simples de entender e dar manutenção) ... e está pronto ...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...