机房收费系统之上下机

来源:互联网 发布:熊猫看书软件下载 编辑:程序博客网 时间:2024/06/05 20:16

前言:

     一不留神上下机界面就耽误了两天才搞定,本以为挺好整的,结果一遍遍推翻了自己原来的想法,总是认为逻辑顺序不合理包括现在,不过现在想了想,为什么非要做到极致呢?哈哈....

小谈:其实在上下机进行到一半的时候突然醒悟原来这个模块类似于登录模块的;

  • 登录和退出界面

          表:user_info、work_info、worklog_info

          登录:user(if)--->work_info(add all)--->worklog(add some)

          退出:work_info(delete)--->worklog(add others)

  • 上机和下机界面

         表:student、online、line、basicdata

         上机:student(if)--->basicdata(if)--->online(add some)--->line(add some)

         下机:online(if)--->student(show)--->basicdata(inquiry)--->online(delete)--->line(add others)

         准备工作(各不相同,并不统一)

过程:

  一、细化表的信息(各个模块细化,非整体)


  二、需求分析(流程图)


  

  三、逻辑设计(设计知识点)

  • 上机
  1. 哪些表中增添多大范围信息---全部、某些、几个
  2. 查询、更新、增添在多个表中的逻辑顺序
  3. 及时更新上机人数(RecordCount)---引申实时更新,添加到timer控件事件中
  • 下机
  1. 上机模块中涉及的;
  2. 结账方式(判断用户类型+结算方式)

  四、编码

  部分重要代码(上机

'筛选注册表中信息,核查登录登录卡号        CardNo = Val(txtCardNo(0).Text)        txtSQL = "select * from student_Info where cardno='" & CardNo & "'"        Set mrc = ExecuteSQL(txtSQL, msgText)        If mrc.EOF And mrc.BOF Then            MsgBox "不存在此用户,请重新输入!", vbOKCancel + vbExclamation, "警告!"            mrc.Close            txtCardNo(0).Text = ""            txtCardNo(0).SetFocus        Else            '判断是否和正在上机用户冲突            txtSQL = "select * from OnLine_Info"            Set mrc1 = ExecuteSQL(txtSQL, msgText)            If Not (mrc1.EOF And mrc1.BOF) Then '记录集中显示第一个                mrc1.MoveFirst            End If                While (mrc1.EOF = False)                If (Trim(mrc1.Fields(0)) = Trim(CardNo)) Then                    MsgBox "此卡号正在上机,请更换卡号后重新操作!", vbOKOnly + vbExclamation, "警告"                    txtCardNo(0).Text = ""                    txtCardNo(0).SetFocus                    Exit Sub                Else                    mrc1.MoveNext                End If            Wend            '判断此卡是否不低于最小余额            txtSQL = "select * from BasicData_Info"            Set mrc2 = ExecuteSQL(txtSQL, msgText)            If Trim(mrc.Fields(7)) < Trim(mrc2.Fields(5)) Then                MsgBox "此卡的余额不足,请尽快充值!", vbOKCancel + vbExclamation, "提示"                mrc1.Close                mrc2.Close                txtCardNo(0).Text = ""                txtCardNo(0).SetFocus                Exit Sub


部分重要代码(下机)---结算金钱

txtSQL = "select * from student_Info where cardno='" & CardNo & "'"                Set mrc = ExecuteSQL(txtSQL, msgText)                Call viewData                endTime = Time                endDate = Date                CostDate = DateDiff("n", mrc1.Fields(6), endDate)                CostTime = DateDiff("n", mrc1.Fields(7), endTime)                allTime = CostDate + CostTime                '查询basicdata表中的信息                txtSQL = "select * from BasicData_Info"                Set mrc2 = ExecuteSQL(txtSQL, msgText)                                Rate = mrc2.Fields(0)                tmpRate = mrc2.Fields(1)                unitTime = mrc2.Fields(2)                leastTime = mrc2.Fields(3)                prepareTime = mrc2.Fields(4)                            '收费情况                If allTime <= prepareTime Then                    ConsumeMoney = 0                Else                    If allTime <= leastTime Then                        ConsumeMoney = Val(Rate / 2)                    Else                        useTime = allTime - prepareTime                        unitNumber = useTime Mod Val(unitTime)                        If unitNumber = 0 Then                            unitNumber = Int(useTime / unitTime)                        Else                            unitNumber = Int(useTime / unitTime) + 1                        End If                        If txtType(3).Text = "固定用户" Then                            a = Rate                        Else                            a = tmpRate                        End If                        ConsumeMoney = Format(unitNumber * a, "0.0")                    End If                End If                                txtOffTime(10).Text = endTime                txtOffDate(7).Text = endDate                txtCTime(11).Text = allTime                txtCMoney(12).Text = ConsumeMoney                Cash = txtBalance(8) - ConsumeMoney                txtBalance(8).Text = Cash


  总结:其中涉及到命名全局变量调用过程(两次或多次)、函数和过程区别、变量的数据类型等,总之比较多的知识相结合起来,然后一遍又一遍的加深印象和理解;

  体会:其实只要我们按照类似软件工具开发这本书中提到的软件开发过程的几种要点来做的话,虽然有难度,但是却不会让我们望而却步,只不过会死比较多的脑细胞和时间;仅此而已,等下.....,我还有最后一句话;

世界上最遥远的距离不是生与死,而是你站到了机房收费系统的大门口,又尼玛关上了!

--------------------欢迎在评论区推荐好的思路和指正其中代码的问题------------Iwait foryou---------


原创粉丝点击