机房收费系统难点总结(3)

       我感觉上下机这块是整个系统中逻辑分析最纠结,需要考虑的问题最多的一部分。一开始没怎

么想通,计算消费金额时,消费时间 与基本数据设定中各个数据之间的逻辑关系,如何联系起

来,没怎么想明白。计算消费金额时,就直接用消费时间 / 30 * "固定用户半小时费用",操作时得

到的全是无限小数。呵呵

       

      其实,不单单是完成上机、下机 然后把钱计算一下就完了。这部分需要很严密,并且和基本数

据设定那一块联系也很紧密,刚开始做的时候并没有意识到这一点,跟本不知道数据设定有什么意

义(其实也不是一点也不知道,但是对很多数据设定并不是很理解,不知道在这个系统中起什么作

用),后来随着系统的逐渐完善,对系统的逐步地深入的理解,自己潜意识的要求系统的完善,就

渐渐理解了。

 

基本数据设定对消费金额计算的影响:

 

 

数据设定,我的理解和设计:

 

递增时间不得大于30分钟;准备时间不得大于5分钟;

 

最少金额不得低于固定用户半小时费用;

 

不理解"至少上机时间"这一项设定有什么用处;

 

在下机计算金额时,我没用到"至少上机时间"这一项,因为我不知道为什么要设置至少上机时间,我的

 

想法是只要上机时间(按从开始刷卡计算)超过准备时间就收费,具体怎么收费,再不同情况不同讨论.

 

 

上机时的限制:

 

卡内余额<"最少金额的话,不允许上机

已经刷卡上机的卡号,不得再次刷卡上机

 

下机时的消费金额的计算:

1,消费时间小于"准备时间":

 consumeCash=0

 

2,消费时间大于"准备时间",小于等于30分钟:

consumeCash=数据设定 "固定用户半小时费用"

 

3,消费时间大于30分钟:

 

(1)消费时间是30分钟的整数倍,则消费金额:

 

consumeCash=consumeTime/30 * "固定用户半小时费用"

 

 

(2)消费时间不是30分钟的整数倍,且非整数部分小于递增时间,则消费金额:

 

consumeCash=consumeTime \ 30 *"固定用户半小时费用"

 

 

(3)消费时间不是30分钟的整数倍,且非整数部分大于或等于递增时间,则消费金额:

 

consumeCash=(consumeTime \30 + 1) * "固定用户半小时费用"

 

 

还有一个想法是:当下机时,计算为完消费金额后,余额不能小于0吧。所以,我想实现每隔一分

 

钟计算一次上机用户的消费情况,当余额处于大于0小于"最少金额"时,给出提示“余额不足,请充

 

值”,之后强制下机。但是目前还没有实现。实现之后再做总结。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值