机房收费系统之简单的逻辑(上)下机费用运算

本篇博客适合已经做完上下机的同学、本篇主要讲下机时、上机费用的计算


——————本文若有错误请及时指出——————


(一)流程图如下——简单


左图为计算

上机费用的流程图

我把他成了一个过程

在下机中调用

左图是简版的

数据流程图


(二)输入输出数据

输入

             

     上机时间到下机时间:

                上机日期时间是2013年11月12日19:03:54

                下机日期时间是2013年11月12日20:03:54

                那上机时间到下机时间就是

                1小时或者60分钟


       基本信息

                基本信息我们运算只用到一部分、如图


输出

             

       时间:

                这个输出的时间的单位是小时、格式按照半小时为单位算

                例:0.5  1   1.5   2   2.5   

上机费用:

                这个输出单位是元、格式按照1元为单位


(三)计算


我尽可能的详细写了计算的流程、方便大家理解、我画了详细的流程图、如图

                time1是输入的时间

                time2是输出的时间

                money是输出的钱


1.准备时间
如果上机时间小于准备时间、有可能你还没上机呢、从客户的角度我认为是不应收费的、但是从商家的角度看、刷卡了代表已经交易了、而且网吧只要你上机就马上消费一小时的钱、这里算做上机最小金额


2.减去准备时间
就是减去客户没上机的准备时间、算出真正的上机时间


3.递增时间
个人理解、如果递增时间是5分钟那么、上机时间的进制就是5分钟、所以tiem1是上机时间、time2是根据递增时间算出的、要收费的时间。

4.最小上机时间
看看收费的时间是否小于最小上机时间、如果小于、time2就改成最小上机时间。



5。算出有多少个半小时、因为是按照半小时已收费的。算出收费金额money。



6.比较一下收费的钱是否小于上机最小金额、如果小于的话就改成上机最小金额



(四)代码

看了流程图之后相信大家已经对计算流程有了认识、下面是整个过程的代码、有详细的备注、每个阶段都详细的划分了、相信大家很容易理解。


'计算下机收费的过程
Private Sub ConsumeMoney()
    '为连接数据库定义的
    Dim txtsql As String '放select语句的字符串函数
    Dim mrc As ADODB.Recordset '定义mrc为记录集'注释:——记录集——就是记录的集合、是查询出来的数据生成一个临时的虚拟表
    Dim msgtext As String '运行查询报错的文字容器
    '用于记录基本信息中的记录
    Dim Note0 As Long '固定用户半小时的费用
    Dim Note2 As Long '递增单位时间
    Dim Note3 As Long '至少上机时间
    Dim Note4 As Long '准备时间
    Dim Note5 As Long '上机最少金额
    '定义时间
    Dim Time1 As Currency
    Dim Time2 As Currency
    '记录金钱
    Dim Money As Currency
    '————————————————————
    '计算上机开始到结束的时间(开始的日期时间到结束的日期时间算出相差分钟数)
    'txtOnDate.Text = 开始日期
    'txtOnTime.Text = 开始时间
    'txtUnderDate.Text = 结束日期
    'txtUnderTime.Text = 结束时间
    Time1 = DateDiff("m", txtOnDate.Text & " " & txtOnTime.Text, txtUnderDate.Text & " " & txtUnderTime.Text)

    '————————————————
    '读取基本信息的内容
    txtsql = "select * from DataSetting_Info"
    Set mrc = executeSQL(txtsql, msgtext)
    If mrc.RecordCount <> 0 Then
        Note0 = Val(mrc.Fields(0))
        Note2 = Val(mrc.Fields(2))
        Note3 = Val(mrc.Fields(3))
        Note4 = Val(mrc.Fields(4))
        Note5 = Val(mrc.Fields(5))
    Else
        MsgBox "下机错误、因为基本数据为空", , "下机错误"
    End If
    '——————————————————————
    '判断时间是否小于准备时间、如果小于、直接输出
    If Val(Time1) < Note4 Then
        txtUse.Text = 0.5
        txtMoney.Text = Note5
        Exit Sub
    End If
    '计算减去准本时间的上机时间
    Time1 = Val(Time1) - Note4
    '——————————————————————
    '按照递增时间算出应收费的消费时间
    Time2 = (Fix(Val(Time1) / Note2)) * Note2
    '判断time2是否小于最小上机时间
    If Val(Time2) < Note3 Then
        Time2 = Note3
    End If
    '——————————————————
    Time2 = Val(Time2) / 30 '有几个半小时
    If Val(Time2) > 1 Then '如果时间大于半小时则
        If Fix(Time2) <> Val(Time2) Then '判断是不是整数/如果不是整数则加1
            Time2 = Fix(Time2) + 1
        End If
    Else '小于半小时按照30分钟算
        Time2 = 1
    End If
    '————————————————————————
    Money = Fix(Val(Time2)) * Note0 '算出上机消费金额
    '判断金额是否小于最小金额
    If Val(Money) < Note5 Then
        Money = Note5
    End If
    '——————————————————
    '输出
    Time2 = Time2 / 2 '半小时换算成小时
    If Time2 < 1 Then
        txtUse.Text = "0" & Time2 '不知道为啥1除以2=.5所以只能这么写
        txtMoney.Text = Money
    Else
        txtUse.Text = Time2
        txtMoney.Text = Money
    End If

End Sub


其实下机本来可以写的简单点、但是常常想起米老师的那句不能凑合、所以!——bu neng cou huo!




下一篇:机房收费系统简单的逻辑(下)组合查询我不愁



———————今天复习了下小学的加+减-乘*除/————————chenchen





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值