610 員工薪資制度

第一題

class Employee{
String ID;
double Salary;
Employee(){}
Employee(String i){
ID=i;
}
double monthPay(){
return Salary;
}
}

class SalaryWorker extends Employee{
SalaryWorker(){}
SalaryWorker(String id,double yearSalary){
super(id);
Salary=yearSalary/12.0;
}

}

class HourlyWorker extends Employee{
double Hours;
HourlyWorker(){}
HourlyWorker(String id,double hourSalary,double hours){
super(id);
Salary=hourSalary*hours;
}
}

class Manager extends SalaryWorker{
Manager(){}
Manager(String id,double yearSalary,double bonus){
super(id,yearSalary);
Salary=monthPay()+bonus;
}
}

public class JPA06_1 {
   public static void main(String argv[]) {
        SalaryWorker sw1 = new SalaryWorker("96001",180000);
        System.out.println("SalaryWorker:" + sw1.monthPay());
        HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
        System.out.println("HourlyWorker:" + hw1.monthPay());
        Manager ma1 = new Manager("97001", 240000, 5000);
        System.out.println("Manager:" + ma1.monthPay());
    }
}


第二題

class Employee{
String ID;
double Salary;
Employee(){}
Employee(String i){
ID=i;
}
double monthPay(){
return Salary;
}

String compare(Employee w){
if(monthPay()>w.monthPay()){
return ID;
}
else{
return w.ID;
}
}
double monthTaxes(){
return monthPay()*0.15;
}
}

public class JPA06_2 {
    public static void main(String argv[]) {

        SalaryWorker sw1 = new SalaryWorker("96001",180000);
        System.out.println("SalaryWorker:" + sw1.monthPay());
        HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
        System.out.println("HourlyWorker:" + hw1.monthPay());
        Manager ma1 = new Manager("97001", 240000, 5000);
        System.out.println("Manager:" + ma1.monthPay());

        System.out.println(sw1.compare(hw1)+"較高");
System.out.println(hw1.compare(ma1)+"較高");

        System.out.println("SalaryWorker稅額:" + sw1.monthTaxes());
        System.out.println("HourlyWorker稅額:" + hw1.monthTaxes());
        System.out.println("Manager稅額:" + ma1.monthTaxes());
    }
}

class HourlyWorker extends Employee{
double Hours;
HourlyWorker(){}
HourlyWorker(String id,double hourSalary,double hours){
super(id);
Salary=hourSalary*hours;
}
}

class Manager extends SalaryWorker{
Manager(){}
Manager(String id,double yearSalary,double bonus){
super(id,yearSalary);
Salary=monthPay()+bonus;
}
}

public class JPA06_1 {
   public static void main(String argv[]) {
        SalaryWorker sw1 = new SalaryWorker("96001",180000);
        System.out.println("SalaryWorker:" + sw1.monthPay());
        HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
        System.out.println("HourlyWorker:" + hw1.monthPay());
        Manager ma1 = new Manager("97001", 240000, 5000);
        System.out.println("Manager:" + ma1.monthPay());
    }
}


第三題

class Employee{
String ID;
double Salary;
static double count=0; //累計人數
static double sumTaxes=0;//累計稅
Employee(){}
Employee(String i){
ID=i;
count++;


}
double monthPay(){
return Salary;
}

String compare(Worker w){
if(monthPay()>w.monthPay()){
return ID;
}
else{
return w.ID;
}
}
double monthTaxes(){
double Taxs=monthPay()*0.15;
sumTaxes+=Taxs;
return Taxs;
}
static double getAverageTax(){
return sumTaxes/count;
}

}

public class JPA06_3 {
    public static void main(String argv[]) {
      SalaryWorker sw1 = new SalaryWorker("96001",180000);
        HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
        Manager ma1 = new Manager("97001", 240000, 5000);

        System.out.println("SalaryWorker稅額:" + sw1.monthTaxes());
        System.out.println("HourlyWorker稅額:" + hw1.monthTaxes());
        System.out.println("Manager稅額:" + ma1.monthTaxes());
        System.out.println("平均稅額:" + Employee.getAverageTax());
    }
}


第四題

import java.util.*;
class Management{
HashMap<String,Employee> list;
Management(){
list = new HashMap<String,Employee>();
}
void put(String s,Employee e){
list.put(s,e);
}
double afterTax(String s){
return list.get(s).monthPay()*0.85;
}
}

public class JPA06_4 {
    public static void main(String argv[]) {
        SalaryWorker sw1 = new SalaryWorker("96001",180000);
        HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
        Manager ma1 = new Manager("97001", 240000, 5000);
        Management m = new Management();
        m.put("96001", sw1);
        m.put("96002", hw1);
        m.put("97001", ma1);
        System.out.println("97001 的稅後薪資: " + m.afterTax("97001"));
    }
}


第五題

import java.util.*;
class Management{
HashMap<String,Employee> list;
Management(){
list = new HashMap<String,Employee>();
}
void put(String s,Employee e){
list.put(s,e);
}
double afterTax(String s){
return list.get(s).monthPay()*0.85;
}
double totalSalary()throws Exception{
double total=0;
for(String s:list.keySet()){
total+=list.get(s).monthPay();
if(total>50000){
throw new Exception("Total salary exceed limit: "+total);
}
}
return total;
}
}

public class JPA06_5 {
    public static void main(String argv[]) {
        SalaryWorker sw1 = new SalaryWorker("96001",180000);
        HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
        Manager ma1 = new Manager("97001", 240000, 5000);
        Management m = new Management();
        m.put("96001", sw1);
        m.put("96002", hw1);
        m.put("97001", ma1);
        try{
        m.totalSalary();
        }
        catch(Exception e){
        System.out.println(e.getMessage());
        }

    }
}

沒有留言:

張貼留言