Part I Write a class CourseListException that extends Exception with the followi
ID: 3686005 • Letter: P
Question
Part I
Write a class CourseListException that extends Exception with the following constructors:
----A default constructor that gives the error message "Too many courses."
----A constructor that takes a string and uses this for the error message
Part II
Write a class Student with the following attributes:
----Two instance variables (with corresponding getters and setters):
name - a String for the name of the student
courses - an array of Strings with length 5, holding the names of the courses the Student is taking.
----A default constructor that initializes name to be "NoName".
----A constructor that takes a String to set the name of the student
----Two methods:
assignCourses (no input parameters or return values) - This method should ask a user to input courses from the console window until the user enters an empty line, which indicates the end of the array. If the user enters more than 5 courses, throw a CourseListException
writeStudent (no input parameters or return values) - writes the name of the student and the names of the student's courses to the console window
Part III
Write a class PartTimeStudent, a subclass of Student, for students who can take at most 2 courses. The class should include the following:
----A default constructor that invokes the superclass constructor
----A constructor that takes a String to set the name of the Student
----An overridden assignCourses that throws a CourseListException when a user tries to assign more than 2 courses to a PartTimeStudent.
Part IV
Write a class TestStudent that does the following:
1. Creates a student with the name Alice
2. Assigns some courses to Alice
3. Writes the information about Alice to the console window
4. Creates a PartTimeStudent with the name Bob
5. Assigns courses to Bob
6. Writes the information about Bob to the console
Explanation / Answer
PART1:
CourseListException.java
import java.io.Console;
public class CourseListException extends Exception{
/*
* Default constructor
*/
public CourseListException(){
this.printMessage("Too many courses.");
}
/**
* Constructor that takes message as param.
* @param errMsg
*/
public CourseListException(String errMsg){
this.printMessage(errMsg);
}
private void printMessage(String msg){
System.out.println(msg);
}
}
PART2:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Student {
private String name;
protected String[] courses;
public Student(){
this.name = "NoName";
this.courses = new String[5];
}
public Student(String n){
this.name = n;
this.courses = new String[5];
}
public void assignCourses() throws CourseListException{
System.out.println("Enter course:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = null;
try {
s = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int count = 0;
while(s != null){
if(count>5){
throw new CourseListException();
}
this.courses[count++]= s;
System.out.println("Enter course:");
br = new BufferedReader(new InputStreamReader(System.in));
try {
s = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void writeStudent(){
System.out.println("Student Name:" + this.name);
System.out.println("Courses...");
for(String course: this.courses){
System.out.println(course);
}
}
}
PART3:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PartTimeStudent extends Student {
public PartTimeStudent() {
super();
}
public PartTimeStudent(String n) {
super(n);
// TODO Auto-generated constructor stub
}
public void assignCourses() throws CourseListException{
System.out.println("Enter course:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = null;
try {
s = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int count = 0;
while(s != null){
if(count>5){
throw new CourseListException();
}
this.courses[count++]= s;
System.out.println("Enter course:");
br = new BufferedReader(new InputStreamReader(System.in));
try {
s = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
PART 4:
public class TestStudent {
/**
* @param args
* @throws CourseListException
*/
public static void main(String[] args) throws CourseListException {
//1
Student student = new Student("Alice");
//2
student.assignCourses();
//3
student.writeStudent();
//4
PartTimeStudent partTimeStudent = new PartTimeStudent("Bob");
//5
partTimeStudent.assignCourses();
//6
partTimeStudent.writeStudent();
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.