詳細設計說明書——機房收費系統
詳細設計說明書
1引言
1.1編寫目的
編寫詳細設計說明書的目的是讓開發人員對系統的設計方面有更全面和準確的開發,便於開發人員對系統有細緻的瞭解,從而使系統的功能性更強,更加適合使用者需求。預期讀者為系統程式設計師。
1.2背景
A. 機房收費系統;
B. 任務提出者:米新江老師;
開發者:廊坊師範學院資訊科技提高班十期石朝翠;
使用者:廊坊師範學院機房管理教師;
計算中心:廊坊師範學院11教4樓5樓,舊圖書館電子閱覽室;
C. 機房收費系統同學生資訊管理系統有著密切聯絡,並且這款軟體主要是圖書館管理員及相關教師所用,因此與圖書館的管理機構有著一定的聯絡。
1.3定義
TGB:提高班的首字母大寫;
SQ:十期首字母大寫;
04:第四塊學習內容;
機房收費系統:一款針對機房的收費軟體。
1.4參考資料
1. 胡陽,《機房收費系統v1.0》,2010.08.10,廊坊師範學院。
2. 石朝翠,《學生資訊管理系統》,2013.09.22,廊坊師範學院。
3. 米新江,《資訊科技提高班培養計劃》,2013.11.28,廊坊師範學院。
2程式系統的結構
這部分內容將會以一系列圖表列出本程式系統內的每個程式(包括每個模組和子程式)的名稱、識別符號和它們之間的層次結構關係。
模組 |
子程式 |
識別符號 |
關係 |
JiFangModule |
新增刪除使用者 |
frmAdd_Delete_user |
新增使用者包含在新增刪除使用者中 |
新增使用者 |
frmAddUser |
||
進入系統 |
frmLogin |
||
修改密碼 |
frmModifyPwd |
||
基本資料設定 |
frmBasicData |
基本資料設定是其他表的基礎 |
|
上機記錄表 |
frmAllOnlineRecord |
||
日結賬單 |
frmCheckDay |
||
周結賬單 |
frmCheckWeek |
||
結賬 |
frmCheckOut |
||
上機狀態檢視 |
frmOnlineState |
||
主介面 |
frmMain |
與學生有關係 |
|
學生基本資訊維護 |
frmStuInfoSafe |
||
充值 |
frmRecharge |
||
退卡 |
frmReturncard |
||
充值記錄 |
frmReChargeRecord |
||
註冊 |
frmRegister |
||
關於 |
frmAbout |
系統的說明 |
|
說明 |
frmInstruction |
||
操作員工作記錄 |
frmWorkerRecord |
使用者工作記錄 |
|
教師工作記錄 |
frmWorkTeacher |
3操作員—註冊(frmRegister)設計說明
3.1程式描述
該程式有操作員來對學生註冊,目的是為學生註冊資訊,以便學生上機。
3.2功能
操作員通過對學生進行註冊,系統自動將學生的資訊儲存到資料庫中,方便後期該學生上機時系統記錄該學生的上機情況,包括上機上機,上機時的餘額。方便後期需要時進行查詢。
3.3效能
對該程式的效能要求,如圖所示:
3.4輸入項
這裡只列出一些比較常用的欄位:
3.5輸出項
輸出項如圖所示:
3.6演算法
在該程式中,暫無演算法的要求。
3.7流程邏輯
3.8介面
該程式無需與其他軟體或程式模組有介面。
3.9儲存分配
在註冊完資訊後,系統會自動將某個註冊學生的資訊儲存到資料庫中的stu_info表中。
3.10註釋設計
在模組首部註釋如下:
'*************************************************************************
'**模 塊 名:機房收費系統 - 註冊
'**說 明:資訊提高班十期 版權所有2012 - 2013(C)1
'**創 建 人: 石朝翠
'**日 期:2012-09-14
'**修 改 人:
'**日 期:
'**描 述:金額的對應,檢視學生餘額窗體的出現
'**問 題:
'**版 本:V1.0.0
'***********************************************************
在各分支點的註釋:
1、'功能:子窗體能夠單獨顯示,而不是隱藏在picture後
Call SetParent(Me.hWnd, frmRegister.hWnd)
Me.WindowState= 2
2、'如果輸入相同卡號,則重新輸入,否則連線資料庫中的student表,賦值
If mrc.BOF = False Then
MsgBox "卡號重複,請重新輸入!", vbOKOnly + vbExclamation, "警告"
mrc.Close
txtCardnum.SetFocus
Exit Sub
3、'判斷輸入的內容是否為數字
Private SubtxtCardNum_KeyPress(KeyAscii As Integer)
'按backspace鍵刪除字元
If KeyAscii = 8 Then Exit Sub
'判斷輸進去的字元是否在0-9之間,如果不是,則遮蔽掉,0的ascii碼是48
If KeyAscii < 48 Or KeyAscii > 57Then KeyAscii = 0
End Sub
3.11限制條件
1、資訊需填滿
2、卡號有限制,必須為數字,不能超過20個
3、充值金額不可填
3.12測試計劃
輸入某個學生的資訊,開啟SQL server,檢查該學生的資訊是否儲存在stu-info表中。
3.13尚未解決的問題
無
4 上機(online)設計說明
4.1程式描述
該子程式是為了便於使用者讓學生上機,這一子程式是整個系統中的主打曲。當某個學生輸入卡號後,程式會自動儲存該學生的相關資訊到相應資料庫中,並且可多人上機,最後對這些資訊進行批處理到資料庫中。
4.2功能
輸入卡號 |
點選“上機按鈕”或按enter鍵 |
卡號 |
學號 |
||
系別 |
||
型別 |
||
姓名 |
||
性別 |
||
上機日期 |
||
上機時間 |
||
餘額 |
||
顯示當前上機人數 |
4.3效能
該程式的效能要求如下:
4.4輸入項
4.5輸出項
4.6演算法
如果某個學生的卡內剩餘金額不足10元,則禁止上機。
4.7流程邏輯
4.8介面
在該程式中,如果有條件的話,使用刷卡閱讀器。如:
HEC-702U磁卡查詢機廣泛用於銀行、稅務、股市、商檢、郵電等行業的磁卡資訊的讀取及傳送。
◆採用電話按鍵,字型永不磨損
◆工作狀態聲、光雙重指示
◆支援雙向劃卡,高低速劃卡
◆磁卡標準: ISO7811-7815
◆譯碼方式:F2F(FM)
◆拉卡速度:10-120cm/s
◆磁頭壽命:﹥60萬次
◆輸出介面:USB介面
4.9儲存分配
在點選上機或按enter鍵上機後,系統會自動將該學生的相關資訊儲存到資料庫中online表和line表中,以便下機計時收費時使用。
4.10註釋設計
1、加在模組首部的註釋:
'*************************************************************************
'**模組 名:機房收費系統 - 主窗體
'**說 明:資訊提高班十期 版權所有2012 - 2013(C)1
'**建立 人: 石朝翠
'**日 期:2012-09-01
'**修改 人:
'**日 期:
'**描 述:主窗體,一直完善中。。。
'**問 題:怎樣響應enter事件?
'**版 本:V1.0.0
'************************************************************************
2、各分支點的註釋:
'從student表中獲得能使用的卡號及餘額
txtSQL_stuinfo = "select * from Stu_Info where cardNum = '"& Trim(txtCardnum.Text) & "'and status = '使用'"
Set rst_stuinfo = ExecuteSQL(txtSQL_stuinfo, MsgText2)
'判斷此卡是否註冊,如未註冊,提示,反之,則在文字框中顯示相應資訊
If rst_stuinfo.EOF Then
MsgBox "該卡號未註冊!", vbOKOnly + vbExclamation, "警告"
txtCardnum.Text = ""
txtCardnum.SetFocus
Exit Sub
End If
'開啟online表,新增上機記錄
txtSQL_online = "select * from onLine "
Set rst_online = ExecuteSQL(txtSQL_online, MsgText1)
With rst_online
.AddNew
.Fields("cardNum") = rst_stuinfo.Fields("cardNum")
.Fields("cardType") = Trim("固定使用者")
.Fields("stuNum") = rst_stuinfo.Fields("stuNum")
.Fields("stuName") = rst_stuinfo.Fields("stuName")
.Fields("stuDepart") =rst_stuinfo.Fields("stuDepart")
.Fields("sex") = rst_stuinfo.Fields("stuSex")
.Fields("onDate") = Trim(Date)
.Fields("onTime") = Trim(Time)
.Fields("computer") = VBA.Environ("computername")
End With
3、對使用的邏輯所加的註釋:
Dimflag(0) As Boolean '邏輯判斷
4.11限制條件
由於資金有限,無法使用磁卡閱讀器來自動刷卡。
4.12測試計劃
暫無對該程式的測試計劃
4.13尚未解決的問題
暫無對該程式的測試計劃
5下機(Line)設計說明
從本章開始,逐個地給出各個層次中的每個程式的設計考慮。以下給出的提綱是針對一般情況的。對於一個具體的模組,尤其是層次比較低的模組或子程式,其很多條目的內容往往與它所隸屬的上一層模組的對應條目的內容相同,在這種情況下,只簡單地說明。
5.1程式描述
該模組是整個程式的又一重要功能。在點選下機後,系統會自動將某個上機學生的時間和費用顯示在主介面中,併為最後的結賬做好鋪墊。
5.2功能
輸入卡號 |
點選“下機”按鈕或enter鍵下機 |
輸出下機日期 |
輸出下機時間 |
||
輸出消費時間 |
||
輸出消費金額 |
||
輸出餘額 |
5.3效能
該程式的效能要求如下:
5.4輸入項
5.5輸出項
5.6演算法
此程式的演算法較複雜。
1、 關於消費時間:
至少上機時間為10分鐘,否則不可下機;
準備時間為10分鐘,小於10分鐘的不收費。
2、 關於消費金額:
固定使用者半小時費用為1元;
學生上機時間小於準備時間的不收費;
學生上機時間大於準備時間小於半小時的按半小時收費;
學生上機時間大於半小時的按遞增單位時間的要求來收費。
5.7流程邏輯
5.8介面
該程式暫無介面
5.9儲存分配
教師在點選下機按鈕時,系統會自動將學生的相關資訊儲存到資料庫online表中。
5.10註釋設計
1、加在模組首部的註釋:
'**********************************************************************
'**模 塊 名:機房收費系統 - 主窗體
'**說 明:資訊提高班十期 版權所有2012 - 2013(C)1
'**創 建 人: 石朝翠
'**日 期:2012-09-01
'**修 改 人:
'**日 期:
'**描 述:主窗體,一直完善中。。。
'**問 題:怎樣響應enter事件?
'**版 本:V1.0.0
'***********************************************************************
2、 加在各分支點的註釋:
'下機,先顯示下機日期,時間,消費金額,餘額,然後給line表新增記錄
Private SubcmdOutline_Click()
Dim rst_stuinfo As ADODB.Recordset
Dim txtSQL_stuinfo As String
Dim MsgText1 As String
Dim rst_online As ADODB.Recordset
Dim txtSQL_online As String
Dim MsgText2 As String
'下機日期和時間為系統時間
.Fields("offDate") = Date
.Fields("offTime") = Time
'消費時間=下機時間-上機時間-準備時間
offTime = Time
onTime =Format(rst_online.Fields("onTime"))
txtSQL_basdata ="select * from BasData_Info"
Set rst_basdata =ExecuteSQL(txtSQL_basdata, MsgText4)
preTime =rst_basdata.Fields("preTime")
costTime =DateDiff("n", Trim(onTime), Trim(offTime))
.Fields("consumeTime") = costTime
'消費金額
'自定義固定使用者小時費用為fixedrate
fixedRate =Val(rst_basdata.Fields("Rate"))
increaseTime =Val(rst_basdata.Fields("untilTime"))
If Trim(costTime) <preTime Then
costMoney = 0
ElseIf Trim(costTime) <30 Then
costMoney = fixedRate
Else
costMoney = fixedRate +Int((costTime - 30) / increaseTime + 1) * (increaseTime / 30 * fixedRate)
End If
.Fields("consumeMoney") = costMoney
'餘額資訊
charge=Val(Trim(rst_stuinfo.Fields("stuCash"))) -Val(Trim(rst_line.Fields("consumeMoney")))
.Fields("cash") = charge
.Fields("status") = Trim("正常下機")
.Fields("computer") = VBA.Environ("computername")
.Update
End With
5.11限制條件
由於技術限制,還未做好強制下機這一功能。
5.12測試計劃
暫無測試計劃
5.13尚未解決的問題
強制下機的功能,測試計劃的制定。