/****** 檔名:JPA06_1.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ public class JPA06_1 { public static void main(String argv[]) { PartTimeTeacher p1 = new PartTimeTeacher("John",400,2); PartTimeTeacher p2 = new PartTimeTeacher("Mary",300,4); FullTimeTeacher f1 = new FullTimeTeacher("Peter",400,9); FullTimeTeacher f2 = new FullTimeTeacher("Paul",300,12); FullTimeTeacher f3 = new FullTimeTeacher("Eric",350,15); System.out.println("John-PartTime:" + p1.salary()); System.out.println("Mary-PartTime:" + p2.salary()); System.out.println("Peter-FulLTime:" + f1.salary()); System.out.println("Paul-FulLTime:" + f2.salary()); System.out.println("Eric-FulLTime:" + f3.salary()); } } abstract class Teacher { String name; int rate; int totalHours; double pay; Teacher(String a,int b,int c) { name=a; rate=b; totalHours=c; } } class PartTimeTeacher extends Teacher { PartTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return totalHours*rate; } } class FullTimeTeacher extends Teacher { FullTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return 9.0*rate+((totalHours-9.0)*rate*0.8); } }
/****** 檔名:JPA06_2.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ public class JPA06_2 { public static void main(String argv[]) { PartTimeTeacher p1 = new PartTimeTeacher("John",400,2); PartTimeTeacher p2 = new PartTimeTeacher("Mary",300,4); FullTimeTeacher f1 = new FullTimeTeacher("Peter",400,9); FullTimeTeacher f2 = new FullTimeTeacher("Paul",300,12); FullTimeTeacher f3 = new FullTimeTeacher("Eric",350,15); System.out.println("John-afterTaxIns:" + p1.afterTaxIns()); System.out.println("Mary-afterTaxIns:" + p2.afterTaxIns()); System.out.println("Peter-afterTaxIns:" + f1.afterTaxIns()); System.out.println("Paul-afterTaxIns:" + f2.afterTaxIns()); System.out.println("Eric-afterTaxIns:" + f3.afterTaxIns()); Manager am1 = new Manager("Fang", 500, 12, 3); System.out.println("Fang-Manager:" + am1.getTotalSalary()); System.out.println("Fang-afterTaxIns:" + am1.afterTaxIns()); } } class Manager extends FullTimeTeacher { int rank; Manager(String a,int b,int c,int d) { super(a,b,c); rank=d; } double getTotalSalary() { return this.salary(); } double salary() { return super.salary()+(rank*500); } } abstract class Teacher { String name; int rate; int totalHours; double pay; Teacher(String a,int b,int c) { name=a; rate=b; totalHours=c; } double afterTaxIns() { return this.salary()*0.9-100; } abstract double salary(); } class PartTimeTeacher extends Teacher { PartTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return totalHours*rate; } } class FullTimeTeacher extends Teacher { FullTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return 9.0*rate+((totalHours-9.0)*rate*0.8); } }
/****** 檔名:JPA06_3.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ public class JPA06_3 { public static void main(String argv[]) { PartTimeTeacher p1 = new PartTimeTeacher("John",400,2); PartTimeTeacher p2 = new PartTimeTeacher("Mary",300,4); FullTimeTeacher f1 = new FullTimeTeacher("Peter",400,9); FullTimeTeacher f2 = new FullTimeTeacher("Paul",300,12); FullTimeTeacher f3 = new FullTimeTeacher("Eric",350,15); Manager am1 = new Manager("Fang", 500, 12, 3); am1.compare(f3); p1.compare(f3); } } class Manager extends FullTimeTeacher { int rank; Manager(String a,int b,int c,int d) { super(a,b,c); rank=d; } double getTotalSalary() { return this.salary(); } double salary() { return super.salary()+(rank*500); } } abstract class Teacher { String name; int rate; int totalHours; double pay; Teacher(String a,int b,int c) { name=a; rate=b; totalHours=c; } double afterTaxIns() { return this.salary()*0.9-100; } void compare(Teacher a) { double x=this.salary(); double y=a.salary(); if(x>y) System.out.println(this.name+" is higher than "+a.name); else if(x<y) System.out.println(a.name+" is higher than "+this.name); } abstract double salary(); } class PartTimeTeacher extends Teacher { PartTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return totalHours*rate; } } class FullTimeTeacher extends Teacher { FullTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return 9.0*rate+((totalHours-9.0)*rate*0.8); } }
/****** 檔名:JPA06_4.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ import java.util.HashMap; public class JPA06_4 { public static void main(String argv[]) { PartTimeTeacher p1 = new PartTimeTeacher("John",400,2); PartTimeTeacher p2 = new PartTimeTeacher("Mary",300,4); FullTimeTeacher f1 = new FullTimeTeacher("Peter",400,9); FullTimeTeacher f2 = new FullTimeTeacher("Paul",300,12); FullTimeTeacher f3 = new FullTimeTeacher("Eric",350,15); Manager am1 = new Manager("Fang", 500, 12, 3); TeacherDB school = new TeacherDB(); school.store("John", p1); school.store("Mary", p2); school.store("Peter", f1); school.store("Paul", f2); school.store("Eric", f3); school.store("Fang", am1); System.out.println("Total salary: " + school.totalOfAll()); } } class TeacherDB { HashMap<String,Teacher> hm=new HashMap<String,Teacher>(); void store(String a,Teacher b) { hm.put(a,b); } double totalOfAll() { double sum=0; for(Teacher i:hm.values()) { sum+=i.afterTaxIns(); } return sum; } } class Manager extends FullTimeTeacher { int rank; Manager(String a,int b,int c,int d) { super(a,b,c); rank=d; } double getTotalSalary() { return this.salary(); } double salary() { return super.salary()+(rank*500); } } abstract class Teacher { String name; int rate; int totalHours; double pay; Teacher(String a,int b,int c) { name=a; rate=b; totalHours=c; } double afterTaxIns() { return this.salary()*0.9-100; } void compare(Teacher a) { double x=this.salary(); double y=a.salary(); if(x>y) System.out.println(this.name+" is higher than "+a.name); else if(x<y) System.out.println(a.name+" is higher than "+this.name); } abstract double salary(); } class PartTimeTeacher extends Teacher { PartTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return totalHours*rate; } } class FullTimeTeacher extends Teacher { FullTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return 9.0*rate+((totalHours-9.0)*rate*0.8); } }
/****** 檔名:JPA06_5.java 題目:TQC+ JAVA6物件導向程式設計 參考答案 時間:2015/06 作者:fang shi mai ******/ import java.util.HashMap; public class JPA06_5 { public static void main(String argv[]) { PartTimeTeacher p1 = new PartTimeTeacher("John",400,2); PartTimeTeacher p2 = new PartTimeTeacher("Mary",300,4); FullTimeTeacher f1 = new FullTimeTeacher("Peter",400,9); FullTimeTeacher f2 = new FullTimeTeacher("Paul",300,12); FullTimeTeacher f3 = new FullTimeTeacher("Eric",350,15); TeacherDB school = new TeacherDB(); school.store("John", p1); school.store("Mary", p2); school.store("Peter", f1); school.store("Paul", f2); school.store("Eric", f3); school.printAllTeacher(); } } class NewException extends Exception { String exc; NewException(String a) { exc=a; } public String toString() { return exc; } } class TeacherDB { HashMap<String,Teacher> hm=new HashMap<String,Teacher>(); void store(String a,Teacher b) { hm.put(a,b); } double totalOfAll() { double sum=0; for(Teacher i:hm.values()) { sum+=i.afterTaxIns(); } return sum; } void printAllTeacher() { for(Teacher i:hm.values()) { try { if(i.salary()>1500.0) System.out.println(i.name+" "+i.salary()); else throw new NewException("**"+i.name+" "+i.salary()); } catch(NewException n) { System.out.println(n); } } } } class Manager extends FullTimeTeacher { int rank; Manager(String a,int b,int c,int d) { super(a,b,c); rank=d; } double getTotalSalary() { return this.salary(); } double salary() { return super.salary()+(rank*500); } } abstract class Teacher { String name; int rate; int totalHours; double pay; Teacher(String a,int b,int c) { name=a; rate=b; totalHours=c; } double afterTaxIns() { return this.salary()*0.9-100; } void compare(Teacher a) { double x=this.salary(); double y=a.salary(); if(x>y) System.out.println(this.name+" is higher than "+a.name); else if(x<y) System.out.println(a.name+" is higher than "+this.name); } abstract double salary(); } class PartTimeTeacher extends Teacher { PartTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return totalHours*rate; } } class FullTimeTeacher extends Teacher { FullTimeTeacher(String a,int b,int c) { super(a,b,c); } double salary() { return 9.0*rate+((totalHours-9.0)*rate*0.8); } }
沒有留言:
張貼留言