機房收費系統系列四 上下機

2022-08-02 01:30:13 字數 4472 閱讀 6170

在機房收費系統中,上下機這邊花了不少的時間去做它,主要原因是沒有理清思路,一股腦的就做起來了,上機挺好做的,到了下機,做完以後傻眼了,這才發現不對著呢……為了避免這種情況,在做上下機的時候首先理清思路,不要著急著寫**,磨刀不誤砍柴工,下面說說我對上下機的認識.

上機

首先是上機的流程圖

然後是針對每個流程進行的分析和部分**。如果對流程分析清楚,**就好寫了。

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

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 <= leasttime then

txtconsume.text = 1

'txtcash.text = mrc.fields(7) - trim(txtconsume.text)

elseif usetime <= pretime then

'第一種情況 消費時間小於準備時間,消費金額為0

usecash = 0

txtconsume.text = usecash

else

'遞增時間段消費的金錢,以半小時的費用為計算基礎

unitcash = format((halfcash / 30) * unittime, "0.0")

'第二種情況 當消費時間小於最小上機時間 按乙個遞增時間段收費

if usetime <= leasttime then

usecash = unitcash

txtconsume.text = unitcash

else

'第三種情況 最後求出的unitnumber為遞增時間段的個數

usetime = usetime - pretime

unitnumber = usetime mod unittime

if unitnumber = 0 then

unitnumber = int(usetime / unittime)

else

unitnumber = int(usetime / unittime) + 1

end if

usecash = format(unitnumber * unitcash, "0.0")

txtconsume.text = usecash

end if

end if

計算現有金額:

txtsql = "select * from student_info where cardno='" & txtcardno & "'"

set mrc = executesql(txtsql, msgtext)

'獲得原來的餘額

totalcash = mrc.fields(7)

'計算消費後的餘額

totalcash = totalcash - val(trim(txtconsume.text))

'更新餘額

mrc.fields(7).value = totalcash

mrc.update

mrc.close

txtcash.text = totalcash

6、將這些資訊更新到主介面對應的文字框中,上機人數也要更新。7、更新基本資訊表(student_info表)上下機這裡主要是邏輯上的思考,把思路理清以後就能做好。在機房收費系統中,不僅僅是上下機,結賬,組合查詢等等都體現了邏輯的重要性,對要實現的功能有個全域性把握,再把它分解,這樣一點點的進行,就可以把它做好。

機房收費系統 上下機

最近大家都在進行機房收費系統,看大家的部落格,基本上都是先理清思路再實現功能,回想自己當時做的時候就不夠好,只是盲目的敲 卻忽略了方向比努力更重要這個道理,導致最後出現了很多漏洞,於是又重新畫了一遍上下機的流程圖,希望能對以後機房的學習有幫助。上機 只要思路清晰,具體的 實現很簡單。下機 下機需要計...

機房收費系統 上下機

在 上機下機中 主要是要想到所有在上機中可能發生的事件 並作出相應的對策 確保使用者可以成功的上機 下 機。上機 卡號是否位數字,需要判斷卡號是否存在,卡內餘額是否充足,卡號是否正在被使用。首先 查詢資料庫 中的student表 判斷卡號是否存在,且 處於可使用狀態 如果均符合以上要求 那麼就要檢視...

機房收費系統 上下機

前言 這兩個窗體 邏輯基本類似,開始正文 邏輯圖 重要 展示 從下機來說下機時間的確定是乙個承上啟下的作用 basicsql select from basicdata info 連線基本資料表 set basicmrc executesql basicsql,basictext if online...