1 Reply Latest reply: Dec 3, 2012 5:05 AM by TPD-Opitz RSS

    clear() and dropStudent()

      The problem I am faced with is to create a clear() method that will will remove all students from the course.
      And to create a dropStudent() method. (Self explanatory)

      Below I have implemented a clear() method but I've split up the syntax in the test class file by putting a while loop there. I technically want to do all of my calculations inside the method but I can't really figure out how I would do that. This displays there being 0 students which works but I just wanted some advice on putting this just in the clear() method.

      Also I have NOT implemented the dropStudent() method & that's frankly because I'm not sure how I would go about this. So I'm really looking for suggestion on the logic here. So far as my logic goes with the dropStudent() method I've thought that I need to make some sort of comparison using .equalsIgnoreCase(student) so something like this:

                          indexOfStudentToDrop = i;

      Here is my test class file
      public class Program7Client {
          public static void main(String[] args){
              Course course1 = new Course("CS201");
              Course course2 = new Course("CS202");
              Course course3 = new Course("CS276");
              //hard coded students into course 1 & 2.
              course1.addStudent("Steve Jobs");
              course1.addStudent("Spider Man");
              course1.addStudent("Rick Astley");
              course1.addStudent("Rebecca Black");
              course2.addStudent("Melissa Rycroft");
              course2.addStudent("Tony Dovolani");
              course2.addStudent("Josh Martin");
              course2.addStudent("Walt Disney");
              course2.addStudent("Bill Gates");
              //for loop to fill up course 3 by calling addStudent which will take user input. 
              System.out.println("Please enter the name of the students you wish to add: ");
              for(int i = 0; i < 7; i++){
              //changes the name of one of the courses.
              //displays the number of courses.
              System.out.println("The number of courses is: " + Course.getNumberOfCourses());
              //display the roster.
              *System.out.println("The number of students in course1 is: " + course1.getNumberOfStudents());*
      Here is my class file
      public class Course {
          private String courseName;
          //changed array size to test so it will adjust as needed.
          private String[] students = new String[5];
          private int numberOfStudents = 0;
          private static int numberOfCourses = 0;
          public Course(String courseName){       
              this.courseName = courseName;
          public String[] addStudent(String student){
              String[] temp = new String[students.length * 2];
              if(numberOfStudents == students.length){           
                  System.arraycopy(students, 0, temp, 0, students.length);
                  students = temp;
              students[numberOfStudents] = student;
              return temp;
          public String[] getStudents(){
              return students;
          public int getNumberOfStudents(){
              return numberOfStudents;
          public String getCourseName(){
              return courseName;
          //public void dropStudent(String student){
             // int indexOfStudentToDrop = -1;
                //for(int i = 0; i < numberOfStudents; i++){
                //     if(students.equalsIgnoreCase(student)){
                //          indexOfStudentToDrop = i;
                //          if (indexOfStudentToDrop != -1){
                //               for (i = indexOfStudentToDrop; i < numberOfStudents; i ++){
                //                    students[i]= students[i+1];
      // }
                //          }// End if found.
                //          numberOfStudents --;
                //     }// End if equal.     
                //}// End outer for. */
      public static int getNumberOfCourses(){
      return numberOfCourses;
      public void displayNumberOfCourses(){
      System.out.println("The number of courses is:" + numberOfCourses);
      public void displayNumberOfStudents(){
      System.out.println("Total students enrolled: " + numberOfStudents);
      public void printRoster(){
      //String[] student = new String[5];
      for(int i = 0; i < getNumberOfStudents(); i++){
      public void setCourseName(String newCourseName){
      courseName = newCourseName;
      Scanner input = new Scanner(System.in);
      public String[] addStudent(){
      String[] temp = new String[students.length * 2];
      if(numberOfStudents == students.length){          
      System.arraycopy(students, 0, temp, 0, students.length);
      students = temp;
      String studentName;
      studentName = input.next();
      students[numberOfStudents] = studentName;
      return temp;
      *public String clear(){*
      *return students[--numberOfStudents];*
      *public boolean empty(){*
      return numberOfStudents == 0;

      Thanks for all help/suggestions! Btw hope whoever is reading this is having a good weekend :)