Lavi M.

asked • 10/09/20

How to make these 4 classes with these information?(java)

Class1 (Person)

-name: String

-address:String

Methods:

+Person(name: String, address : String)

+getName():Stringg

+getAddress():String

+setAddress (address: String) : void

+toString():String ---->"name (address) "


Class2 (Student)

-numCourses: int = 0

-courses : String[] = {}

-grades: int[] = {}

Methods:

+Student (name: String,address:String)

+tostring(): String

+addCourseGrade (course : String,grade:int) : void

+printGrades (): void

+getAverageGrade (): double

+toString() : String ---->"Student:name(address)"


Class3 (Teacher)

- numCourses: int = 0

-courses:String[] = {}

Methods:

+Teacher(name: String,address: String)

+tostring():String

+addCourse(course : String): boollean ----> Return false if the course already existed

+removeCourse(course : String) : boolean ----> Return false if the course does not exist

+toString():String -----> "Teacher: name




•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

Hint:

/**

* The superclass Person has name and address.

*/

public class Person {

// private instance variables

private String name, address;


/** Constructs a Person instance with the given name and address */

public Person(String name, String address) {

// use this keyword

}


// Getters and Setters

/** Returns the name */

public String getName() {

//

}

/** Returns the address */

public String getAddress() {

//

}

/** Sets the address */

public void setAddress(String address) {

//

}

/** Returns a self-descriptive string */

@Override

public String toString() {

//

}

}

/**

* The Student class, subclass of Person.

*/

public class Student extends Person {

// private instance variables

private int numCourses; // number of courses taken so far

private String[] courses; // course codes

private int[] grades; // grade for the corresponding course codes

private static final int MAX_COURSES = 30; // maximum number of courses


/** Constructs a Student instance with the given name and address */

public Student(String name, String address) {

super(___, _____);

numCourses = 0;

courses = new String[MAX_COURSES];

grades = new int[MAX_COURSES];

}


/** Returns a self-descriptive string */

@Override

public String toString() {

// print using super method

}


/** Adds a course and its grade - No input validation */

public void addCourseGrade(String course, int grade) {

courses[numCourses] = course;

grades[numCourses] = grade;

++numCourses;

}


/** Prints all courses taken and their grade */

public void printGrades() {

System.out.print(this);

for (int i = 0; i < numCourses; ++i) {

System.out.print(" " + courses[i] + ":" + grades[i]);

}

System.out.println();

}


/** Computes the average grade */

public double getAverageGrade() {

int sum = 0;

for (int i = 0; i < numCourses; i++ ) {

sum += grades[i];

}

return (double)sum/numCourses;

}

}

/**

* The Teacher class, subclass of Person.

*/

public class Teacher extends Person {

// private instance variables

private int numCourses; // number of courses taught currently

private String[] courses; // course codes

private static final int MAX_COURSES = 5; // maximum courses


/** Constructs a Teacher instance with the given name and address */

public Teacher(String name, String address) {

super(____, _____);

numCourses = 0;

courses = new String[MAX_COURSES];

}


/** Returns a self-descriptive string */

@Override

public String toString() {

return "Teacher: " + super.toString();

}


/** Adds a course. Returns false if the course has already existed */

public boolean addCourse(String course) {

// Check if the course already in the course list

for (int i = 0; i < numCourses; i++) {

if (courses[i].equals(course)) return false;

}

courses[numCourses] = course;

numCourses++;

return true;

}


/** Removes a course. Returns false if the course cannot be found in the course list */

public boolean removeCourse(String course) {

boolean found = false;

// Look for the course index

int courseIndex = -1; // need to initialize

for (int i = 0; i < numCourses; i++) {

if (courses[i].equals(course)) {

courseIndex = i;

found = true;

break;

}

}

if (found) {

// Remove the course and re-arrange for courses array

for (int i = courseIndex; i < numCourses-1; i++) {

courses[i] = courses[i+1];

}

numCourses--;

return true;

} else {

return false;

}

}

}

/**

* A test driver for Person and its subclasses.

*/

public class TestPerson {

public static void main(String[] args) {

/* Test Student class */

Student s1 = new Student("_____", "______");

s1.addCourseGrade("_____", _____);

s1.addCourseGrade("______", _______);

s1.printGrades();

System.out.println("Average is " + s1.getAverageGrade());

//Average is _____

/* Test Teacher class */

Teacher t1 = new Teacher("____", "______");

System.out.println(t1);

//Teacher: __________

String[] courses = {"IM101", "IM102", "IM101"};

for (String course: courses) {

if (t1.addCourse(course)) {

System.out.println(course + " added");

} else {

System.out.println(course + " cannot be added");

}

}

//IM101 added

//IM102 added

//IM101 cannot be added

for (String course: courses) {

if (t1.removeCourse(course)) {

System.out.println(course + " removed");

} else {

System.out.println(course + " cannot be removed");

}

}

//IM101 removed

//IM102 removed

//IM101 cannot be removed

}

}

1 Expert Answer

By:

Patrick B. answered • 10/10/20

Tutor
4.7 (31)

Math and computer tutor/teacher

Still looking for help? Get the right answer, fast.

Ask a question for free

Get a free answer to a quick problem.
Most questions answered within 4 hours.

OR

Find an Online Tutor Now

Choose an expert and meet online. No packages or subscriptions, pay only for the time you need.