1. 程式人生 > >【機房收費系統】——上機下機

【機房收費系統】——上機下機

前言

  上下級是機房收費系統最基本的操作,沒有上下機,以後的操作都是根據上下機操作的以及為上下級服務的,所以我們需要在弄機房的時候,首先要對這個操作思路整理清楚!

上機

  上機就是你去網咖去了,在網管那裡刷一下身份證,挑選自己的機子,然後輸入身份證號,密碼,進入主介面,此時,系統開始計時,同時在使用者介面,你也可以看到餘額、上機時間等一系列你帳號的資訊!

  我們的機房收費系統的上機簡單來說就是三部:Judge,Input,Output!(相對而言比較簡單)

  簡單清晰的流程圖奉上

這裡寫圖片描述

下機

  下機與上機相對,就是你玩完了,準備回家了,結一下賬,要不繫統還是會給你計算著時間,下次來的時候,你的網費就不翼而飛了!
(這裡有個小故事,我想和大家說一下,之前我可喜歡上網了,有一次去網咖,身份證裡沒有錢了,我於是就衝了好多(因為衝的多送的也多嘛),可是回家的時候,不知道是我沒有結賬還是那臺機子有問題,就沒有下機,過了兩天我去的時候,我衝的錢都沒了!服了服了,如果是那個收費系統的問題,我這個消費者算是被坑慘了,所以大家一定要把自己的下機過程理好,不要坑消費者)

  下機和上機的步驟大致差不多,多的就是金錢和時間的計算(時間就是金錢嘛)!

  廢話不多說,流程圖奉上!
這裡寫圖片描述

  時間和金錢計算的程式碼奉上!
  定義一些變數用於儲存資料

    Dim intlinetime As Integer  '儲存實際線上時間
    Dim intconsume As Single
    Dim curconsume As Single    '儲存真正花費錢的時間
    Dim curbalance As Single    '儲存使用者的餘額

    Dim fixedunit As Single     '儲存單位金額
    Dim temunit As
Single '儲存單位時間 Dim a As Integer Dim remaincash As Single

  進行計算

        '線上時長計算
       intlinetime = (Date - DateValue(mrc1!onDate)) * 1440 + (Hour(Time) - Hour(TimeValue(mrc1!ontime))) * 60 + (Minute(Time) - Minute(TimeValue(mrc1!ontime))) 
        '時間單位為分鐘        
        '獲得基本表的資料
        txtsql3 = "select * from Basicdata_Info"
Set mrc3 = ExecuteSQL(txtsql3, msgtext) 'mrc3連線basicdata表 mrc3.MoveLast '單位時間的費用 (把固定使用者,臨時使用者單位時間的費用分別賦值給費用) fixedunit = Val(mrc3.Fields(0)) '把固定使用者的金額賦值給變數 temunit = Val(mrc3.Fields(1)) '把臨時使用者的金額賦值給變數 '判斷線上時間是否小於準備時間,若小於則 消費金額=0 If intlinetime <= Val(Trim(mrc3.Fields(4))) Then txtofftime.Text = "0" Else '判斷線上時間是否小於最低消費時間,若小於則為0 If intlinetime < Val(Trim(mrc3.Fields(3))) Then txtctime.Text = "0" End If End If '線上時間大於單位時間,就按有幾個單位時間算,分為固定使用者和臨時使用者 If intlinetime >= Val(Trim(mrc3!leastTime)) And intlinetime And Trim(mrc!Type) = "固定使用者" Then a = Int(intlinetime / Val(Trim(mrc3!unitTime))) If a = intlinetime / Trim(mrc3!unitTime) Then curconsume = a Else curconsume = a + 1 End If txtcash.Text = Val(curconsume) * Val(fixedunit) 3 If txtcash.Text = "" Then txtcash.Text = "0" Else If intlinetime >= Val(Trim(mrc3!leastTime)) And intlinetime And Trim(mrc.Fields(14)) = "臨時使用者" Then a = Int(intlinetime / Val(Trim(mrc3!unitTime))) If a = intlinetime / Trim(mrc3!unitTime) Then curconsume = a Else curconsume = a + 1 End If txtcash.Text = Val(curconsume) * Val(temunit) End If End If '更新student表 txtsql = "select * from student_Info where cardno='" & Trim(txtcardno.Text) & "'" Set mrc = ExecuteSQL(txtsql, msgtext) remaincash = mrc!cash - Val(txtcash.Text) mrc.Fields(7) = remaincash mrc.Update mrc.Close

後語

  希望對大家有所幫助!