: q3 [+ M- R; V w7 ]- oICustomer.java:继承Customer类,个体客户,折扣计算方式为个人累积行车里程超过多少公里便可获得多少折扣,默认为超过100000折扣0.1,超过200000折扣0.2,注意,不包含100000或200000 。! `/ ]* {4 {( ], e
Y. z4 H7 z% ?; c" q7 o; R2 ACCustomer.java : 继承Customer类,公司客户,折扣计算方式为与租赁公司的关系,直接设置,运行期间在初始化该类时的倒数第二参数即是,设值在0~1之间,我默认有写入两个该实体Cust05,Cust06,分别设值0.1与0.2。 & N8 O$ V5 z$ Y( [; a ; _4 E, k" q8 w- a( l- G Bvehicle.java:不做详述,普通车辆,相对2B,修改了部分方法内容,加入异常抛出。 , Z- N* j+ P, n% x" Z! y1 e% b" }$ j+ M9 b i: Y$ c, b% u7 P" {
PremiumVehicle.java:不做详述,继承自vehicle类,高级车,相对2B,修改了部分方法内容,加入异常抛出。% d+ B' S2 [! x
* y5 [- @ U, r) n. J, j4 y
ManageHiring.java:管理租赁类,唯一可运行类,出现管理菜单,包含所有相关处理方法,具体见类内注释,基本所有我能想到的错误均做了处理,提示应该能看懂,; c8 |0 @* J; O5 s' V9 m) [
! T0 Z- W, i& E p* \! m需注意我的main方法中分了两大块(均有明显注释),第一块为正常菜单(未被注释掉),第二块为测试数据(被注释掉),测试数据中向文件中写入了4个普通车辆,2个高级车;4个个体客户,2个公司客户(额不晓得你看过RWBY动漫木有,客户名字应该比较熟悉),以及进行写入4次有效的租赁相关操作(见transactions.txt),当然如果三个txt都是空或者都被删掉后执行会是如此,不然就全是无效操作。" n9 c. N p7 H8 F7 |0 H
8 l9 K f# O, J7 C7 t1 {8 o& U2 Rcustomers.txt:储存两种类型客户的所有数据,以对象形式储存,已序列化,所以内容被加密,所以直接打开文件是乱码。 # b7 z+ W0 F+ Rvehicle.txt:储存两种车辆的所有数据,其它同customer。) x4 U. R# p5 a) R! O
transactions.txt:储存所有成功的租赁相关操作,包括租赁成功,还车成功,送服务成功,服务完成功。不需要以对象形式储存,直接格式化后输入,可直接打开查看。备注:由于我的本机默认是中国时区,所以显示的时间是中文,如果你电脑是美国时区,则时间输出就和文件要求一样,是英文了,毕竟实验就是外国的。如文件中是Wed Aug 18 (9:15),我电脑会直接显示成星期三 八月 18 (9:15)' `, i: I4 I6 h8 S3 @
; u7 S9 b" H2 o0 s3 w7 g注意!: 9 O* e. h5 c4 Y6 @3 S 如果你不需要初始默认数据,那么可以直接把src下三个txt文件删掉,同时保持菜单这块没有被注释,测试这块注释掉,然后直接执行即可,文件会重新生成的。& ]- K! @4 O$ x" Q' n3 j% m
如果需要初始默认数据,则将src下三个txt文件删掉,同时保持菜单这块被注释,测试这块没有被注释掉,然后直接执行即可,文件会重新生成,并存入我设置的一些数据和操作% R5 M3 D9 Z& _0 q% E
当前给你的工程状况是:已经有初始数据,菜单块未被注释,测试块被注释。三个txt文件均有数据,第一辆普通车车QTJ123被第一个个人客户Cust01租赁、还车、服务、返回% D7 ~* u/ \5 Y' D, |5 |
其中transaction中日志时间记录为中文。 " z5 f" ]6 ] J @: Z! u/ F. I4 ]& b
最后,建议把实验pdf最好看完,对业务有个了解,不然直接看代码或许比较蛋疼。 0 t- F! i3 f X2 F4 A/ o+ ? - q0 x2 p, h8 n& ?: N4 o