|
该用户从未签到
|
2C部分:$ H* {( q1 |8 g3 ~3 m6 F8 p: v
打开工程后,在src目录下的A2_2C包,该部分与A2_2A2B部分没有必然关联,可以单独提出使用,以下对类说明(另注:所有注释均为英文,本txt单独供给你使用):
# ?+ c4 `" ?: L# ?6 _9 {) d+ pDateTime.java:实验pdf给的时间类,在2C中我将其序列化,以便储存。
, ]: b. X7 U b6 s$ Y! x
' }4 d* m6 R, T- cStatusException.java:自定义状态异常,继承自Exception异常类,使用父类方法,当车辆操作不当时,抛出异常。例:车被租赁,则不能被服务;车为可用,则不能还车。
6 [5 V- o6 N$ m7 i* A [+ M, i% r2 E, g0 Q
- h, ~( m$ D% g; [ V+ c) Z- TOdometerException.java:自定义里程数异常,继承自Exception异常类,使用父类方法,当输入里程数小于原始里程数时,抛出异常。例,车被租赁时,里程数为100000,则还车时,输入里程数必须大于100000,否则报异常。(注:这里应该就是你2A数据不变的原因,因为输入的里程数不够大,所以只会报警告,数据不变)。8 s3 A+ s9 ?5 \5 K+ c4 G# ]" P- u
& H1 q! p/ V" ` P) w4 ?
Customer.java: 抽象客户类,有抽象方法:获得折扣。& f- E: A3 ?" `
}4 _+ z9 j3 hICustomer.java:继承Customer类,个体客户,折扣计算方式为个人累积行车里程超过多少公里便可获得多少折扣,默认为超过100000折扣0.1,超过200000折扣0.2,注意,不包含100000或200000 。
" Z3 h7 @/ v' e3 b. x' q) _0 Q" S% S# Q3 Z3 K
CCustomer.java : 继承Customer类,公司客户,折扣计算方式为与租赁公司的关系,直接设置,运行期间在初始化该类时的倒数第二参数即是,设值在0~1之间,我默认有写入两个该实体Cust05,Cust06,分别设值0.1与0.2。
6 A6 F) e+ O# J% j# j( ~9 h0 U5 w; O7 n& r# [ k- |1 O
vehicle.java:不做详述,普通车辆,相对2B,修改了部分方法内容,加入异常抛出。& A2 r+ w9 j# m" H
( ]7 @1 _# J0 k2 H% x7 P; V( f& kPremiumVehicle.java:不做详述,继承自vehicle类,高级车,相对2B,修改了部分方法内容,加入异常抛出。" t" v. l# D u( W2 |
8 L2 `. a, ]8 Q2 ]( V# u
ManageHiring.java:管理租赁类,唯一可运行类,出现管理菜单,包含所有相关处理方法,具体见类内注释,基本所有我能想到的错误均做了处理,提示应该能看懂,
- g6 Q5 k" ~! v6 R( A/ C8 ?
0 U8 @ \* c2 f5 F2 @; H需注意我的main方法中分了两大块(均有明显注释),第一块为正常菜单(未被注释掉),第二块为测试数据(被注释掉),测试数据中向文件中写入了4个普通车辆,2个高级车;4个个体客户,2个公司客户(额不晓得你看过RWBY动漫木有,客户名字应该比较熟悉),以及进行写入4次有效的租赁相关操作(见transactions.txt),当然如果三个txt都是空或者都被删掉后执行会是如此,不然就全是无效操作。# |: U. ^/ T \4 [. [$ H
) z7 @4 {% Y& p! L+ C. P5 S1 g
customers.txt:储存两种类型客户的所有数据,以对象形式储存,已序列化,所以内容被加密,所以直接打开文件是乱码。) ]7 A# H1 n% f
vehicle.txt:储存两种车辆的所有数据,其它同customer。( A) H: ?' f0 F4 b0 h! ~1 e
transactions.txt:储存所有成功的租赁相关操作,包括租赁成功,还车成功,送服务成功,服务完成功。不需要以对象形式储存,直接格式化后输入,可直接打开查看。备注:由于我的本机默认是中国时区,所以显示的时间是中文,如果你电脑是美国时区,则时间输出就和文件要求一样,是英文了,毕竟实验就是外国的。如文件中是Wed Aug 18 (9:15),我电脑会直接显示成星期三 八月 18 (9:15)) ]6 u) m! Z1 S
: Y; D6 u, Q1 Z* s+ M; }% A注意!:
: b4 B/ U4 u# v+ Y5 q+ |5 S 如果你不需要初始默认数据,那么可以直接把src下三个txt文件删掉,同时保持菜单这块没有被注释,测试这块注释掉,然后直接执行即可,文件会重新生成的。& e& p: Z$ t1 N+ V' [
如果需要初始默认数据,则将src下三个txt文件删掉,同时保持菜单这块被注释,测试这块没有被注释掉,然后直接执行即可,文件会重新生成,并存入我设置的一些数据和操作: x1 l9 q5 n8 u- D* ~- W& g- @
当前给你的工程状况是:已经有初始数据,菜单块未被注释,测试块被注释。三个txt文件均有数据,第一辆普通车车QTJ123被第一个个人客户Cust01租赁、还车、服务、返回
: W) p3 V8 J+ r! l其中transaction中日志时间记录为中文。
/ X+ S6 L2 h+ K' v; F9 ^
9 A9 R* b- O' B6 b; d& y) k最后,建议把实验pdf最好看完,对业务有个了解,不然直接看代码或许比较蛋疼。
4 @ w3 t0 h6 k7 G* z8 F+ a2 J+ c6 h, A6 | N
|
|