readme

2017-09-12  本文已影响0人  zkunkun

一、运行环境

二、程序主功能及单元测试

1. main函数:

用正则判断输入是否合法,对于合法的输入写入订单(Order)列表操作,若输入为空行,则进行总价计算。

2. Order类:

存储订单信息

2.1 Order的属性:

'''Java
String userId;//用户名;
String d;//年月日的字符串形式;
Date data;//年月日的date形式;
String time;//时刻钟的字符串形式;
String local;//场所;
int startTime;//开始时间;
int endTime;//结束时间;
String cancel;//标记是否取消;
'''

2.2 Order的方法:

2.2.1 设置时间SetTime:

读取年月日和时刻钟以字符串形式存储,读取起止时间,判断是否存在时间不合法的情况,并且为以后计算费用提供依据。

单元测试:

U001 2017-08-01 10:00~10:00 A

2.2.2 判断年月日、时刻钟、用户名是否相同nameEqual、dataEqual、timeEqual;

单元测试:

U001 2017-08-01 10:00~10:00 A
U001 2017-08-02 10:00~10:00 A
U001 2017-08-01 20:00~22:00 A
U001 2017-08-02 10:00~10:00 A

2.2.3 确认星期数getWeek

单元测试:

U001 2017-08-01 10:00~10:00 A
U001 2017-09-02 10:00~10:00 A
U001 2017-08-10 20:00~22:00 A
U001 2016-04-02 10:00~10:00 A

3. Local类:

对场馆建立hashmap,场馆名作为key值,每个场馆对应一个ArrayList,ArrayList中存储多个Order。

3.1 Local中的方法:

3.1.1 input:

将main中得到的一行字符串分别对应到Order的各个属性,无删除标记的调用orderconfirm方法,有标记的调用orderconcel方法。

3.1.2 orderconfirm:

在时间不冲突的情况下,将对应场馆的订单写入list,形成键值对

测试用例:

U001 2017-08-01 09:00~12:00 A
U001 2017-08-01 11:00~13:00 A
U001 2017-08-01 15:00~17:00 A
U001 2017-08-02 09:00~12:00 A
U001 2017-08-02 15:00~17:00 A
U002 2017-08-01 09:00~12:00 A
程序输出与预期相同

3.1.3 orderconcel:

当输入的order含有"C"标记是,找到对应的记录,将是否取消位超级为是。

测试用例:

U001 2017-08-01 11:00~13:00 A
U001 2017-08-01 15:00~17:00 A
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-02 15:00~17:00 A C
U001 2017-08-01 11:00~13:00 A
程序输出与预期相同。

3.1.4 计算价格:

遍历hashmap,计算每个场馆对应费用

测试用例:

U001 2017-08-01 11:00~13:00 A
U001 2017-08-01 15:00~17:00 A
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-02 15:00~17:00 A
U002 2017-08-03 21:00~22:00 B
U003 2017-08-01 11:00~13:00 B
U002 2017-08-02 15:00~17:00 A
U002 2017-08-02 15:00~17:00 A C
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-02 15:00~17:00 A C
U001 2017-08-01 11:00~13:00 A
程序输出与预期相同。

4. Fee类

初始化两个数组,分别表示周末各时段的价格和周内个时段的价格。利用order的起止时间作为区间来计算预定场地的消费水平。

4.1 caculate

确定输入时间是周几,利用循环加法来确定订单价格,同理计算取消订单的违约金。

测试用例1:

U001 2017-08-01 11:00~13:00 A
U001 2017-08-01 15:00~17:00 A
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-01 11:00~13:00 A
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-01 11:00~13:00 A
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-01 11:00~13:00 A
U001 2017-08-01 11:00~13:00 A C

测试用例2:

U001 2017-08-02 15:00~17:00 A
U002 2017-08-03 21:00~22:00 B
U003 2017-08-01 11:00~13:00 B
U002 2017-08-02 15:00~17:00 A
U002 2017-08-02 15:00~17:00 A C
U001 2017-08-01 11:00~13:00 A C
U001 2017-08-02 15:00~17:00 A C
U001 2017-08-01 11:00~13:00 A

上一篇下一篇

猜你喜欢

热点阅读