readme

作者: zkunkun | 来源:发表于2017-09-12 02:44 被阅读0次

    一、运行环境

    • windows10
    • jdk 8.0
    • IDEA编辑器
    • Junit进行单元测试

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

    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

    相关文章

      网友评论

          本文标题:readme

          本文链接:https://www.haomeiwen.com/subject/aymqsxtx.html