机房收费系统之上下机
来源:互联网 发布:熊猫看书软件下载 编辑:程序博客网 时间: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)
准备工作(各不相同,并不统一)
过程:
一、细化表的信息(各个模块细化,非整体)
二、需求分析(流程图)
三、逻辑设计(设计知识点)
- 上机
- 哪些表中增添多大范围信息---全部、某些、几个
- 查询、更新、增添在多个表中的逻辑顺序
- 及时更新上机人数(RecordCount)---引申实时更新,添加到timer控件事件中
- 下机
- 上机模块中涉及的;
- 结账方式(判断用户类型+结算方式)
四、编码
部分重要代码(上机)
'筛选注册表中信息,核查登录登录卡号 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---------
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 【机房收费系统】之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 机房收费系统之上下机
- 合并果子
- 第4周项目3
- 数据结构学习笔记:数组与链表的区别
- 【2017.9.26】博客貌似好久没更新了
- c++学习笔记【回顾】
- 机房收费系统之上下机
- c++基础学java知识点(类的基本语法)
- 1009 数字1的数量
- mysql注意点
- 背景做导航分割线
- 我的python学习笔记.遍历字典
- Jzoj3498 图形变换
- SpringBoot那些事
- Servlet的生命周期