Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

My method of addStudent() is not working correctly. I\'m trying to put an Object

ID: 3935733 • Letter: M

Question

 My method of addStudent() is not working correctly.  I'm trying to put an Object of Students to an array. Everytime the user adds a new student it stores them in an array.  But what's happening right now with my code is it just stores the newest student the user inputs. How can I correct this?  thanks.   
   public class Project1 {      static int size = 20;     static Student[] students = new Student[size];      public static void main(String[] args) {          while(true)         {             System.out.println("Student Database");             System.out.println("================");             System.out.println("Commands:  ");             System.out.println(""a" - add a student");             System.out.println(""f" - find a student");             System.out.println(""d" - delete a student");             System.out.println(""p" - print list");             System.out.println(""e" - system exit");             System.out.println();              Scanner scanner = new Scanner(System.in);             String input = scanner.next();              switch (input) {                 case "a":                     addStudent();                     break;                 case "f":                     findStudent();                     break;                 case "d":                     deleteStudent();                     break;                 case "p":                     printStudent(students);                     break;                 case "e":                     System.exit(0);                     break;             }//switch           }//while      }//main      public static void addStudent()     {          Scanner scan = new Scanner(System.in);          System.out.println("Enter last name: ");         String lastname = scan.next();          System.out.println("Enter first name: ");         String firstname = scan.next();          System.out.println("Enter id no: ");         String id = scan.next();          for(int i=0; i<students.length; i++)         {             students[i] = new Student(lastname, firstname, id);         }          
 public static void printStudent(Student[] students) {     for(Student s: students)     {         System.out.println(s);     } } 
      } 

Explanation / Answer

It is suggested to declare the number of students outside your main or use a larger MAX value and also make sure there is a variable which counts the actual number of array indices that are filled.

static int AR_MAX=20
static student[] students; //the same that is defined in the program//
static int nStudents; //this need to be added to keep a track of the number of entries//

students = new Student[AR_MAX]
nStudents=0;
//Then follow these lines of code to add a student//

students[nStudents]=new Student();
nStudents++;

The above code would limit the number of entries to 20 only.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote