(JAVA) Write a program that reads records containing an employee number and an h
ID: 3710578 • Letter: #
Question
(JAVA) Write a program that reads records containing an employee number and an hourly rate for several employees, and stores these in a heap, using employee number as a key. The program should then allow the user to insert or delete records, and finally use heap sort to sort the updates list so that the employee numbers are in ascending order, and to display this sorted list. You can use the algorithms from the text book.
Example of an employee records will be:
7 10
2 11.50
5 9.50
4 8.50
3 11.50
8 8
1 10.50
Explanation / Answer
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Employee implements Comparable{
public int empno;
public double hourlyRate;
public Employee(int empno, double hourlyRate) {
this.empno = empno;
this.hourlyRate = hourlyRate;
}
/**
* @return the empno
*/
public int getEmpno() {
return empno;
}
/**
* @param empno
* the empno to set
*/
public void setEmpno(int empno) {
this.empno = empno;
}
/**
* @return the hourlyRate
*/
public double getHourlyRate() {
return hourlyRate;
}
/**
* @param hourlyRate
* the hourlyRate to set
*/
public void setHourlyRate(double hourlyRate) {
this.hourlyRate = hourlyRate;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Employee [empno=" + empno + ", hourlyRate=" + hourlyRate + "]";
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + empno;
long temp;
temp = Double.doubleToLongBits(hourlyRate);
result = prime * result + (int) (temp ^ (temp >>> 32));
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 (!(obj instanceof Employee))
return false;
Employee other = (Employee) obj;
if (empno != other.empno)
return false;
if (Double.doubleToLongBits(hourlyRate) != Double
.doubleToLongBits(other.hourlyRate))
return false;
return true;
}
@Override
public int compareTo(Object arg0) {
Employee other=(Employee)arg0;
return other.empno-this.empno;
}
public static void main(String[] args) {
List<Employee> employeelist=new ArrayList<Employee>();
Scanner scanner=new Scanner(System.in);
System.out.println("how many records you want to enter");
int no=scanner.nextInt();
for(int i=0;i<no;i++)
{
System.out.println("enter the employeeno");
int no1=scanner.nextInt();
System.out.println("enter the hourlyrate ");
double hourlyrate1=scanner.nextDouble();
Employee emp=new Employee(no1, hourlyrate1);
employeelist.add(emp);
}
System.out.println("enter your choice");
System.out.println("1.insert");
System.out.println("2.deletd");
System.out.println("3.print");
System.out.println("4.quit");
int choice=scanner.nextInt();
switch(choice)
{
case 1: System.out.println("enter the employeeno");
int no2=scanner.nextInt();
System.out.println("enter the hourlyrate ");
double hourlyrate2=scanner.nextDouble();
Employee emp=new Employee(no, hourlyrate2);
employeelist.add(emp);
break;
case 2:System.out.println("enter the employeeno");
int no3=scanner.nextInt();
for(Employee e:employeelist)
{
if(e.empno==no3)
{
employeelist.remove(e);
}
}
break;
case 3:for(Employee e:employeelist)
{
System.out.println(e);
}
break;
case 4:System.exit(0);
break;
default:System.out.println("please select valid choice");
break;
}
}
}
output
how many records you want to enter
3
enter the employeeno
23
enter the hourlyrate
256
enter the employeeno
2
enter the hourlyrate
98
enter the employeeno
698
enter the hourlyrate
21
enter your choice
1.insert
2.deletd
3.print
4.quit
3
Employee [empno=23, hourlyRate=256.0]
Employee [empno=2, hourlyRate=98.0]
Employee [empno=698, hourlyRate=21.0]
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.