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

Write a program using inheritance that will allow a user to enter in information

ID: 3826117 • Letter: W

Question

Write a program using inheritance that will allow a user to enter in information for various types of people at a university. The program should allow the user to enter information about Faculty Members, Staff Members, Students, Advisors, and an Other type to catch all others. After the user has entered in all of their records, print them out in a legible way and ask if they want to enter more information.

The hierarchy of the classes should be as follows, or at least similar.

Person (name, address, email, etc)Employee

Faculty (courses taught, department, etc)

Staff (department, title, etc)

Advisor (department, position outside of university, etc)

Student

Undergraduate Student (class year, gpa, etc)

Graduate Student (same as undergrad)

Other (role at university, position outside of university, etc)

Be sure to use inheritance so variables aren’t declared in subclasses if they are not necessary.

Explanation / Answer

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.Arrays;

import java.util.LinkedList;

import java.util.List;

public class PersonsMain {

   public static void main(String[] args) throws NumberFormatException, IOException {

      LinkedList<Person> persons = new LinkedList<>();

      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

      String firstName = null, lastName = null, middleName = null, doB = null, ssn = null, regDate = null, dept = null, dutyHours = null, regNo = null, grade = null, session = null;

      int salary = 0;

      int option;

      do {

          System.out.print("1. Enter a Faculty member "

                  + "2. Enter a Staff member "

                  + "3. Enter other Institute member "

                  + "4. Enter a Student "

                  + "5. Enter a general person "

                  + "6. Display all added candidates"

                  + "7. Exit"

                  + "Enter your choice: [1-7] ");

          option = Integer.parseInt(br.readLine());

          if (option >= 1 && option <= 5){

              System.out.println("Enter first name");

              firstName = br.readLine();

              System.out.println("Enter middle name");

              middleName = br.readLine();

              System.out.println("Enter last name");

              lastName = br.readLine();

              System.out.println("Enter ssn");

              ssn = br.readLine();

              System.out.println("Enter DoB");

              doB = br.readLine();

              if (option <= 3) {

                  System.out.println("Enter registration date");

                  regDate = br.readLine();

                  System.out.println("Enter Salary");

                  salary = Integer.parseInt(br.readLine());

              }

          }

          switch (option){

          case 1:

              System.out.println("Enter department");

              dept = br.readLine();

              persons.add(new FacultyMember(firstName, lastName, middleName, ssn, doB, regDate, salary, dept));

              break;

          case 2:

              System.out.println("Enter duty hours");

              dutyHours = br.readLine();

              persons.add(new StaffMembers(firstName, lastName, middleName, ssn, doB, regDate, salary, dutyHours, new boolean[7]));

              break;

          case 3:

              persons.add(new InstituteMembers(firstName, lastName, middleName, ssn, doB, regDate, salary));

              break;

          case 4:

              System.out.println("Enter Reg-no");

              regNo = br.readLine();

              System.out.println("Enter grade");

              grade = br.readLine();

              System.out.println("Enter department");

              dept = br.readLine();

              System.out.println("Enter session");

              session = br.readLine();

              persons.add(new Student(firstName, lastName, middleName, ssn, doB, regNo, grade, dept, session, null, null));

              break;

          case 5:

              persons.add(new Person(firstName, lastName, middleName, ssn, doB));

              break;

          case 6:

              System.out.println("Members present are: ");

              for (Person p : persons)

                  System.out.println(p);

              break;

          case 7:

              break;

          default:

              System.out.println("Please enter a valid option");

          }

      }while(option != 7);

   }

}


class Person {

   private String firstName;

   private String lastName;

   private String middleName;

   private String ssn;

   private String DoB;

   public Person(String firstName, String lastName, String middleName, String ssn, String doB) {

      super();

      this.firstName = firstName;

      this.lastName = lastName;

      this.middleName = middleName;

      this.ssn = ssn;

      DoB = doB;

   }

   public String getFirstName() {

      return firstName;

   }

   public String getLastName() {

      return lastName;

   }

   public String getMiddleName() {

      return middleName;

   }

   public String getSsn() {

      return ssn;

   }

   public String getDoB() {

      return DoB;

   }

   @Override

   public String toString() {

      return "Person [firstName=" + firstName + ", lastName=" + lastName + ", middleName=" + middleName + ", ssn="

              + ssn + ", DoB=" + DoB + "]";

   }

}

class InstituteMembers extends Person {

   private String regDate;

   private int salary;

   public InstituteMembers(String firstName, String lastName, String middleName, String ssn, String doB,

          String regDate, int salary) {

      super(firstName, lastName, middleName, ssn, doB);

      this.regDate = regDate;

      this.salary = salary;

   }

   public int getSalary() {

      return salary;

   }

   public void setSalary(int salary) {

      this.salary = salary;

   }

   public String getRegDate() {

      return regDate;

   }

   @Override

   public String toString() {

      return "InstituteMembers [regDate=" + regDate + ", salary=" + salary + ", Person=" + super.toString() + "]";

   }

   

}

class FacultyMember extends InstituteMembers {

   private String dept;

   private LinkedList<String> researchPapers;

   public FacultyMember(String firstName, String lastName, String middleName, String ssn, String doB, String regDate,

          int salary, String dept) {

      super(firstName, lastName, middleName, ssn, doB, regDate, salary);

      this.dept = dept;

      this.researchPapers = new LinkedList<>();

   }

   public String getDept() {

      return dept;

   }

   public void setDept(String dept) {

      this.dept = dept;

   }

   public List<String> getResearchPapers() {

      return researchPapers;

   }

   public void addResearchPapers(String researchPaper) {

      this.researchPapers.add(researchPaper);

   }

   @Override

   public String toString() {

      return "FacultyMember [dept=" + dept + ", researchPapers=" + researchPapers + ", InstituteMember=" + super.toString()

              + "]";

   }

}

class StaffMembers extends InstituteMembers{

   String dutyHours;

   boolean[] dutyDays;

   public StaffMembers(String firstName, String lastName, String middleName, String ssn, String doB, String regDate,

          int salary, String dutyHours, boolean[] dutyDays) {

      super(firstName, lastName, middleName, ssn, doB, regDate, salary);

      this.dutyHours = dutyHours;

      this.dutyDays = dutyDays;

   }

   public String getDutyHours() {

      return dutyHours;

   }

   public void setDutyHours(String dutyHours) {

      this.dutyHours = dutyHours;

   }

   public boolean[] getDutyDays() {

      return dutyDays;

   }

   public void setDutyDays(boolean[] dutyDays) {

      this.dutyDays = dutyDays;

   }

   public void setDutyDays(int day, boolean duty) {

      dutyDays[day] = duty;

   }

   @Override

   public String toString() {

      return "StaffMembers [dutyHours=" + dutyHours + ", dutyDays=" + Arrays.toString(dutyDays) + ", InstituteMembers="

              + super.toString() + "]";

   }

}

class Student extends Person{

   String regNo;

   String grade;

   String dept;

   String session;

   String[] subjects;

   int[][] semesterScores;

   public Student(String firstName, String lastName, String middleName, String ssn, String doB, String regNo,

          String grade, String dept, String session, String[] subjects, int[][] semesterScores) {

      super(firstName, lastName, middleName, ssn, doB);

      this.regNo = regNo;

      this.grade = grade;

      this.dept = dept;

      this.session = session;

      this.subjects = subjects;

      this.semesterScores = semesterScores;

   }

   public String getGrade() {

      return grade;

   }

   public void setGrade(String grade) {

      this.grade = grade;

   }

   public String getDept() {

      return dept;

   }

   public void setDept(String dept) {

      this.dept = dept;

   }

   public String getSession() {

      return session;

   }

   public void setSession(String session) {

      this.session = session;

   }

   public String[] getSubjects() {

      return subjects;

   }

   public void setSubjects(String[] subjects) {

      this.subjects = subjects;

   }

   public int[][] getSemesterScores() {

      return semesterScores;

   }

   public void setSemesterScores(int[] semesterScore, int semester) {

      this.semesterScores[semester] = semesterScore;

   }

   public int[] getSemesterScores(int semester) {

      return semesterScores[semester];

   }

   public void setSemesterScores(int[][] semesterScores) {

      this.semesterScores = semesterScores;

   }

   public String getRegNo() {

      return regNo;

   }

   @Override

   public String toString() {

      return "Student [regNo=" + regNo + ", grade=" + grade + ", dept=" + dept + ", session=" + session

              + ", subjects=" + Arrays.toString(subjects) + ", semesterScores=" + Arrays.toString(semesterScores)

              + ", Person=" + super.toString() + "]";

   }

}

So here you go champ. I have included several classes to demonstrate inheritance. No comments has been added since none of the classes performs any special function. All classes contains a constructor, a toString method, and few setters and getters. If you think you need any assistance on the code, please feel free to comment below. I shall be glad to help you.

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