机房收费系统-优化

前言:机房收费系统的基本功能已经完成,而在之前的第一遍验项目时,师傅给了我一些建议:**除了保证产品功能的严谨,还要足够考虑受众群体的需求和体验。**这句话真的是受益匪浅。

优化1:退出系统后,所有用户强制下机且全部结账
第一个问题就给了我狠狠的First Strike:为了实现这个功能我在退出事件上下了很大功夫,后来自己采用了一种迂回战术:退出时若检测到有用户未下机,先进入批量下机窗体进行下机,完成后再关掉系统。

txtSQL = "select * from worklog_info where userid='" & UserName & "' and status= '" & "值班" & "'"
    Set mrwl = ExecuteSQL(txtSQL, MsgText)
    
    txtSQL = "select * from online_info "
    Set mrol = ExecuteSQL(txtSQL, MsgText)
    
        '判定是否有用户未下机
        If mrol.EOF = False Then
            str$ = MsgBox("检测到还有用户未下机,是否强制下机这些用户?", vbOKCancel, "提示")
            
            '判断是否选择强制下机
            If str$ = vbOK Then
                '终止退出过程,显示一键结账窗体
                Cancel = 1
                frmStuDemOnStat.Show
                
                '在worklog表内更新数据
                mrwl!loginoutdate = Date
                mrwl!loginouttime = Time
                mrwl!Status = "下班"
                mrwl.Update
                mrwl.Close
            Else
                Cancel = 1
            End If
        Else
            '在worklog表内更新数据
            mrwl!loginoutdate = Date
            mrwl!loginouttime = Time
            mrwl!Status = "下班"
            mrwl.Update
            mrwl.Close
            End
        End If

优化2:注册时,必须充够50元才有资格成为会员
这一点当时的确没有想过,因为会有一些用户只是想上两个小时的机,但却注册会员用户以达到优惠的目的,最后再退卡。这就属于软件逻辑问题。
在这里插入图片描述
在这里插入图片描述

Private Sub comboType_Click()
    If comboType.Text = "固定用户" Then
        i = 1
    Else
        i = 0
    End If
End Sub
Private Sub cmdOK_Click()
......(省略)
'判断固定用户时,是否低于50元
        If i = 1 Then
            If Trim(txtCash.Text) < 50 Then
                Label21.Caption = "固定用户至少充值50元!"
                Exit Sub
                txtCash.SetFocus
            End If
        End If
End Sub 

优化3:若要退卡,必须消费够40元才可以退卡
这条同样是对某些别有用心的用户采取的限制。而且这样一来二去对网吧的收入也是一种很大的影响。反正你不用电脑了之后下机就行了,剩下的钱我们帮你保管就是了(笑)

Private Sub cmdOK_Click()
......(省略)
'判断该用户上机是否消费满40元
        txtSQL = "select sum(consume) from line_info where cardno='" & Trim(txtCardId.Text) & "'"
        Set mrl = ExecuteSQL(txtSQL, MsgText)
                        
        If mrl.Fields(0) < 40 Then
        	Label3.Caption = "该用户上机未满40元,不可退卡!"
        	txtCardId.Text = ""
        	txtCardId.SetFocus
        	Exit Sub
 ......(省略)
 End Sub

优化4:学生基本信息维护:选定查询字段名时,当选择卡号等可比较大小的条件时,操作符中出现“=” “<” “>” “<>”四种操作符;而当选定姓名、性别等无法比较大小的条件时,操作符中删去"<" ">"操作符。
在这里插入图片描述在这里插入图片描述

Private Sub comboFields1_Click()
    '当查询条件改变时,combosign控件内的符号也发生变化
    If comboFields1.Text = "姓名" Or comboFields1.Text = "性别" Or comboFields1.Text = "系别" Then
        comboSign1.Clear
        comboSign1.AddItem "="
        comboSign1.AddItem "<>"
    Else
        comboSign1.Clear
        comboSign1.AddItem "="
        comboSign1.AddItem "<"
        comboSign1.AddItem ">"
        comboSign1.AddItem "<>"
    End If
End Sub

优化5:学生上机统计信息查询中,查询内容增加日期格式限定
在这里插入图片描述

Dim i As integer

Private Sub comboFields1_Click()
    '当查询条件改变时,combosign控件内的符号也发生变化
    If comboFields1.Text = "姓名" Then
        i = 0
        Label6.Caption = ""
        comboSign1.Clear
        comboSign1.AddItem "="
        comboSign1.AddItem "<>"
    Else
        If comboFields1.Text = "卡号" Or comboFields1.Text = "消费金额" Or comboFields1.Text = "余额" Then
            i = 0
            Label6.Caption = ""
            comboSign1.Clear
            comboSign1.AddItem "="
            comboSign1.AddItem "<"
            comboSign1.AddItem ">"
            comboSign1.AddItem "<>"
        Else
            i = 1
            Label6.Caption = "你已经选择日期或时间格式,请按照yyyy-mm-dd/hh:mm:ss格式填写日期或时间!"
            comboSign1.Clear
            comboSign1.AddItem "="
            comboSign1.AddItem "<"
            comboSign1.AddItem ">"
            comboSign1.AddItem "<>"
        End If
    End If
End Sub
Private Sub cmdInquire_Click()
......(省略)
'如果选择了日期格式
        If i = 1 Then
            '若日期格式不正确
            If Not IsDate(txtFind1.Text) Then
                Label7.Caption = "日期格式有误!请重新填写!"
                Exit Sub
                txtFind1.SetFocus
            End If
        End If
......(省略)
End Sub

优化6:小数点精度问题
语法举例:
mrcl!consume = Format(txtCostMoney, “0.0”)

以上就是本次优化的主要问题,期待自己之后下一个学习项目

猜你喜欢

转载自blog.csdn.net/Marshallren/article/details/83930437