Complete the Course class by implementing the findStudentHighestGpa() method, which returns the Student object with the highest GPA in the course. Assume that no two students have the same highest GPA. Given classes: Class Course represents a course, which contains an ArrayList of Student objects as a course roster. (Type your code in here.) Class Student represents a classroom student, which has three private fields: first name, last name, and GPA. (Hint: GetGPA() returns a student's GPA.) Ex: If the following students and their GPA values are added to a course: Henry Nguyen with 3.5 GPA Brenda Stern with 2.0 GPA Lynda Robison with 3.2 GPA Sonya King with 3.9 GPA
Complete the Course class by implementing the findStudentHighestGpa() method, which returns the Student object with the highest GPA in the course. Assume that no two students have the same highest GPA.
Given classes:
- Class Course represents a course, which contains an ArrayList of Student objects as a course roster. (Type your code in here.)
- Class Student represents a classroom student, which has three private fields: first name, last name, and GPA. (Hint: GetGPA() returns a student's GPA.)
Ex: If the following students and their GPA values are added to a course:
Henry Nguyen with 3.5 GPA
Brenda Stern with 2.0 GPA
Lynda Robison with 3.2 GPA
Sonya King with 3.9 GPA
then the findHighestStudent() method returns a student and the program output is:
Top student: Sonya King (GPA: 3.9)
Code:
Course.java:
import java.util.ArrayList;
//create class Student
//create class Course
class Courses{
private ArrayList<Student> roster; // collection of Student object
// class constructor
public Course(){
roster = new ArrayList<Student>();
}
public Student findStudentHighestGpa(){
double highest_gpa = roster.get(0).getGPA();
int index = 0;
//iterate over all students object in roster to find highest GPA
for (int i=1; i<roster.size(); i++){
if(roster.get(i).getGPA()>highest_gpa){
highest_gpa = roster.get (i).getGPA();
index = i;
}
}
//return student object which has highest GPA
return roster.get(index);
}
public void addStudent(Student s)
{
roster.add(s);
}
public void printResult(){
//this method print result
//get Student object index, that has highest gpa
Student result = findStudentHighestGpa();
//print result
System.out.printf("\nTop Student: %s %s (GPA: %.1f)\n", result.getFirstName(), result.getLastName(), result.getGPA());
}
}
// create class LabProgram to impement all methods
public class Course {
public static void main (String[] args) {
// create Student class objects
Student st1 = new Student("Henry", "Nguyen", 3.5);
Student st2 = new Student("Brenda", "Stern", 2.0);
Student st3 = new Student("Lynda", "Robison", 3.2);
Student st4 = new Student("Sonya", "King", 3.9);
// create Course class objects
Course course = new Course();
course.addStudent(st1);
course.addStudent(st2);
course.addStudent(st3);
course.addStudent(st4);
// call method the print result
course.printResult();
}
}
Student.java:
import java.text.DecimalFormat;
// Class representing a student
public class Student {
private String first; // first name
private String last; // last name
private double gpa; // grade point average
// Student class constructor
public Student(String first, String last, double gpa) {
this.first = first; // first name
this.last = last; // last name
this.gpa = gpa; // grade point average
}
public double getGPA() {
return gpa;
}
public String getLast() {
return last;
}
// Returns a String representation of the Student object, with the GPA formatted to one decimal
public String toString() {
DecimalFormat fmt = new DecimalFormat("#.0");
return first + " " + last + " " + "(GPA: " + fmt.format(gpa) + ")";
}
}
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 2 images
I am getting an error
Error: Main method not found in class Course, please define the main method as: public static void main(String[] args)