優化
在做下機的時候,要考慮到強制下機的問題,如果我卡裡面只有30元,卻玩了40元的,那麼在下機餘額就是負的了,這時候再去充值就不合理了,所以我加了乙個動態顯示餘額和強制下機的功能,我的動態計算是15分鐘計算一次的,涉及到小數點,一分鐘扣除一次誤差可能比較大,所以就以15作為一次扣費單位
思路動態顯示
消費時間,消費金額和餘額不斷變化
消費時間每一分鐘都在變化
消費金額每15分鐘扣除一次
餘額每15分鐘扣除一次
強制下機
當餘額低於15分鐘的收費金額的時候,提示金額不足,強制下機
小知識點
1.timer事件如何能夠用15分鐘執行一次操作
vb中timer的間隔最大為65535ms,不能通過直接設定interval來使他15分鐘執行一次計算
需要用到下列**來實現每隔15分鐘timer響應一次:
private sub form_load()
timer1.interval = 60000 '每分鐘觸發一次
end sub
private sub timer2_timer()
static icount as integer
icount = icount + 1
if icount =15 then
icount = 0 』重新開始計時
'每15分鐘觸發一次的**
end if
end sub
2. 如何每隔15分鐘計費一次
alltime---總消費分鐘數
rate---一小時的費用
unitmoney---15分鐘的費用
unitmoney =1/4 * rate
消費分鐘數為15的倍數的(可以被整除):
消費金額=(alltime/15) * unitmoney
消費分鐘數不是15的倍數的:
消費金額=((fix(alltime/15)+1)) * unitmoney
fix(x)函式是乙個取整函式,就相當於直接去掉x後面的小數點
例如:fix(5.8)=5
fix(0)=0
fix(-1.2)=-1
3.餘額不足強制下機時呼叫下機**,將下機**進行封裝
if val(txtbalance.text) <= unitmoney then
msgbox "卡號:" & username & ",餘額不足,即將下機", 0 + 48, "提示"
'呼叫下機**
call offline(username)
exit sub
end if
'判斷餘額是否低於最低充值要求
if val(txtbalance.text) <= unitmoeny + 1 then
msgbox "卡號:" & username & ",餘額不足,請先充值!", 0 + 48, "提示"
end if
機房收費系統下機之動態顯示餘額和強制下機(2)
機房收費系統下機之動態顯示餘額和強制下機 2
機房收費系統下機之動態顯示餘額和強制下機 1 封裝下機 public function offline cardno as string dim mrcline as adodb.recordset dim mrcbasic as adodb.recordset dim mrccash as ado...
機房收費系統之動態重新整理下機
在網咖上網,卡里沒錢就要系統強制下機.怎麼辦?這是我用到timer1控制項,timer1重要的屬性是interval.但lnterval有範圍限制,不過我可以通過函式來調節大小.在這裡不用,你可以隨便什麼時候重新整理.我還用到動態陣列redim redim 在有些時候不知道需要多大的陣列,就可以使用...
機房收費系統 下機
有了上機的思路,下機當然也就很簡單了,不過總是要比別人多想一步,這樣你就能夠比別人更加的優秀。下機的流程圖 下機的注意事項 txtontime.text trim mrc3.fields 7 txtdowndate.text format now yyyy mm dd txtdowntime.tex...