那些年我們一起敲過的機房收費系統——完結篇

引言

   不知不覺,我在機房收費系統上耗的時間也有兩個月多了,很尷尬,就像我們的故事一樣,摻雜了太多感情在裏面了,但是地球總還是要轉的,明天早上太陽依然還是要升起的,所以這件事還是要有個完結的,所以今天我們就再此寫下此完結篇,臨表嗟嘆,了卻此間恩怨。

細想一下,經過兩個月的機房經歷,我到底學到了什麼,慢慢的羅列一下還是有不少東西呢。從學生管理系統到機房收費系統,從一無所知到知道軟件編程的原理,我走過了從普通走向入門的過程了,同時也走過了整整一個夏天。

當第一次看到機房收費系統的時候,我的感覺就是在做以前網吧的收費系統,上網的人就是一般用戶,分爲會員與非會員,他們的級別比較低,他只能進行一些基本的查詢的事情或者最基本的修改密碼的事情。當他們不想上網了了,但是身份證裏還有錢呢,我們可以找網管(操作員或者管理員)去退卡退錢,也可以留着下回用。管理員就相當網管,他可以進行基本的信息查詢增刪改查,但是對於錢方面的還要是boss來操作,這裏的boss就相當於管理員,管理員的權限是最高的,他就相當於圖書館裏級別比較大的管理者。他可以通過結賬瞭解一段時間內網吧的收入情況,以及上網人員上機的費用是怎麼算的,他需要首先設定一個基本數據。他可以增刪改查。

   下面呢,我們先來看一張圖來整體的瞭解一下機房收費系統的整體結構以及他與數據庫之間的關係。


 

從這個圖上我們看出來機房的整體架構以及每個窗體索要用到的數據表,所以之後的一切都是依照這個圖來進行。

   按照軟件工程上說得,就是我們有了圖以後呢,就是寫文檔,理清思路,所以下一步我們就一個窗體一個窗體來理思路。

思路分析  

    ㈠登錄窗體:判斷是否有該用戶、輸入的密碼是否正確,如果判斷結果爲真,則判斷登錄者的身份,根據登錄者的身份,限制主窗體菜單欄中某菜單項的使用情況。

    ㈡一般用戶操作:

(1)學生查看餘額:首先判斷輸入的卡號是否爲空,是否爲數字,如果判斷結果爲真,查詢student_info,判斷是否有該用戶,如果沒有,提示註冊,否則,把查詢到的內容顯示到文本框中。

(2)學生查看上機記錄:首先判斷輸入的卡號是否爲空,是否爲數字,如果判斷結果真,查詢Line_Info,判斷是否有該用戶,如果沒有,提示重新輸入卡號,否則,把查詢到的內容顯示到MSFlexGrid控件中。導出Excel:判斷是否有記錄,如果沒有進行提示,如果有,則把MSFlexGrid控件中的數據導入到excel中。

(3)學生充值記錄查看:

檢測卡號和金錢的輸入
   1.1 首先輸入卡號(檢查輸入卡號是否存在以及是否爲數字。若不存在不爲數字,提示並請重新輸入,
        從student_info中調去信息判斷卡號是否存在,若該卡號存在,下一步)    
   1.2 輸入充值金額,
         從basicdata_info中調去數據   充值金額不能小於最小充值金額,
單機確定按鈕充值成功文本框中顯示本次充值的信息,根據信息我們可以得知
   2.1 在ReCharge_info中顯示本次的充值記錄,
   2.2在student_info中更新金額總數
③文本框顯示充值信息

(4)學生上機狀態查看:

查詢:連接到學生上機統計信息查詢的窗體

顯示全部:查詢online_Info表,把裏面的信息都顯示出來

上機管理:所有學生強制下機,選中學生強制下機

退出:退出本窗體

(5)修改密碼:

判斷舊密碼與數據庫密碼是否相符,如果不符,請重新輸入舊密碼

判斷兩次密碼輸入是否不一致,如果不一致,請重新輸入新密碼

都符合以後,修改數據庫,把新密碼賦給數據庫中的密碼字段

窗體加載的時候顯示當前用戶的名稱。

㈢操作員操作:

(1)註冊:

查找:查詢學生查看餘額窗體,

清空:把窗體上顯示的內容都清空

存盤:判斷每一個輸入框都不得爲空,並且判斷充值金額不能低於設置的最小金額,然後查詢student_info,先判斷是否有相同記錄,如果有請重新輸入,如果沒有,根據所要添加的項往數據庫中添加東西,註冊成功。

退出:退出本程序

(2)充值:

首先判斷卡號和充值金額不得爲空,並且判斷充值金額需要爲數字

然後查詢student_info表,先判斷該卡號是否存在並且爲正在使用的卡號

查詢basicdata_info表,輸入的金額和其表中的最小金額相比較,判斷輸入金額不得小於最小金額

更新recharge表中的數據,更新student表中的最新餘額,並且在顯示框顯示相關信息。

(3)退卡:

首先判斷卡號不得爲空,並且判斷卡號需要爲數字

查詢student_info表,判斷卡號是否存在,是否正在使用

查詢online_info表,判斷卡號是否正在上機,上機的卡號不得退卡

更新cancelcard_info表中的數據,更新student表中的金額爲0,且狀態爲不使用

在顯示框顯示退卡的相關信息。

(4)收取餘額查詢:

首先判斷終止日期要比起始日期晚,如果判斷結果爲真

查詢ReCharge_Info表,時間在起始日期和終止日期之間

判斷有無數據,如果有數據,則把數據在MSFlexGrid控件中循環顯示出來

導出Excel:判斷是否有記錄,如果沒有進行提示,如果有,則把MSFlexGrid控件中的數據導入到excel中。

(5)金額返還信息查詢

此過程和收取餘額查詢過程一樣,只是此過程查詢的是cancelcard_info表。

(6)學生基本信息維護(組合查詢)

首先在窗體上按照要求加載控件,各個字段下的combo下拉框都是由其第一個複製粘貼得到的

查詢:

1)當組合關係下的combo3(0)裏面的內容爲空時,說明沒有組合關係,則第二行和第三行的框都爲鎖定狀態,不可用,且第一行的內容不得爲空
3、當組合關係下的combo3(0)裏面的內容不爲空時且組合關係下的combo3(1)的內容爲空時,第一行和第二行裏的查詢內容不得爲空,第三行的內容鎖定
4、當組合關係下combo3(1)的內容不爲空時,第一行和第二行和第三行的內容都不得爲空
5、查詢的是student_Info表

清空:所有的控件裏的內容爲空,且MSFlexGrid控件的內容爲空,沒有表格顯示

導出Excel:判斷是否有記錄,如果沒有進行提示,如果有,則把MSFlexGrid控件中的數據導入到excel中。

(7)學生上機統計信息查詢(組合查詢)

和學生基本信息維護的代碼思路一樣,在這裏查詢的是line_Info

(8)操作員工作記錄(組合查詢)

和學生基本信息維護的代碼思路一樣,在這裏查詢的是worklog_Info

 管理員操作:

(1)結賬:

1、通過選擇不同的操作員的用戶名,下面就會出現相應的操作員的真實姓名,並且出現其對應的工作記錄

2、購卡:訪問的是student_Info,顯示購買卡學生的信息。當我們選中一個操作員後,購卡這個選項卡里面的顯示控件,顯示的就是這個操作員註冊的並且沒有結賬的卡號的信息。

3、充值:訪問的是Recharge_Info,將選中操作員進行的所有的未結賬的充值記錄調出來。

4、退卡:訪問的是cancelcard_Info,將選中操作員進行的所有的未結賬的退卡記錄調出來

5、臨時用戶:將此操作員註冊的、未退卡的、未結賬的並且是臨時用戶的記錄調出來

6、彙總:

①把購卡、充值、退卡、臨時用戶中的信息彙總,所以這裏用到的表就比較多。有student_Info、Recharge_Info 、cancelcard_Info表

 售卡張數=購卡選項卡的記錄總數

 退卡張數=退卡選項卡的記錄總數

 退卡金額=cancelcard_Info表中的金額進行累加

 總售卡數=售卡數-退卡數

 充值金額=Recharge_Info 表中的充值金額

 臨時收費=student_info 表中臨時用戶的費用

 應收金額=(註冊和)充值金額-退卡金額

 結賬:將student_Info 、Recharge_Info、Cancelcard_Info 中的“未結賬”改爲“結賬”,需要把結賬信息添加到日結賬單和周結賬單中。

(2)刪除和添加用戶:

添加:

1)判斷各個文本框不得爲空,並且判斷兩次輸入的密碼應該一致

2)查詢User_Info表,判斷用戶名不得重複。

3)如果用戶名不重複,則往User_Info表中添加數據

刪除:

1)判斷MSFlexGrid控件的第一行不可刪除,判斷不可刪除正在登陸的用戶

2)查詢user_info表顯示出級別不同下所對應出的用戶

3)刪除的時候單擊選擇的是整行,並且所選定的單元要突出顯示

退出:退出本窗體

更新:

1)當用戶級別所對應的爲空時,更新的是所有的級別的用戶。

2)當用戶級別有所對應的用戶的時候,更新該級別的用戶。

(3)基本數據設定

修改:激活文本框

取消:退出本窗體

確定:

1)判斷各個文本框輸入的內容不得爲空,並且判斷應爲數字

2)查詢basicdata數據表,判斷數據庫中是否有內容,如果沒有內容則往數據庫中添加一條信息

3)如果有內容,則修改數據庫中的則一條內容,即仍是把文本框的內容賦給數據庫對應的項

4)在窗體結束之前把各個文本框變爲鎖定狀態

窗體的加載:各個文本框爲鎖定狀態

窗體的活動:

1)查詢BasicData_info數據表,如果數據表中沒有內容則往數據庫中加一條基本的數據

 2)如果數據表中有內容,則把該條數據的內容顯示出來

(4)正在值班教師

查詢worklog_Info表,把查詢到的內容顯示到MSFlexGrid控件中

(5)日結賬單

首先自己製作報表

在窗體加載處,實例化報表,添加報表所在的位置,報表連接數據庫

查詢checkday_info表,查看報表,顯示報表

報表的打印預覽,報表的打印

報表的更新

(6)周結賬單

周結賬單表是可以選擇起始日期和終止日期來查看最近的消費情況。
周結賬單表是一張空的表,在需要的時候才添加數據,不需要的時候就會刪除整個表中的數據。
③由於是一張空表,所以我們要添加記錄
④我們要彙總每一天的總的消費、總退卡錢數、總充值錢數。

 

代碼部分

   好了,思路清楚了,我們就要開始寫代碼,機房的代碼我們把他們分成三個部分簡單部分,

中等部分,以及困難部分,就像打怪闖關一樣,一開始先是敲簡單部分,這部分我們模仿着之前學生的

代碼就可以,一般的簡單的查詢窗體,就屬於簡單窗體,中等的呢就需要自己去查一些東西了,有些代碼是固定的比較使用的

不如說導出Excel,報表等得,最後困難部分就是需要我們根據邏輯去慢慢嘗試的代碼,比如組合查詢,周結賬,日結賬等得代碼。

代碼的總體結構都差不多,好多窗體類型一樣,還有一點就是一定要記住其中的重點代碼,也就是核心代碼。這是一個窗體的關鍵。

結言

   經過,機房收費系統的學習,我們相當於獨自完成了一個完整的應用系統,是相當厲害的事,我們對軟件的設計流程有了一個

相對完整的認識,知道怎麼去做了,那以後我們遇到類似的問題我們自己就可以去做了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章