机房收费系统上机下机操作代码实现



前言

上下级是机房收费系统最基本的操作,没有上下机,以后的操作都是根据上下机操作的以及为上下级服务的,所以我们需要在弄机房的时候,首先要对这个操作思路整理清楚!

上机

上机就是你去网吧去了,在网管那里刷一下身份证,挑选自己的机子,然后输入身份证号,密码,进入主界面,此时,系统开始计时,同时在用户界面,你也可以看到余额、上机时间等一系列你帐号的信息!

我们的机房收费系统的上机简单来说就是三部:Judge,Input,Output!(相对而言比较简单)

简单清晰的流程图奉上

 

下机

下机与上机相对,就是你玩完了,准备回家了,结一下账,要不系统还是会给你计算着时间,下次来的时候,你的网费就不翼而飞了!

(这里有个小故事,我想和大家说一下,之前我可喜欢上网了,有一次去网吧,身份证里没有钱了,我于是就冲了好多(因为冲的多送的也多嘛),可是回家的时候,不知道是我没有结账还是那台机子有问题,就没有下机,过了两天我去的时候,我冲的钱都没了!服了服了,如果是那个收费系统的问题,我这个消费者算是被坑惨了,所以大家一定要把自己的下机过程理好,不要坑消费者)

下机和上机的步骤大致差不多,多的就是金钱和时间的计算(时间就是金钱嘛)!

废话不多说,流程图奉上!

 

时间和金钱计算的代码奉上!

定义一些变量用于储存数据



    Dim intlinetime As Integer  '存储实际在线时间

    Dim intconsume As Single

    Dim curconsume As Single    '存储真正花费钱的时间

    Dim curbalance As Single    '存储用户的余额


    Dim fixedunit As Single     '存储单位金额

    Dim temunit As Single       '存储单位时间

    Dim a As Integer

    Dim remaincash As Single

进行计算



        '在线时长计算

       intlinetime = (Date - DateValue(mrc1!onDate)) * 1440 + (Hour(Time) - Hour(TimeValue(mrc1!ontime))) * 60 + (Minute(Time) - Minute(TimeValue(mrc1!ontime)))

        '时间单位为分钟       

        '获得基本表的数据

        txtsql3 = "select * from Basicdata_Info"

        Set mrc3 = ExecuteSQL(txtsql3, msgtext) 'mrc3连接basicdata表

        mrc3.MoveLast



        '单位时间的费用 (把固定用户,临时用户单位时间的费用分别赋值给费用)


        fixedunit = Val(mrc3.Fields(0)) '把固定用户的金额赋值给变量


        temunit = Val(mrc3.Fields(1)) '把临时用户的金额赋值给变量


        '判断在线时间是否小于准备时间,若小于则 消费金额=0


        If intlinetime <= Val(Trim(mrc3.Fields(4))) Then

        txtofftime.Text = "0"

        Else


        '判断在线时间是否小于最低消费时间,若小于则为0


        If intlinetime < Val(Trim(mrc3.Fields(3))) Then

        txtctime.Text = "0"

        End If

        End If


         '在线时间大于单位时间,就按有几个单位时间算,分为固定用户和临时用户

        If intlinetime >= Val(Trim(mrc3!leastTime)) And intlinetime And Trim(mrc!Type) = "固定用户" Then

        a = Int(intlinetime / Val(Trim(mrc3!unitTime)))

                        If a = intlinetime / Trim(mrc3!unitTime) Then

                            curconsume = a

                        Else

                            curconsume = a + 1

                        End If

        txtcash.Text = Val(curconsume) * Val(fixedunit)

3

            If txtcash.Text = "" Then txtcash.Text = "0"

        Else

              If intlinetime >= Val(Trim(mrc3!leastTime)) And intlinetime

               And  Trim(mrc.Fields(14)) = "临时用户" Then

              a = Int(intlinetime / Val(Trim(mrc3!unitTime)))

                            If a = intlinetime / Trim(mrc3!unitTime) Then

                                curconsume = a

                            Else

                                curconsume = a + 1

                            End If


             txtcash.Text = Val(curconsume) * Val(temunit)

             End If

        End If



        '更新student表

        txtsql = "select * from student_Info where cardno='" & Trim(txtcardno.Text) & "'"

        Set mrc = ExecuteSQL(txtsql, msgtext)

        remaincash = mrc!cash - Val(txtcash.Text)


            mrc.Fields(7) = remaincash

            mrc.Update

            mrc.Close




后语

希望对大家有所帮助!

猜你喜欢

转载自sunmon.iteye.com/blog/2405831