diff --git a/src/main/java/students/jamesbarclay/Instructor.java b/src/main/java/students/jamesbarclay/Instructor.java new file mode 100644 index 0000000..4cd8aee --- /dev/null +++ b/src/main/java/students/jamesbarclay/Instructor.java @@ -0,0 +1,35 @@ +package students.jamesbarclay; + +import java.util.ArrayList; + +public class Instructor extends Person { + private String department; + private ArrayList assignedStudents = new ArrayList<>(); + + public Instructor(int id, String firstName, String lastName, String email, String department) { + super(id, firstName, lastName, email); + this.department = department; + } + + // Assign a student to the instructor + public void addStudent(Student student) { + assignedStudents.add(student); + } + + // all students assigned to this instructor + public void printRoster() { + System.out.println(getFirstName() + "'s Roster:"); + for (Student s : assignedStudents) { + System.out.println(" - " + s.getFirstName() + " " + s.getLastName() + " | Grade Level: " + s.getGradeLevel() + " | GPA: " + s.getGpa()); + } + } + + public void createAnnouncement(String message) { + System.out.println("[Announcement] " + message); + } + + @Override + public void getSummary() { + System.out.println("[Instructor] " + getFirstName() + " " + getLastName() + " | Department: " + department); + } +} diff --git a/src/main/java/students/jamesbarclay/Main.java b/src/main/java/students/jamesbarclay/Main.java new file mode 100644 index 0000000..75f0697 --- /dev/null +++ b/src/main/java/students/jamesbarclay/Main.java @@ -0,0 +1,32 @@ +package students.jamesbarclay; + +import java.util.ArrayList; + +public class Main { + public static void main(String[] args) { + // Create students + Student student1 = new Student(1, "Jordan", "Michael", "jordan@gmail.com", '2', 2.3); + Student student2 = new Student(1, "Marcus", "Ross", "marcus@gmail.com", '1', 3.9); + + // Create instructor and assign students + Instructor instructor1 = new Instructor(100, "Dr.", "Rivera", "rivera@gmail.com", "Computer Science"); + instructor1.addStudent(student1); + instructor1.addStudent(student2); + + + ArrayList people = new ArrayList<>(); + people.add(student1); + people.add(student2); + people.add(instructor1); + + + System.out.println("--- People Summaries ---"); + for (Person p : people) { + p.getSummary(); + } + + // Print roster + System.out.println("\n--- Instructor Rosters ---"); + instructor1.printRoster(); + } +} \ No newline at end of file diff --git a/src/main/java/students/jamesbarclay/Person.java b/src/main/java/students/jamesbarclay/Person.java new file mode 100644 index 0000000..8cfb15e --- /dev/null +++ b/src/main/java/students/jamesbarclay/Person.java @@ -0,0 +1,36 @@ +package students.jamesbarclay; + + +public abstract class Person { + private int id; + private String firstName; + private String lastName; + private String email; + + + public abstract void getSummary(); + + public Person(int id, String firstName, String lastName, String email) { + this.id = id; + this.firstName = firstName; + this.lastName = lastName; + this.email = email; + } + + // getters for all fields + public int getId() { + return id; + } + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public String getEmail() { + return email; + } +} \ No newline at end of file diff --git a/src/main/java/students/jamesbarclay/School.java b/src/main/java/students/jamesbarclay/School.java new file mode 100644 index 0000000..48a1353 --- /dev/null +++ b/src/main/java/students/jamesbarclay/School.java @@ -0,0 +1,22 @@ +package students.jamesbarclay; + + +import java.util.ArrayList; + +public class School { + private ArrayList studentList = new ArrayList<>(); + private ArrayList instructorList = new ArrayList<>(); + + public void addStudent(Student student) { + studentList.add(student); + } + + public void addInstructor(Instructor instructor) { + instructorList.add(instructor); + } + + public void printAllPeople() { + for (Student s : studentList) s.getSummary(); + for (Instructor i : instructorList) i.getSummary(); + } +} \ No newline at end of file diff --git a/src/main/java/students/jamesbarclay/Student.java b/src/main/java/students/jamesbarclay/Student.java new file mode 100644 index 0000000..ce02d50 --- /dev/null +++ b/src/main/java/students/jamesbarclay/Student.java @@ -0,0 +1,35 @@ +package students.jamesbarclay; + +public class Student extends Person { + private int gradeLevel; + private double gpa; + + public Student(int id, String firstName, String lastName, String email, int gradeLevel, double gpa) { + super(id, firstName, lastName, email); + this.gradeLevel = gradeLevel; + this.gpa = gpa; + } + + // Determines if the student is on honor roll + public boolean isOnHonorRoll() { + return gpa >= 3.0; + } + + // Summary override demonstrates polymorphism + @Override + public void getSummary() { + System.out.println("[Student] " + getFirstName() + " " + getLastName() + + " | Grade Level: " + gradeLevel + + " | GPA: " + gpa + + " | Honor Roll: " + (isOnHonorRoll() ? "Yes" : "No")); + } + + // Getters + public int getGradeLevel() { + return gradeLevel; + } + + public double getGpa() { + return gpa; + } +} \ No newline at end of file