HELP IN JAVA Create a main method and use these input files
HELP IN JAVA:
Create a main method and use these input files to test that you are able to input the Undergraduates, put them into an ArrayList, print out the list. Repeat for Graduate, Faculty, Staff. Do it all in ONE main.
Then- Add a compareTo to each class (and any other code you need) so you can sort all your ArrayLists and print out the results. Your final output should be all the Undergraduates (sorted), all the Graduates (sorted), all the Faculty(sorted), and all the Staff (sorted).
To sort: Sort undergrads and grads according to ID. Sort Faculty according to Department and Staff according to Salary.
I have Lab10.java to keep main in but it is not completed, which is what im seeking help for.
I have Person.java ; Student.java ; Employee.java ; Undergraduate.java ; Graduate.java ; Faculty.java & Staff.java completed.
Thanks!!!!!!!
Student.java
public class Student extends Person {
private int studentNumber;
public Student(){
super(); //call to constructor of Person
studentNumber=0;
}
public Student(String initialName, int initialStudentNumber){
super(initialName); //call to constructor of Person
studentNumber=initialStudentNumber;
}
public int getStudentNumber() {
return studentNumber;
}
public void setStudentNumber(int studentNumber) {
this.studentNumber = studentNumber;
}
public void Reset(String newName, int newNumber){
setName(newName);
this.studentNumber=newNumber;
}
public void WriteOutput(){
super.WriteOutput();
System.out.println(\"Student Number: \"+studentNumber);
}
public boolean Equals(Student other){
return this.hasSameName(other)&&(this.studentNumber==other.studentNumber);
}
}
Person.java
public class Person {
private String name;
public Person(){
name=\"No name yet\";
}
public Person (String initialName){
name=initialName;
}
//refactor-encapsulate field getSetter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void WriteOutput() {
System.out.println(\"Name: \"+name);
}
public boolean hasSameName(Person other){
return this.name.equalsIgnoreCase(other.name);
//if (this.hasSameName(other))
}
}
Solution
// i sorted based on parent if you want implements every class comparable interface .put in every type of objects in one collection and write compareto() method in every class and implement what i showed in the code.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
public class Demo {
public static void main(String[] args) {
Employee e = new Faculty(\"marksmith\", \"tcs\", new Date(), 25000, 8, 1);
Employee e1 = new Faculty(\"mark\", \"tcs\", new Date(), 36000, 8, 1);
Employee e2 = new Faculty(\"smith\", \"tcs\", new Date(), 12000, 8, 1);
Employee e3 = new Staff(\"davidwarner\", \"ibm\", new Date(), 80000,
\"administration\");
Employee e4 = new Staff(\"davidwarner\", \"ibm\", new Date(), 40000,
\"registar\");
Employee e5 = new Staff(\"davidwarner\", \"ibm\", new Date(), 5000, \"clerk\");
List<Employee> employees = new ArrayList<Employee>();
employees.add(e);
employees.add(e1);
employees.add(e2);
employees.add(e3);
employees.add(e4);
employees.add(e5);
System.out.println(\"before sorting according to salary\");
for (Employee emp1 : employees) {
System.out.println(emp1);
}
System.out.println(\"after sorting according to salary\");
Collections.sort(employees);
for (Employee emp : employees) {
System.out.println(emp);
}
Student s = new Graduate(\"bob\", 256, \"G256\");
Student s1 = new Graduate(\"alice\", 25, \"G25\");
Student s2 = new Graduate(\"david\", 512, \"G512\");
Student s3 = new UnderGraduate(\"ram\", 5, \"U5\");
Student s4 = new UnderGraduate(\"ramesh\", 890, \"U890\");
Student s5 = new UnderGraduate(\"rajesh\", 212, \"U212\");
List<Student> students = new ArrayList<Student>();
students.add(s);
students.add(s1);
students.add(s2);
students.add(s3);
students.add(s4);
students.add(s5);
System.out.println(\"before sorting\");
for (Student stu : students) {
System.out.println(stu);
}
System.out.println(\"after sorting according to student no\");
Collections.sort(students);
for (Student stud : students) {
System.out.println(stud);
}
}
}
**********************************************************************************************************************
import java.util.Date;
public class Employee extends Person implements Comparable<Employee> {
public String officeName;
public Date dateHired;
public double salary;
/**
* @param initialName
* @param officeName
* @param dateHired
* @param salary
*/
public Employee(String initialName, String officeName, Date dateHired,
double salary) {
super(initialName);
this.officeName = officeName;
this.dateHired = dateHired;
this.salary = salary;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return \"Employee [officeName=\" + officeName + \", dateHired=\"
+ dateHired + \", salary=\" + salary + \", name=\" + name + \"]\";
}
@Override
public int compareTo(Employee o) {
// to sort the employees according to salary
return (int) (this.salary - o.salary);
}
}
*****************************************************************************************************
public class Person {
public String name;
public Person() {
name = \"No name yet\";
}
public Person(String initialName) {
name = initialName;
}
// refactor-encapsulate field getSetter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void WriteOutput() {
System.out.println(\"Name: \" + name);
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return \"Person [name=\" + name + \"]\";
}
}
**************************************************************************************************************
import java.util.Date;
public class Faculty extends Employee {
public int officeHours;
public int rank;
/**
* @param initialName
* @param officeName
* @param dateHired
* @param salary
* @param officeHours
* @param rank
*/
public Faculty(String initialName, String officeName, Date dateHired,
double salary, int officeHours, int rank) {
super(initialName, officeName, dateHired, salary);
this.officeHours = officeHours;
this.rank = rank;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return \"Faculty [officeHours=\" + officeHours + \", rank=\" + rank
+ \", officeName=\" + officeName + \", dateHired=\" + dateHired
+ \", salary=\" + salary + \"]\";
}
}
*******************************************************************************************************************************
import java.util.Date;
public class Staff extends Employee {
public String title;
/**
* @param initialName
* @param officeName
* @param dateHired
* @param salary
* @param title
*/
public Staff(String initialName, String officeName, Date dateHired,
double salary, String title) {
super(initialName, officeName, dateHired, salary);
this.title = title;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return \"Staff [title=\" + title + \", officeName=\" + officeName
+ \", dateHired=\" + dateHired + \", salary=\" + salary + \", name=\"
+ name + \"]\";
}
}
**********************************************************************************************************************
//actually not required to write hashcode() and equals() methods .for knowing purpose i implemented those methods
public class Student extends Person implements Comparable<Student> {
protected int studentNumber;
public Student() {
studentNumber = 0;
}
public Student(String initialName, int initialStudentNumber) {
super(initialName); // call to constructor of Person
studentNumber = initialStudentNumber;
}
public int getStudentNumber() {
return studentNumber;
}
public void setStudentNumber(int studentNumber) {
this.studentNumber = studentNumber;
}
public void Reset(String newName, int newNumber) {
setName(newName);
this.studentNumber = newNumber;
}
public void WriteOutput() {
super.WriteOutput();
System.out.println(\"Student Number: \" + studentNumber);
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + studentNumber;
return result;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (studentNumber != other.studentNumber)
return false;
return true;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return \"Student [studentNumber=\" + studentNumber + \", name=\" + name
+ \"]\";
}
@Override
public int compareTo(Student student) {
// to sort the students using studentno
return this.studentNumber - student.studentNumber;
}
}
******************************************************************************************************************
public class Graduate extends Student {
protected String gruaduateId;
/**
* @param initialName
* @param initialStudentNumber
* @param gruaduateId
*/
public Graduate(String initialName, int initialStudentNumber,
String gruaduateId) {
super(initialName, initialStudentNumber);
this.gruaduateId = gruaduateId;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return \"Graduate [gruaduateId=\" + gruaduateId + \", studentNumber=\"
+ studentNumber + \", name=\" + name + \"]\";
}
}
*********************************************************************************************************
public class UnderGraduate extends Student {
protected String id;
/**
* @param initialName
* @param initialStudentNumber
* @param id
*/
public UnderGraduate(String initialName, int initialStudentNumber, String id) {
super(initialName, initialStudentNumber);
this.id = id;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public String toString() {
return \"UnderGraduate [id=\" + id + \", studentNumber=\" + studentNumber
+ \", name=\" + name + \"]\";
}
}
output
before sorting according to salary
Faculty [officeHours=8, rank=1, officeName=tcs, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=25000.0]
Faculty [officeHours=8, rank=1, officeName=tcs, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=36000.0]
Faculty [officeHours=8, rank=1, officeName=tcs, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=12000.0]
Staff [title=administration, officeName=ibm, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=80000.0, name=davidwarner]
Staff [title=registar, officeName=ibm, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=40000.0, name=davidwarner]
Staff [title=clerk, officeName=ibm, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=5000.0, name=davidwarner]
after sorting according to salary
Staff [title=clerk, officeName=ibm, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=5000.0, name=davidwarner]
Faculty [officeHours=8, rank=1, officeName=tcs, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=12000.0]
Faculty [officeHours=8, rank=1, officeName=tcs, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=25000.0]
Faculty [officeHours=8, rank=1, officeName=tcs, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=36000.0]
Staff [title=registar, officeName=ibm, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=40000.0, name=davidwarner]
Staff [title=administration, officeName=ibm, dateHired=Fri Feb 24 18:53:39 IST 2017, salary=80000.0, name=davidwarner]
before sorting
Graduate [gruaduateId=G256, studentNumber=256, name=bob]
Graduate [gruaduateId=G25, studentNumber=25, name=alice]
Graduate [gruaduateId=G512, studentNumber=512, name=david]
UnderGraduate [id=U5, studentNumber=5, name=ram]
UnderGraduate [id=U890, studentNumber=890, name=ramesh]
UnderGraduate [id=U212, studentNumber=212, name=rajesh]
after sorting according to student no
UnderGraduate [id=U5, studentNumber=5, name=ram]
Graduate [gruaduateId=G25, studentNumber=25, name=alice]
UnderGraduate [id=U212, studentNumber=212, name=rajesh]
Graduate [gruaduateId=G256, studentNumber=256, name=bob]
Graduate [gruaduateId=G512, studentNumber=512, name=david]
UnderGraduate [id=U890, studentNumber=890, name=ramesh]








