Github 備份:LINK
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 610_1 */ | |
//建立抽象類別供子類別繼承 | |
abstract class work{ | |
String wno; | |
work(String s){ | |
wno=s; | |
} | |
//建立一個每月收入抽象的方法 | |
abstract double monthPay(); | |
} | |
//建立一個SalaryWorker類別,繼承work,在此方法中有寫入紅利變數,但設定成0 | |
class SalaryWorker extends work{ | |
int mp;//年薪 | |
int redp=0;//紅利 | |
//建構子初始化員工編號、年薪 | |
SalaryWorker(String s ,int i){ | |
super(s); | |
mp=i; | |
} | |
double monthPay(){ | |
return (mp/12.0+redp); | |
} | |
} | |
//建立一個HourlyWorker類別,繼承work | |
class HourlyWorker extends work{ | |
int hr,hp; | |
//建構子初始化員工編號、工作時數、時薪 | |
HourlyWorker(String s,int i1,int i2){ | |
super(s); | |
hr=i2; | |
hp=i1; | |
} | |
double monthPay(){ | |
return hr*hp; | |
} | |
} | |
//建立一個主管類別繼承SalaryWorker,該處將紅利的變數重新寫入 | |
class Manager extends SalaryWorker{ | |
Manager(String s,int i ,int i1){ | |
super(s,i); | |
redp = i1; | |
} | |
} | |
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()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 610_2 */ | |
abstract class work{ | |
String wno; | |
work(String s){ | |
wno=s; | |
} | |
abstract double monthPay(); | |
//建立一個比較薪水高低的方法 | |
void ishight(work k){ | |
if(monthPay()>k.monthPay()) | |
System.out.println(wno+"較高"); | |
else | |
System.out.println(k.wno+"較高"); | |
} | |
//計算出每個人的應繳稅額 | |
double monthTaxes(){ | |
return monthPay()*0.15; | |
} | |
} | |
class SalaryWorker extends work{ | |
int mp; | |
int redp=0; | |
SalaryWorker(String s ,int i){ | |
super(s); | |
mp=i; | |
} | |
double monthPay(){ | |
return (mp/12.0+redp); | |
} | |
} | |
class HourlyWorker extends work{ | |
int hr,hp; | |
HourlyWorker(String s,int i1,int i2){ | |
super(s); | |
hr=i2; | |
hp=i1; | |
} | |
double monthPay(){ | |
return hr*hp; | |
} | |
} | |
class Manager extends SalaryWorker{ | |
Manager(String s,int i ,int i1){ | |
super(s,i); | |
redp = i1; | |
} | |
} | |
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()); | |
//比較(物件)sw1和(物件)hw1誰的薪水高 | |
sw1.ishight(hw1); | |
//比較(物件)hw1和(物件)ma1誰的薪水高 | |
hw1.ishight(ma1); | |
//取得每個人的應繳稅額 | |
System.out.println("SalaryWorker稅額:" + sw1.monthTaxes()); | |
System.out.println("HourlyWorker稅額:" + hw1.monthTaxes()); | |
System.out.println("Manager稅額:" + ma1.monthTaxes()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 610_3 */ | |
abstract class work{ | |
String wno; | |
//新增員工人數變數 | |
static int wt=0; | |
//新增總應繳稅額變數 | |
static double tottax= 0.0; | |
work(String s){ | |
wno=s; | |
wt++; | |
} | |
abstract double monthPay(); | |
//建立取得平均應繳稅金額 | |
static double getAverageTax(){ | |
return ((double)tottax/wt); | |
} | |
void ishight(work k){ | |
if(monthPay()>k.monthPay()) | |
System.out.println(wno+"較高"); | |
else | |
System.out.println(k.wno+"較高"); | |
} | |
double monthTaxes(){ | |
double sssss=monthPay()*0.15; | |
tottax = tottax+sssss; | |
return sssss; | |
} | |
} | |
class SalaryWorker extends work{ | |
int mp; | |
int redp=0; | |
SalaryWorker(String s ,int i){ | |
super(s); | |
mp=i; | |
} | |
double monthPay(){ | |
return (mp/12.0+redp); | |
} | |
} | |
class HourlyWorker extends work{ | |
int hr,hp; | |
HourlyWorker(String s,int i1,int i2){ | |
super(s); | |
hr=i2; | |
hp=i1; | |
} | |
double monthPay(){ | |
return hr*hp; | |
} | |
} | |
class Manager extends SalaryWorker{ | |
Manager(String s,int i ,int i1){ | |
super(s,i); | |
redp = i1; | |
} | |
} | |
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("平均稅額:" + work.getAverageTax()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 610_4 */ | |
import java.util.HashMap; | |
abstract class work{ | |
String wno; | |
static int wt=0; | |
static double tottax= 0.0; | |
work(String s){ | |
wno=s; | |
wt++; | |
} | |
abstract double monthPay(); | |
static double getAverageTax(){ | |
return ((double)tottax/wt); | |
} | |
void ishight(work k){ | |
if(monthPay()>k.monthPay()) | |
System.out.println(wno+"較高"); | |
else | |
System.out.println(k.wno+"較高"); | |
} | |
double monthTaxes(){ | |
double sssss=monthPay()*0.15; | |
tottax = tottax+sssss; | |
return sssss; | |
} | |
} | |
class SalaryWorker extends work{ | |
int mp; | |
int redp=0; | |
SalaryWorker(String s ,int i){ | |
super(s); | |
mp=i; | |
} | |
double monthPay(){ | |
return (mp/12.0+redp); | |
} | |
} | |
class HourlyWorker extends work{ | |
int hr,hp; | |
HourlyWorker(String s,int i1,int i2){ | |
super(s); | |
hr=i2; | |
hp=i1; | |
} | |
double monthPay(){ | |
return hr*hp; | |
} | |
} | |
class Manager extends SalaryWorker{ | |
Manager(String s,int i ,int i1){ | |
super(s,i); | |
redp = i1; | |
} | |
} | |
//建立一個管理的類別 | |
class Management{ | |
HashMap worker; | |
//建構子初始化始化物件為HashMap | |
Management(){ | |
worker=new HashMap(); | |
} | |
//建立方法將物件放入HashMap中 | |
void put(String s ,work ww){ | |
worker.put(s, ww); | |
} | |
//建立方法取得扣除稅後的薪資 | |
double afterTax(String s ){ | |
work w = (work)worker.get(s); | |
return w.monthPay()-w.monthTaxes(); | |
} | |
} | |
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(); | |
//將資料放素HashMap中 | |
m.put("96001", sw1); | |
m.put("96002", hw1); | |
m.put("97001", ma1); | |
System.out.println("97001 的稅後薪資: " + m.afterTax("97001")); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 610_5 */ | |
import java.util.HashMap; | |
import java.util.Iterator; | |
abstract class work{ | |
String wno; | |
static int wt=0; | |
static double tottax= 0.0; | |
work(String s){ | |
wno=s; | |
wt++; | |
} | |
abstract double monthPay(); | |
static double getAverageTax(){ | |
return ((double)tottax/wt); | |
} | |
void ishight(work k){ | |
if(monthPay()>k.monthPay()) | |
System.out.println(wno+"較高"); | |
else | |
System.out.println(k.wno+"較高"); | |
} | |
double monthTaxes(){ | |
double sssss=monthPay()*0.15; | |
tottax = tottax+sssss; | |
return sssss; | |
} | |
} | |
class SalaryWorker extends work{ | |
int mp; | |
int redp=0; | |
SalaryWorker(String s ,int i){ | |
super(s); | |
mp=i; | |
} | |
double monthPay(){ | |
return (mp/12.0+redp); | |
} | |
} | |
class HourlyWorker extends work{ | |
int hr,hp; | |
HourlyWorker(String s,int i1,int i2){ | |
super(s); | |
hr=i2; | |
hp=i1; | |
} | |
double monthPay(){ | |
return hr*hp; | |
} | |
} | |
class Manager extends SalaryWorker{ | |
Manager(String s,int i ,int i1){ | |
super(s,i); | |
redp = i1; | |
} | |
} | |
class Management{ | |
HashMap worker; | |
double total =0; | |
Management(){ | |
worker=new HashMap(); | |
} | |
void put(String s ,work ww){ | |
worker.put(s, ww); | |
} | |
double totalSalary() throws limex{ | |
for(Iterator iterator = worker.values().iterator();iterator.hasNext();){ | |
work www =(work)iterator.next(); | |
total = www.monthPay()+total; | |
if(total>50000)//當總月薪超過50000時,則會拋出錯誤訊息 | |
throw new limex(total); | |
} | |
return total; | |
} | |
} | |
//新增一個exception的類別 | |
class limex extends Exception{ | |
double dd; | |
limex(double d){ | |
dd=d; | |
} | |
double getAm(){ | |
return dd; | |
} | |
} | |
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 (limex e) { | |
System.out.println("Total salary exceed limit:"+e.getAm()); | |
} | |
} | |
} | |
TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK
本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~
沒有留言:
張貼留言