搬家公司管理系統java
考試提醒
一、 請仔細閱讀規格文檔,理解規格文檔估計須要花費10~40分鐘來理解,請務必看清楚要求再動手,試題包括規格描述和代碼框架。
二、 答題時建議常常保持能編譯運行,確保能夠得到已經實現功能的得分。
三、 在閱讀題目後請同時閱讀隨代碼框架提供的單元測試用例代碼和註釋以幫助更好的理解題意,在完成答題後必定要確保隨代碼框架提供的單元測試用例執行經過。
四、 每道題已經提供初步的框架,請在此框架上繼續完成代碼。隨試題提供的代碼框架*.java文件使用GBK編碼,請調整eclipse等IDE的編碼字符集爲GBK,以防止源文件中的中文出現亂碼。
五、 試題框架提供的原有代碼,除須要考生實現的方法體外的其餘的內容(包括常量定義,方法簽名等)均不能作任何修改。
六、 能夠根據須要在代碼框架中新增屬性,方法等,也能夠在本類中調用其餘本身開發的類。不建議使用其餘第三方lib庫,若是確實須要使用,請務必將lib庫拷貝到lib目錄下。
七、 除題目明確要求須要考慮的異常狀況、輸入校驗外,其餘異常狀況和輸入校驗一概不須要考慮。
八、 最終答題代碼,請以以下形式打包提交:
姓名全拼_8位工號_類別_級別.zip
|____src
|____bin
|____lib
|_____XXX.jar
示例:zhangsan_00123456_通用軟件(java)_3級.zip
一、 整體說明
實現一個搬家公司管理系統,能完成車輛管理、訂單管理等工做,並給出報表統計數據。
1.1 系統規則
若是系統沒有初始化,全部接口須要拋出異常E000。
若是輸入參數不合法,全部接口須要拋出異常E001。
系統時間
1. 系統時間模型爲(日期,時間點)。
2. 日期爲正整數,初始化後爲1,每過一天日期加1,範圍1~200。
3. 時間點爲正整數,範圍0~23。
4. 系統中每個月固定爲30天。
5. 能夠經過setTime修改系統時間來模擬時間的推動,每次修改不能小於當前時間,不然拋出異常E002。注意:修改時間後注意刷新系統中車輛、訂單、報表的相關信息。
6. 天然月指每個月的1號到那個月的月底。計費月指從計費起始日起的30天,爲了簡單,如下規格中每個月是指計費月,月底是指計費月的月底。。框架
車輛管理
系統初始有車5輛(可配置),每輛配1名司機,2名搬運工,司機不負責搬運。車月租3000元(包括車和司機)。月租在起租日當天支付,之後每30天支付一次。eclipse
1. 可經過hireTruck租用車。
a) 車id爲整數,範圍0~99,即最大可租用車數量爲100。
b) 系統初始化後固定租用5輛車,id爲0~4,後續id從5開始遞增。
c) 分配id時採用遞增策略,從0開始分配。
d) 達到最大id限制時須要拋出異常E004。
2. 可經過fireTruck退租車。
a) 若是車輛不存在,拋出異常E005。
b) 若是退租的車輛有交付中和未交付的訂單,拋出異常E008。
c) 在計費月開始第一天退租仍然要付月租。
訂單管理
1. 可經過inputOrder錄入訂單,入參結構以下:單元測試
訂單錄入項目 描述
總重量 totalWeight 單位:100公斤,正整數。
整體積 totalVolume 單位:立方米,正整數。
距離 distance 單位:10千米,正整數,起點到終點距離。
起始日期 startDate 當前日期必須比起始日期提早3天,即「起始日期」-「當前日期」>=3。測試
id分配策略:
a) 訂單id爲整數,範圍0~99,即最大可支持訂單數量爲100
b) 分配id時採用遞增策略,從0開始分配。
c) 達到最大id限制時須要拋出異常E004。編碼
訂單規劃:
系統結合當前訂單和可用車狀況進行規劃和費用計算。
影響規劃的參數:
a) 搬運工能力:從起始地搬運物品到車上,車開到目的地,再把物品搬下車,搬運效率是50公斤/時/人。
b) 車能力:車輛容積統一爲4立方米,載重爲400公斤,平均時速10千米/時。不考慮兩個訂單間路程耗費的時間,但考慮一個訂單屢次往返耗費的時間,即便只需運輸一次,也要計算往返的時間。
c) 每輛車固定配置2名搬運工。spa
規劃原則:
a) 每車每次只能運輸一個訂單。
b) 每一個訂單隻投入一輛車,但能夠進行屢次搬運。
c) 每次裝運都要保證儘可能滿載(滿載表示或者不能再承重,或者沒有空間)狀態,一個訂單的最後一次運輸容許不是滿載。
d) 按訂單錄入時間前後安排資源。
e) 安排車輛時按照車輛id從小到大尋找可用車輛。
f) 1天可安排的起始時間點是3~22,可接受訂單的最大時長是20小時,注意23點可做爲訂單的最後結束點,但不是可安排的起始時間點。
g) 在一天中尋找可用時間段時按照儘早安排原則,且時間必須連續。
h) 訂單不容許跨天,要保證訂單在當天完成,不能完成的訂單不接受。
i) 車輛運輸過程當中,人在車上,但忽略人佔用的容積。接口
若是資源不足,不能接受訂單,拋出異常E007。ip
費用計算:
訂單錄入成功則收取預付費,費用計算公式以下:
單訂單預付費計算:收取費用的30%做爲預付費,計算時取整便可,不考慮四捨五入。資源
訂單交付後收取訂單費用中除了預付費外的費用,訂單費用計算公式以下: 單訂單費用計算:成本*110%,即成本溢價10%。搬運工費用=花費小時數*20元/小時,注意:這裏花費小時包括搬運時間和隨車時間。車的油費=車行駛里程*2元/千米。注意:行駛里程按往返計算,即便不須要搬運屢次。車的每小時租金=月租金/30天/20小時。車的租金=花費小時數*車的每小時租金。成本 = 搬運工費用+車的油費+車的租金。單訂單費用 = 成本 * 110%