Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I'm writing a program in java, can somebody help me understand what I am doing wrong and correct/point out what is wrong? I am having

I'm writing a program in java, can somebody help me understand what I am doing wrong and correct/point out what is wrong?

I am having problems with my University class

University: Maintains a list of people and various functionalities associated with the university. Please see the partially completed University.java program People: This is the object at the top of the object hierarchy. Constructor of the People class take first_name, last_name, and the phone number as parameters. It sets the payRate and the monthlyPay to zero. payRate will represent the academic year salary for each type of employee in the employee class. The toString method will return the first_name , last_name, and the phone number. calculatePay() method will set the monthlyPay to zero. The getName() method returns the first name and the last name. Employee: The Employee class has an additional data member, payScale, that will be common for both faculty and Staff. payScale is either 9 month or 12 month. So, the input for this is either 9 or 12. The constructor of the Employee class takes the first_name, last_name, phone number, payRate, and the payScale as parameters. Faculty: The faculty class has additional data members: department and classesTeach. The constructor of the Faculty class takes the first_name, last_name, phone number, payRate, payScale, and the department as parameters. The addClass method takes the name of the class and add to the classesTeach arraylist. The toString method will returns the first_name, last_name, classes teach, and the monthly pay. Finally the calculatePay method will calculate the monthly pay using the following equations monthlyPay = payRate/payScale + 500*number of classes teach Staff: The Staff class has an additional data member title that represents the job title. The constructor of the Staff class takes the first_name, last_name, phone number, payRate, payScale, and the title as parameters. The toString method will returns the first_name, last_name, title, and the monthly pay Finally the calculatePay method will calculate the monthly pay using the following equations monthlyPay = payRate/payScale Student: The Student class has additional data members gpa and the major. The constructor of the Student will takes the first_name, last_name, phone number and the major as parameters. It sets the gpa to zero. The setGpa method will take the new gpa as a parameter and change the object gpa value. The changeMajor method take the major as a parameter and change the major of the Student object. The toString method will return the first_name, last_name, phone number, major, and the gpa.

import java.util.*;

public class University

{

public static void main(String args[])

{

String univ_Name, location;

ArrayList people = new ArrayList();

char choice = 'A';

String line;

Scanner scan = new Scanner(System.in);

// read the name and the location of the university here

switch (choice)

{

case 'A':

{

// add a Student here

/*

* read the first name, last name, phone number, major as

* parameters and then call the constructor of the Student

* class to create the instance then read the gpa, call

* setGpa method of the student to set the gpa finally add

* the student instance to the people list

*/

System.out.println("Enter first name, last name, phone number, major: ");

String first_name = scan.nextLine();

String last_name = scan.nextLine();

String phoneNumber = scan.nextLine();

String major = scan.nextLine();

Student st = new Student(first_name, last_name, phoneNumber, major);

people.add(st);

break;

}

case 'B':

{

// add a Staff here

/*

* read the first name, last name, phone number, payRate,

* payScale, and title and then call the constructor of the

* Staff class to create the instance finally add the Staff

* instance to the people list

*/

System.out.println("Enter first name, last name, phone number, payRate, payScale, and title: ");

String first_name = scan.nextLine();

String last_name = scan.nextLine();

String phoneNumber = scan.nextLine();

double payRate = scan.nextDouble();

int payScale = scan.nextInt();

scan.nextLine();

String title = scan.nextLine();

Staff stf = new Staff(first_name, last_name, phoneNumber,payRate,payScale, title);

people.add(stf);

break;

}

case 'C':

{

// add a Faculty here

/*

* read the first name, last name, phone number, payRate,

* payScale, and department and then call the constructor of

* the Faculty class to create the instance read list of

* courses the instructor read and call the addClass method

* of the faculty to add classes finally add the Faculty

* instance to the people list

*/System.out.println("Enter first name, last name, phone number, payRate, payScale, and department ");

String first_name = scan.nextLine();

String last_name = scan.nextLine();

String phoneNumber = scan.nextLine();

double payRate = scan.nextDouble();

int payScale = scan.nextInt();

scan.nextLine();

String department = scan.nextLine();

Faculty fcl = new Faculty(first_name, last_name, phoneNumber,payRate,payScale, department);

people.add(fcl);

break;

}

case 'D':

{

// display university info

/*

* university name, location, number of students, number of

* faculty and number of staff

*/

System.out.println(univ_Name+" "+location);

int studentCount=0;

int facultyCount=0;

int staffCount=0;

for(People p:people)

{

if(p instanceof Student) studentCount++;

else if (p instanceof Faculty) facultyCount++;

else if (p instanceof Staff) staffCount++;

}

System.out.println("Number of Students: "+studentCount);

System.out.println("Number of Staff: "+staffCount);

System.out.println("Number of Faculty: "+facultyCount);

break;

}

case 'E':

{

// display people info

/*

* display the fist name and the last name of each person at

* school

*

*/

for(People p:people)

{

System.out.println(p);

}

break;

}

case 'F':{

// display Student info

/*

* display fist name, last name, and the major of each

* student java has a construct called instanceof. That

* construct can determine the object instance type example:

* String str = new String("hello"); if(str instanceof

* String) will be evaluated to true

*/

for(People p:people)

{

if( p instanceof Student)

{

System.out.println(p);

}

}

break;

}

case 'G':

{

// display Employee info

/*

* display fist name, last name, pay payRate, and monthly pay

* of each employee

*

*/

for(People p:people)

if( p instanceof Employee)

{

System.out.println(p);

}

break;

}

case 'Q':

{

// quit the program

break;

}

case '?':

{

// display the menu again

break;

}

default:

{

System.out.println("default");

}

else

{

System.out.print("Unknown action ");

}

while(choice != 'Q');

}

public static void printMenu()

{

System.out.print("Choice\t\tAction " +

"------\t\t------ " +

"A\t\tAdd a Student " +

"B\t\tAdd a Staff " +

"C\t\tAdd a Faculty "+

"D\t\tDisplay University Info " +

"E\t\tDisplay University People Info " +

"F\t\tDisplay University Student Info " +

"G\t\tDisplay University Employee Info " +

"Q\t\tQuit " +

"?\t\tDisplay Menu Again ");

}

}

package university;

public class People

{

protected String first_name, last_name;

protected int phoneNumberber, payRate;

protected double monthlyPay;

public People(String first_name, String last_name, int phoneNumberber)

{

this.first_name = first_name;

this.last_name = last_name;

this.phoneNumberber = phoneNumberber;

this.payRate = 0;

this.monthlyPay = 0;

}

public void calculatePay()

{

this.monthlyPay = 0;

}

public String getName()

{

return first_name + " " + last_name;

}

@Override

public String toString()

{

return "People{" +"first_name='" + first_name + '\'' +", last_name='" + last_name + '\'' +", phoneNumberber=" + phoneNumberber +'}';

}

}

package university;

public class Student extends People { protected String major; protected int gpa;

public Student(String first_Name, String last_name, int phoneNumberber, String major) { super(first_name, last_name, phoneNumberber); this.gpa = 0; } public void setGpa(int gpa) { this.gpa = gpa; } public void changeMajor(String major) { this.major = major; } public String toString() { return "Student{" +"gpa=" + gpa +", major='" + major + '\'' +", first_name='" + first_name + '\'' +", last_name='" + last_name + '\'' +", phoneNumberber=" + phoneNumberber +'}'; } }

package university;

public class Employee extends People {

protected int payScale;

public Employee(String first_name, String last_name, int phoneNumberber, int payRate, int payScale) { super(first_name, last_name, phoneNumberber); this.payScale = payScale; } }

package university;

import java.util.ArrayList;

public class Faculty extends Employee { protected String department; protected ArrayList classesTeach;

public Faculty(String first_name, String last_name, int phoneNumberber, int payRate, int payScale, String department) { super(first_name, last_name, phoneNumberber, payRate, payScale); this.department = department; classesTeach = new ArrayList<>(); } public void addClass(String className) { classesTeach.add(className); } public void calculatePay(){ monthlyPay = payRate/payScale + 500*classesTeach.size(); } @Override public String toString() { return "Faculty{" +"first_name='" + first_name + '\'' +", last_name='" + last_name + '\'' +", classesTeach=" + classesTeach +", monthlyPay=" + monthlyPay +'}'; } }

package university;

public class Staff extends Employee { protected String title;

public Staff(String first_name, String last_name, int phoneNumberber, int payRate, int payScale, String title) { super(first_name, last_name, phoneNumberber, payRate, payScale); this.title = title; } public void calculatePay() { monthlyPay = payRate / payScale; } @Override public String toString() { return "Staff{" +"first_name=" + first_name +", last_name=" + last_name +", title=" + title +", monthlyPay=" + monthlyPay +'}'; } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Mastering Real Time Analytics In Big Data A Comprehensive Guide For Everyone

Authors: Lennox Mark

1st Edition

B0CPTC9LY9, 979-8869045706

More Books

Students also viewed these Databases questions

Question

Question in Chemical Engineering Please give Correct Answer 1 8 8 .

Answered: 1 week ago

Question

To solve p + 3q = 5z + tan( y - 3x)

Answered: 1 week ago