>  기사  >  데이터 베이스  >  机房收费系统系列四:上下机

机房收费系统系列四:上下机

WBOY
WBOY원래의
2016-06-07 16:00:481137검색

在机房收费系统中,上下机这边花了不少的时间去做它,主要原因是没有理清思路,一股脑的就做起来了,上机挺好做的,到了下机,做完以后傻眼了,这才发现不对着呢为了避免这种情况,在做上下机的时候首先理清思路,不要着急着写代码,磨刀不误砍柴工,下面说说我对上下机

在机房收费系统中,上下机这边花了不少的时间去做它,主要原因是没有理清思路,一股脑的就做起来了,上机挺好做的,到了下机,做完以后傻眼了,这才发现不对着呢……为了避免这种情况,在做上下机的时候首先理清思路,不要着急着写代码,磨刀不误砍柴工,下面说说我对上下机的认识.

上机

首先是上机的流程图

\

然后是针对每个流程进行的分析和部分代码。如果对流程分析清楚,代码就好写了。

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 If
6、满足上述条件,就可以上机,显示主界面显示上机信息和登录人数 
'显示登录人数
  onflag = onflag + 1
  Label19.Caption = onflag
  '断开数据库连接
  mrc.Close
7、将这条正在上机的记录添加到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<strong style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">                                                                 </strong>

3、删除OnLine_Info表中的数据

4、计算消费的时间

 &#39;计算上机消耗的时间
    txtoffdate.Text = Format(Date, "yyyy-mm-dd")
    txtofftime.Text = Format(Time, "hh:mm")
      
    Usetime = Abs(DateDiff("n", txtofftime, txtontime)) &rsquo;每天一结账,结账的时候强制用户下机
    txtconsumetime.Text = Usetime

5、计算消费的金额

 &#39;计算消费的金额
 &#39;如果消费的时间小于最少时间,消费金额为1元
   If txtconsumetime.Text <= Leasttime Then
        txtconsume.Text = 1
        &#39;txtcash.Text = mrc.Fields(7) - Trim(txtconsume.Text)
   ElseIf Usetime <= pretime Then
  &#39;第一种情况消费时间小于准备时间,消费金额为0
        Usecash = 0
        txtconsume.Text = Usecash
   Else
     &#39;一个递增时间段消费的金钱,<span style="font-size:18px;"></span><pre name="code" class="vb"><span style="white-space:pre">	</span>&rsquo;按一个递增时间段(30分钟)计算基础
Unitcash = Format((Halfcash / 30) * Unittime, "0.0") '第二种情况 消费时间小于最小上机时间 按一个递增时间段(30分钟)收费 If Usetime 7、更新基本信息表(student_Info表)

上下机这里主要是逻辑上的思考,把思路理清以后就能做好。在机房收费系统中,不仅仅是上下机,结账,组合查询等等都体现了逻辑的重要性,对要实现的功能有个全局把握,再把它分解,这样一点点的进行,就可以把它做好。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.