某處工人有兩種計(jì)算周薪的方式:
- 計(jì)時(shí)
- 計(jì)薪
工人的薪金等級(jí)以 小時(shí)工資額劃分:是在工人對(duì)象產(chǎn)生時(shí)確定
- 計(jì)時(shí)工人的 薪金等級(jí) 分為
10
拔鹰、20
和40
US$/hour 三個(gè)等級(jí); - 計(jì)薪工人的 薪金等級(jí) 浮禾,分為
30
和50
US$/hour 兩個(gè)等級(jí)零渐。
不同類別和等級(jí)工人的周薪計(jì)算方法不同。
計(jì)時(shí)工人周薪的計(jì)算方法是:
如果每周的工作時(shí)數(shù)( hours )在40
以內(nèi)
周薪 = 小時(shí)工資額 × 實(shí)際工作時(shí)數(shù)
如果每周的工作時(shí)數(shù)(hours)超過40
周薪=小時(shí)工資額×40+1.5×小時(shí)工資額×(實(shí)際工作時(shí)數(shù)–40)写半。
而計(jì)薪工周薪的計(jì)算方法是:
如果每周的實(shí)際工作時(shí)數(shù)不少于 35 小時(shí)又碌,則按 40 小時(shí)計(jì)周薪(允許有半個(gè)工作日的事 / 病假)九昧,超出 40 小時(shí)部分不計(jì)薪
周薪 = 小時(shí)工資額 × 40
如果每周的實(shí)際工作時(shí)數(shù)少于 35 小時(shí)(不含 35 小時(shí))
周薪 = 小時(shí)工資額×實(shí)際工作時(shí)數(shù) + 0.5 × 小時(shí)工資額 × (35 - 實(shí)際工作時(shí)數(shù) ) 。
編寫測試類進(jìn)行測試毕匀。
其中可能用到的名稱:
計(jì)時(shí)工人類HourlyWorker
和 計(jì)薪工人類 SalariedWorker
铸鹰。每名工人都具有姓名name
、 年齡 age
皂岔、 性別sex
和 小時(shí)工資額pay_per_hour
等屬性蹋笼;
周薪計(jì)算成員函數(shù) void Compute_pay (double hours )
,(其中參數(shù)hours
為每周的實(shí)際工作時(shí)數(shù))和用于顯示工人的基本信息的toString
函數(shù) 躁垛。
這是我敲的注釋最詳細(xì)的Java代碼了剖毯,痛哭流涕。
下面附圖缤苫,并附源碼:
代碼結(jié)構(gòu):
實(shí)現(xiàn)代碼截圖:
GitHub源碼: WorkerTest.java
測試執(zhí)行結(jié)果:
GitHub源代碼:workersalary
Worker基類:
時(shí)薪工人類:
計(jì)時(shí)工人類:
測試類:
運(yùn)行截圖: