Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions src/main/java/lannguyen/Instructor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package lannguyen;

import java.util.ArrayList;

///Instructor extends Person
////
////Additional fields: department
////Methods: getSummary(), createAnnouncement(String message)
////Instructor should also be able to hold a list of assigned Student objects with the ability to add students and print a roster.
////
////Dr. Rivera's Roster:
//// - Jordan Smith | Grade Level: 2 | GPA: 3.8
//// - Marcus Brown | Grade Level: 1 | GPA: 2.9
///
public class Instructor extends Person {
String department;

private ArrayList<Student> students;

public Instructor(String firstName, String lastName, String department) {
super(firstName, lastName);
this.department = department;
this.students = new ArrayList<>();
}

public void addStudent(Student student) {
students.add(student);
}

public void printRoster() {
System.out.println(getFullName() + "'s Roster:");
for (Student s : students) {
System.out.println(" - " + s.getSummary());
}
}

@Override
public String getSummary() {
return "[Instructor] " + getFullName()
+ " | Department: " + department;
}
}
45 changes: 45 additions & 0 deletions src/main/java/lannguyen/Person.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package lannguyen;
//Fields: id, firstName, lastName, email
//Method: getSummary()
/*Requirements
All fields must be private
All classes require a constructor
Person must be abstract
getSummary() must be overridden in each subclass
No instanceof checks in your loop*/

abstract class Person {
private int id;
private String firstName;
private String lastName;
private String email;

public Person(String firstName, String lastName) {

this.firstName = firstName;
this.lastName = lastName;

}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public String getFullName() {
return firstName + " " + lastName;
}

public abstract String getSummary();
}
35 changes: 35 additions & 0 deletions src/main/java/lannguyen/School.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package lannguyen;

import java.util.ArrayList;
import java.util.List;
//School class that holds a list of Student objects and a list of Instructor objects.
// It should support adding both and printing a full directory.
class School {

private ArrayList<Student> students;
private ArrayList<Instructor> instructors;

public School() {
students = new ArrayList<>();
instructors = new ArrayList<>();
}

public void addStudent(Student student) {
students.add(student);
}

public void addInstructor(Instructor instructor) {
instructors.add(instructor);
}

public void printDirectory() {
System.out.println("School Directory: ");

for (Student s : students) {
System.out.println(s.getSummary());
}
for (Instructor i : instructors) {
System.out.println(i.getSummary());
}
}
}
50 changes: 50 additions & 0 deletions src/main/java/lannguyen/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package lannguyen;
//Student extends Person
//
//Additional fields: gradeLevel, gpa
//Methods: getSummary(), isOnHonorRoll()

public class Student extends Person {
int gradeLevel;
double gpa;

public int getGradeLevel() {
return gradeLevel;
}

public void setGradeLevel(int gradeLevel) {
this.gradeLevel = gradeLevel;
}

public double getGpa() {
return gpa;
}

public void setGpa(double gpa) {
this.gpa = gpa;
}

public Student(String firstName, String lastName, int gradeLevel, double gpa) {
super(firstName, lastName);
this.gradeLevel = gradeLevel;
this.gpa = gpa;

}
public boolean isHonorRoll() {
return gpa >= 3.5;
}

@Override
public String getSummary() {
return "[Student] " + getFullName()
+ " | Grade Level: " + gradeLevel
+ " | GPA: " + gpa
+ " | Honor Roll: "
+ (isHonorRoll() ? "Yes" : "No");
}
}





38 changes: 38 additions & 0 deletions src/main/java/lannguyen/main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package lannguyen;
//Dr. Rivera's Roster:
// - Jordan Smith | Grade Level: 2 | GPA: 3.8
// - Marcus Brown | Grade Level: 1 | GPA: 2.9
//In your Main class, create a mix of Student and Instructor objects, store them in a single list, and print each one's summary.
//Example Output

/// // [Student] Jordan Smith | Grade Level: 2 | GPA: 3.8 | Honor Roll: Yes
/// // [Student] Marcus Brown | Grade Level: 1 | GPA: 2.9 | Honor Roll: No
/// // [Instructor] Dr. Rivera | Department: Computer Science
///
public class main {
public static void main(String[] args) {

Student s1 = new Student("Jordan", "Smith", 2, 3.8);
Student s2 = new Student("Marcus", "Brown", 1, 2.9);

Instructor inst1 = new Instructor("Dr.", "Rivera", "Computer Science");

// Add students to instructor roster
inst1.addStudent(s1);
inst1.addStudent(s2);

// Create school and add all
School mySchool = new School();
mySchool.addStudent(s1);
mySchool.addStudent(s2);
mySchool.addInstructor(inst1);

// Print full directory
mySchool.printDirectory();

System.out.println("================================");

// Optional: Print instructor roster
inst1.printRoster();
}
}