機房收費系統 再回首

2021-07-04 04:43:48 字數 3498 閱讀 8852

機房收費系統陸陸續續都要結束了,回顧自己敲機房的經歷,一路上真的收穫了不少。

技術篇

在實現功能的時候,有的東西以前接觸的不是很多,像資料匯出到excel,組合查詢,做報表等等,不過我們還是通過自己的思考和網路上的知識做到了。下面就具體分享一些具體的小細節

1.下手之前多乙份思考

if instr("insert,delete,update", ucase$(stokens(0))) then

cnn.execute sql

msgstring = stokens(0) & "query successful"

else

set rst = new adodb.recordset

rst.open trim$(sql), cnn, adopenkeyset, adlockoptimistic

set executesql = rst

msgstring = "查詢到" & rst.recordcount & "條記錄"

end if

在**中也寫到了關於insert,delete的內容,所以我們在遇到一些能使用update,delete 或是 insert 語句的時候,也可以試著直接使用一些這個語句。

比如說在新增和刪除使用者的窗體中,想要刪除某乙個使用者,就可以這麼寫

txtsql = "delect user_info where "

call executesql(txtsql, msgtext)

新增乙個新使用者時

txtsql = "insert into user_info values('" & txtuser.text & "','" & txtpwd.text & "','" & combouserlevel.text & "','" & txtname.text &  _                          "','" & head &  "')"

call executesql(txtsql, msgtext)

更新某個使用者資訊

txtsql = "update user_info set userid = ' "

call executesql(txtsql, msgtext)

這樣就省去了很多**,而且節省了很多時間,還避免了插入的資料跟資料庫中的字段不對應的錯誤。

2.對功能不斷完善

以註冊使用者資訊為例,

首先註冊卡號為 「1011」的使用者,使用者資訊為張三的個人資訊,用了一段時間,張三退卡了,那麼1011這個卡號還可以再次註冊,而且使用者資訊為李四的資訊,這樣的情況可以嗎?

這個問題說明我們的程式還不夠完善,所以可以多加一些限定條件,比如說

txtsql = "select * from student_info where cardno= '" & trim(txtcardno.text) & "'"    '查詢卡號

set mrc = executesql(txtsql, msgtext)

if mrc.eof = false then

if trim(mrc.fields(10)) = trim("不使用") then 』判斷是否已經退卡

a = msgbox("此卡已登出,是否要啟用?", vbyesno + vbquestion, "提示") '如果已退卡,詢問是否要啟用

if a = vbyes then

txtsql = "update student_info set status= '" & trim("使用") & "' where cardno = '" & txtcardno.text & "'"

call executesql(txtsql, msgtext)

exit sub

end if

end if

end if

通過以上**也可以看出,在這中條件下,卡號和使用者是一對一的關係。當然還有其他的處理方法,這只是其中一種,我覺得只要合理就可以。

3.多次重複的**該怎麼辦

物件導向的乙個好處就是封裝好的物件可以服用,我們在敲**的時候,不妨也可以這麼想,如果一段**總是重複實現,是不是可以寫成乙個公共的函式來呼叫呢?

比如說想要清空註冊窗體中的內容,是直接就寫  text1.text = " "  呢,還是有其他更好的辦法。這是在賈文靜同學的部落格中看到的一種辦法

for each ctrl in me.controls

if typeof ctrl is textbox then

ctrl.text = ""

end if

next

這裡用了乙個迴圈語句,就做到了,而且還避免了遺漏某些文字框的可能。

還有就是在優化的時候,比如說註冊使用者時班級填錯了

首先是txtclass. setfocus,

然後是txtclass.selstart = 0

txtclass.sellength = len(txtcardno.text)

其中每乙個資訊都有可能填錯,所以也可以把這幾行**拿出來單獨定義為乙個函式再呼叫。

程式中還有很多細節值得我們去思考,去優化,我們可以做的更好。

經驗篇

1.just  to do it

記得剛開始敲機房的時候,就乙個登陸窗體就做了好幾天,**檢查了一遍又一遍,就是登陸不了,再加上這是第一次自己敲**,很受挫,就覺得自己做不下去了,就因為這個還跟**聊了一晚上,於是又有不得不再繼續進行,這不自己也做出來了嗎!所以有時候不能因為一點點困難就想到要放棄,沒有什麼事是過不去的,世上無難事,只要肯登攀!

2.學習生活化

一開始接觸機房,我們肯定對這個系統不是很了解,尤其是像一般使用者,操作員,管理員的職能範圍還不同,所以我們可以靜下來想想,生活中的很多地方都跟我們這個很相似,就像咱們圖書館的上機系統。

咱們去圖書館上網,在屋裡的老師就相當於一般使用者,可以執行一些簡單的查詢功能。當我們的卡里餘額不足時,就得去新圖書館找專門的老師充值,這個老師就相當於我們的操作員,可以註冊,對使用者充值,並執行一些相應的查詢。再高一級的負責人就相當於管理員,可以新增,刪除工作人員,像一般使用者,操作員,管理員等,並對相應的資料進行結賬,日結賬單反映了一天的收益情況,周結賬單的記錄就反映了一周的收益情況,管理者可以根據這一周的情況進行分析,並對接下來的工作作出指導。

我們也可以把這個系統和網咖的收費聯絡對比,也可以是其他的,不管怎麼理解,合理就好。

下面是對機房整體的回顧,還有每個窗體中用到的資料庫中的表,有的窗體中乙個功能就可能用到三四張表,所以要好好分析分析,乙個都不能落下。

裡面的資訊可能還有不完善的地方,還請大家多多指教。

linux 再回首 關於程序

1 全格式顯示系統中所有的程序資訊 ps ef 全格式顯示系統中所有的程序資訊 uid pid ppid c stime tty time cmd root 1 0 0 aug14 00 17 46 usr lib systemd systemd system deserialize 22 root...

再回首 回文字串

最長回文串 include include include define maxn 500 char buf maxn s maxn buffer 緩衝區 int p maxn int main 上述toupper函式如果c為小寫英文本母,則返回對應的大寫字母 否則返回原來的值 也就是在這個轉換的過...

再回首 我的自考之路

在寫這篇部落格之前,我翻看了去年寫的自考總結,結合這次自考的收穫,決定再次深刻的認識一下我們的自學考試。經濟基礎決定上層建築,思想的高度決定部落格的質量,對自考的認識態度決定自考的學習效果。我打算從學習思想 學習方法和總結三個方面來分析自考。俗話說得好,磨刀不誤砍柴工,解決了思想上的問題,扔掉套在我...