My program is made to add/delete/display a student/teacher, I am having trouble doing so with my student in...
I have created four classes, PersonCopy, Student, Teacher, and Principal.
In PersonCopy, I create variables (firstName, lastName, etc) and have setters and getters for them and I`m using constructors. The Student class extends PersonCopy because it uses the variables created in PersonCopy for the student. The Teacher class extends the Student class, adds, removes, and displays a student from the class/course (which does NOT work). The Principal class extends the Teacher class and performs something similar to Teacher, but instead of adding, deleting, and displaying students, the Principal class adds, removes, and displays teachers (which works perfectly fine). The Main method just calls on these methods from each class and shows a menu, asking the user what they want to do. Based on the input, you get to add, remove, and display a student/teacher.
I am not able to add a student to the class. I did something similar to the method in Teacher class "addTeacherToSchool," which is not working. I tried a lot to figure out how to do this, but I`m very confused. If I can work the "addStudenttoClass" method, then the methods "deleteStudent" and "displayCourses" would work (hopefully).
Here is the code for my main program.
import java.util.Scanner;
/**
* @author 568645
*
*/
public class STPProgramMain {
static Scanner input = new Scanner(System.in);
// Create an array to hold four courses
private static String courses = new String[4];
// Create reference of each class in order to call on methods from these classes
static Principal pri = new Principal();
static Teacher teach = new Teacher();
public static void main (String args) {
// Introduction
System.out.println("========================");
System.out.println("WELCOME TO THIS PROGRAM");
System.out.println("========================");
System.out.println("");
// Create the variables
boolean repeat = true;
// Using a do-while loop, run the program and its methods
do {
showOptions();
int response = input.nextInt(); // Get response (input)
if (response == 1) {
System.out.println("");
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.println("");
// Get first name input
System.out.print("Enter the student`s first name: ");
String firstName = input.next();
// Get last name input
System.out.print("Enter the student`s last name: ");
String lastName = input.next();
// Get address input
System.out.print("Enter the student`s address: ");
String address = input.next();
// Get phone number input
System.out.print("Enter the student`s phone number: ");
String phoneNum = input.next();
// Get email input
System.out.print("Enter the student`s email: ");
String email = input.next();
// Get student ID input
System.out.print("Enter the student`s student ID: ");
String studentID = input.next();
System.out.println("");
// Create an instance to store all these input values in
Student student = new Student(firstName, lastName, address, phoneNum, email, studentID);
if (teach.addStudentToClass(courses, student)) {
System.out.println("The student has been added to the class.");
System.out.println("");
System.out.println("COURSE SELECTION");
System.out.println("----------------");
System.out.println("");
// Get period 1 course input
System.out.print("Enter " + firstName + "`s period 1 course: ");
courses[0] = input.next();
// Get period 2 course input
System.out.print("Enter " + firstName + "`s period 2 course: ");
courses[1] = input.next();
// Get period 3 course input
System.out.print("Enter " + firstName + "`s period 3 course: ");
courses[2] = input.next();
// Get period 4 course input
System.out.print("Enter " + firstName + "`s period 4 course: ");
courses[3] = input.next();
System.out.println("");
}//end if inner if
else {
System.out.println("The student cannot be added.");
System.out.println("");
}//end of else
}//end of outer if
else if (response == 2) {
// Get teacher name input
System.out.println("");
System.out.print("Enter the teacher`s name (Ms./Mr./Mrs.lastName): ");
String t = input.next();
// Get department name input
System.out.print("Enter the department name: ");
String departName = input.next();
System.out.println("");
// Create instance of Teacher class and store values from Person into array
Teacher teacher = new Teacher(t, departName);
if (pri.addTeacherToSchool(teacher)) { // Returning true
System.out.println("The teacher has been added in the school.");
System.out.println("");
// Get the teacher`s course (3) input
System.out.print("Enter " + t + "`s first course name: ");
String courseA = input.next();
teacher.setCourseA(courseA);
System.out.print("Enter " + t + "`s second course name: ");
String courseB = input.next();
teacher.setCourseB(courseB);
System.out.print("Enter " + t + "`s third course name: ");
String courseC = input.next();
teacher.setCourseC(courseC);
}//end of if
else {
System.out.println("Teacher cannot be added.");
System.out.println("");
}//end of else
}//end of else if 1
else if (response == 3) {
System.out.println("");
teach.deleteStudent();
}//end of else if 2
else if (response == 4) {
System.out.println("");
pri.deleteTeacher();
}//end of else if 3
else if (response == 5) {
System.out.println("");
pri.displayCourses();
}//end of else if 4
else if (response == 6) {
System.out.println("");
pri.displayTeacherList();
}//end of else if 5
else if (response == 7) {
System.out.println("");
System.out.println("Thank you for using this program!");
System.out.println("");
break; // Program will not proceed any further
}//end of else if 6
else {
System.out.println("");
System.out.println("Invalid reply.");
System.out.println("");
}//end of else
}//end of do
while (repeat) ; {
}//end of while loop
}//main
// Method to display the options
public static void showOptions() {
System.out.println("");
System.out.println("====");
System.out.println("MENU");
System.out.println("====");
System.out.println("");
System.out.println("Type in '1' to add a STUDENT");
System.out.println("Type in '2' to add a TEACHER");
System.out.println("Type in '3' to remove a STUDENT");
System.out.println("Type in '4' to remove a TEACHER");
System.out.println("Type in '5' to view the STUDENT list");
System.out.println("Type in '6' to view the TEACHER list");
System.out.println("Type in '7' to EXIT the program");
System.out.println("");
System.out.print("Please enter your choice: ");
}//showOptions()
}//class
Here is my PersonCopy class.
/**
* @author 568645
*
*/
public class PersonCopy {
// Create string variables
private String firstName;
private String lastName;
private String address;
private String phoneNum; //(xxx)-xxx-xxx
private String email; //xxx.xxx.xxx
public PersonCopy() { // Like the default constructor, if this is not present
this.firstName = "Not available";
this.lastName = "Not available";
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
}//Constructor Person()
PersonCopy (String firstName, String lastName) { // Constructor with 2 parameters
this.firstName = firstName;
this.lastName = lastName;
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
} // end of Constructor 2
// Using this constructor for option 1 in person main class
PersonCopy (String firstName, String lastName, String address, String phoneNum, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.phoneNum = phoneNum;
this.email = email;
} // end of Constructor 3
// --------- setters and getter methods to access private data -----
void setFirstName (String firstName) { // To set private data
this.firstName = firstName;
}//setFirstName()
String getFirstName() { // To get private data
return this.firstName;
}//getFirstName()
void setLastName (String lastName) { // To set private data
this.lastName = lastName;
}//setLastName()
String getLastName() { // To get private data
return this.lastName;
}//getLastName()
void setAddress (String address) { // To set private data
this.address = address;
}//setAddress()
String getAddress() { // To get private data
return this.address;
}//getAddress()
void setPhoneNum (String phoneNum) { // To set private data
this.phoneNum = phoneNum;
}//setPhoneNum()
String getPhoneNum() { // To get private data
return this.phoneNum;
}//getPhoneNum()
void setEmail (String period2C) { // To set private data
this.email = period2C;
}//setEmail()
String getEmail() { // To get private data
return this.email;
}//getEmail()
}//end of class PersonCopy
Here is my Student class.
public class Student extends PersonCopy {
// Create variables
private String nameFirst;
private String nameLast;
private String studentID; // 6 digit
private String gradeNum; // 2 digit (01, 05, 10, 12, etc)
private String period1C; // Period 1 course
private String period2C; // Period 2 course
private String period3C; // Period 3 course
private String period4C; // Period 4 course
public Student() { // Like the default constructor, if this is not present
this.nameFirst = "Not Available";
this.nameLast = "Not Available";
this.studentID = "Not available";
this.gradeNum = "Not available";
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//Student()
Student (String nameFirst, String nameLast, String studentID, String gradeNum) { // Constructor with 2 parameters
this.nameFirst = nameFirst;
this.nameLast = nameLast;
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Student (String nameFirst, String nameLast, String studentID, String gradeNum, String period1C, String period2C, String period3C, String period4C) {
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = period1C;
this.period2C = period2C;
this.period3C= period3C;
this.period4C = period4C;
}//end of Constructor 3
Student (String firstName, String lastName, String address, String phoneNum, String email, String studentID) {
super(firstName, lastName, address, phoneNum, email);
this.studentID = studentID;
}//end of Student(firstName, lastName, address, phoneNum, email)
// --------- setters and getter methods to access private data -----
void setFirstName (String nameFirst) { // To set private data
this.nameFirst = nameFirst;
}//setFirstName()
String getFirstName() { // To get private data
return this.nameFirst;
}//getFirstName()
void setLastName (String nameLast) { // To set private data
this.nameLast = nameLast;
}//setLastName()
String getLastName() { // To get private data
return this.nameLast;
}//getLastName()
void setstudentID (String studentID) { // To set private data
this.studentID = studentID;
}//setstudentID()
String getstudentID() { // To get private data
return this.studentID;
}//getstudentID()
public String getGradeNum() {
return gradeNum;
}//end of getGradeNum()
public void setGradeNum(String gradeNum) {
this.gradeNum = gradeNum;
}//end of setGradeNum
void setFirstCourse (String period1C) { // To set private data
this.period1C = period1C;
}//setFirstCourse()
String getFirstCourse() { // To get private data
return this.period1C;
}//getFirstCourse()
void setSecondCourse (String period2C) { // To set private data
this.period2C = period2C;
}//setSecondCourse()
String getSecondCourse() { // To get private data
return this.period2C;
}//getSecondCourse()
void setThirdCourse (String period3C) { // To set private data
this.period3C = period3C;
}//setThirdCourse()
String getThirdCourse() { // To get private data
return this.period3C;
}//getThirdCourse()
void setForthCourse (String period4C) { // To set private data
this.period4C = period4C;
}//setForthCourse()
String getForthCourse() { // To get private data
return this.period4C;
}//getForthCourse()
}//class
Here is my Teacher class.
import java.util.Scanner;
public class Teacher extends Student {
static Scanner input = new Scanner(System.in);
// Create variables
private String t;
private String departName;
private String courseA;
private String courseB;
private String courseC;
protected static Teacher teacherList = new Teacher[10];
private static Student studentListA = new Student [20];
private static Student studentListB = new Student [20];
private static Student studentListC = new Student [20];
public Teacher() { // Like the default constructor, if this is not present
this.t = "Not Available";
this.departName = "Not Available";
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//Student()
Teacher(String t, String departName) { // Constructor with 2 parameters
this.t = t;
this.departName = departName;
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Teacher(String t, String departName, String courseA, String courseB, String courseC, Teacher teacherList, Student studentListA, Student studentListB, Student studentListC) {
this.t = t;
this.departName = departName;
this.courseA = courseA;
this.courseB = courseB;
this.courseC = courseC;
Teacher.teacherList = teacherList;
Teacher.studentListA = studentListA;
Teacher.studentListB= studentListB;
Teacher.studentListC = studentListC;
}//end of Constructor
// --------- setters and getter methods to access private data -----
void setTeachersName(String t){ // To set private data
this.t = t;
}//setTeachersName(t)
String getTeachersName(){ // To get private data
return t;
}//getTeachersName()
void setDepartName (String departName) { // To set private data
this.departName = departName;
}//setDepartName(departName)
String getDepartName(){ // To get private data
return departName;
}//getDepartName()
void setCourseA (String courseA) { // To set private data
this.courseA = courseA;
}//setCourseA(courseA)
String getCourseA(){ // To get private data
return courseA;
}//getCourseA()
void setCourseB (String courseB) { // To set private data
this.courseB = courseB;
}//setcourseB(courseB)
String getcourseB(){ // To get private data
return courseB;
}//getcourseB()
void setCourseC(String courseC){ // To set private data
this.courseC = courseC;
}//setcourseC(courseC)
String getcourseC(){ // To get private data
return courseC;
}//getcourseC()
void setTeacherList(Teacher teacherList) {
Teacher.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList() {
return teacherList;
}//getTeacherList
void setStudentListA(Student studentListA){ // To set private data
Teacher.studentListA = studentListA;
}//setStudentListA(studentListA)
Student getStudentListA(){ // to get private data
return Teacher.studentListA;
}//getStudentListA()
void setStudentListB(Student studentListB){ // to set private data
Teacher.studentListB = studentListB;
}//setStudentListB(studentListB)
Student getStudentListB(){ // To get private data
return Teacher.studentListB;
}//getStudentListB()
void setStudentListC(Student studentListC){ // To set private data
Teacher.studentListC = studentListC;
}//setStudentListC(studentListC)
Student getStudentListC(){ // To get private data
return Teacher.studentListC;
}//getStudentListC()
boolean addStudentToClass (String courses, Student student) {
int index = 0;
String firstName = student.getFirstName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add the student in class while the class is not full
do {
// Is the student already in the class?
if (studentListA[index] != null && studentListA[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the teacher is already in the class
isListFull = false; // false because the class is not full
// Is there room to add a student into the class?
if (studentListA[index] == null && (courses.equals(courseA))) {
// Add the student into the class
studentListA[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the class is not full
}//end of inner if
index++;
}//end of outer if
// Is the student already in the class?
if (studentListB[index] != null && studentListB[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListB[index] == null && (courses.equals(courseB))) {
// Adding student into the class...
studentListB[index] = (Student) student;
isComplete = true; // true because the teacher has been added
isListFull = false; // false because the class is not full
}//end of inner if 2
index++;
}//end of outer if 2
// Is the student already in the class?
if (studentListC[index] != null && studentListC[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListC[index] == null && (courses.equals(courseC))) {
// Adding the student into the class...
studentListC[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the list is not full
}//end of inner if 3
index++;
}//end of outer if 3
// End of do, begin while
} while (index < studentListA.length && index < studentListB.length && index < studentListC.length && isComplete == false && isInList == false); {
if (isListFull) {
System.out.println("The classroom is full of students. Cannot add anymore.");
System.out.println("");
}//end of if
return isAdded;
}//end of while loop
}//addStudentToClass(courses, student)
public void deleteStudent() {
System.out.print("Which student would you like to remove? Enter a number from 0-20: ");
int removeStudent = input.nextInt();
if (removeStudent < 20) {
for (int i = 0; i < 20; i++) {
if (studentListA[removeStudent] != null && studentListA[i] == studentListA[removeStudent]) {
studentListA[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if
if (studentListB[removeStudent] != null && studentListB[i] == studentListB[removeStudent]) {
studentListB[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 2
if (studentListC[removeStudent] != null && studentListC[i] == studentListC[removeStudent]) {
studentListC[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 3
}//end of for loop
}//end of big if
else {
System.out.println("Not able to delete student.");
System.out.println("");
}//end of else
}//end of deleteStudent()
// Create a method to output the teacher and student`s courses along with the student name and teacher name
public void displayCourseList() {
// Create the variables for student
String firstName;
String lastName;
String address;
String email;
String phoneNum;
String studentID;
// Displaying information for the first course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseA); // displaying courseA
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListA[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListA[s].getFirstName();
lastName = studentListA[s].getLastName();
address = studentListA[s].getAddress();
email = studentListA[s].getEmail();
phoneNum = studentListA[s].getPhoneNum();
studentID = studentListA[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
// Displaying information for the second course
else if (courseB != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseB); // displaying courseB
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListB[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListB[s].getFirstName();
lastName = studentListB[s].getLastName();
address = studentListB[s].getAddress();
email = studentListB[s].getEmail();
phoneNum = studentListB[s].getPhoneNum();
studentID = studentListB[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if
// Displaying information for the third course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseC); // displaying courseC
System.out.println("Teacher`s Name: " +getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListC[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListC[s].getFirstName();
lastName = studentListC[s].getLastName();
address = studentListC[s].getAddress();
email = studentListC[s].getEmail();
phoneNum = studentListC[s].getPhoneNum();
studentID = studentListC[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if 2
else {
System.out.println("Not able to display courses.");
System.out.println("");
}//end of else
}//end of displayCourses()
}//class
public class Principal extends Teacher {
// Create string variables
private String t;
private String departName;
private String schoolName;
private Teacher teacherList = new Teacher [10];
public Principal() { // Like the default constructor, if this is not present
this.t = "Not available";
this.departName = "Not available";
this.schoolName = "Not available";
}//Principal() (end of Constructor 1)
public Principal (String t) { // Constructor with 1 parameter
this.t = t;
}//Principal(schoolName) (end of Constructor 2)
public Principal (String t, String departName) {
this.t = t;
this.departName = departName;
}//end of Principal(t, departName)
public Principal (String t, String departName, String schoolName, Teacher teacherList) {
this.t = t;;
this.departName = departName;
this.schoolName = schoolName;
this.teacherList = teacherList;
}//Principal() (end of Constructor 3)
// --------- setters and getter methods to access private data -----
void setT (String t) {
this.t = t;
}//setT(t)
String getT() {
return t;
}//getT(t)
void setDepartName (String departName) {
this.departName = departName;
}//setDepartName(departName)
String getDepartName() {
return departName;
}//getDepartName()
void setSchoolName (String schoolName) { // To set private data
this.schoolName = schoolName;
}//setSchoolName(schoolName)
String getSchoolName(){ // To get private data
return this.schoolName;
}//getSchoolName()
void setTeacherList (Teacher teacherList) { // To set private data
this.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList(){ // To get private data
return this.teacherList;
}//getTeacherList()
// Adding a teacher to school method
boolean addTeacherToSchool (Teacher teacher) {
int index = 0;
String t = teacher.getTeachersName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add teacher to school while school is not full
do {
// Is the teacher in the school?
if (teacherList[index] != null && teacherList[index].getTeachersName().equalsIgnoreCase(t)) {
// Yes. Teacher is in the list
System.out.println("Teacher is already in the school.");
System.out.println("");
isInList = true; // True because teacher is already in the list
isListFull = false; // False because the list is not full
}//end of if
// Is there space to add?
else if (teacherList[index] == null) {
// Adding the teacher into the list...
teacherList[index] = (Teacher) teacher; // Add
isComplete = true; // True because the teacher has been added
isListFull = false; // False because the list is not full
}//end of else if
index++;
// End of do, start while
} while (index < teacherList.length && isComplete == false && isInList == false) ; { // This keeps the loop going...
if (isListFull) {
System.out.println("School is full of teachers. Cannot add anymore.");
}//end of if
return isAdded;
}//end of while loop
}//addTeacherToSchool(t)
// Create a method to remove a teacher
public void deleteTeacher () {
System.out.print("Which teacher would you like to remove? Enter a number from 0-10: ");
int removeTeacher = input.nextInt();
if (removeTeacher < 10) {
for (int i = 0; i < 10; i++) {
if (teacherList[removeTeacher] != null && teacherList[i] == teacherList[removeTeacher]) {
teacherList[removeTeacher] = null;
System.out.println("The teacher has been removed.");
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
else {
System.out.println("Not able to delete teacher.");
}//end of else
}//delete(teacherList)
// Create a method to display the teacher using a for loop
void displayTeacherList () {
String t;
String departName;
System.out.println("TEACHER LIST");
System.out.println("------------");
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
t = teacherList[i].getTeachersName();
departName = teacherList[i].getDepartName();
System.out.println("Teacher`s Name: " + t);
System.out.println("Department Name: " + departName);
System.out.println("");
}//end of if
}//end of for loop
}//end of displayTeacherList()
// Method to display the course list in class Teacher
void displayCourses () {
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
System.out.println("");
teacherList[i].displayCourseList(); // Displaying the course list in TEACHER
}//end of if
}//end of for loop
}//end of displayAll(teacherList)
}//class
Here is a snippet of code I used to add a student in Teacher class, but it did not work so I removed it.
boolean addStudentToClass (String courses, Student student) {
boolean add = false;
for (int i = 0; i < teacherList.length; i++) {
if (teacherList[i] != null && add == false) {
Principal teacherFound = (Principal) teacherList[i]; // The teacher has been found
if (teacherFound.getFirstCourse() != null && teacherFound.getFirstCourse().equals(courses[0])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 2
}//end of inner if
else if (teacherFound.getSecondCourse() != null && teacherFound.getSecondCourse().equals(courses[1])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 3
}//end of else if
else if (teacherFound.getThirdCourse() != null && teacherFound.getThirdCourse().equals(courses[2])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 4
}//end of else if 2
else if (teacherFound.getForthCourse() != null && teacherFound.getForthCourse().equals(courses[4])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 5
}//end of else if 3
else {
System.out.println("Course is not available.");
}//end of else
}//end of big if
}//end of for loop
if (courses.equals(courseA)) {
add = isCourseFull(studentListA, student); // Add student to student list A for course A
}//end of if
else if (courses.equals(courseB)) {
add = isCourseFull(studentListB, student); // Add student to student list B for course B
}//end of else if
else if (courses.equals(courseC)) {
add = isCourseFull(studentListC, student); // Add student to student list C for course C
}//end of else if 2
else {
System.out.println("Not able to add student to the class.");
System.out.println("");
}//end of else
return add = true;
}//end of addStudentToClass(courses, student)
// Create a method to check if the course/class is full or not, then add if it`s not full
static boolean isCourseFull (Student course, Student student) {
boolean isAdded = true;
int index = 0;
// Add student to class while course is not full
do {
if (studentListA[index] == null) {
studentListA[index] = (Student) student;
isAdded = true; // Course is not full
}//end of if
else if (studentListB[index] == null) {
studentListB[index] = (Student) student;
}//end of else if
else {
studentListC[index] = (Student) student;
}//end of else
index++; // Adding the student...
}//end of do
while (studentListA[index] != null && index < course.length) ; {
return isAdded; // Course is full
}//end of while
}//isCourseFull(course, student)
java object-oriented programming-challenge
New contributor
put on hold as off-topic by πάντα ῥεῖ, Incomputable, rolfl♦ Dec 26 at 20:22
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Code not implemented or not working as intended: Code Review is a community where programmers peer-review your working code to address issues such as security, maintainability, performance, and scalability. We require that the code be working correctly, to the best of the author's knowledge, before proceeding with a review." – πάντα ῥεῖ, Incomputable, rolfl
If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
I have created four classes, PersonCopy, Student, Teacher, and Principal.
In PersonCopy, I create variables (firstName, lastName, etc) and have setters and getters for them and I`m using constructors. The Student class extends PersonCopy because it uses the variables created in PersonCopy for the student. The Teacher class extends the Student class, adds, removes, and displays a student from the class/course (which does NOT work). The Principal class extends the Teacher class and performs something similar to Teacher, but instead of adding, deleting, and displaying students, the Principal class adds, removes, and displays teachers (which works perfectly fine). The Main method just calls on these methods from each class and shows a menu, asking the user what they want to do. Based on the input, you get to add, remove, and display a student/teacher.
I am not able to add a student to the class. I did something similar to the method in Teacher class "addTeacherToSchool," which is not working. I tried a lot to figure out how to do this, but I`m very confused. If I can work the "addStudenttoClass" method, then the methods "deleteStudent" and "displayCourses" would work (hopefully).
Here is the code for my main program.
import java.util.Scanner;
/**
* @author 568645
*
*/
public class STPProgramMain {
static Scanner input = new Scanner(System.in);
// Create an array to hold four courses
private static String courses = new String[4];
// Create reference of each class in order to call on methods from these classes
static Principal pri = new Principal();
static Teacher teach = new Teacher();
public static void main (String args) {
// Introduction
System.out.println("========================");
System.out.println("WELCOME TO THIS PROGRAM");
System.out.println("========================");
System.out.println("");
// Create the variables
boolean repeat = true;
// Using a do-while loop, run the program and its methods
do {
showOptions();
int response = input.nextInt(); // Get response (input)
if (response == 1) {
System.out.println("");
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.println("");
// Get first name input
System.out.print("Enter the student`s first name: ");
String firstName = input.next();
// Get last name input
System.out.print("Enter the student`s last name: ");
String lastName = input.next();
// Get address input
System.out.print("Enter the student`s address: ");
String address = input.next();
// Get phone number input
System.out.print("Enter the student`s phone number: ");
String phoneNum = input.next();
// Get email input
System.out.print("Enter the student`s email: ");
String email = input.next();
// Get student ID input
System.out.print("Enter the student`s student ID: ");
String studentID = input.next();
System.out.println("");
// Create an instance to store all these input values in
Student student = new Student(firstName, lastName, address, phoneNum, email, studentID);
if (teach.addStudentToClass(courses, student)) {
System.out.println("The student has been added to the class.");
System.out.println("");
System.out.println("COURSE SELECTION");
System.out.println("----------------");
System.out.println("");
// Get period 1 course input
System.out.print("Enter " + firstName + "`s period 1 course: ");
courses[0] = input.next();
// Get period 2 course input
System.out.print("Enter " + firstName + "`s period 2 course: ");
courses[1] = input.next();
// Get period 3 course input
System.out.print("Enter " + firstName + "`s period 3 course: ");
courses[2] = input.next();
// Get period 4 course input
System.out.print("Enter " + firstName + "`s period 4 course: ");
courses[3] = input.next();
System.out.println("");
}//end if inner if
else {
System.out.println("The student cannot be added.");
System.out.println("");
}//end of else
}//end of outer if
else if (response == 2) {
// Get teacher name input
System.out.println("");
System.out.print("Enter the teacher`s name (Ms./Mr./Mrs.lastName): ");
String t = input.next();
// Get department name input
System.out.print("Enter the department name: ");
String departName = input.next();
System.out.println("");
// Create instance of Teacher class and store values from Person into array
Teacher teacher = new Teacher(t, departName);
if (pri.addTeacherToSchool(teacher)) { // Returning true
System.out.println("The teacher has been added in the school.");
System.out.println("");
// Get the teacher`s course (3) input
System.out.print("Enter " + t + "`s first course name: ");
String courseA = input.next();
teacher.setCourseA(courseA);
System.out.print("Enter " + t + "`s second course name: ");
String courseB = input.next();
teacher.setCourseB(courseB);
System.out.print("Enter " + t + "`s third course name: ");
String courseC = input.next();
teacher.setCourseC(courseC);
}//end of if
else {
System.out.println("Teacher cannot be added.");
System.out.println("");
}//end of else
}//end of else if 1
else if (response == 3) {
System.out.println("");
teach.deleteStudent();
}//end of else if 2
else if (response == 4) {
System.out.println("");
pri.deleteTeacher();
}//end of else if 3
else if (response == 5) {
System.out.println("");
pri.displayCourses();
}//end of else if 4
else if (response == 6) {
System.out.println("");
pri.displayTeacherList();
}//end of else if 5
else if (response == 7) {
System.out.println("");
System.out.println("Thank you for using this program!");
System.out.println("");
break; // Program will not proceed any further
}//end of else if 6
else {
System.out.println("");
System.out.println("Invalid reply.");
System.out.println("");
}//end of else
}//end of do
while (repeat) ; {
}//end of while loop
}//main
// Method to display the options
public static void showOptions() {
System.out.println("");
System.out.println("====");
System.out.println("MENU");
System.out.println("====");
System.out.println("");
System.out.println("Type in '1' to add a STUDENT");
System.out.println("Type in '2' to add a TEACHER");
System.out.println("Type in '3' to remove a STUDENT");
System.out.println("Type in '4' to remove a TEACHER");
System.out.println("Type in '5' to view the STUDENT list");
System.out.println("Type in '6' to view the TEACHER list");
System.out.println("Type in '7' to EXIT the program");
System.out.println("");
System.out.print("Please enter your choice: ");
}//showOptions()
}//class
Here is my PersonCopy class.
/**
* @author 568645
*
*/
public class PersonCopy {
// Create string variables
private String firstName;
private String lastName;
private String address;
private String phoneNum; //(xxx)-xxx-xxx
private String email; //xxx.xxx.xxx
public PersonCopy() { // Like the default constructor, if this is not present
this.firstName = "Not available";
this.lastName = "Not available";
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
}//Constructor Person()
PersonCopy (String firstName, String lastName) { // Constructor with 2 parameters
this.firstName = firstName;
this.lastName = lastName;
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
} // end of Constructor 2
// Using this constructor for option 1 in person main class
PersonCopy (String firstName, String lastName, String address, String phoneNum, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.phoneNum = phoneNum;
this.email = email;
} // end of Constructor 3
// --------- setters and getter methods to access private data -----
void setFirstName (String firstName) { // To set private data
this.firstName = firstName;
}//setFirstName()
String getFirstName() { // To get private data
return this.firstName;
}//getFirstName()
void setLastName (String lastName) { // To set private data
this.lastName = lastName;
}//setLastName()
String getLastName() { // To get private data
return this.lastName;
}//getLastName()
void setAddress (String address) { // To set private data
this.address = address;
}//setAddress()
String getAddress() { // To get private data
return this.address;
}//getAddress()
void setPhoneNum (String phoneNum) { // To set private data
this.phoneNum = phoneNum;
}//setPhoneNum()
String getPhoneNum() { // To get private data
return this.phoneNum;
}//getPhoneNum()
void setEmail (String period2C) { // To set private data
this.email = period2C;
}//setEmail()
String getEmail() { // To get private data
return this.email;
}//getEmail()
}//end of class PersonCopy
Here is my Student class.
public class Student extends PersonCopy {
// Create variables
private String nameFirst;
private String nameLast;
private String studentID; // 6 digit
private String gradeNum; // 2 digit (01, 05, 10, 12, etc)
private String period1C; // Period 1 course
private String period2C; // Period 2 course
private String period3C; // Period 3 course
private String period4C; // Period 4 course
public Student() { // Like the default constructor, if this is not present
this.nameFirst = "Not Available";
this.nameLast = "Not Available";
this.studentID = "Not available";
this.gradeNum = "Not available";
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//Student()
Student (String nameFirst, String nameLast, String studentID, String gradeNum) { // Constructor with 2 parameters
this.nameFirst = nameFirst;
this.nameLast = nameLast;
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Student (String nameFirst, String nameLast, String studentID, String gradeNum, String period1C, String period2C, String period3C, String period4C) {
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = period1C;
this.period2C = period2C;
this.period3C= period3C;
this.period4C = period4C;
}//end of Constructor 3
Student (String firstName, String lastName, String address, String phoneNum, String email, String studentID) {
super(firstName, lastName, address, phoneNum, email);
this.studentID = studentID;
}//end of Student(firstName, lastName, address, phoneNum, email)
// --------- setters and getter methods to access private data -----
void setFirstName (String nameFirst) { // To set private data
this.nameFirst = nameFirst;
}//setFirstName()
String getFirstName() { // To get private data
return this.nameFirst;
}//getFirstName()
void setLastName (String nameLast) { // To set private data
this.nameLast = nameLast;
}//setLastName()
String getLastName() { // To get private data
return this.nameLast;
}//getLastName()
void setstudentID (String studentID) { // To set private data
this.studentID = studentID;
}//setstudentID()
String getstudentID() { // To get private data
return this.studentID;
}//getstudentID()
public String getGradeNum() {
return gradeNum;
}//end of getGradeNum()
public void setGradeNum(String gradeNum) {
this.gradeNum = gradeNum;
}//end of setGradeNum
void setFirstCourse (String period1C) { // To set private data
this.period1C = period1C;
}//setFirstCourse()
String getFirstCourse() { // To get private data
return this.period1C;
}//getFirstCourse()
void setSecondCourse (String period2C) { // To set private data
this.period2C = period2C;
}//setSecondCourse()
String getSecondCourse() { // To get private data
return this.period2C;
}//getSecondCourse()
void setThirdCourse (String period3C) { // To set private data
this.period3C = period3C;
}//setThirdCourse()
String getThirdCourse() { // To get private data
return this.period3C;
}//getThirdCourse()
void setForthCourse (String period4C) { // To set private data
this.period4C = period4C;
}//setForthCourse()
String getForthCourse() { // To get private data
return this.period4C;
}//getForthCourse()
}//class
Here is my Teacher class.
import java.util.Scanner;
public class Teacher extends Student {
static Scanner input = new Scanner(System.in);
// Create variables
private String t;
private String departName;
private String courseA;
private String courseB;
private String courseC;
protected static Teacher teacherList = new Teacher[10];
private static Student studentListA = new Student [20];
private static Student studentListB = new Student [20];
private static Student studentListC = new Student [20];
public Teacher() { // Like the default constructor, if this is not present
this.t = "Not Available";
this.departName = "Not Available";
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//Student()
Teacher(String t, String departName) { // Constructor with 2 parameters
this.t = t;
this.departName = departName;
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Teacher(String t, String departName, String courseA, String courseB, String courseC, Teacher teacherList, Student studentListA, Student studentListB, Student studentListC) {
this.t = t;
this.departName = departName;
this.courseA = courseA;
this.courseB = courseB;
this.courseC = courseC;
Teacher.teacherList = teacherList;
Teacher.studentListA = studentListA;
Teacher.studentListB= studentListB;
Teacher.studentListC = studentListC;
}//end of Constructor
// --------- setters and getter methods to access private data -----
void setTeachersName(String t){ // To set private data
this.t = t;
}//setTeachersName(t)
String getTeachersName(){ // To get private data
return t;
}//getTeachersName()
void setDepartName (String departName) { // To set private data
this.departName = departName;
}//setDepartName(departName)
String getDepartName(){ // To get private data
return departName;
}//getDepartName()
void setCourseA (String courseA) { // To set private data
this.courseA = courseA;
}//setCourseA(courseA)
String getCourseA(){ // To get private data
return courseA;
}//getCourseA()
void setCourseB (String courseB) { // To set private data
this.courseB = courseB;
}//setcourseB(courseB)
String getcourseB(){ // To get private data
return courseB;
}//getcourseB()
void setCourseC(String courseC){ // To set private data
this.courseC = courseC;
}//setcourseC(courseC)
String getcourseC(){ // To get private data
return courseC;
}//getcourseC()
void setTeacherList(Teacher teacherList) {
Teacher.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList() {
return teacherList;
}//getTeacherList
void setStudentListA(Student studentListA){ // To set private data
Teacher.studentListA = studentListA;
}//setStudentListA(studentListA)
Student getStudentListA(){ // to get private data
return Teacher.studentListA;
}//getStudentListA()
void setStudentListB(Student studentListB){ // to set private data
Teacher.studentListB = studentListB;
}//setStudentListB(studentListB)
Student getStudentListB(){ // To get private data
return Teacher.studentListB;
}//getStudentListB()
void setStudentListC(Student studentListC){ // To set private data
Teacher.studentListC = studentListC;
}//setStudentListC(studentListC)
Student getStudentListC(){ // To get private data
return Teacher.studentListC;
}//getStudentListC()
boolean addStudentToClass (String courses, Student student) {
int index = 0;
String firstName = student.getFirstName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add the student in class while the class is not full
do {
// Is the student already in the class?
if (studentListA[index] != null && studentListA[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the teacher is already in the class
isListFull = false; // false because the class is not full
// Is there room to add a student into the class?
if (studentListA[index] == null && (courses.equals(courseA))) {
// Add the student into the class
studentListA[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the class is not full
}//end of inner if
index++;
}//end of outer if
// Is the student already in the class?
if (studentListB[index] != null && studentListB[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListB[index] == null && (courses.equals(courseB))) {
// Adding student into the class...
studentListB[index] = (Student) student;
isComplete = true; // true because the teacher has been added
isListFull = false; // false because the class is not full
}//end of inner if 2
index++;
}//end of outer if 2
// Is the student already in the class?
if (studentListC[index] != null && studentListC[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListC[index] == null && (courses.equals(courseC))) {
// Adding the student into the class...
studentListC[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the list is not full
}//end of inner if 3
index++;
}//end of outer if 3
// End of do, begin while
} while (index < studentListA.length && index < studentListB.length && index < studentListC.length && isComplete == false && isInList == false); {
if (isListFull) {
System.out.println("The classroom is full of students. Cannot add anymore.");
System.out.println("");
}//end of if
return isAdded;
}//end of while loop
}//addStudentToClass(courses, student)
public void deleteStudent() {
System.out.print("Which student would you like to remove? Enter a number from 0-20: ");
int removeStudent = input.nextInt();
if (removeStudent < 20) {
for (int i = 0; i < 20; i++) {
if (studentListA[removeStudent] != null && studentListA[i] == studentListA[removeStudent]) {
studentListA[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if
if (studentListB[removeStudent] != null && studentListB[i] == studentListB[removeStudent]) {
studentListB[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 2
if (studentListC[removeStudent] != null && studentListC[i] == studentListC[removeStudent]) {
studentListC[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 3
}//end of for loop
}//end of big if
else {
System.out.println("Not able to delete student.");
System.out.println("");
}//end of else
}//end of deleteStudent()
// Create a method to output the teacher and student`s courses along with the student name and teacher name
public void displayCourseList() {
// Create the variables for student
String firstName;
String lastName;
String address;
String email;
String phoneNum;
String studentID;
// Displaying information for the first course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseA); // displaying courseA
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListA[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListA[s].getFirstName();
lastName = studentListA[s].getLastName();
address = studentListA[s].getAddress();
email = studentListA[s].getEmail();
phoneNum = studentListA[s].getPhoneNum();
studentID = studentListA[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
// Displaying information for the second course
else if (courseB != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseB); // displaying courseB
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListB[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListB[s].getFirstName();
lastName = studentListB[s].getLastName();
address = studentListB[s].getAddress();
email = studentListB[s].getEmail();
phoneNum = studentListB[s].getPhoneNum();
studentID = studentListB[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if
// Displaying information for the third course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseC); // displaying courseC
System.out.println("Teacher`s Name: " +getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListC[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListC[s].getFirstName();
lastName = studentListC[s].getLastName();
address = studentListC[s].getAddress();
email = studentListC[s].getEmail();
phoneNum = studentListC[s].getPhoneNum();
studentID = studentListC[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if 2
else {
System.out.println("Not able to display courses.");
System.out.println("");
}//end of else
}//end of displayCourses()
}//class
public class Principal extends Teacher {
// Create string variables
private String t;
private String departName;
private String schoolName;
private Teacher teacherList = new Teacher [10];
public Principal() { // Like the default constructor, if this is not present
this.t = "Not available";
this.departName = "Not available";
this.schoolName = "Not available";
}//Principal() (end of Constructor 1)
public Principal (String t) { // Constructor with 1 parameter
this.t = t;
}//Principal(schoolName) (end of Constructor 2)
public Principal (String t, String departName) {
this.t = t;
this.departName = departName;
}//end of Principal(t, departName)
public Principal (String t, String departName, String schoolName, Teacher teacherList) {
this.t = t;;
this.departName = departName;
this.schoolName = schoolName;
this.teacherList = teacherList;
}//Principal() (end of Constructor 3)
// --------- setters and getter methods to access private data -----
void setT (String t) {
this.t = t;
}//setT(t)
String getT() {
return t;
}//getT(t)
void setDepartName (String departName) {
this.departName = departName;
}//setDepartName(departName)
String getDepartName() {
return departName;
}//getDepartName()
void setSchoolName (String schoolName) { // To set private data
this.schoolName = schoolName;
}//setSchoolName(schoolName)
String getSchoolName(){ // To get private data
return this.schoolName;
}//getSchoolName()
void setTeacherList (Teacher teacherList) { // To set private data
this.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList(){ // To get private data
return this.teacherList;
}//getTeacherList()
// Adding a teacher to school method
boolean addTeacherToSchool (Teacher teacher) {
int index = 0;
String t = teacher.getTeachersName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add teacher to school while school is not full
do {
// Is the teacher in the school?
if (teacherList[index] != null && teacherList[index].getTeachersName().equalsIgnoreCase(t)) {
// Yes. Teacher is in the list
System.out.println("Teacher is already in the school.");
System.out.println("");
isInList = true; // True because teacher is already in the list
isListFull = false; // False because the list is not full
}//end of if
// Is there space to add?
else if (teacherList[index] == null) {
// Adding the teacher into the list...
teacherList[index] = (Teacher) teacher; // Add
isComplete = true; // True because the teacher has been added
isListFull = false; // False because the list is not full
}//end of else if
index++;
// End of do, start while
} while (index < teacherList.length && isComplete == false && isInList == false) ; { // This keeps the loop going...
if (isListFull) {
System.out.println("School is full of teachers. Cannot add anymore.");
}//end of if
return isAdded;
}//end of while loop
}//addTeacherToSchool(t)
// Create a method to remove a teacher
public void deleteTeacher () {
System.out.print("Which teacher would you like to remove? Enter a number from 0-10: ");
int removeTeacher = input.nextInt();
if (removeTeacher < 10) {
for (int i = 0; i < 10; i++) {
if (teacherList[removeTeacher] != null && teacherList[i] == teacherList[removeTeacher]) {
teacherList[removeTeacher] = null;
System.out.println("The teacher has been removed.");
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
else {
System.out.println("Not able to delete teacher.");
}//end of else
}//delete(teacherList)
// Create a method to display the teacher using a for loop
void displayTeacherList () {
String t;
String departName;
System.out.println("TEACHER LIST");
System.out.println("------------");
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
t = teacherList[i].getTeachersName();
departName = teacherList[i].getDepartName();
System.out.println("Teacher`s Name: " + t);
System.out.println("Department Name: " + departName);
System.out.println("");
}//end of if
}//end of for loop
}//end of displayTeacherList()
// Method to display the course list in class Teacher
void displayCourses () {
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
System.out.println("");
teacherList[i].displayCourseList(); // Displaying the course list in TEACHER
}//end of if
}//end of for loop
}//end of displayAll(teacherList)
}//class
Here is a snippet of code I used to add a student in Teacher class, but it did not work so I removed it.
boolean addStudentToClass (String courses, Student student) {
boolean add = false;
for (int i = 0; i < teacherList.length; i++) {
if (teacherList[i] != null && add == false) {
Principal teacherFound = (Principal) teacherList[i]; // The teacher has been found
if (teacherFound.getFirstCourse() != null && teacherFound.getFirstCourse().equals(courses[0])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 2
}//end of inner if
else if (teacherFound.getSecondCourse() != null && teacherFound.getSecondCourse().equals(courses[1])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 3
}//end of else if
else if (teacherFound.getThirdCourse() != null && teacherFound.getThirdCourse().equals(courses[2])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 4
}//end of else if 2
else if (teacherFound.getForthCourse() != null && teacherFound.getForthCourse().equals(courses[4])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 5
}//end of else if 3
else {
System.out.println("Course is not available.");
}//end of else
}//end of big if
}//end of for loop
if (courses.equals(courseA)) {
add = isCourseFull(studentListA, student); // Add student to student list A for course A
}//end of if
else if (courses.equals(courseB)) {
add = isCourseFull(studentListB, student); // Add student to student list B for course B
}//end of else if
else if (courses.equals(courseC)) {
add = isCourseFull(studentListC, student); // Add student to student list C for course C
}//end of else if 2
else {
System.out.println("Not able to add student to the class.");
System.out.println("");
}//end of else
return add = true;
}//end of addStudentToClass(courses, student)
// Create a method to check if the course/class is full or not, then add if it`s not full
static boolean isCourseFull (Student course, Student student) {
boolean isAdded = true;
int index = 0;
// Add student to class while course is not full
do {
if (studentListA[index] == null) {
studentListA[index] = (Student) student;
isAdded = true; // Course is not full
}//end of if
else if (studentListB[index] == null) {
studentListB[index] = (Student) student;
}//end of else if
else {
studentListC[index] = (Student) student;
}//end of else
index++; // Adding the student...
}//end of do
while (studentListA[index] != null && index < course.length) ; {
return isAdded; // Course is full
}//end of while
}//isCourseFull(course, student)
java object-oriented programming-challenge
New contributor
put on hold as off-topic by πάντα ῥεῖ, Incomputable, rolfl♦ Dec 26 at 20:22
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Code not implemented or not working as intended: Code Review is a community where programmers peer-review your working code to address issues such as security, maintainability, performance, and scalability. We require that the code be working correctly, to the best of the author's knowledge, before proceeding with a review." – πάντα ῥεῖ, Incomputable, rolfl
If this question can be reworded to fit the rules in the help center, please edit the question.
"... which is not working. " Move your question to stack overflow, that's the best place for help with broken code.
– radarbob
Dec 28 at 4:39
add a comment |
I have created four classes, PersonCopy, Student, Teacher, and Principal.
In PersonCopy, I create variables (firstName, lastName, etc) and have setters and getters for them and I`m using constructors. The Student class extends PersonCopy because it uses the variables created in PersonCopy for the student. The Teacher class extends the Student class, adds, removes, and displays a student from the class/course (which does NOT work). The Principal class extends the Teacher class and performs something similar to Teacher, but instead of adding, deleting, and displaying students, the Principal class adds, removes, and displays teachers (which works perfectly fine). The Main method just calls on these methods from each class and shows a menu, asking the user what they want to do. Based on the input, you get to add, remove, and display a student/teacher.
I am not able to add a student to the class. I did something similar to the method in Teacher class "addTeacherToSchool," which is not working. I tried a lot to figure out how to do this, but I`m very confused. If I can work the "addStudenttoClass" method, then the methods "deleteStudent" and "displayCourses" would work (hopefully).
Here is the code for my main program.
import java.util.Scanner;
/**
* @author 568645
*
*/
public class STPProgramMain {
static Scanner input = new Scanner(System.in);
// Create an array to hold four courses
private static String courses = new String[4];
// Create reference of each class in order to call on methods from these classes
static Principal pri = new Principal();
static Teacher teach = new Teacher();
public static void main (String args) {
// Introduction
System.out.println("========================");
System.out.println("WELCOME TO THIS PROGRAM");
System.out.println("========================");
System.out.println("");
// Create the variables
boolean repeat = true;
// Using a do-while loop, run the program and its methods
do {
showOptions();
int response = input.nextInt(); // Get response (input)
if (response == 1) {
System.out.println("");
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.println("");
// Get first name input
System.out.print("Enter the student`s first name: ");
String firstName = input.next();
// Get last name input
System.out.print("Enter the student`s last name: ");
String lastName = input.next();
// Get address input
System.out.print("Enter the student`s address: ");
String address = input.next();
// Get phone number input
System.out.print("Enter the student`s phone number: ");
String phoneNum = input.next();
// Get email input
System.out.print("Enter the student`s email: ");
String email = input.next();
// Get student ID input
System.out.print("Enter the student`s student ID: ");
String studentID = input.next();
System.out.println("");
// Create an instance to store all these input values in
Student student = new Student(firstName, lastName, address, phoneNum, email, studentID);
if (teach.addStudentToClass(courses, student)) {
System.out.println("The student has been added to the class.");
System.out.println("");
System.out.println("COURSE SELECTION");
System.out.println("----------------");
System.out.println("");
// Get period 1 course input
System.out.print("Enter " + firstName + "`s period 1 course: ");
courses[0] = input.next();
// Get period 2 course input
System.out.print("Enter " + firstName + "`s period 2 course: ");
courses[1] = input.next();
// Get period 3 course input
System.out.print("Enter " + firstName + "`s period 3 course: ");
courses[2] = input.next();
// Get period 4 course input
System.out.print("Enter " + firstName + "`s period 4 course: ");
courses[3] = input.next();
System.out.println("");
}//end if inner if
else {
System.out.println("The student cannot be added.");
System.out.println("");
}//end of else
}//end of outer if
else if (response == 2) {
// Get teacher name input
System.out.println("");
System.out.print("Enter the teacher`s name (Ms./Mr./Mrs.lastName): ");
String t = input.next();
// Get department name input
System.out.print("Enter the department name: ");
String departName = input.next();
System.out.println("");
// Create instance of Teacher class and store values from Person into array
Teacher teacher = new Teacher(t, departName);
if (pri.addTeacherToSchool(teacher)) { // Returning true
System.out.println("The teacher has been added in the school.");
System.out.println("");
// Get the teacher`s course (3) input
System.out.print("Enter " + t + "`s first course name: ");
String courseA = input.next();
teacher.setCourseA(courseA);
System.out.print("Enter " + t + "`s second course name: ");
String courseB = input.next();
teacher.setCourseB(courseB);
System.out.print("Enter " + t + "`s third course name: ");
String courseC = input.next();
teacher.setCourseC(courseC);
}//end of if
else {
System.out.println("Teacher cannot be added.");
System.out.println("");
}//end of else
}//end of else if 1
else if (response == 3) {
System.out.println("");
teach.deleteStudent();
}//end of else if 2
else if (response == 4) {
System.out.println("");
pri.deleteTeacher();
}//end of else if 3
else if (response == 5) {
System.out.println("");
pri.displayCourses();
}//end of else if 4
else if (response == 6) {
System.out.println("");
pri.displayTeacherList();
}//end of else if 5
else if (response == 7) {
System.out.println("");
System.out.println("Thank you for using this program!");
System.out.println("");
break; // Program will not proceed any further
}//end of else if 6
else {
System.out.println("");
System.out.println("Invalid reply.");
System.out.println("");
}//end of else
}//end of do
while (repeat) ; {
}//end of while loop
}//main
// Method to display the options
public static void showOptions() {
System.out.println("");
System.out.println("====");
System.out.println("MENU");
System.out.println("====");
System.out.println("");
System.out.println("Type in '1' to add a STUDENT");
System.out.println("Type in '2' to add a TEACHER");
System.out.println("Type in '3' to remove a STUDENT");
System.out.println("Type in '4' to remove a TEACHER");
System.out.println("Type in '5' to view the STUDENT list");
System.out.println("Type in '6' to view the TEACHER list");
System.out.println("Type in '7' to EXIT the program");
System.out.println("");
System.out.print("Please enter your choice: ");
}//showOptions()
}//class
Here is my PersonCopy class.
/**
* @author 568645
*
*/
public class PersonCopy {
// Create string variables
private String firstName;
private String lastName;
private String address;
private String phoneNum; //(xxx)-xxx-xxx
private String email; //xxx.xxx.xxx
public PersonCopy() { // Like the default constructor, if this is not present
this.firstName = "Not available";
this.lastName = "Not available";
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
}//Constructor Person()
PersonCopy (String firstName, String lastName) { // Constructor with 2 parameters
this.firstName = firstName;
this.lastName = lastName;
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
} // end of Constructor 2
// Using this constructor for option 1 in person main class
PersonCopy (String firstName, String lastName, String address, String phoneNum, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.phoneNum = phoneNum;
this.email = email;
} // end of Constructor 3
// --------- setters and getter methods to access private data -----
void setFirstName (String firstName) { // To set private data
this.firstName = firstName;
}//setFirstName()
String getFirstName() { // To get private data
return this.firstName;
}//getFirstName()
void setLastName (String lastName) { // To set private data
this.lastName = lastName;
}//setLastName()
String getLastName() { // To get private data
return this.lastName;
}//getLastName()
void setAddress (String address) { // To set private data
this.address = address;
}//setAddress()
String getAddress() { // To get private data
return this.address;
}//getAddress()
void setPhoneNum (String phoneNum) { // To set private data
this.phoneNum = phoneNum;
}//setPhoneNum()
String getPhoneNum() { // To get private data
return this.phoneNum;
}//getPhoneNum()
void setEmail (String period2C) { // To set private data
this.email = period2C;
}//setEmail()
String getEmail() { // To get private data
return this.email;
}//getEmail()
}//end of class PersonCopy
Here is my Student class.
public class Student extends PersonCopy {
// Create variables
private String nameFirst;
private String nameLast;
private String studentID; // 6 digit
private String gradeNum; // 2 digit (01, 05, 10, 12, etc)
private String period1C; // Period 1 course
private String period2C; // Period 2 course
private String period3C; // Period 3 course
private String period4C; // Period 4 course
public Student() { // Like the default constructor, if this is not present
this.nameFirst = "Not Available";
this.nameLast = "Not Available";
this.studentID = "Not available";
this.gradeNum = "Not available";
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//Student()
Student (String nameFirst, String nameLast, String studentID, String gradeNum) { // Constructor with 2 parameters
this.nameFirst = nameFirst;
this.nameLast = nameLast;
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Student (String nameFirst, String nameLast, String studentID, String gradeNum, String period1C, String period2C, String period3C, String period4C) {
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = period1C;
this.period2C = period2C;
this.period3C= period3C;
this.period4C = period4C;
}//end of Constructor 3
Student (String firstName, String lastName, String address, String phoneNum, String email, String studentID) {
super(firstName, lastName, address, phoneNum, email);
this.studentID = studentID;
}//end of Student(firstName, lastName, address, phoneNum, email)
// --------- setters and getter methods to access private data -----
void setFirstName (String nameFirst) { // To set private data
this.nameFirst = nameFirst;
}//setFirstName()
String getFirstName() { // To get private data
return this.nameFirst;
}//getFirstName()
void setLastName (String nameLast) { // To set private data
this.nameLast = nameLast;
}//setLastName()
String getLastName() { // To get private data
return this.nameLast;
}//getLastName()
void setstudentID (String studentID) { // To set private data
this.studentID = studentID;
}//setstudentID()
String getstudentID() { // To get private data
return this.studentID;
}//getstudentID()
public String getGradeNum() {
return gradeNum;
}//end of getGradeNum()
public void setGradeNum(String gradeNum) {
this.gradeNum = gradeNum;
}//end of setGradeNum
void setFirstCourse (String period1C) { // To set private data
this.period1C = period1C;
}//setFirstCourse()
String getFirstCourse() { // To get private data
return this.period1C;
}//getFirstCourse()
void setSecondCourse (String period2C) { // To set private data
this.period2C = period2C;
}//setSecondCourse()
String getSecondCourse() { // To get private data
return this.period2C;
}//getSecondCourse()
void setThirdCourse (String period3C) { // To set private data
this.period3C = period3C;
}//setThirdCourse()
String getThirdCourse() { // To get private data
return this.period3C;
}//getThirdCourse()
void setForthCourse (String period4C) { // To set private data
this.period4C = period4C;
}//setForthCourse()
String getForthCourse() { // To get private data
return this.period4C;
}//getForthCourse()
}//class
Here is my Teacher class.
import java.util.Scanner;
public class Teacher extends Student {
static Scanner input = new Scanner(System.in);
// Create variables
private String t;
private String departName;
private String courseA;
private String courseB;
private String courseC;
protected static Teacher teacherList = new Teacher[10];
private static Student studentListA = new Student [20];
private static Student studentListB = new Student [20];
private static Student studentListC = new Student [20];
public Teacher() { // Like the default constructor, if this is not present
this.t = "Not Available";
this.departName = "Not Available";
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//Student()
Teacher(String t, String departName) { // Constructor with 2 parameters
this.t = t;
this.departName = departName;
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Teacher(String t, String departName, String courseA, String courseB, String courseC, Teacher teacherList, Student studentListA, Student studentListB, Student studentListC) {
this.t = t;
this.departName = departName;
this.courseA = courseA;
this.courseB = courseB;
this.courseC = courseC;
Teacher.teacherList = teacherList;
Teacher.studentListA = studentListA;
Teacher.studentListB= studentListB;
Teacher.studentListC = studentListC;
}//end of Constructor
// --------- setters and getter methods to access private data -----
void setTeachersName(String t){ // To set private data
this.t = t;
}//setTeachersName(t)
String getTeachersName(){ // To get private data
return t;
}//getTeachersName()
void setDepartName (String departName) { // To set private data
this.departName = departName;
}//setDepartName(departName)
String getDepartName(){ // To get private data
return departName;
}//getDepartName()
void setCourseA (String courseA) { // To set private data
this.courseA = courseA;
}//setCourseA(courseA)
String getCourseA(){ // To get private data
return courseA;
}//getCourseA()
void setCourseB (String courseB) { // To set private data
this.courseB = courseB;
}//setcourseB(courseB)
String getcourseB(){ // To get private data
return courseB;
}//getcourseB()
void setCourseC(String courseC){ // To set private data
this.courseC = courseC;
}//setcourseC(courseC)
String getcourseC(){ // To get private data
return courseC;
}//getcourseC()
void setTeacherList(Teacher teacherList) {
Teacher.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList() {
return teacherList;
}//getTeacherList
void setStudentListA(Student studentListA){ // To set private data
Teacher.studentListA = studentListA;
}//setStudentListA(studentListA)
Student getStudentListA(){ // to get private data
return Teacher.studentListA;
}//getStudentListA()
void setStudentListB(Student studentListB){ // to set private data
Teacher.studentListB = studentListB;
}//setStudentListB(studentListB)
Student getStudentListB(){ // To get private data
return Teacher.studentListB;
}//getStudentListB()
void setStudentListC(Student studentListC){ // To set private data
Teacher.studentListC = studentListC;
}//setStudentListC(studentListC)
Student getStudentListC(){ // To get private data
return Teacher.studentListC;
}//getStudentListC()
boolean addStudentToClass (String courses, Student student) {
int index = 0;
String firstName = student.getFirstName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add the student in class while the class is not full
do {
// Is the student already in the class?
if (studentListA[index] != null && studentListA[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the teacher is already in the class
isListFull = false; // false because the class is not full
// Is there room to add a student into the class?
if (studentListA[index] == null && (courses.equals(courseA))) {
// Add the student into the class
studentListA[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the class is not full
}//end of inner if
index++;
}//end of outer if
// Is the student already in the class?
if (studentListB[index] != null && studentListB[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListB[index] == null && (courses.equals(courseB))) {
// Adding student into the class...
studentListB[index] = (Student) student;
isComplete = true; // true because the teacher has been added
isListFull = false; // false because the class is not full
}//end of inner if 2
index++;
}//end of outer if 2
// Is the student already in the class?
if (studentListC[index] != null && studentListC[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListC[index] == null && (courses.equals(courseC))) {
// Adding the student into the class...
studentListC[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the list is not full
}//end of inner if 3
index++;
}//end of outer if 3
// End of do, begin while
} while (index < studentListA.length && index < studentListB.length && index < studentListC.length && isComplete == false && isInList == false); {
if (isListFull) {
System.out.println("The classroom is full of students. Cannot add anymore.");
System.out.println("");
}//end of if
return isAdded;
}//end of while loop
}//addStudentToClass(courses, student)
public void deleteStudent() {
System.out.print("Which student would you like to remove? Enter a number from 0-20: ");
int removeStudent = input.nextInt();
if (removeStudent < 20) {
for (int i = 0; i < 20; i++) {
if (studentListA[removeStudent] != null && studentListA[i] == studentListA[removeStudent]) {
studentListA[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if
if (studentListB[removeStudent] != null && studentListB[i] == studentListB[removeStudent]) {
studentListB[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 2
if (studentListC[removeStudent] != null && studentListC[i] == studentListC[removeStudent]) {
studentListC[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 3
}//end of for loop
}//end of big if
else {
System.out.println("Not able to delete student.");
System.out.println("");
}//end of else
}//end of deleteStudent()
// Create a method to output the teacher and student`s courses along with the student name and teacher name
public void displayCourseList() {
// Create the variables for student
String firstName;
String lastName;
String address;
String email;
String phoneNum;
String studentID;
// Displaying information for the first course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseA); // displaying courseA
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListA[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListA[s].getFirstName();
lastName = studentListA[s].getLastName();
address = studentListA[s].getAddress();
email = studentListA[s].getEmail();
phoneNum = studentListA[s].getPhoneNum();
studentID = studentListA[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
// Displaying information for the second course
else if (courseB != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseB); // displaying courseB
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListB[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListB[s].getFirstName();
lastName = studentListB[s].getLastName();
address = studentListB[s].getAddress();
email = studentListB[s].getEmail();
phoneNum = studentListB[s].getPhoneNum();
studentID = studentListB[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if
// Displaying information for the third course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseC); // displaying courseC
System.out.println("Teacher`s Name: " +getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListC[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListC[s].getFirstName();
lastName = studentListC[s].getLastName();
address = studentListC[s].getAddress();
email = studentListC[s].getEmail();
phoneNum = studentListC[s].getPhoneNum();
studentID = studentListC[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if 2
else {
System.out.println("Not able to display courses.");
System.out.println("");
}//end of else
}//end of displayCourses()
}//class
public class Principal extends Teacher {
// Create string variables
private String t;
private String departName;
private String schoolName;
private Teacher teacherList = new Teacher [10];
public Principal() { // Like the default constructor, if this is not present
this.t = "Not available";
this.departName = "Not available";
this.schoolName = "Not available";
}//Principal() (end of Constructor 1)
public Principal (String t) { // Constructor with 1 parameter
this.t = t;
}//Principal(schoolName) (end of Constructor 2)
public Principal (String t, String departName) {
this.t = t;
this.departName = departName;
}//end of Principal(t, departName)
public Principal (String t, String departName, String schoolName, Teacher teacherList) {
this.t = t;;
this.departName = departName;
this.schoolName = schoolName;
this.teacherList = teacherList;
}//Principal() (end of Constructor 3)
// --------- setters and getter methods to access private data -----
void setT (String t) {
this.t = t;
}//setT(t)
String getT() {
return t;
}//getT(t)
void setDepartName (String departName) {
this.departName = departName;
}//setDepartName(departName)
String getDepartName() {
return departName;
}//getDepartName()
void setSchoolName (String schoolName) { // To set private data
this.schoolName = schoolName;
}//setSchoolName(schoolName)
String getSchoolName(){ // To get private data
return this.schoolName;
}//getSchoolName()
void setTeacherList (Teacher teacherList) { // To set private data
this.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList(){ // To get private data
return this.teacherList;
}//getTeacherList()
// Adding a teacher to school method
boolean addTeacherToSchool (Teacher teacher) {
int index = 0;
String t = teacher.getTeachersName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add teacher to school while school is not full
do {
// Is the teacher in the school?
if (teacherList[index] != null && teacherList[index].getTeachersName().equalsIgnoreCase(t)) {
// Yes. Teacher is in the list
System.out.println("Teacher is already in the school.");
System.out.println("");
isInList = true; // True because teacher is already in the list
isListFull = false; // False because the list is not full
}//end of if
// Is there space to add?
else if (teacherList[index] == null) {
// Adding the teacher into the list...
teacherList[index] = (Teacher) teacher; // Add
isComplete = true; // True because the teacher has been added
isListFull = false; // False because the list is not full
}//end of else if
index++;
// End of do, start while
} while (index < teacherList.length && isComplete == false && isInList == false) ; { // This keeps the loop going...
if (isListFull) {
System.out.println("School is full of teachers. Cannot add anymore.");
}//end of if
return isAdded;
}//end of while loop
}//addTeacherToSchool(t)
// Create a method to remove a teacher
public void deleteTeacher () {
System.out.print("Which teacher would you like to remove? Enter a number from 0-10: ");
int removeTeacher = input.nextInt();
if (removeTeacher < 10) {
for (int i = 0; i < 10; i++) {
if (teacherList[removeTeacher] != null && teacherList[i] == teacherList[removeTeacher]) {
teacherList[removeTeacher] = null;
System.out.println("The teacher has been removed.");
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
else {
System.out.println("Not able to delete teacher.");
}//end of else
}//delete(teacherList)
// Create a method to display the teacher using a for loop
void displayTeacherList () {
String t;
String departName;
System.out.println("TEACHER LIST");
System.out.println("------------");
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
t = teacherList[i].getTeachersName();
departName = teacherList[i].getDepartName();
System.out.println("Teacher`s Name: " + t);
System.out.println("Department Name: " + departName);
System.out.println("");
}//end of if
}//end of for loop
}//end of displayTeacherList()
// Method to display the course list in class Teacher
void displayCourses () {
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
System.out.println("");
teacherList[i].displayCourseList(); // Displaying the course list in TEACHER
}//end of if
}//end of for loop
}//end of displayAll(teacherList)
}//class
Here is a snippet of code I used to add a student in Teacher class, but it did not work so I removed it.
boolean addStudentToClass (String courses, Student student) {
boolean add = false;
for (int i = 0; i < teacherList.length; i++) {
if (teacherList[i] != null && add == false) {
Principal teacherFound = (Principal) teacherList[i]; // The teacher has been found
if (teacherFound.getFirstCourse() != null && teacherFound.getFirstCourse().equals(courses[0])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 2
}//end of inner if
else if (teacherFound.getSecondCourse() != null && teacherFound.getSecondCourse().equals(courses[1])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 3
}//end of else if
else if (teacherFound.getThirdCourse() != null && teacherFound.getThirdCourse().equals(courses[2])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 4
}//end of else if 2
else if (teacherFound.getForthCourse() != null && teacherFound.getForthCourse().equals(courses[4])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 5
}//end of else if 3
else {
System.out.println("Course is not available.");
}//end of else
}//end of big if
}//end of for loop
if (courses.equals(courseA)) {
add = isCourseFull(studentListA, student); // Add student to student list A for course A
}//end of if
else if (courses.equals(courseB)) {
add = isCourseFull(studentListB, student); // Add student to student list B for course B
}//end of else if
else if (courses.equals(courseC)) {
add = isCourseFull(studentListC, student); // Add student to student list C for course C
}//end of else if 2
else {
System.out.println("Not able to add student to the class.");
System.out.println("");
}//end of else
return add = true;
}//end of addStudentToClass(courses, student)
// Create a method to check if the course/class is full or not, then add if it`s not full
static boolean isCourseFull (Student course, Student student) {
boolean isAdded = true;
int index = 0;
// Add student to class while course is not full
do {
if (studentListA[index] == null) {
studentListA[index] = (Student) student;
isAdded = true; // Course is not full
}//end of if
else if (studentListB[index] == null) {
studentListB[index] = (Student) student;
}//end of else if
else {
studentListC[index] = (Student) student;
}//end of else
index++; // Adding the student...
}//end of do
while (studentListA[index] != null && index < course.length) ; {
return isAdded; // Course is full
}//end of while
}//isCourseFull(course, student)
java object-oriented programming-challenge
New contributor
I have created four classes, PersonCopy, Student, Teacher, and Principal.
In PersonCopy, I create variables (firstName, lastName, etc) and have setters and getters for them and I`m using constructors. The Student class extends PersonCopy because it uses the variables created in PersonCopy for the student. The Teacher class extends the Student class, adds, removes, and displays a student from the class/course (which does NOT work). The Principal class extends the Teacher class and performs something similar to Teacher, but instead of adding, deleting, and displaying students, the Principal class adds, removes, and displays teachers (which works perfectly fine). The Main method just calls on these methods from each class and shows a menu, asking the user what they want to do. Based on the input, you get to add, remove, and display a student/teacher.
I am not able to add a student to the class. I did something similar to the method in Teacher class "addTeacherToSchool," which is not working. I tried a lot to figure out how to do this, but I`m very confused. If I can work the "addStudenttoClass" method, then the methods "deleteStudent" and "displayCourses" would work (hopefully).
Here is the code for my main program.
import java.util.Scanner;
/**
* @author 568645
*
*/
public class STPProgramMain {
static Scanner input = new Scanner(System.in);
// Create an array to hold four courses
private static String courses = new String[4];
// Create reference of each class in order to call on methods from these classes
static Principal pri = new Principal();
static Teacher teach = new Teacher();
public static void main (String args) {
// Introduction
System.out.println("========================");
System.out.println("WELCOME TO THIS PROGRAM");
System.out.println("========================");
System.out.println("");
// Create the variables
boolean repeat = true;
// Using a do-while loop, run the program and its methods
do {
showOptions();
int response = input.nextInt(); // Get response (input)
if (response == 1) {
System.out.println("");
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.println("");
// Get first name input
System.out.print("Enter the student`s first name: ");
String firstName = input.next();
// Get last name input
System.out.print("Enter the student`s last name: ");
String lastName = input.next();
// Get address input
System.out.print("Enter the student`s address: ");
String address = input.next();
// Get phone number input
System.out.print("Enter the student`s phone number: ");
String phoneNum = input.next();
// Get email input
System.out.print("Enter the student`s email: ");
String email = input.next();
// Get student ID input
System.out.print("Enter the student`s student ID: ");
String studentID = input.next();
System.out.println("");
// Create an instance to store all these input values in
Student student = new Student(firstName, lastName, address, phoneNum, email, studentID);
if (teach.addStudentToClass(courses, student)) {
System.out.println("The student has been added to the class.");
System.out.println("");
System.out.println("COURSE SELECTION");
System.out.println("----------------");
System.out.println("");
// Get period 1 course input
System.out.print("Enter " + firstName + "`s period 1 course: ");
courses[0] = input.next();
// Get period 2 course input
System.out.print("Enter " + firstName + "`s period 2 course: ");
courses[1] = input.next();
// Get period 3 course input
System.out.print("Enter " + firstName + "`s period 3 course: ");
courses[2] = input.next();
// Get period 4 course input
System.out.print("Enter " + firstName + "`s period 4 course: ");
courses[3] = input.next();
System.out.println("");
}//end if inner if
else {
System.out.println("The student cannot be added.");
System.out.println("");
}//end of else
}//end of outer if
else if (response == 2) {
// Get teacher name input
System.out.println("");
System.out.print("Enter the teacher`s name (Ms./Mr./Mrs.lastName): ");
String t = input.next();
// Get department name input
System.out.print("Enter the department name: ");
String departName = input.next();
System.out.println("");
// Create instance of Teacher class and store values from Person into array
Teacher teacher = new Teacher(t, departName);
if (pri.addTeacherToSchool(teacher)) { // Returning true
System.out.println("The teacher has been added in the school.");
System.out.println("");
// Get the teacher`s course (3) input
System.out.print("Enter " + t + "`s first course name: ");
String courseA = input.next();
teacher.setCourseA(courseA);
System.out.print("Enter " + t + "`s second course name: ");
String courseB = input.next();
teacher.setCourseB(courseB);
System.out.print("Enter " + t + "`s third course name: ");
String courseC = input.next();
teacher.setCourseC(courseC);
}//end of if
else {
System.out.println("Teacher cannot be added.");
System.out.println("");
}//end of else
}//end of else if 1
else if (response == 3) {
System.out.println("");
teach.deleteStudent();
}//end of else if 2
else if (response == 4) {
System.out.println("");
pri.deleteTeacher();
}//end of else if 3
else if (response == 5) {
System.out.println("");
pri.displayCourses();
}//end of else if 4
else if (response == 6) {
System.out.println("");
pri.displayTeacherList();
}//end of else if 5
else if (response == 7) {
System.out.println("");
System.out.println("Thank you for using this program!");
System.out.println("");
break; // Program will not proceed any further
}//end of else if 6
else {
System.out.println("");
System.out.println("Invalid reply.");
System.out.println("");
}//end of else
}//end of do
while (repeat) ; {
}//end of while loop
}//main
// Method to display the options
public static void showOptions() {
System.out.println("");
System.out.println("====");
System.out.println("MENU");
System.out.println("====");
System.out.println("");
System.out.println("Type in '1' to add a STUDENT");
System.out.println("Type in '2' to add a TEACHER");
System.out.println("Type in '3' to remove a STUDENT");
System.out.println("Type in '4' to remove a TEACHER");
System.out.println("Type in '5' to view the STUDENT list");
System.out.println("Type in '6' to view the TEACHER list");
System.out.println("Type in '7' to EXIT the program");
System.out.println("");
System.out.print("Please enter your choice: ");
}//showOptions()
}//class
Here is my PersonCopy class.
/**
* @author 568645
*
*/
public class PersonCopy {
// Create string variables
private String firstName;
private String lastName;
private String address;
private String phoneNum; //(xxx)-xxx-xxx
private String email; //xxx.xxx.xxx
public PersonCopy() { // Like the default constructor, if this is not present
this.firstName = "Not available";
this.lastName = "Not available";
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
}//Constructor Person()
PersonCopy (String firstName, String lastName) { // Constructor with 2 parameters
this.firstName = firstName;
this.lastName = lastName;
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
} // end of Constructor 2
// Using this constructor for option 1 in person main class
PersonCopy (String firstName, String lastName, String address, String phoneNum, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.phoneNum = phoneNum;
this.email = email;
} // end of Constructor 3
// --------- setters and getter methods to access private data -----
void setFirstName (String firstName) { // To set private data
this.firstName = firstName;
}//setFirstName()
String getFirstName() { // To get private data
return this.firstName;
}//getFirstName()
void setLastName (String lastName) { // To set private data
this.lastName = lastName;
}//setLastName()
String getLastName() { // To get private data
return this.lastName;
}//getLastName()
void setAddress (String address) { // To set private data
this.address = address;
}//setAddress()
String getAddress() { // To get private data
return this.address;
}//getAddress()
void setPhoneNum (String phoneNum) { // To set private data
this.phoneNum = phoneNum;
}//setPhoneNum()
String getPhoneNum() { // To get private data
return this.phoneNum;
}//getPhoneNum()
void setEmail (String period2C) { // To set private data
this.email = period2C;
}//setEmail()
String getEmail() { // To get private data
return this.email;
}//getEmail()
}//end of class PersonCopy
Here is my Student class.
public class Student extends PersonCopy {
// Create variables
private String nameFirst;
private String nameLast;
private String studentID; // 6 digit
private String gradeNum; // 2 digit (01, 05, 10, 12, etc)
private String period1C; // Period 1 course
private String period2C; // Period 2 course
private String period3C; // Period 3 course
private String period4C; // Period 4 course
public Student() { // Like the default constructor, if this is not present
this.nameFirst = "Not Available";
this.nameLast = "Not Available";
this.studentID = "Not available";
this.gradeNum = "Not available";
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//Student()
Student (String nameFirst, String nameLast, String studentID, String gradeNum) { // Constructor with 2 parameters
this.nameFirst = nameFirst;
this.nameLast = nameLast;
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Student (String nameFirst, String nameLast, String studentID, String gradeNum, String period1C, String period2C, String period3C, String period4C) {
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = period1C;
this.period2C = period2C;
this.period3C= period3C;
this.period4C = period4C;
}//end of Constructor 3
Student (String firstName, String lastName, String address, String phoneNum, String email, String studentID) {
super(firstName, lastName, address, phoneNum, email);
this.studentID = studentID;
}//end of Student(firstName, lastName, address, phoneNum, email)
// --------- setters and getter methods to access private data -----
void setFirstName (String nameFirst) { // To set private data
this.nameFirst = nameFirst;
}//setFirstName()
String getFirstName() { // To get private data
return this.nameFirst;
}//getFirstName()
void setLastName (String nameLast) { // To set private data
this.nameLast = nameLast;
}//setLastName()
String getLastName() { // To get private data
return this.nameLast;
}//getLastName()
void setstudentID (String studentID) { // To set private data
this.studentID = studentID;
}//setstudentID()
String getstudentID() { // To get private data
return this.studentID;
}//getstudentID()
public String getGradeNum() {
return gradeNum;
}//end of getGradeNum()
public void setGradeNum(String gradeNum) {
this.gradeNum = gradeNum;
}//end of setGradeNum
void setFirstCourse (String period1C) { // To set private data
this.period1C = period1C;
}//setFirstCourse()
String getFirstCourse() { // To get private data
return this.period1C;
}//getFirstCourse()
void setSecondCourse (String period2C) { // To set private data
this.period2C = period2C;
}//setSecondCourse()
String getSecondCourse() { // To get private data
return this.period2C;
}//getSecondCourse()
void setThirdCourse (String period3C) { // To set private data
this.period3C = period3C;
}//setThirdCourse()
String getThirdCourse() { // To get private data
return this.period3C;
}//getThirdCourse()
void setForthCourse (String period4C) { // To set private data
this.period4C = period4C;
}//setForthCourse()
String getForthCourse() { // To get private data
return this.period4C;
}//getForthCourse()
}//class
Here is my Teacher class.
import java.util.Scanner;
public class Teacher extends Student {
static Scanner input = new Scanner(System.in);
// Create variables
private String t;
private String departName;
private String courseA;
private String courseB;
private String courseC;
protected static Teacher teacherList = new Teacher[10];
private static Student studentListA = new Student [20];
private static Student studentListB = new Student [20];
private static Student studentListC = new Student [20];
public Teacher() { // Like the default constructor, if this is not present
this.t = "Not Available";
this.departName = "Not Available";
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//Student()
Teacher(String t, String departName) { // Constructor with 2 parameters
this.t = t;
this.departName = departName;
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Teacher(String t, String departName, String courseA, String courseB, String courseC, Teacher teacherList, Student studentListA, Student studentListB, Student studentListC) {
this.t = t;
this.departName = departName;
this.courseA = courseA;
this.courseB = courseB;
this.courseC = courseC;
Teacher.teacherList = teacherList;
Teacher.studentListA = studentListA;
Teacher.studentListB= studentListB;
Teacher.studentListC = studentListC;
}//end of Constructor
// --------- setters and getter methods to access private data -----
void setTeachersName(String t){ // To set private data
this.t = t;
}//setTeachersName(t)
String getTeachersName(){ // To get private data
return t;
}//getTeachersName()
void setDepartName (String departName) { // To set private data
this.departName = departName;
}//setDepartName(departName)
String getDepartName(){ // To get private data
return departName;
}//getDepartName()
void setCourseA (String courseA) { // To set private data
this.courseA = courseA;
}//setCourseA(courseA)
String getCourseA(){ // To get private data
return courseA;
}//getCourseA()
void setCourseB (String courseB) { // To set private data
this.courseB = courseB;
}//setcourseB(courseB)
String getcourseB(){ // To get private data
return courseB;
}//getcourseB()
void setCourseC(String courseC){ // To set private data
this.courseC = courseC;
}//setcourseC(courseC)
String getcourseC(){ // To get private data
return courseC;
}//getcourseC()
void setTeacherList(Teacher teacherList) {
Teacher.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList() {
return teacherList;
}//getTeacherList
void setStudentListA(Student studentListA){ // To set private data
Teacher.studentListA = studentListA;
}//setStudentListA(studentListA)
Student getStudentListA(){ // to get private data
return Teacher.studentListA;
}//getStudentListA()
void setStudentListB(Student studentListB){ // to set private data
Teacher.studentListB = studentListB;
}//setStudentListB(studentListB)
Student getStudentListB(){ // To get private data
return Teacher.studentListB;
}//getStudentListB()
void setStudentListC(Student studentListC){ // To set private data
Teacher.studentListC = studentListC;
}//setStudentListC(studentListC)
Student getStudentListC(){ // To get private data
return Teacher.studentListC;
}//getStudentListC()
boolean addStudentToClass (String courses, Student student) {
int index = 0;
String firstName = student.getFirstName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add the student in class while the class is not full
do {
// Is the student already in the class?
if (studentListA[index] != null && studentListA[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the teacher is already in the class
isListFull = false; // false because the class is not full
// Is there room to add a student into the class?
if (studentListA[index] == null && (courses.equals(courseA))) {
// Add the student into the class
studentListA[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the class is not full
}//end of inner if
index++;
}//end of outer if
// Is the student already in the class?
if (studentListB[index] != null && studentListB[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListB[index] == null && (courses.equals(courseB))) {
// Adding student into the class...
studentListB[index] = (Student) student;
isComplete = true; // true because the teacher has been added
isListFull = false; // false because the class is not full
}//end of inner if 2
index++;
}//end of outer if 2
// Is the student already in the class?
if (studentListC[index] != null && studentListC[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListC[index] == null && (courses.equals(courseC))) {
// Adding the student into the class...
studentListC[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the list is not full
}//end of inner if 3
index++;
}//end of outer if 3
// End of do, begin while
} while (index < studentListA.length && index < studentListB.length && index < studentListC.length && isComplete == false && isInList == false); {
if (isListFull) {
System.out.println("The classroom is full of students. Cannot add anymore.");
System.out.println("");
}//end of if
return isAdded;
}//end of while loop
}//addStudentToClass(courses, student)
public void deleteStudent() {
System.out.print("Which student would you like to remove? Enter a number from 0-20: ");
int removeStudent = input.nextInt();
if (removeStudent < 20) {
for (int i = 0; i < 20; i++) {
if (studentListA[removeStudent] != null && studentListA[i] == studentListA[removeStudent]) {
studentListA[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if
if (studentListB[removeStudent] != null && studentListB[i] == studentListB[removeStudent]) {
studentListB[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 2
if (studentListC[removeStudent] != null && studentListC[i] == studentListC[removeStudent]) {
studentListC[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 3
}//end of for loop
}//end of big if
else {
System.out.println("Not able to delete student.");
System.out.println("");
}//end of else
}//end of deleteStudent()
// Create a method to output the teacher and student`s courses along with the student name and teacher name
public void displayCourseList() {
// Create the variables for student
String firstName;
String lastName;
String address;
String email;
String phoneNum;
String studentID;
// Displaying information for the first course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseA); // displaying courseA
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListA[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListA[s].getFirstName();
lastName = studentListA[s].getLastName();
address = studentListA[s].getAddress();
email = studentListA[s].getEmail();
phoneNum = studentListA[s].getPhoneNum();
studentID = studentListA[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
// Displaying information for the second course
else if (courseB != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseB); // displaying courseB
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListB[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListB[s].getFirstName();
lastName = studentListB[s].getLastName();
address = studentListB[s].getAddress();
email = studentListB[s].getEmail();
phoneNum = studentListB[s].getPhoneNum();
studentID = studentListB[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if
// Displaying information for the third course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseC); // displaying courseC
System.out.println("Teacher`s Name: " +getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListC[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListC[s].getFirstName();
lastName = studentListC[s].getLastName();
address = studentListC[s].getAddress();
email = studentListC[s].getEmail();
phoneNum = studentListC[s].getPhoneNum();
studentID = studentListC[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if 2
else {
System.out.println("Not able to display courses.");
System.out.println("");
}//end of else
}//end of displayCourses()
}//class
public class Principal extends Teacher {
// Create string variables
private String t;
private String departName;
private String schoolName;
private Teacher teacherList = new Teacher [10];
public Principal() { // Like the default constructor, if this is not present
this.t = "Not available";
this.departName = "Not available";
this.schoolName = "Not available";
}//Principal() (end of Constructor 1)
public Principal (String t) { // Constructor with 1 parameter
this.t = t;
}//Principal(schoolName) (end of Constructor 2)
public Principal (String t, String departName) {
this.t = t;
this.departName = departName;
}//end of Principal(t, departName)
public Principal (String t, String departName, String schoolName, Teacher teacherList) {
this.t = t;;
this.departName = departName;
this.schoolName = schoolName;
this.teacherList = teacherList;
}//Principal() (end of Constructor 3)
// --------- setters and getter methods to access private data -----
void setT (String t) {
this.t = t;
}//setT(t)
String getT() {
return t;
}//getT(t)
void setDepartName (String departName) {
this.departName = departName;
}//setDepartName(departName)
String getDepartName() {
return departName;
}//getDepartName()
void setSchoolName (String schoolName) { // To set private data
this.schoolName = schoolName;
}//setSchoolName(schoolName)
String getSchoolName(){ // To get private data
return this.schoolName;
}//getSchoolName()
void setTeacherList (Teacher teacherList) { // To set private data
this.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList(){ // To get private data
return this.teacherList;
}//getTeacherList()
// Adding a teacher to school method
boolean addTeacherToSchool (Teacher teacher) {
int index = 0;
String t = teacher.getTeachersName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add teacher to school while school is not full
do {
// Is the teacher in the school?
if (teacherList[index] != null && teacherList[index].getTeachersName().equalsIgnoreCase(t)) {
// Yes. Teacher is in the list
System.out.println("Teacher is already in the school.");
System.out.println("");
isInList = true; // True because teacher is already in the list
isListFull = false; // False because the list is not full
}//end of if
// Is there space to add?
else if (teacherList[index] == null) {
// Adding the teacher into the list...
teacherList[index] = (Teacher) teacher; // Add
isComplete = true; // True because the teacher has been added
isListFull = false; // False because the list is not full
}//end of else if
index++;
// End of do, start while
} while (index < teacherList.length && isComplete == false && isInList == false) ; { // This keeps the loop going...
if (isListFull) {
System.out.println("School is full of teachers. Cannot add anymore.");
}//end of if
return isAdded;
}//end of while loop
}//addTeacherToSchool(t)
// Create a method to remove a teacher
public void deleteTeacher () {
System.out.print("Which teacher would you like to remove? Enter a number from 0-10: ");
int removeTeacher = input.nextInt();
if (removeTeacher < 10) {
for (int i = 0; i < 10; i++) {
if (teacherList[removeTeacher] != null && teacherList[i] == teacherList[removeTeacher]) {
teacherList[removeTeacher] = null;
System.out.println("The teacher has been removed.");
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
else {
System.out.println("Not able to delete teacher.");
}//end of else
}//delete(teacherList)
// Create a method to display the teacher using a for loop
void displayTeacherList () {
String t;
String departName;
System.out.println("TEACHER LIST");
System.out.println("------------");
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
t = teacherList[i].getTeachersName();
departName = teacherList[i].getDepartName();
System.out.println("Teacher`s Name: " + t);
System.out.println("Department Name: " + departName);
System.out.println("");
}//end of if
}//end of for loop
}//end of displayTeacherList()
// Method to display the course list in class Teacher
void displayCourses () {
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
System.out.println("");
teacherList[i].displayCourseList(); // Displaying the course list in TEACHER
}//end of if
}//end of for loop
}//end of displayAll(teacherList)
}//class
Here is a snippet of code I used to add a student in Teacher class, but it did not work so I removed it.
boolean addStudentToClass (String courses, Student student) {
boolean add = false;
for (int i = 0; i < teacherList.length; i++) {
if (teacherList[i] != null && add == false) {
Principal teacherFound = (Principal) teacherList[i]; // The teacher has been found
if (teacherFound.getFirstCourse() != null && teacherFound.getFirstCourse().equals(courses[0])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 2
}//end of inner if
else if (teacherFound.getSecondCourse() != null && teacherFound.getSecondCourse().equals(courses[1])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 3
}//end of else if
else if (teacherFound.getThirdCourse() != null && teacherFound.getThirdCourse().equals(courses[2])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 4
}//end of else if 2
else if (teacherFound.getForthCourse() != null && teacherFound.getForthCourse().equals(courses[4])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 5
}//end of else if 3
else {
System.out.println("Course is not available.");
}//end of else
}//end of big if
}//end of for loop
if (courses.equals(courseA)) {
add = isCourseFull(studentListA, student); // Add student to student list A for course A
}//end of if
else if (courses.equals(courseB)) {
add = isCourseFull(studentListB, student); // Add student to student list B for course B
}//end of else if
else if (courses.equals(courseC)) {
add = isCourseFull(studentListC, student); // Add student to student list C for course C
}//end of else if 2
else {
System.out.println("Not able to add student to the class.");
System.out.println("");
}//end of else
return add = true;
}//end of addStudentToClass(courses, student)
// Create a method to check if the course/class is full or not, then add if it`s not full
static boolean isCourseFull (Student course, Student student) {
boolean isAdded = true;
int index = 0;
// Add student to class while course is not full
do {
if (studentListA[index] == null) {
studentListA[index] = (Student) student;
isAdded = true; // Course is not full
}//end of if
else if (studentListB[index] == null) {
studentListB[index] = (Student) student;
}//end of else if
else {
studentListC[index] = (Student) student;
}//end of else
index++; // Adding the student...
}//end of do
while (studentListA[index] != null && index < course.length) ; {
return isAdded; // Course is full
}//end of while
}//isCourseFull(course, student)
import java.util.Scanner;
/**
* @author 568645
*
*/
public class STPProgramMain {
static Scanner input = new Scanner(System.in);
// Create an array to hold four courses
private static String courses = new String[4];
// Create reference of each class in order to call on methods from these classes
static Principal pri = new Principal();
static Teacher teach = new Teacher();
public static void main (String args) {
// Introduction
System.out.println("========================");
System.out.println("WELCOME TO THIS PROGRAM");
System.out.println("========================");
System.out.println("");
// Create the variables
boolean repeat = true;
// Using a do-while loop, run the program and its methods
do {
showOptions();
int response = input.nextInt(); // Get response (input)
if (response == 1) {
System.out.println("");
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.println("");
// Get first name input
System.out.print("Enter the student`s first name: ");
String firstName = input.next();
// Get last name input
System.out.print("Enter the student`s last name: ");
String lastName = input.next();
// Get address input
System.out.print("Enter the student`s address: ");
String address = input.next();
// Get phone number input
System.out.print("Enter the student`s phone number: ");
String phoneNum = input.next();
// Get email input
System.out.print("Enter the student`s email: ");
String email = input.next();
// Get student ID input
System.out.print("Enter the student`s student ID: ");
String studentID = input.next();
System.out.println("");
// Create an instance to store all these input values in
Student student = new Student(firstName, lastName, address, phoneNum, email, studentID);
if (teach.addStudentToClass(courses, student)) {
System.out.println("The student has been added to the class.");
System.out.println("");
System.out.println("COURSE SELECTION");
System.out.println("----------------");
System.out.println("");
// Get period 1 course input
System.out.print("Enter " + firstName + "`s period 1 course: ");
courses[0] = input.next();
// Get period 2 course input
System.out.print("Enter " + firstName + "`s period 2 course: ");
courses[1] = input.next();
// Get period 3 course input
System.out.print("Enter " + firstName + "`s period 3 course: ");
courses[2] = input.next();
// Get period 4 course input
System.out.print("Enter " + firstName + "`s period 4 course: ");
courses[3] = input.next();
System.out.println("");
}//end if inner if
else {
System.out.println("The student cannot be added.");
System.out.println("");
}//end of else
}//end of outer if
else if (response == 2) {
// Get teacher name input
System.out.println("");
System.out.print("Enter the teacher`s name (Ms./Mr./Mrs.lastName): ");
String t = input.next();
// Get department name input
System.out.print("Enter the department name: ");
String departName = input.next();
System.out.println("");
// Create instance of Teacher class and store values from Person into array
Teacher teacher = new Teacher(t, departName);
if (pri.addTeacherToSchool(teacher)) { // Returning true
System.out.println("The teacher has been added in the school.");
System.out.println("");
// Get the teacher`s course (3) input
System.out.print("Enter " + t + "`s first course name: ");
String courseA = input.next();
teacher.setCourseA(courseA);
System.out.print("Enter " + t + "`s second course name: ");
String courseB = input.next();
teacher.setCourseB(courseB);
System.out.print("Enter " + t + "`s third course name: ");
String courseC = input.next();
teacher.setCourseC(courseC);
}//end of if
else {
System.out.println("Teacher cannot be added.");
System.out.println("");
}//end of else
}//end of else if 1
else if (response == 3) {
System.out.println("");
teach.deleteStudent();
}//end of else if 2
else if (response == 4) {
System.out.println("");
pri.deleteTeacher();
}//end of else if 3
else if (response == 5) {
System.out.println("");
pri.displayCourses();
}//end of else if 4
else if (response == 6) {
System.out.println("");
pri.displayTeacherList();
}//end of else if 5
else if (response == 7) {
System.out.println("");
System.out.println("Thank you for using this program!");
System.out.println("");
break; // Program will not proceed any further
}//end of else if 6
else {
System.out.println("");
System.out.println("Invalid reply.");
System.out.println("");
}//end of else
}//end of do
while (repeat) ; {
}//end of while loop
}//main
// Method to display the options
public static void showOptions() {
System.out.println("");
System.out.println("====");
System.out.println("MENU");
System.out.println("====");
System.out.println("");
System.out.println("Type in '1' to add a STUDENT");
System.out.println("Type in '2' to add a TEACHER");
System.out.println("Type in '3' to remove a STUDENT");
System.out.println("Type in '4' to remove a TEACHER");
System.out.println("Type in '5' to view the STUDENT list");
System.out.println("Type in '6' to view the TEACHER list");
System.out.println("Type in '7' to EXIT the program");
System.out.println("");
System.out.print("Please enter your choice: ");
}//showOptions()
}//class
import java.util.Scanner;
/**
* @author 568645
*
*/
public class STPProgramMain {
static Scanner input = new Scanner(System.in);
// Create an array to hold four courses
private static String courses = new String[4];
// Create reference of each class in order to call on methods from these classes
static Principal pri = new Principal();
static Teacher teach = new Teacher();
public static void main (String args) {
// Introduction
System.out.println("========================");
System.out.println("WELCOME TO THIS PROGRAM");
System.out.println("========================");
System.out.println("");
// Create the variables
boolean repeat = true;
// Using a do-while loop, run the program and its methods
do {
showOptions();
int response = input.nextInt(); // Get response (input)
if (response == 1) {
System.out.println("");
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.println("");
// Get first name input
System.out.print("Enter the student`s first name: ");
String firstName = input.next();
// Get last name input
System.out.print("Enter the student`s last name: ");
String lastName = input.next();
// Get address input
System.out.print("Enter the student`s address: ");
String address = input.next();
// Get phone number input
System.out.print("Enter the student`s phone number: ");
String phoneNum = input.next();
// Get email input
System.out.print("Enter the student`s email: ");
String email = input.next();
// Get student ID input
System.out.print("Enter the student`s student ID: ");
String studentID = input.next();
System.out.println("");
// Create an instance to store all these input values in
Student student = new Student(firstName, lastName, address, phoneNum, email, studentID);
if (teach.addStudentToClass(courses, student)) {
System.out.println("The student has been added to the class.");
System.out.println("");
System.out.println("COURSE SELECTION");
System.out.println("----------------");
System.out.println("");
// Get period 1 course input
System.out.print("Enter " + firstName + "`s period 1 course: ");
courses[0] = input.next();
// Get period 2 course input
System.out.print("Enter " + firstName + "`s period 2 course: ");
courses[1] = input.next();
// Get period 3 course input
System.out.print("Enter " + firstName + "`s period 3 course: ");
courses[2] = input.next();
// Get period 4 course input
System.out.print("Enter " + firstName + "`s period 4 course: ");
courses[3] = input.next();
System.out.println("");
}//end if inner if
else {
System.out.println("The student cannot be added.");
System.out.println("");
}//end of else
}//end of outer if
else if (response == 2) {
// Get teacher name input
System.out.println("");
System.out.print("Enter the teacher`s name (Ms./Mr./Mrs.lastName): ");
String t = input.next();
// Get department name input
System.out.print("Enter the department name: ");
String departName = input.next();
System.out.println("");
// Create instance of Teacher class and store values from Person into array
Teacher teacher = new Teacher(t, departName);
if (pri.addTeacherToSchool(teacher)) { // Returning true
System.out.println("The teacher has been added in the school.");
System.out.println("");
// Get the teacher`s course (3) input
System.out.print("Enter " + t + "`s first course name: ");
String courseA = input.next();
teacher.setCourseA(courseA);
System.out.print("Enter " + t + "`s second course name: ");
String courseB = input.next();
teacher.setCourseB(courseB);
System.out.print("Enter " + t + "`s third course name: ");
String courseC = input.next();
teacher.setCourseC(courseC);
}//end of if
else {
System.out.println("Teacher cannot be added.");
System.out.println("");
}//end of else
}//end of else if 1
else if (response == 3) {
System.out.println("");
teach.deleteStudent();
}//end of else if 2
else if (response == 4) {
System.out.println("");
pri.deleteTeacher();
}//end of else if 3
else if (response == 5) {
System.out.println("");
pri.displayCourses();
}//end of else if 4
else if (response == 6) {
System.out.println("");
pri.displayTeacherList();
}//end of else if 5
else if (response == 7) {
System.out.println("");
System.out.println("Thank you for using this program!");
System.out.println("");
break; // Program will not proceed any further
}//end of else if 6
else {
System.out.println("");
System.out.println("Invalid reply.");
System.out.println("");
}//end of else
}//end of do
while (repeat) ; {
}//end of while loop
}//main
// Method to display the options
public static void showOptions() {
System.out.println("");
System.out.println("====");
System.out.println("MENU");
System.out.println("====");
System.out.println("");
System.out.println("Type in '1' to add a STUDENT");
System.out.println("Type in '2' to add a TEACHER");
System.out.println("Type in '3' to remove a STUDENT");
System.out.println("Type in '4' to remove a TEACHER");
System.out.println("Type in '5' to view the STUDENT list");
System.out.println("Type in '6' to view the TEACHER list");
System.out.println("Type in '7' to EXIT the program");
System.out.println("");
System.out.print("Please enter your choice: ");
}//showOptions()
}//class
/**
* @author 568645
*
*/
public class PersonCopy {
// Create string variables
private String firstName;
private String lastName;
private String address;
private String phoneNum; //(xxx)-xxx-xxx
private String email; //xxx.xxx.xxx
public PersonCopy() { // Like the default constructor, if this is not present
this.firstName = "Not available";
this.lastName = "Not available";
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
}//Constructor Person()
PersonCopy (String firstName, String lastName) { // Constructor with 2 parameters
this.firstName = firstName;
this.lastName = lastName;
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
} // end of Constructor 2
// Using this constructor for option 1 in person main class
PersonCopy (String firstName, String lastName, String address, String phoneNum, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.phoneNum = phoneNum;
this.email = email;
} // end of Constructor 3
// --------- setters and getter methods to access private data -----
void setFirstName (String firstName) { // To set private data
this.firstName = firstName;
}//setFirstName()
String getFirstName() { // To get private data
return this.firstName;
}//getFirstName()
void setLastName (String lastName) { // To set private data
this.lastName = lastName;
}//setLastName()
String getLastName() { // To get private data
return this.lastName;
}//getLastName()
void setAddress (String address) { // To set private data
this.address = address;
}//setAddress()
String getAddress() { // To get private data
return this.address;
}//getAddress()
void setPhoneNum (String phoneNum) { // To set private data
this.phoneNum = phoneNum;
}//setPhoneNum()
String getPhoneNum() { // To get private data
return this.phoneNum;
}//getPhoneNum()
void setEmail (String period2C) { // To set private data
this.email = period2C;
}//setEmail()
String getEmail() { // To get private data
return this.email;
}//getEmail()
}//end of class PersonCopy
/**
* @author 568645
*
*/
public class PersonCopy {
// Create string variables
private String firstName;
private String lastName;
private String address;
private String phoneNum; //(xxx)-xxx-xxx
private String email; //xxx.xxx.xxx
public PersonCopy() { // Like the default constructor, if this is not present
this.firstName = "Not available";
this.lastName = "Not available";
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
}//Constructor Person()
PersonCopy (String firstName, String lastName) { // Constructor with 2 parameters
this.firstName = firstName;
this.lastName = lastName;
this.address = "Not available";
this.phoneNum = "Not available";
this.email = "Not available";
} // end of Constructor 2
// Using this constructor for option 1 in person main class
PersonCopy (String firstName, String lastName, String address, String phoneNum, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.phoneNum = phoneNum;
this.email = email;
} // end of Constructor 3
// --------- setters and getter methods to access private data -----
void setFirstName (String firstName) { // To set private data
this.firstName = firstName;
}//setFirstName()
String getFirstName() { // To get private data
return this.firstName;
}//getFirstName()
void setLastName (String lastName) { // To set private data
this.lastName = lastName;
}//setLastName()
String getLastName() { // To get private data
return this.lastName;
}//getLastName()
void setAddress (String address) { // To set private data
this.address = address;
}//setAddress()
String getAddress() { // To get private data
return this.address;
}//getAddress()
void setPhoneNum (String phoneNum) { // To set private data
this.phoneNum = phoneNum;
}//setPhoneNum()
String getPhoneNum() { // To get private data
return this.phoneNum;
}//getPhoneNum()
void setEmail (String period2C) { // To set private data
this.email = period2C;
}//setEmail()
String getEmail() { // To get private data
return this.email;
}//getEmail()
}//end of class PersonCopy
public class Student extends PersonCopy {
// Create variables
private String nameFirst;
private String nameLast;
private String studentID; // 6 digit
private String gradeNum; // 2 digit (01, 05, 10, 12, etc)
private String period1C; // Period 1 course
private String period2C; // Period 2 course
private String period3C; // Period 3 course
private String period4C; // Period 4 course
public Student() { // Like the default constructor, if this is not present
this.nameFirst = "Not Available";
this.nameLast = "Not Available";
this.studentID = "Not available";
this.gradeNum = "Not available";
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//Student()
Student (String nameFirst, String nameLast, String studentID, String gradeNum) { // Constructor with 2 parameters
this.nameFirst = nameFirst;
this.nameLast = nameLast;
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Student (String nameFirst, String nameLast, String studentID, String gradeNum, String period1C, String period2C, String period3C, String period4C) {
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = period1C;
this.period2C = period2C;
this.period3C= period3C;
this.period4C = period4C;
}//end of Constructor 3
Student (String firstName, String lastName, String address, String phoneNum, String email, String studentID) {
super(firstName, lastName, address, phoneNum, email);
this.studentID = studentID;
}//end of Student(firstName, lastName, address, phoneNum, email)
// --------- setters and getter methods to access private data -----
void setFirstName (String nameFirst) { // To set private data
this.nameFirst = nameFirst;
}//setFirstName()
String getFirstName() { // To get private data
return this.nameFirst;
}//getFirstName()
void setLastName (String nameLast) { // To set private data
this.nameLast = nameLast;
}//setLastName()
String getLastName() { // To get private data
return this.nameLast;
}//getLastName()
void setstudentID (String studentID) { // To set private data
this.studentID = studentID;
}//setstudentID()
String getstudentID() { // To get private data
return this.studentID;
}//getstudentID()
public String getGradeNum() {
return gradeNum;
}//end of getGradeNum()
public void setGradeNum(String gradeNum) {
this.gradeNum = gradeNum;
}//end of setGradeNum
void setFirstCourse (String period1C) { // To set private data
this.period1C = period1C;
}//setFirstCourse()
String getFirstCourse() { // To get private data
return this.period1C;
}//getFirstCourse()
void setSecondCourse (String period2C) { // To set private data
this.period2C = period2C;
}//setSecondCourse()
String getSecondCourse() { // To get private data
return this.period2C;
}//getSecondCourse()
void setThirdCourse (String period3C) { // To set private data
this.period3C = period3C;
}//setThirdCourse()
String getThirdCourse() { // To get private data
return this.period3C;
}//getThirdCourse()
void setForthCourse (String period4C) { // To set private data
this.period4C = period4C;
}//setForthCourse()
String getForthCourse() { // To get private data
return this.period4C;
}//getForthCourse()
}//class
public class Student extends PersonCopy {
// Create variables
private String nameFirst;
private String nameLast;
private String studentID; // 6 digit
private String gradeNum; // 2 digit (01, 05, 10, 12, etc)
private String period1C; // Period 1 course
private String period2C; // Period 2 course
private String period3C; // Period 3 course
private String period4C; // Period 4 course
public Student() { // Like the default constructor, if this is not present
this.nameFirst = "Not Available";
this.nameLast = "Not Available";
this.studentID = "Not available";
this.gradeNum = "Not available";
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//Student()
Student (String nameFirst, String nameLast, String studentID, String gradeNum) { // Constructor with 2 parameters
this.nameFirst = nameFirst;
this.nameLast = nameLast;
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = "Not available";
this.period2C = "Not available";
this.period3C = "Not available";
this.period4C = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Student (String nameFirst, String nameLast, String studentID, String gradeNum, String period1C, String period2C, String period3C, String period4C) {
this.studentID = studentID;
this.gradeNum = gradeNum;
this.period1C = period1C;
this.period2C = period2C;
this.period3C= period3C;
this.period4C = period4C;
}//end of Constructor 3
Student (String firstName, String lastName, String address, String phoneNum, String email, String studentID) {
super(firstName, lastName, address, phoneNum, email);
this.studentID = studentID;
}//end of Student(firstName, lastName, address, phoneNum, email)
// --------- setters and getter methods to access private data -----
void setFirstName (String nameFirst) { // To set private data
this.nameFirst = nameFirst;
}//setFirstName()
String getFirstName() { // To get private data
return this.nameFirst;
}//getFirstName()
void setLastName (String nameLast) { // To set private data
this.nameLast = nameLast;
}//setLastName()
String getLastName() { // To get private data
return this.nameLast;
}//getLastName()
void setstudentID (String studentID) { // To set private data
this.studentID = studentID;
}//setstudentID()
String getstudentID() { // To get private data
return this.studentID;
}//getstudentID()
public String getGradeNum() {
return gradeNum;
}//end of getGradeNum()
public void setGradeNum(String gradeNum) {
this.gradeNum = gradeNum;
}//end of setGradeNum
void setFirstCourse (String period1C) { // To set private data
this.period1C = period1C;
}//setFirstCourse()
String getFirstCourse() { // To get private data
return this.period1C;
}//getFirstCourse()
void setSecondCourse (String period2C) { // To set private data
this.period2C = period2C;
}//setSecondCourse()
String getSecondCourse() { // To get private data
return this.period2C;
}//getSecondCourse()
void setThirdCourse (String period3C) { // To set private data
this.period3C = period3C;
}//setThirdCourse()
String getThirdCourse() { // To get private data
return this.period3C;
}//getThirdCourse()
void setForthCourse (String period4C) { // To set private data
this.period4C = period4C;
}//setForthCourse()
String getForthCourse() { // To get private data
return this.period4C;
}//getForthCourse()
}//class
import java.util.Scanner;
public class Teacher extends Student {
static Scanner input = new Scanner(System.in);
// Create variables
private String t;
private String departName;
private String courseA;
private String courseB;
private String courseC;
protected static Teacher teacherList = new Teacher[10];
private static Student studentListA = new Student [20];
private static Student studentListB = new Student [20];
private static Student studentListC = new Student [20];
public Teacher() { // Like the default constructor, if this is not present
this.t = "Not Available";
this.departName = "Not Available";
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//Student()
Teacher(String t, String departName) { // Constructor with 2 parameters
this.t = t;
this.departName = departName;
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Teacher(String t, String departName, String courseA, String courseB, String courseC, Teacher teacherList, Student studentListA, Student studentListB, Student studentListC) {
this.t = t;
this.departName = departName;
this.courseA = courseA;
this.courseB = courseB;
this.courseC = courseC;
Teacher.teacherList = teacherList;
Teacher.studentListA = studentListA;
Teacher.studentListB= studentListB;
Teacher.studentListC = studentListC;
}//end of Constructor
// --------- setters and getter methods to access private data -----
void setTeachersName(String t){ // To set private data
this.t = t;
}//setTeachersName(t)
String getTeachersName(){ // To get private data
return t;
}//getTeachersName()
void setDepartName (String departName) { // To set private data
this.departName = departName;
}//setDepartName(departName)
String getDepartName(){ // To get private data
return departName;
}//getDepartName()
void setCourseA (String courseA) { // To set private data
this.courseA = courseA;
}//setCourseA(courseA)
String getCourseA(){ // To get private data
return courseA;
}//getCourseA()
void setCourseB (String courseB) { // To set private data
this.courseB = courseB;
}//setcourseB(courseB)
String getcourseB(){ // To get private data
return courseB;
}//getcourseB()
void setCourseC(String courseC){ // To set private data
this.courseC = courseC;
}//setcourseC(courseC)
String getcourseC(){ // To get private data
return courseC;
}//getcourseC()
void setTeacherList(Teacher teacherList) {
Teacher.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList() {
return teacherList;
}//getTeacherList
void setStudentListA(Student studentListA){ // To set private data
Teacher.studentListA = studentListA;
}//setStudentListA(studentListA)
Student getStudentListA(){ // to get private data
return Teacher.studentListA;
}//getStudentListA()
void setStudentListB(Student studentListB){ // to set private data
Teacher.studentListB = studentListB;
}//setStudentListB(studentListB)
Student getStudentListB(){ // To get private data
return Teacher.studentListB;
}//getStudentListB()
void setStudentListC(Student studentListC){ // To set private data
Teacher.studentListC = studentListC;
}//setStudentListC(studentListC)
Student getStudentListC(){ // To get private data
return Teacher.studentListC;
}//getStudentListC()
boolean addStudentToClass (String courses, Student student) {
int index = 0;
String firstName = student.getFirstName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add the student in class while the class is not full
do {
// Is the student already in the class?
if (studentListA[index] != null && studentListA[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the teacher is already in the class
isListFull = false; // false because the class is not full
// Is there room to add a student into the class?
if (studentListA[index] == null && (courses.equals(courseA))) {
// Add the student into the class
studentListA[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the class is not full
}//end of inner if
index++;
}//end of outer if
// Is the student already in the class?
if (studentListB[index] != null && studentListB[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListB[index] == null && (courses.equals(courseB))) {
// Adding student into the class...
studentListB[index] = (Student) student;
isComplete = true; // true because the teacher has been added
isListFull = false; // false because the class is not full
}//end of inner if 2
index++;
}//end of outer if 2
// Is the student already in the class?
if (studentListC[index] != null && studentListC[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListC[index] == null && (courses.equals(courseC))) {
// Adding the student into the class...
studentListC[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the list is not full
}//end of inner if 3
index++;
}//end of outer if 3
// End of do, begin while
} while (index < studentListA.length && index < studentListB.length && index < studentListC.length && isComplete == false && isInList == false); {
if (isListFull) {
System.out.println("The classroom is full of students. Cannot add anymore.");
System.out.println("");
}//end of if
return isAdded;
}//end of while loop
}//addStudentToClass(courses, student)
public void deleteStudent() {
System.out.print("Which student would you like to remove? Enter a number from 0-20: ");
int removeStudent = input.nextInt();
if (removeStudent < 20) {
for (int i = 0; i < 20; i++) {
if (studentListA[removeStudent] != null && studentListA[i] == studentListA[removeStudent]) {
studentListA[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if
if (studentListB[removeStudent] != null && studentListB[i] == studentListB[removeStudent]) {
studentListB[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 2
if (studentListC[removeStudent] != null && studentListC[i] == studentListC[removeStudent]) {
studentListC[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 3
}//end of for loop
}//end of big if
else {
System.out.println("Not able to delete student.");
System.out.println("");
}//end of else
}//end of deleteStudent()
// Create a method to output the teacher and student`s courses along with the student name and teacher name
public void displayCourseList() {
// Create the variables for student
String firstName;
String lastName;
String address;
String email;
String phoneNum;
String studentID;
// Displaying information for the first course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseA); // displaying courseA
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListA[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListA[s].getFirstName();
lastName = studentListA[s].getLastName();
address = studentListA[s].getAddress();
email = studentListA[s].getEmail();
phoneNum = studentListA[s].getPhoneNum();
studentID = studentListA[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
// Displaying information for the second course
else if (courseB != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseB); // displaying courseB
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListB[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListB[s].getFirstName();
lastName = studentListB[s].getLastName();
address = studentListB[s].getAddress();
email = studentListB[s].getEmail();
phoneNum = studentListB[s].getPhoneNum();
studentID = studentListB[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if
// Displaying information for the third course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseC); // displaying courseC
System.out.println("Teacher`s Name: " +getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListC[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListC[s].getFirstName();
lastName = studentListC[s].getLastName();
address = studentListC[s].getAddress();
email = studentListC[s].getEmail();
phoneNum = studentListC[s].getPhoneNum();
studentID = studentListC[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if 2
else {
System.out.println("Not able to display courses.");
System.out.println("");
}//end of else
}//end of displayCourses()
}//class
import java.util.Scanner;
public class Teacher extends Student {
static Scanner input = new Scanner(System.in);
// Create variables
private String t;
private String departName;
private String courseA;
private String courseB;
private String courseC;
protected static Teacher teacherList = new Teacher[10];
private static Student studentListA = new Student [20];
private static Student studentListB = new Student [20];
private static Student studentListC = new Student [20];
public Teacher() { // Like the default constructor, if this is not present
this.t = "Not Available";
this.departName = "Not Available";
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//Student()
Teacher(String t, String departName) { // Constructor with 2 parameters
this.t = t;
this.departName = departName;
this.courseA = "Not Available";
this.courseB = "Not available";
this.courseC = "Not available";
}//end of Constructor 2
// Using this constructor for option 1 in person main class
Teacher(String t, String departName, String courseA, String courseB, String courseC, Teacher teacherList, Student studentListA, Student studentListB, Student studentListC) {
this.t = t;
this.departName = departName;
this.courseA = courseA;
this.courseB = courseB;
this.courseC = courseC;
Teacher.teacherList = teacherList;
Teacher.studentListA = studentListA;
Teacher.studentListB= studentListB;
Teacher.studentListC = studentListC;
}//end of Constructor
// --------- setters and getter methods to access private data -----
void setTeachersName(String t){ // To set private data
this.t = t;
}//setTeachersName(t)
String getTeachersName(){ // To get private data
return t;
}//getTeachersName()
void setDepartName (String departName) { // To set private data
this.departName = departName;
}//setDepartName(departName)
String getDepartName(){ // To get private data
return departName;
}//getDepartName()
void setCourseA (String courseA) { // To set private data
this.courseA = courseA;
}//setCourseA(courseA)
String getCourseA(){ // To get private data
return courseA;
}//getCourseA()
void setCourseB (String courseB) { // To set private data
this.courseB = courseB;
}//setcourseB(courseB)
String getcourseB(){ // To get private data
return courseB;
}//getcourseB()
void setCourseC(String courseC){ // To set private data
this.courseC = courseC;
}//setcourseC(courseC)
String getcourseC(){ // To get private data
return courseC;
}//getcourseC()
void setTeacherList(Teacher teacherList) {
Teacher.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList() {
return teacherList;
}//getTeacherList
void setStudentListA(Student studentListA){ // To set private data
Teacher.studentListA = studentListA;
}//setStudentListA(studentListA)
Student getStudentListA(){ // to get private data
return Teacher.studentListA;
}//getStudentListA()
void setStudentListB(Student studentListB){ // to set private data
Teacher.studentListB = studentListB;
}//setStudentListB(studentListB)
Student getStudentListB(){ // To get private data
return Teacher.studentListB;
}//getStudentListB()
void setStudentListC(Student studentListC){ // To set private data
Teacher.studentListC = studentListC;
}//setStudentListC(studentListC)
Student getStudentListC(){ // To get private data
return Teacher.studentListC;
}//getStudentListC()
boolean addStudentToClass (String courses, Student student) {
int index = 0;
String firstName = student.getFirstName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add the student in class while the class is not full
do {
// Is the student already in the class?
if (studentListA[index] != null && studentListA[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the teacher is already in the class
isListFull = false; // false because the class is not full
// Is there room to add a student into the class?
if (studentListA[index] == null && (courses.equals(courseA))) {
// Add the student into the class
studentListA[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the class is not full
}//end of inner if
index++;
}//end of outer if
// Is the student already in the class?
if (studentListB[index] != null && studentListB[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListB[index] == null && (courses.equals(courseB))) {
// Adding student into the class...
studentListB[index] = (Student) student;
isComplete = true; // true because the teacher has been added
isListFull = false; // false because the class is not full
}//end of inner if 2
index++;
}//end of outer if 2
// Is the student already in the class?
if (studentListC[index] != null && studentListC[index].getFirstName().equalsIgnoreCase(firstName)) {
// Yes, the student is in the class
System.out.println("The student is already in the class.");
System.out.println("");
isInList = true; // true because the student is already in the class
isListFull = false; // false because the class is not full
// Is there space to add a student?
if (studentListC[index] == null && (courses.equals(courseC))) {
// Adding the student into the class...
studentListC[index] = (Student) student;
isComplete = true; // true because the student has been added
isListFull = false; // false because the list is not full
}//end of inner if 3
index++;
}//end of outer if 3
// End of do, begin while
} while (index < studentListA.length && index < studentListB.length && index < studentListC.length && isComplete == false && isInList == false); {
if (isListFull) {
System.out.println("The classroom is full of students. Cannot add anymore.");
System.out.println("");
}//end of if
return isAdded;
}//end of while loop
}//addStudentToClass(courses, student)
public void deleteStudent() {
System.out.print("Which student would you like to remove? Enter a number from 0-20: ");
int removeStudent = input.nextInt();
if (removeStudent < 20) {
for (int i = 0; i < 20; i++) {
if (studentListA[removeStudent] != null && studentListA[i] == studentListA[removeStudent]) {
studentListA[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if
if (studentListB[removeStudent] != null && studentListB[i] == studentListB[removeStudent]) {
studentListB[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 2
if (studentListC[removeStudent] != null && studentListC[i] == studentListC[removeStudent]) {
studentListC[removeStudent] = null;
System.out.println("The student has been removed.");
System.out.println("");
}//end of if 3
}//end of for loop
}//end of big if
else {
System.out.println("Not able to delete student.");
System.out.println("");
}//end of else
}//end of deleteStudent()
// Create a method to output the teacher and student`s courses along with the student name and teacher name
public void displayCourseList() {
// Create the variables for student
String firstName;
String lastName;
String address;
String email;
String phoneNum;
String studentID;
// Displaying information for the first course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseA); // displaying courseA
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListA[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListA[s].getFirstName();
lastName = studentListA[s].getLastName();
address = studentListA[s].getAddress();
email = studentListA[s].getEmail();
phoneNum = studentListA[s].getPhoneNum();
studentID = studentListA[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
// Displaying information for the second course
else if (courseB != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseB); // displaying courseB
System.out.println("Teacher`s Name: " + getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListB[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListB[s].getFirstName();
lastName = studentListB[s].getLastName();
address = studentListB[s].getAddress();
email = studentListB[s].getEmail();
phoneNum = studentListB[s].getPhoneNum();
studentID = studentListB[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if
// Displaying information for the third course
if (courseA != null) {
System.out.println("COURSE AND TEACHER INFORMATION");
System.out.println("-------------------------------");
System.out.println("Course Name A: " + courseC); // displaying courseC
System.out.println("Teacher`s Name: " +getTeachersName());
System.out.println("Department Name: " + getDepartName());
System.out.println("");
// Now to access the student lists and be able to output them onto the console
for (int s = 0; s < 20; s++) { // because each student list contains 20 students
if (studentListC[s] != null) {
// Setting the variables created above to the s element of this student list
firstName = studentListC[s].getFirstName();
lastName = studentListC[s].getLastName();
address = studentListC[s].getAddress();
email = studentListC[s].getEmail();
phoneNum = studentListC[s].getPhoneNum();
studentID = studentListC[s].getstudentID();
System.out.println("STUDENT INFORMATION");
System.out.println("-------------------");
System.out.print("Name: " + firstName);
System.out.println(" " + lastName);
System.out.println("Address: " + address);
System.out.println("Email: " + email);
System.out.println("Phone Number: " + phoneNum);
System.out.println("Student ID: " + studentID);
System.out.println("");
}//end of inner if
}//end of for loop
}//end of big else if 2
else {
System.out.println("Not able to display courses.");
System.out.println("");
}//end of else
}//end of displayCourses()
}//class
public class Principal extends Teacher {
// Create string variables
private String t;
private String departName;
private String schoolName;
private Teacher teacherList = new Teacher [10];
public Principal() { // Like the default constructor, if this is not present
this.t = "Not available";
this.departName = "Not available";
this.schoolName = "Not available";
}//Principal() (end of Constructor 1)
public Principal (String t) { // Constructor with 1 parameter
this.t = t;
}//Principal(schoolName) (end of Constructor 2)
public Principal (String t, String departName) {
this.t = t;
this.departName = departName;
}//end of Principal(t, departName)
public Principal (String t, String departName, String schoolName, Teacher teacherList) {
this.t = t;;
this.departName = departName;
this.schoolName = schoolName;
this.teacherList = teacherList;
}//Principal() (end of Constructor 3)
// --------- setters and getter methods to access private data -----
void setT (String t) {
this.t = t;
}//setT(t)
String getT() {
return t;
}//getT(t)
void setDepartName (String departName) {
this.departName = departName;
}//setDepartName(departName)
String getDepartName() {
return departName;
}//getDepartName()
void setSchoolName (String schoolName) { // To set private data
this.schoolName = schoolName;
}//setSchoolName(schoolName)
String getSchoolName(){ // To get private data
return this.schoolName;
}//getSchoolName()
void setTeacherList (Teacher teacherList) { // To set private data
this.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList(){ // To get private data
return this.teacherList;
}//getTeacherList()
// Adding a teacher to school method
boolean addTeacherToSchool (Teacher teacher) {
int index = 0;
String t = teacher.getTeachersName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add teacher to school while school is not full
do {
// Is the teacher in the school?
if (teacherList[index] != null && teacherList[index].getTeachersName().equalsIgnoreCase(t)) {
// Yes. Teacher is in the list
System.out.println("Teacher is already in the school.");
System.out.println("");
isInList = true; // True because teacher is already in the list
isListFull = false; // False because the list is not full
}//end of if
// Is there space to add?
else if (teacherList[index] == null) {
// Adding the teacher into the list...
teacherList[index] = (Teacher) teacher; // Add
isComplete = true; // True because the teacher has been added
isListFull = false; // False because the list is not full
}//end of else if
index++;
// End of do, start while
} while (index < teacherList.length && isComplete == false && isInList == false) ; { // This keeps the loop going...
if (isListFull) {
System.out.println("School is full of teachers. Cannot add anymore.");
}//end of if
return isAdded;
}//end of while loop
}//addTeacherToSchool(t)
// Create a method to remove a teacher
public void deleteTeacher () {
System.out.print("Which teacher would you like to remove? Enter a number from 0-10: ");
int removeTeacher = input.nextInt();
if (removeTeacher < 10) {
for (int i = 0; i < 10; i++) {
if (teacherList[removeTeacher] != null && teacherList[i] == teacherList[removeTeacher]) {
teacherList[removeTeacher] = null;
System.out.println("The teacher has been removed.");
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
else {
System.out.println("Not able to delete teacher.");
}//end of else
}//delete(teacherList)
// Create a method to display the teacher using a for loop
void displayTeacherList () {
String t;
String departName;
System.out.println("TEACHER LIST");
System.out.println("------------");
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
t = teacherList[i].getTeachersName();
departName = teacherList[i].getDepartName();
System.out.println("Teacher`s Name: " + t);
System.out.println("Department Name: " + departName);
System.out.println("");
}//end of if
}//end of for loop
}//end of displayTeacherList()
// Method to display the course list in class Teacher
void displayCourses () {
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
System.out.println("");
teacherList[i].displayCourseList(); // Displaying the course list in TEACHER
}//end of if
}//end of for loop
}//end of displayAll(teacherList)
}//class
public class Principal extends Teacher {
// Create string variables
private String t;
private String departName;
private String schoolName;
private Teacher teacherList = new Teacher [10];
public Principal() { // Like the default constructor, if this is not present
this.t = "Not available";
this.departName = "Not available";
this.schoolName = "Not available";
}//Principal() (end of Constructor 1)
public Principal (String t) { // Constructor with 1 parameter
this.t = t;
}//Principal(schoolName) (end of Constructor 2)
public Principal (String t, String departName) {
this.t = t;
this.departName = departName;
}//end of Principal(t, departName)
public Principal (String t, String departName, String schoolName, Teacher teacherList) {
this.t = t;;
this.departName = departName;
this.schoolName = schoolName;
this.teacherList = teacherList;
}//Principal() (end of Constructor 3)
// --------- setters and getter methods to access private data -----
void setT (String t) {
this.t = t;
}//setT(t)
String getT() {
return t;
}//getT(t)
void setDepartName (String departName) {
this.departName = departName;
}//setDepartName(departName)
String getDepartName() {
return departName;
}//getDepartName()
void setSchoolName (String schoolName) { // To set private data
this.schoolName = schoolName;
}//setSchoolName(schoolName)
String getSchoolName(){ // To get private data
return this.schoolName;
}//getSchoolName()
void setTeacherList (Teacher teacherList) { // To set private data
this.teacherList = teacherList;
}//setTeacherList(teacherList)
Teacher getTeacherList(){ // To get private data
return this.teacherList;
}//getTeacherList()
// Adding a teacher to school method
boolean addTeacherToSchool (Teacher teacher) {
int index = 0;
String t = teacher.getTeachersName();
boolean isAdded = true;
boolean isListFull = false;
boolean isInList = false;
boolean isComplete = false;
// Add teacher to school while school is not full
do {
// Is the teacher in the school?
if (teacherList[index] != null && teacherList[index].getTeachersName().equalsIgnoreCase(t)) {
// Yes. Teacher is in the list
System.out.println("Teacher is already in the school.");
System.out.println("");
isInList = true; // True because teacher is already in the list
isListFull = false; // False because the list is not full
}//end of if
// Is there space to add?
else if (teacherList[index] == null) {
// Adding the teacher into the list...
teacherList[index] = (Teacher) teacher; // Add
isComplete = true; // True because the teacher has been added
isListFull = false; // False because the list is not full
}//end of else if
index++;
// End of do, start while
} while (index < teacherList.length && isComplete == false && isInList == false) ; { // This keeps the loop going...
if (isListFull) {
System.out.println("School is full of teachers. Cannot add anymore.");
}//end of if
return isAdded;
}//end of while loop
}//addTeacherToSchool(t)
// Create a method to remove a teacher
public void deleteTeacher () {
System.out.print("Which teacher would you like to remove? Enter a number from 0-10: ");
int removeTeacher = input.nextInt();
if (removeTeacher < 10) {
for (int i = 0; i < 10; i++) {
if (teacherList[removeTeacher] != null && teacherList[i] == teacherList[removeTeacher]) {
teacherList[removeTeacher] = null;
System.out.println("The teacher has been removed.");
System.out.println("");
}//end of inner if
}//end of for loop
}//end of outer if
else {
System.out.println("Not able to delete teacher.");
}//end of else
}//delete(teacherList)
// Create a method to display the teacher using a for loop
void displayTeacherList () {
String t;
String departName;
System.out.println("TEACHER LIST");
System.out.println("------------");
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
t = teacherList[i].getTeachersName();
departName = teacherList[i].getDepartName();
System.out.println("Teacher`s Name: " + t);
System.out.println("Department Name: " + departName);
System.out.println("");
}//end of if
}//end of for loop
}//end of displayTeacherList()
// Method to display the course list in class Teacher
void displayCourses () {
for (int i = 0; i < 10; i++) {
if (teacherList[i] != null) {
System.out.println("");
teacherList[i].displayCourseList(); // Displaying the course list in TEACHER
}//end of if
}//end of for loop
}//end of displayAll(teacherList)
}//class
boolean addStudentToClass (String courses, Student student) {
boolean add = false;
for (int i = 0; i < teacherList.length; i++) {
if (teacherList[i] != null && add == false) {
Principal teacherFound = (Principal) teacherList[i]; // The teacher has been found
if (teacherFound.getFirstCourse() != null && teacherFound.getFirstCourse().equals(courses[0])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 2
}//end of inner if
else if (teacherFound.getSecondCourse() != null && teacherFound.getSecondCourse().equals(courses[1])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 3
}//end of else if
else if (teacherFound.getThirdCourse() != null && teacherFound.getThirdCourse().equals(courses[2])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 4
}//end of else if 2
else if (teacherFound.getForthCourse() != null && teacherFound.getForthCourse().equals(courses[4])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 5
}//end of else if 3
else {
System.out.println("Course is not available.");
}//end of else
}//end of big if
}//end of for loop
if (courses.equals(courseA)) {
add = isCourseFull(studentListA, student); // Add student to student list A for course A
}//end of if
else if (courses.equals(courseB)) {
add = isCourseFull(studentListB, student); // Add student to student list B for course B
}//end of else if
else if (courses.equals(courseC)) {
add = isCourseFull(studentListC, student); // Add student to student list C for course C
}//end of else if 2
else {
System.out.println("Not able to add student to the class.");
System.out.println("");
}//end of else
return add = true;
}//end of addStudentToClass(courses, student)
// Create a method to check if the course/class is full or not, then add if it`s not full
static boolean isCourseFull (Student course, Student student) {
boolean isAdded = true;
int index = 0;
// Add student to class while course is not full
do {
if (studentListA[index] == null) {
studentListA[index] = (Student) student;
isAdded = true; // Course is not full
}//end of if
else if (studentListB[index] == null) {
studentListB[index] = (Student) student;
}//end of else if
else {
studentListC[index] = (Student) student;
}//end of else
index++; // Adding the student...
}//end of do
while (studentListA[index] != null && index < course.length) ; {
return isAdded; // Course is full
}//end of while
}//isCourseFull(course, student)
boolean addStudentToClass (String courses, Student student) {
boolean add = false;
for (int i = 0; i < teacherList.length; i++) {
if (teacherList[i] != null && add == false) {
Principal teacherFound = (Principal) teacherList[i]; // The teacher has been found
if (teacherFound.getFirstCourse() != null && teacherFound.getFirstCourse().equals(courses[0])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 2
}//end of inner if
else if (teacherFound.getSecondCourse() != null && teacherFound.getSecondCourse().equals(courses[1])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 3
}//end of else if
else if (teacherFound.getThirdCourse() != null && teacherFound.getThirdCourse().equals(courses[2])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 4
}//end of else if 2
else if (teacherFound.getForthCourse() != null && teacherFound.getForthCourse().equals(courses[4])) {
if (addStudentToClass(courses, student)) {
System.out.println("The student has been added to the course.");
add = true;
}//end of inner if 5
}//end of else if 3
else {
System.out.println("Course is not available.");
}//end of else
}//end of big if
}//end of for loop
if (courses.equals(courseA)) {
add = isCourseFull(studentListA, student); // Add student to student list A for course A
}//end of if
else if (courses.equals(courseB)) {
add = isCourseFull(studentListB, student); // Add student to student list B for course B
}//end of else if
else if (courses.equals(courseC)) {
add = isCourseFull(studentListC, student); // Add student to student list C for course C
}//end of else if 2
else {
System.out.println("Not able to add student to the class.");
System.out.println("");
}//end of else
return add = true;
}//end of addStudentToClass(courses, student)
// Create a method to check if the course/class is full or not, then add if it`s not full
static boolean isCourseFull (Student course, Student student) {
boolean isAdded = true;
int index = 0;
// Add student to class while course is not full
do {
if (studentListA[index] == null) {
studentListA[index] = (Student) student;
isAdded = true; // Course is not full
}//end of if
else if (studentListB[index] == null) {
studentListB[index] = (Student) student;
}//end of else if
else {
studentListC[index] = (Student) student;
}//end of else
index++; // Adding the student...
}//end of do
while (studentListA[index] != null && index < course.length) ; {
return isAdded; // Course is full
}//end of while
}//isCourseFull(course, student)
java object-oriented programming-challenge
java object-oriented programming-challenge
New contributor
New contributor
edited Dec 28 at 4:42
radarbob
5,3441026
5,3441026
New contributor
asked Dec 26 at 19:45
Yashvi Shah
1
1
New contributor
New contributor
put on hold as off-topic by πάντα ῥεῖ, Incomputable, rolfl♦ Dec 26 at 20:22
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Code not implemented or not working as intended: Code Review is a community where programmers peer-review your working code to address issues such as security, maintainability, performance, and scalability. We require that the code be working correctly, to the best of the author's knowledge, before proceeding with a review." – πάντα ῥεῖ, Incomputable, rolfl
If this question can be reworded to fit the rules in the help center, please edit the question.
put on hold as off-topic by πάντα ῥεῖ, Incomputable, rolfl♦ Dec 26 at 20:22
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Code not implemented or not working as intended: Code Review is a community where programmers peer-review your working code to address issues such as security, maintainability, performance, and scalability. We require that the code be working correctly, to the best of the author's knowledge, before proceeding with a review." – πάντα ῥεῖ, Incomputable, rolfl
If this question can be reworded to fit the rules in the help center, please edit the question.
"... which is not working. " Move your question to stack overflow, that's the best place for help with broken code.
– radarbob
Dec 28 at 4:39
add a comment |
"... which is not working. " Move your question to stack overflow, that's the best place for help with broken code.
– radarbob
Dec 28 at 4:39
"... which is not working. " Move your question to stack overflow, that's the best place for help with broken code.
– radarbob
Dec 28 at 4:39
"... which is not working. " Move your question to stack overflow, that's the best place for help with broken code.
– radarbob
Dec 28 at 4:39
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
"... which is not working. " Move your question to stack overflow, that's the best place for help with broken code.
– radarbob
Dec 28 at 4:39