Ir ao conteúdo
  • Cadastre-se
Khromos

Como adicionar um estudante ao array?

Recommended Posts

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!

Compartilhar este post


Link para o post
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 ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×