/****** 檔名:JPA06_1.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ 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()); } } abstract class Employee { String id; Employee(String a) { id=a; } abstract double monthPay(); } class SalaryWorker extends Employee { int salary; SalaryWorker(String a,int b) { super(a); salary=b; } double monthPay() { return salary/12; } } class HourlyWorker extends Employee { int hourly; int pay; HourlyWorker(String a,int b,int c) { super(a); pay=b; hourly=c; } double monthPay() { return hourly*pay; } } class Manager extends SalaryWorker { int bound; Manager(String a,int b,int c) { super(a,b); bound=c; } double monthPay() { return super.monthPay()+bound; } }
/****** 檔名:JPA06_2.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ 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(Employee.isHight(sw1,hw1)); System.out.println(Employee.isHight(hw1,ma1)); System.out.println("SalaryWorker稅額:" + sw1.monthTaxes()); System.out.println("HourlyWorker稅額:" + hw1.monthTaxes()); System.out.println("Manager稅額:" + ma1.monthTaxes()); } } abstract class Employee { String id; Employee(String a) { id=a; } double monthTaxes() { return this.monthPay()*0.15; } static String isHight(Employee a,Employee b) { double x=a.monthPay(); double y=b.monthPay(); if(x>y) return a.id+"較高"; else return b.id+"較高"; } abstract double monthPay(); } class SalaryWorker extends Employee { int salary; SalaryWorker(String a,int b) { super(a); salary=b; } double monthPay() { return salary/12; } } class HourlyWorker extends Employee { int hourly; int pay; HourlyWorker(String a,int b,int c) { super(a); pay=b; hourly=c; } double monthPay() { return hourly*pay; } } class Manager extends SalaryWorker { int bound; Manager(String a,int b,int c) { super(a,b); bound=c; } double monthPay() { return super.monthPay()+bound; } }
/****** 檔名:JPA06_3.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ 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()); } } abstract class Employee { String id; static int countWorkers=0; static double countMonthTaxes=0; Employee(String a) { id=a; countWorkers++; } double monthTaxes() { countMonthTaxes+=this.monthPay()*0.15; return this.monthPay()*0.15; } static String isHight(Employee a,Employee b) { double x=a.monthPay(); double y=b.monthPay(); if(x>y) return a.id+"較高"; else return b.id+"較高"; } static double getAverageTax() { return countMonthTaxes/countWorkers; } abstract double monthPay(); } class SalaryWorker extends Employee { int salary; SalaryWorker(String a,int b) { super(a); salary=b; } double monthPay() { return salary/12; } } class HourlyWorker extends Employee { int hourly; int pay; HourlyWorker(String a,int b,int c) { super(a); pay=b; hourly=c; } double monthPay() { return hourly*pay; } } class Manager extends SalaryWorker { int bound; Manager(String a,int b,int c) { super(a,b); bound=c; } double monthPay() { return super.monthPay()+bound; } }
/****** 檔名:JPA06_4.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ import java.util.HashMap; 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")); } } class Management { HashMap<String,Employee> hm=new HashMap<String,Employee>(); void put(String a,Employee b) { hm.put(a,b); } double afterTax(String a) { Employee temp=hm.get(a); return temp.monthPay()-temp.monthTaxes(); } } abstract class Employee { String id; static int countWorkers=0; static double countMonthTaxes=0; Employee(String a) { id=a; countWorkers++; } double monthTaxes() { countMonthTaxes+=this.monthPay()*0.15; return this.monthPay()*0.15; } static String isHight(Employee a,Employee b) { double x=a.monthPay(); double y=b.monthPay(); if(x>y) return a.id+"較高"; else return b.id+"較高"; } static double getAverageTax() { return countMonthTaxes/countWorkers; } abstract double monthPay(); } class SalaryWorker extends Employee { int salary; SalaryWorker(String a,int b) { super(a); salary=b; } double monthPay() { return salary/12; } } class HourlyWorker extends Employee { int hourly; int pay; HourlyWorker(String a,int b,int c) { super(a); pay=b; hourly=c; } double monthPay() { return hourly*pay; } } class Manager extends SalaryWorker { int bound; Manager(String a,int b,int c) { super(a,b); bound=c; } double monthPay() { return super.monthPay()+bound; } }
/****** 檔名:JPA06_5.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ import java.util.HashMap; 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 { if(m.allPay()<50000.0) System.out.println(m.allPay()); else throw new NewException("Total salary exceed limit: "+m.allPay()); } catch(NewException n) { System.out.println(n); } } } class NewException extends Exception { String exc; NewException(String a) { exc=a; } public String toString() { return exc; } } class Management { HashMap<String,Employee> hm=new HashMap<String,Employee>(); void put(String a,Employee b) { hm.put(a,b); } double afterTax(String a) { Employee temp=hm.get(a); return temp.monthPay()-temp.monthTaxes(); } double allPay() { double sum=0; for(Employee i:hm.values()) { sum+=i.monthPay(); } return sum; } } abstract class Employee { String id; static int countWorkers=0; static double countMonthTaxes=0; Employee(String a) { id=a; countWorkers++; } double monthTaxes() { countMonthTaxes+=this.monthPay()*0.15; return this.monthPay()*0.15; } static String isHight(Employee a,Employee b) { double x=a.monthPay(); double y=b.monthPay(); if(x>y) return a.id+"較高"; else return b.id+"較高"; } static double getAverageTax() { return countMonthTaxes/countWorkers; } abstract double monthPay(); } class SalaryWorker extends Employee { int salary; SalaryWorker(String a,int b) { super(a); salary=b; } double monthPay() { return salary/12; } } class HourlyWorker extends Employee { int hourly; int pay; HourlyWorker(String a,int b,int c) { super(a); pay=b; hourly=c; } double monthPay() { return hourly*pay; } } class Manager extends SalaryWorker { int bound; Manager(String a,int b,int c) { super(a,b); bound=c; } double monthPay() { return super.monthPay()+bound; } }
沒有留言:
張貼留言