1. 程式人生 > >機房收費系統-優化

機房收費系統-優化

前言:機房收費系統的基本功能已經完成,而在之前的第一遍驗專案時,師傅給了我一些建議:**除了保證產品功能的嚴謹,還要足夠考慮受眾群體的需求和體驗。**這句話真的是受益匪淺。

優化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
 ......(省略)

優化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
'如果選擇了日期格式
        If i = 1 Then
            '若日期格式不正確
            If Not IsDate(txtFind1.Text) Then
                Label7.Caption = "日期格式有誤!請重新填寫!"
                Exit Sub
                txtFind1.SetFocus
            End If
        End If

優化6:小數點精度問題 語法舉例: mrcl!consume = Format(txtCostMoney, “0.0”)

以上就是本次優化的主要問題,期待自己之後下一個學習專案