机房收费系统系列四:上下机
程序员文章站
2022-06-12 11:06:24
...
在机房收费系统中,上下机这边花了不少的时间去做它,主要原因是没有理清思路,一股脑的就做起来了,上机挺好做的,到了下机,做完以后傻眼了,这才发现不对着呢为了避免这种情况,在做上下机的时候首先理清思路,不要着急着写代码,磨刀不误砍柴工,下面说说我对上下机
在机房收费系统中,上下机这边花了不少的时间去做它,主要原因是没有理清思路,一股脑的就做起来了,上机挺好做的,到了下机,做完以后傻眼了,这才发现不对着呢……为了避免这种情况,在做上下机的时候首先理清思路,不要着急着写代码,磨刀不误砍柴工,下面说说我对上下机的认识.
上机
首先是上机的流程图
然后是针对每个流程进行的分析和部分代码。如果对流程分析清楚,代码就好写了。
1、卡号是否为空
2、卡号是否存在(student_Info表)
3、卡号的状态是否为”使用”(student_Info表)
'检查卡号是否能正常使用 txtSQL = "select * from student_Info where cardno='" & Trim(txtcardno.Text) & "'" Set mrc = executesql(txtSQL, msgText) If mrc.EOF Then MsgBox "此卡尚未注册!", vbOKOnly + vbExclamation, "警告" txtcardno.Text = "" txtcardno.SetFocus mrc.Close Exit Sub Else status = Trim(mrc.Fields(10)) If mrc.EOF = False And "未使用" = status Then MsgBox "该卡没有注册!", vbOKOnly + vbExclamation, "警告!" txtcardno.Text = "" txtcardno.SetFocus mrc.Close Exit Sub End If End If
4、检查是否正在上机
txtSQL = "select * from OnLine_Info where cardno='" & Trim(txtcardno.Text) & "'" Set mrcc = executesql(txtSQL, msgText)5、没有上机,检查卡内余额是否小于最少上机金额(student_Info表)
'如果卡号能用且没有上机,检查余额 If Not mrc.Fields(7) > frmbasicctsding.txtlimitcash Then '坚持是否余额是否大于最少金额 MsgBox "余额不足,请充值!", vbOKOnly + vbExclamation, "警告" mrc.Close Exit Sub End If6、满足上述条件,就可以上机,显示主界面显示上机信息和登录人数
'显示登录人数 onflag = onflag + 1 Label19.Caption = onflag '断开数据库连接 mrc.Close7、将这条正在上机的记录添加到OnLine_Info表中
8、将上机记录添加到Line_Info表中
下机
下机的流程图
1、检查是否正在上机
2、更新Line_Info表中的数据(更新下机日期和下机时间)
'判断卡号是否在上机 txtSQL = "select * from OnLine_Info where cardno='" & Trim(txtcardno.Text) & "'" Set mrc = executesql(txtSQL, msgText) If mrc.EOF = True Then Label14.Caption = "该卡号还没上机!" mrc.Close Exit Sub
3、删除OnLine_Info表中的数据
4、计算消费的时间
'计算上机消耗的时间 txtoffdate.Text = Format(Date, "yyyy-mm-dd") txtofftime.Text = Format(Time, "hh:mm") Usetime = Abs(DateDiff("n", txtofftime, txtontime)) ’每天一结账,结账的时候强制用户下机 txtconsumetime.Text = Usetime
5、计算消费的金额
'计算消费的金额 '如果消费的时间小于最少时间,消费金额为1元 If txtconsumetime.Text
上一篇: sqlserver游标概念与实例