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

Modify the Course class (posted below) so that it implements the Comparable inte

ID: 664120 • Letter: M

Question

Modify the Course class (posted below) so that it implements the Comparable interface (from the java.lang package). Order the courses first by department and then by course number. Then write a program that uses an ordered list to maintain a list of courses.

This program must demonstrate that your newly written Course.compareTo() method works correctly.

You canNOT use a built-in Java data structure for the ordered list. You can use either an ArrayList<Course> implementation or a LinkedList<Course> implementation, but be sure to include implementation .java files like those in the text.

Course Class:

Explanation / Answer

Given below is the modified Course class and a new OrdedCourseList class that demostrates an ordered list of courses. Please don't forget to rate the answer if it helped. Thank you very much.

Course.java


/**
* Represents a course that might be taken by a student.
*
* @author Java Foundations
* @version 4.0
*/
import java.io.Serializable;
public class Course implements Serializable, Comparable<Course> {
private String prefix;
private int number;
private String title;
private String grade;
  
/**
* Constructs the course with the specified information.
*
* @param prefix the prefix of the course designation
* @param number the number of the course designation
* @param title the title of the course
* @param grade the grade received for the course
*/
public Course(String prefix, int number, String title, String grade)
{
this.prefix = prefix;
this.number = number;
this.title = title;
if (grade == null)
this.grade = "";
else
this.grade = grade;
}
  
/**
* Constructs the course with the specified information, with no grade
* established.
*
* @param prefix the prefix of the course designation
* @param number the number of the course designation
* @param title the title of the course
*/
public Course(String prefix, int number, String title)
{
this(prefix, number, title, "");
}
/**
* Returns the prefix of the course designation.
*
* @return the prefix of the course designation
*/
public String getPrefix()
{
return prefix;
}
  
/**
* Returns the number of the course designation.
*
* @return the number of the course designation
*/
public int getNumber()
{
return number;
}
  
/**
* Returns the title of this course.
*
* @return the prefix of the course
*/
public String getTitle()
{
return title;
}
  
/**
* Returns the grade for this course.
*
* @return the grade for this course
*/
public String getGrade()
{
return grade;
}
  
/**
* Sets the grade for this course to the one specified.
*
* @param grade the new grade for the course
*/
public void setGrade(String grade)
{
this.grade = grade;
}
  
/**
* Returns true if this course has been taken (if a grade has been received).
*
* @return true if this course has been taken and false otherwise
*/
public boolean taken()
{
return !grade.equals("");
}
  
/**
* Determines if this course is equal to the one specified, based on the
* course designation (prefix and number).
*
* @return true if this course is equal to the parameter
*/
public boolean equals(Object other)
{
boolean result = false;
if (other instanceof Course)
{
Course otherCourse = (Course) other;
if (prefix.equals(otherCourse.getPrefix()) &&
number == otherCourse.getNumber())
result = true;
}
return result;
}
  
/**
* Creates and returns a string representation of this course.
*
* @return a string representation of the course
*/
public String toString()
{
String result = prefix + " " + number + ": " + title;
if (!grade.equals(""))
result += " [" + grade + "]";
return result;
}
/**
* Compares Course objects
* @param o the Course object to compare
* @return an integer value that is the result of the compare
*/
@Override
public int compareTo(Course o) {
if (this.prefix.equals(o.getPrefix()))
return this.number - o.number;
else
return this.prefix.compareTo(o.prefix);
}
}

OrderedCourseList.java


import java.util.ArrayList;
public class OrderedCourseList {
ArrayList<Course> courses;
public OrderedCourseList()
{
courses = new ArrayList<Course>();
}
public void insertOrdered(Course c)
{
for(int i = 0; i < courses.size(); i++)
{
if(c.compareTo(courses.get(i)) < 0)
{
courses.add(i, c);
return;
}
}
//add to end if it was not added in loop above
courses.add(c);
}
public String toString()
{
String str= "";
for(Course c : courses)
str += c.toString() + " ";
return str;
}
public static void main(String[] args) {
OrderedCourseList list = new OrderedCourseList();
list.insertOrdered(new Course("CS", 101, "Algorithms"));
list.insertOrdered(new Course("EE", 152, "Microprocessor Systems Laboratory"));
list.insertOrdered(new Course("CS", 113, "Introduction to software engineering"));
list.insertOrdered(new Course("ACM", 105, "Applied Linear Algebra"));
System.out.println(list);
}
}

output

ACM 105: Applied Linear Algebra
CS 101: Algorithms
CS 113: Introduction to software engineering
EE 152: Microprocessor Systems Laboratory

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