軟件設(shè)計(jì)說(shuō)明書(shū)-圖書(shū)管理系統(tǒng)_第1頁(yè)
軟件設(shè)計(jì)說(shuō)明書(shū)-圖書(shū)管理系統(tǒng)_第2頁(yè)
軟件設(shè)計(jì)說(shuō)明書(shū)-圖書(shū)管理系統(tǒng)_第3頁(yè)
軟件設(shè)計(jì)說(shuō)明書(shū)-圖書(shū)管理系統(tǒng)_第4頁(yè)
軟件設(shè)計(jì)說(shuō)明書(shū)-圖書(shū)管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.圖書(shū)管理系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)編寫(xiě):校對(duì):審核:.目錄1引言 .32程序系統(tǒng)的結(jié)構(gòu) . .33程序(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明 . .44還書(shū)模塊 .95圖書(shū)查詢模塊 .136系統(tǒng)操作模塊 .16參考資料 .37.1 引言1. 1 目的根據(jù)需求規(guī)格說(shuō)明書(shū) 、概要設(shè)計(jì)說(shuō)明書(shū) ,在仔細(xì)考慮討論之后,我們對(duì)圖書(shū)管理系統(tǒng)軟件的功能劃分、數(shù)據(jù)結(jié)構(gòu)、軟件總體結(jié)構(gòu)的實(shí)現(xiàn)有了進(jìn)一步的想法。我們將這些想法記錄下來(lái),作為詳細(xì)設(shè)計(jì)說(shuō)明書(shū),為進(jìn)一步設(shè)計(jì)軟件、編寫(xiě)代碼打下基礎(chǔ)。1.2 概述隨著社會(huì)信息量的與日俱增,作為信息存儲(chǔ)的主要媒體之一圖書(shū),數(shù)量、規(guī)模比以往任何時(shí)候都大的多,不論個(gè)人還是圖書(shū)管理部門(mén)都需要使用方便而有效的方式來(lái)管理

2、自己的書(shū)籍。在計(jì)算機(jī)日益普及的今天, 對(duì)個(gè)人而言若采用一套行之有效的圖書(shū)管理系統(tǒng)來(lái)管理自己的書(shū)籍,會(huì)方便許多。對(duì)圖書(shū)管理部門(mén)而言,以前單一的手工檢索已不能滿足人們的要求,為了便于圖書(shū)資料的管理需要有效的圖書(shū)管理軟件。本圖書(shū)管理系統(tǒng)軟件是一套功能比較完善的數(shù)據(jù)管理軟件,具有數(shù)據(jù)操作方便高效迅速等優(yōu)點(diǎn)。該軟件采用功能強(qiáng)大的數(shù)據(jù)庫(kù)軟件開(kāi)發(fā)工具進(jìn)行開(kāi)發(fā),具有很好的可移植性,可在應(yīng)用范圍較廣的 dos、 windows系列等操作系統(tǒng)上使用1.3 定義文檔中采用的專門(mén)術(shù)語(yǔ)的定義及縮略詞簡(jiǎn)要如下:lms: library management system,圖書(shū)管理系統(tǒng)2 程序系統(tǒng)的結(jié)構(gòu)系 統(tǒng) 操 作 模

3、塊圖書(shū)查詢讀 者 查系統(tǒng)操作詢輸輸更改圖書(shū)庫(kù)讀者庫(kù)數(shù)據(jù)系統(tǒng)數(shù)據(jù)數(shù)據(jù)入出口令操作操作統(tǒng)計(jì)設(shè)置備份恢復(fù).3 程序(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明3.1 主模塊功能初始化建立與數(shù)據(jù)庫(kù)連接獲取系統(tǒng)設(shè)置運(yùn)行主對(duì)話框根據(jù)輸入調(diào)用子模塊借還圖系退出系統(tǒng)時(shí)斷開(kāi)與數(shù)據(jù)庫(kù)的連接書(shū)書(shū)書(shū)統(tǒng)輸入項(xiàng)目模模查查用戶鼠標(biāo)點(diǎn)擊輸入塊塊詢?cè)兡D3绦蜻壿媺K塊見(jiàn)右圖存儲(chǔ)分配內(nèi)部數(shù)據(jù):數(shù)據(jù)庫(kù)連接m_pconnection_connectionptr數(shù)據(jù)庫(kù)連接指針m_isconnectedbool數(shù)據(jù)庫(kù)連接指示系統(tǒng)設(shè)置m_maxlbnumint可借圖書(shū)數(shù)上限m_maxlbdayint借書(shū)天數(shù)上限子對(duì)話框m_bookoutdlgcbookoutdlg借

4、書(shū)對(duì)話框m_bookindlgcbookindlg還書(shū)對(duì)話框m_bookquirydlgcbookquirydlg圖書(shū)查詢對(duì)話框m_sysdlgcsysdlg系統(tǒng)操作對(duì)話框測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接情況:正常情況,數(shù)據(jù)庫(kù)文件缺少,外部系統(tǒng)異常。系統(tǒng)設(shè)置獲?。赫G闆r,外部系統(tǒng)異常。對(duì)用戶輸入的響應(yīng):合法輸入,能夠正常調(diào)用子模塊;非法輸入,系統(tǒng)能否辨別,并作出響應(yīng)( 提出警告 ) ;子模塊的異常狀況,系統(tǒng)能否及時(shí)做出響應(yīng)。3.2 借書(shū)模塊功能查驗(yàn)輸入的讀者證號(hào)運(yùn)行借書(shū)對(duì)話框獲取該讀者的相關(guān)信息查驗(yàn)輸入的圖書(shū)號(hào)登記借書(shū)輸入項(xiàng)目讀者證號(hào)、圖書(shū)書(shū)號(hào)( 用戶輸入 )輸出項(xiàng)目讀者信息 ( 姓名 ) ;讀者已借圖書(shū)

5、信息 ( 書(shū)名、借書(shū)日期 ) ;程序邏輯.對(duì)話框初始化操作取消輸入讀者證號(hào)查 驗(yàn)輸入不合理借書(shū)對(duì)話框點(diǎn)擊返回查驗(yàn)出錯(cuò)借書(shū)登記更新相關(guān)信息及顯示關(guān)閉對(duì)話框接口調(diào)用形式: void cbookdlg:lendbook(const _connectionptr pconnection,const int maxlbnum)傳入?yún)?shù): pconnection數(shù)據(jù)庫(kù)連接指針maxlbnum 系統(tǒng)參數(shù) ( 可借圖書(shū)上限 )傳出參數(shù):無(wú)存儲(chǔ)分配內(nèi)部數(shù)據(jù):數(shù)據(jù)庫(kù)m_pconnection_connectionptr數(shù)據(jù)庫(kù)連接指針用戶界面m_strreadername cstring讀者姓名m_strlbinf

6、cstring已借圖書(shū)信息m_strlbnumcstring已借圖書(shū)數(shù)顯示m_lbookidlong欲借圖書(shū)書(shū)號(hào)內(nèi)部參數(shù)m_lreaderidlong當(dāng)前讀者證號(hào)m_maxlbnumint可借圖書(shū)數(shù)上限測(cè)試要點(diǎn)模塊正常運(yùn)行流程用戶輸入數(shù)據(jù)檢查 ( 讀者證號(hào)、圖書(shū)書(shū)號(hào) ) ,包括數(shù)據(jù)合理性檢查,以及合法性檢查數(shù)據(jù)庫(kù)操作數(shù)據(jù)庫(kù)連接異常時(shí)的響應(yīng)情況.3.2.1讀者查驗(yàn)?zāi)K功能查驗(yàn)輸入的讀者證號(hào)是否合法( 即是否存在與該讀者證號(hào)對(duì)應(yīng)的讀者記錄)輸入項(xiàng)目讀者證號(hào) ( 整型常數(shù) ) ,讀者姓名 ( 引用型字符串)輸出項(xiàng)目查驗(yàn)結(jié)果 (bool值 )程序邏輯生成數(shù)據(jù)庫(kù)查詢語(yǔ)句調(diào)用數(shù)據(jù)庫(kù)查詢模塊if 返回結(jié)果集

7、為空( 不存在該讀者證號(hào))置讀者姓名字符串為空返回”非法讀者證號(hào)”else置讀者姓名字符串返回”合法讀者證號(hào)”接口調(diào)用形式: bool checkreader(const long readerid,cstring &strreadername)傳入?yún)?shù): readerid( 常量參數(shù)傳入 )待查驗(yàn)的讀者證號(hào)m_pconnection(借書(shū)模塊內(nèi)的全局變量 )數(shù)據(jù)庫(kù)連接指針傳出參數(shù):讀者證號(hào)存在/ 不存在標(biāo)志 ( 返回值 )strreadername(傳入的引用參數(shù) ) 讀者證號(hào)對(duì)應(yīng)的讀者姓名( 讀者證號(hào)不存在時(shí)置為空 )存儲(chǔ)分配局部變量:數(shù)據(jù)庫(kù)preader_recordsetptr數(shù)據(jù)庫(kù)查

8、詢結(jié)果集指針查詢參數(shù)vtquiry_variant_t查詢命令vnull_variant_t查詢連接類型轉(zhuǎn)換strquirycstring查詢命令類型轉(zhuǎn)換vtemp_variant_t查詢結(jié)果類型轉(zhuǎn)換測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常時(shí)輸入合理合法參數(shù)輸入?yún)?shù)不合理輸入?yún)?shù)不合法數(shù)據(jù)庫(kù)連接異常;數(shù)據(jù)庫(kù)數(shù)據(jù)異常( 讀者姓名為空)3.2.2圖書(shū)查驗(yàn)?zāi)K功能查驗(yàn)輸入的圖書(shū)書(shū)號(hào)是否合法輸入項(xiàng)目圖書(shū)書(shū)號(hào) ( 整型常量 )輸出項(xiàng)目查驗(yàn)結(jié)果 (bool值 )程序邏輯生成數(shù)據(jù)庫(kù)查詢語(yǔ)句.調(diào)用數(shù)據(jù)庫(kù)查詢模塊if 返回結(jié)果集為空( 不存在該圖書(shū)書(shū)號(hào))返回”非法圖書(shū)書(shū)號(hào)”else返回”合法圖書(shū)書(shū)號(hào)”接口調(diào)用形式 :bool c

9、heckbook(const long bookid)傳入?yún)?shù) :bookid( 整型常量 )帶查驗(yàn)的圖書(shū)書(shū)號(hào)傳出參數(shù) :書(shū)號(hào)合法 / 不合法標(biāo)志 ( 返回值 )查驗(yàn)結(jié)果存儲(chǔ)分配局部變量 :數(shù)據(jù)庫(kù)pbook_recordsetptr數(shù)據(jù)庫(kù)查詢結(jié)果集指針查詢參量vtquiry_variant_t查詢字符串vnull_variant_t查詢連接參量類型轉(zhuǎn)換strquirycstring查詢命令類型轉(zhuǎn)換測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常數(shù)據(jù)庫(kù)數(shù)據(jù)正常輸入的書(shū)號(hào)合理合法輸入的書(shū)號(hào)不合理輸入的書(shū)號(hào)不合法數(shù)據(jù)庫(kù)數(shù)據(jù)異常數(shù)據(jù)庫(kù)連接異常3.2.3相關(guān)信息獲取模塊功能獲取合法讀者的借書(shū)記錄輸入項(xiàng)目合法讀者證號(hào)( 整型常量

10、) ;讀者已借圖書(shū)信息( 引用型字符串 )輸出項(xiàng)目查詢操作結(jié)果(bool值 )程序邏輯生成數(shù)據(jù)庫(kù)查詢語(yǔ)句調(diào)用數(shù)據(jù)庫(kù)查詢模塊if操作成功while 查詢結(jié)果集未讀至文件尾讀取各項(xiàng)值置入讀者已借圖書(shū)信息字符串返回”操作成功”else置空讀者已借圖書(shū)信息字符串返回”操作失敗”接口調(diào)用形式: bool getlbinf(const long readerid,cstring &strlbinf)傳入?yún)⒘浚?readerid( 整型常量 )查詢參數(shù)strlbinf(引用型字符串 )返回用的格式化的查詢信息.傳出參量:查詢成功 / 失敗標(biāo)志 (bool值 ) 查詢操作結(jié)果信息存儲(chǔ)分配局部變量 :數(shù)據(jù)庫(kù)pr

11、ecords_recordsetptr數(shù)據(jù)庫(kù)查詢結(jié)果集指針查詢參數(shù)vtquiry_variant_t查詢命令字符串vnull_variant_t查詢連接參量類型轉(zhuǎn)換strquirycstring查詢命令類型轉(zhuǎn)換測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常數(shù)據(jù)庫(kù)數(shù)據(jù)正常輸入正常 ( 讀者證號(hào)合法)輸入異常 ( 讀者證號(hào)非法)數(shù)據(jù)庫(kù)數(shù)據(jù)異常數(shù)據(jù)庫(kù)連接異常3.2.4借書(shū)登記模塊功能登錄借書(shū)信息輸入項(xiàng)目讀者證號(hào) ( 整型常量 ) ;圖書(shū)書(shū)號(hào) ( 整型常量 )輸出項(xiàng)目操作結(jié)果 (bool值 )程序邏輯生成數(shù)據(jù)庫(kù)操作命令調(diào)用數(shù)據(jù)庫(kù)操作模塊if操作成功返回”操作成功”else返回”操作失敗”接口調(diào)用形式: bool writeb

12、lrecord(const long readerid,const long bookid)傳入?yún)?shù): readerid( 整型常量 )操作參數(shù) ( 借閱者讀者證號(hào) )bookid(整型常量 )操作參數(shù) ( 借閱圖書(shū)書(shū)號(hào) )傳出參數(shù):操作成功/ 失敗標(biāo)志 ( 返回值 )存儲(chǔ)分配局部變量 :操作命令參數(shù)vrecsaffected_variant_t操作影響vtcommand_variant_t操作命令類型轉(zhuǎn)換strcommandcstring操作命令類型轉(zhuǎn)換strtodaycstring借書(shū)日期類型轉(zhuǎn)換oletodaycoledatetime借書(shū)日期測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常數(shù)據(jù)庫(kù)操作正常輸入?yún)?shù)合

13、法.輸入?yún)?shù)非法數(shù)據(jù)庫(kù)操作異常數(shù)據(jù)庫(kù)連接異常4 還書(shū)模塊功能運(yùn)行還書(shū)對(duì)話框查驗(yàn)輸入的圖書(shū)書(shū)號(hào)對(duì)合法輸入登錄還書(shū)信息顯示相關(guān)信息( 本次還書(shū)操作信息,尚未歸還圖書(shū)的相關(guān)信息,讀者信息)輸入項(xiàng)目圖書(shū)書(shū)號(hào) ( 用戶輸入 )輸出項(xiàng)目相關(guān)信息 ( 本次還書(shū)操作信息,尚未歸還的圖書(shū)信息,讀者信息)程序邏輯初始對(duì)話框點(diǎn)擊退出出錯(cuò)返回借書(shū)記錄查驗(yàn)?zāi)K登記還書(shū)更新還書(shū)信息及顯示關(guān)閉對(duì)話框接口調(diào)用形式: cbookindlg:returnbook(const _connectionptr pconnection,const int maxlbday)傳入?yún)⒘浚?pconnection(數(shù)據(jù)庫(kù)連接指針常量)提供數(shù)據(jù)

14、庫(kù)連接maxlbday( 整型常量 )系統(tǒng)參數(shù) ( 借書(shū)天數(shù)上限 )傳出參量:無(wú)存儲(chǔ)分配內(nèi)部變量:數(shù)據(jù)庫(kù)m_pconnection_connectionptr數(shù)據(jù)庫(kù)連接指針m_precords_recordsetptr數(shù)據(jù)庫(kù)查詢結(jié)果集指針用戶界面m_lbookidlong欲還圖書(shū)書(shū)號(hào)m_strlenderidcstring借閱者圖書(shū)證號(hào)顯示m_strlendercstring借閱者姓名m_strrbinfcstring已還圖書(shū)信息顯示m_strnrbinfcstring未還圖書(shū)信息顯示.m_strrbnumcstring已還圖書(shū)數(shù)顯示m_strnrbnumcstring未還圖書(shū)數(shù)顯示內(nèi)部參數(shù)m

15、_lcurridlong當(dāng)前還書(shū)者讀者證號(hào)m_intrbnumint已還圖書(shū)計(jì)數(shù)m_maxlbdayint借書(shū)天數(shù)上限測(cè)試要點(diǎn)模塊正常工作流程對(duì)輸入的查驗(yàn),包括輸入值的合法性與合理性檢驗(yàn)數(shù)據(jù)庫(kù)連接異常能否做出適當(dāng)處理數(shù)據(jù)庫(kù)數(shù)據(jù)異常時(shí)能否判斷并給予適當(dāng)處理4.1借書(shū)記錄查驗(yàn)?zāi)K功能查驗(yàn)借書(shū)記錄是否存在( 即是否存在與指定書(shū)號(hào)相對(duì)應(yīng)的借書(shū)記錄)輸入項(xiàng)目圖書(shū)書(shū)號(hào) ( 傳入?yún)?shù) )輸出項(xiàng)目查驗(yàn)結(jié)果 ( 返回值 ) ;查詢結(jié)果集 ( 圖書(shū)書(shū)號(hào)、書(shū)名、狀態(tài)、出借日期)程序邏輯生成數(shù)據(jù)庫(kù)查詢語(yǔ)句調(diào)用數(shù)據(jù)庫(kù)查詢模塊if操作成功if 查詢結(jié)果集不為空( 存在該借書(shū)記錄)返回”記錄存在”else警告”記錄不存在”

16、else警告”查詢失敗”返回”記錄不存在”接口調(diào)用形式: bool checkblrcord(const long bookid)傳入?yún)⒘浚?bookid( 整型常量 )傳出參量:書(shū)號(hào)合法/ 非法標(biāo)志 (bool型 )存儲(chǔ)分配局部變量:查詢參數(shù)vtquiry_variant_t查詢命令vnull_variant_t查詢連接類型轉(zhuǎn)換strquirycstring查詢命令類型轉(zhuǎn)換引用的全局變量:m_pconnection_connectionptr使用m_precords_recordsetptr寫(xiě) ( 打開(kāi) )測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常數(shù)據(jù)庫(kù)數(shù)據(jù)正常合法的圖書(shū)書(shū)號(hào)返回“真”查驗(yàn)結(jié)果.不合法的圖書(shū)書(shū)號(hào)

17、返回“假”查驗(yàn)結(jié)果,給出警告提示數(shù)據(jù)庫(kù)數(shù)據(jù)異常返回“假”查驗(yàn)結(jié)果,給出數(shù)據(jù)異常警告數(shù)據(jù)庫(kù)連接異常返回“假”查驗(yàn)結(jié)果,給出數(shù)據(jù)庫(kù)連接異常警告4.2相關(guān)信息獲取模塊功能獲取指定讀者 ( 讀者證號(hào) ) 的借書(shū)記錄,獲取的信息包括所借圖書(shū)書(shū)名,借書(shū)日期以及所借圖書(shū)的總本數(shù)。輸入項(xiàng)目讀者證號(hào) ( 傳入?yún)?shù) ) ;相關(guān) ( 借書(shū) ) 信息 ( 公共變量 )輸出項(xiàng)目已借圖書(shū)數(shù) ( 返回值 )程序邏輯生成數(shù)據(jù)庫(kù)查詢命令if操作成功初始化 ( 相關(guān)信息字符串置為空已借圖書(shū)計(jì)數(shù)置為0)while 未讀至查詢結(jié)果集尾置相關(guān)信息字符串計(jì)數(shù)累加返回計(jì)數(shù)值else置相關(guān)信息字符串為”操作異?!狈祷亍笔?biāo)志”(-1)接口

18、調(diào)用形式: int getlbinf(const long readerid)傳入?yún)?shù): readerid( 整型常量 )指定的讀者證號(hào)傳出參數(shù):獲取的相關(guān)記錄數(shù)( 整型 )如發(fā)生異常,返回值置為負(fù)存儲(chǔ)分配局部變量:查詢參數(shù)vtquiry_variant_t查詢命令vnull_variant_t查詢連接類型轉(zhuǎn)換strquirycstring查詢命令類型轉(zhuǎn)換vtemp_variant_t查詢結(jié)果類型轉(zhuǎn)換oledatecoledatetime借書(shū)時(shí)間類型轉(zhuǎn)換記錄計(jì)數(shù)countint計(jì)算獲取的記錄數(shù)引用的全局變量: m_pconnection_connectionptr使用m_precords_re

19、cordsetptr寫(xiě) ( 打開(kāi)、關(guān)閉 )m_strnrbinfcstring寫(xiě)測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常數(shù)據(jù)庫(kù)數(shù)據(jù)正常可獲取的借書(shū)記錄數(shù)為零返回結(jié)果為0,引用字符串置空可獲取的借書(shū)記錄數(shù)不為零返回記錄數(shù), 并將相關(guān)信息記錄在引用字符串中數(shù)據(jù)庫(kù)數(shù)據(jù)異常返回異常指示,給出警告數(shù)據(jù)庫(kù)連接異常返回異常指示,給出警告.4.4還書(shū)信息記錄模塊功能記錄本次還書(shū)操作的信息,包括圖書(shū)書(shū)名,超期天數(shù)。輸入項(xiàng)目包含相關(guān)信息( 書(shū)名、借書(shū)日期) 的查詢結(jié)果集( 公共變量 )輸出項(xiàng)目更新后的格式化還書(shū)信息( 公共變量 )程序邏輯while 傳入的查詢結(jié)果集未讀至文件尾讀取書(shū)名 , 置入還書(shū)信息字符串讀取借書(shū)日期計(jì)算超期天

20、數(shù)置入還書(shū)信息字符串光標(biāo)移至下一個(gè)記錄接口調(diào)用形式: void saverbinf(void)傳入?yún)?shù):無(wú)傳出參數(shù):無(wú)存儲(chǔ)分配局部變量:類型轉(zhuǎn)換vtemp_variant_t查詢結(jié)果類型轉(zhuǎn)換strexcesscstring超期天數(shù)類型轉(zhuǎn)換計(jì)算變量oledatecoledatetime借書(shū)日期oleexcesscoledatetimespan超期天數(shù)intexcessint超期天數(shù)引用的全局變量: m_precords_recordsetptr讀 ( 關(guān)閉記錄集 )m_strrbinfcstring更新m_maxlbdayint讀測(cè)試要點(diǎn)查詢結(jié)果集正常查詢結(jié)果集異常4.5還書(shū)登記模塊功能登記還書(shū)

21、 ( 刪除借書(shū)記錄,更新圖書(shū)狀態(tài))輸入項(xiàng)目圖書(shū)書(shū)號(hào) ( 輸入?yún)?shù) )輸出項(xiàng)目操作成功 / 失敗標(biāo)志 ( 返回值 )程序邏輯生成數(shù)據(jù)庫(kù)操作命令( 更新 )if操作成功生成數(shù)據(jù)庫(kù)操作命令( 刪除 ).if操作成功返回”操作成功”返回”操作失敗”接口調(diào)用形式: bool delblrecord(const long bookid)傳入?yún)?shù): bookid( 整型常量 )返還圖書(shū)書(shū)號(hào)傳出參數(shù):操作成功/ 失敗標(biāo)志 (bool值 )存儲(chǔ)分配局部變量:操作參數(shù)vtcommand_variant_t操作命令vrecsaffected_variant_t操作影響參數(shù)類型轉(zhuǎn)換strcommandcstring操

22、作命令類型轉(zhuǎn)換引用的全局變量:m_pconnection_connectionptr使用測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常圖書(shū)書(shū)號(hào)合法圖書(shū)書(shū)號(hào)不合法數(shù)據(jù)庫(kù)連接異常5 圖書(shū)查詢模塊功能根據(jù)給定查詢條件,查詢數(shù)據(jù)庫(kù),獲取圖書(shū)信息輸入項(xiàng)目查詢方式指定以及查詢關(guān)鍵字輸出項(xiàng)目查詢結(jié)果列表顯示程序邏輯初始化對(duì)話框查詢生成查詢命令查詢數(shù)據(jù)庫(kù)顯示結(jié)果列表退出.接口調(diào)用形式: cbookquirydlg:quirybook(const _connectionptr pconnection)傳入?yún)?shù): pconnection(數(shù)據(jù)庫(kù)連接指針)傳出參數(shù):無(wú)存儲(chǔ)分配內(nèi)部變量:數(shù)據(jù)庫(kù)m_pbooks_recordsetptr數(shù)據(jù)庫(kù)

23、查詢結(jié)果集指針用戶界面m_strauthorcstring作者關(guān)鍵字m_bauthorbool作者查詢選擇狀態(tài)m_strbooknamecstring書(shū)名關(guān)鍵字m_bbooknamebool書(shū)名查詢選擇狀態(tài)m_strpublishercstring出版社關(guān)鍵字m_bpublisherbool出版社查詢選擇狀態(tài)m_intyear1int出版時(shí)間關(guān)鍵字m_intyear2int出版時(shí)間關(guān)鍵字m_intmonth1int出版時(shí)間關(guān)鍵字m_intmonth2int出版時(shí)間關(guān)鍵字m_bpubtimebool出版時(shí)間查詢選擇狀態(tài)m_inttimetypeint出版時(shí)間查詢方式選擇局部變量:查詢參數(shù)vtqu

24、iry_variant_t查詢命令vnull_variant_t查詢連接類型轉(zhuǎn)換strquirycstring查詢命令類型轉(zhuǎn)換測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常數(shù)據(jù)庫(kù)數(shù)據(jù)正常獲得正確的查詢結(jié)果并顯示數(shù)據(jù)庫(kù)數(shù)據(jù)異常給出警告數(shù)據(jù)庫(kù)連接異常給出警告5.1查詢命令生成模塊功能根據(jù)用戶界面的輸入生成查詢命令輸入項(xiàng)目用戶界面的輸入值( 公共變量 )輸出項(xiàng)目查詢命令 ( 返回值 )程序邏輯讀取各復(fù)選框的值if選中 and 關(guān)鍵字不為空生成查詢條件生成數(shù)據(jù)庫(kù)查詢命令返回生成的查詢命令接口調(diào)用形式: cstring getquirystring()傳入?yún)?shù):無(wú).傳出參數(shù):查詢命令(cstring)存儲(chǔ)分配局部變量:strq

25、uirycstring查詢命令字符串strtempcstring臨時(shí)字符串測(cè)試要點(diǎn)用戶輸入合理用戶輸入不合理( 沒(méi)有指定查詢方式,沒(méi)有輸入查詢關(guān)鍵字)5.2數(shù)據(jù)庫(kù)查詢模塊功能根據(jù)輸入的查詢命令查詢數(shù)據(jù)庫(kù)輸入項(xiàng)目查詢命令 ( 傳入?yún)?shù) )輸出項(xiàng)目數(shù)據(jù)庫(kù)查詢結(jié)果( 返回值 ) ;數(shù)據(jù)庫(kù)查詢結(jié)果集( 公共變量 )程序邏輯查詢數(shù)據(jù)庫(kù)if操作成功返回”操作成功”else返回”操作失敗”接口調(diào)用形式: bool dbquiry(const cstring strquiry)傳入?yún)?shù): strquiry(字符串型常量 )數(shù)據(jù)庫(kù)查詢命令傳出參數(shù):查詢操作成功/ 失敗標(biāo)志 (bool值 )存儲(chǔ)分配局部變量:查詢

26、參數(shù)vtquiry_varaint_tvrecsaffected_variant_t引用的全局變量:m_pconnection_connectionptrm_pbooks_recordsetptr數(shù)據(jù)庫(kù)查詢命令數(shù)據(jù)庫(kù)查詢連接使用讀測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常輸入查詢命令合法獲取非空查詢結(jié)果集返回“真”返回值,查詢結(jié)果保存在查詢結(jié)果集中獲取空查詢結(jié)果集返回“真”返回值,查詢結(jié)果集為空輸入查詢命令不合法返回“假”返回值,查詢結(jié)果集指針指向空,給出警告數(shù)據(jù)庫(kù)連接異常5.3數(shù)據(jù)顯示模塊功能按一定格式列表顯示查詢結(jié)果,并根據(jù)用戶要求重排列輸入項(xiàng)目查詢結(jié)果集 ( 傳入?yún)?shù) ) ;輸出項(xiàng)名稱( 傳入?yún)?shù) ) ;查

27、詢結(jié)果表參數(shù),包括行數(shù)、列數(shù)( 傳入?yún)?shù) ).輸出項(xiàng)目用戶界面顯示程序邏輯初始化 ( 設(shè)置行數(shù)、列數(shù)、列名稱,載入輸入的查詢結(jié)果集內(nèi)的數(shù)據(jù))顯示列表while 用戶未輸入“返回”if用戶拖動(dòng)列的標(biāo)題欄重新設(shè)置列的位置排序刷新顯示返回接口調(diào)用形式: clistshowdlg:showlist(const _recordsetptr precords,cstring *strarray,const int cols,const int rows)傳入?yún)?shù): precords( 數(shù)據(jù)庫(kù)查詢結(jié)果集指針)需要顯示的查詢結(jié)果strarray( 字符串?dāng)?shù)組頭指針)顯示項(xiàng)的名稱( 列名 )cols( 整型常量

28、 )列表列數(shù)rows( 整型常量 )列表行數(shù)傳出參數(shù):無(wú)存儲(chǔ)分配內(nèi)部數(shù)據(jù):數(shù)據(jù)庫(kù)m_precords_recordsetptr數(shù)據(jù)庫(kù)查詢結(jié)果集內(nèi)部參數(shù)m_strarraycstring20列名存儲(chǔ)數(shù)組m_intcolsint列表列數(shù)m_introwsint列表行數(shù)m_cltfgridcmsflexgrid列表控件m_imousecolint用戶鼠標(biāo)所在列測(cè)試要點(diǎn)查詢結(jié)果正常查詢結(jié)果集為空顯示消息框提示查詢結(jié)果集不為空正常顯示結(jié)果列表,并根據(jù)用戶輸入調(diào)整輸出查詢結(jié)果異常顯示警告6 系統(tǒng)操作模塊功能驗(yàn)證輸入的系統(tǒng)操作員賬號(hào)以及口令,完成權(quán)限管理運(yùn)行系統(tǒng)操作對(duì)話框,根據(jù)用戶輸入調(diào)用各子模塊,完成:圖

29、書(shū)庫(kù)操作 ( 瀏覽、修改、增加、刪除) ;讀者庫(kù)操作 ( 瀏覽、修改、增加、刪除) ;數(shù)據(jù)統(tǒng)計(jì);更改口令;系統(tǒng)管理( 修改系統(tǒng)設(shè)置,瀏覽、修改、增加、刪除系統(tǒng)操作員) ;輸入項(xiàng)目.數(shù)據(jù)庫(kù)連接 ( 傳入?yún)?shù) )輸出項(xiàng)目無(wú)程序邏輯初始化圖書(shū)操作模塊要求輸入賬號(hào)口令讀者操作模塊返回操作取消數(shù)據(jù)統(tǒng)計(jì)模塊系統(tǒng)操作權(quán)限查驗(yàn)?zāi)K警告系統(tǒng)設(shè)置模塊賬號(hào)口令錯(cuò)誤 ?返回?cái)?shù)據(jù)備份初始化系統(tǒng)操作對(duì)話框數(shù)據(jù)恢復(fù)until輸入 ”返回 ”更改口令關(guān)閉對(duì)話框接口調(diào)用形式: csysdlg:managesys(const _connectionptr pconnection)傳入?yún)?shù): pconnection (數(shù)據(jù)庫(kù)連接指

30、針)傳出參數(shù):無(wú)存儲(chǔ)分配內(nèi)部數(shù)據(jù):數(shù)據(jù)庫(kù)m_pconnection_connectionptr數(shù)據(jù)庫(kù)連接指針子模塊m_bookdlgcbookdlg圖書(shū)庫(kù)操作子模塊m_readerdlgcreaderdlg讀者庫(kù)操作子模塊m_quirydlgcquirydlg數(shù)據(jù)統(tǒng)計(jì)子模塊m_syssettingdlg csyssettingdlg系統(tǒng)設(shè)置子模塊內(nèi)部參數(shù)m_strcurrusercstring當(dāng)前操作者賬號(hào)m_rightlevelint操作權(quán)限局部變量:輸入pwddlgcpassworddlg賬號(hào)口令輸入對(duì)話框測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常正常執(zhí)行過(guò)程輸入的賬號(hào)口令合法根據(jù)權(quán)限進(jìn)行顯示控制,正常調(diào)用各

31、子模塊輸入的賬號(hào)口令不合法警告數(shù)據(jù)庫(kù)連接異常6.1系統(tǒng)操作權(quán)限查驗(yàn)?zāi)K功能查驗(yàn)輸入的系統(tǒng)操作員賬號(hào)以及口令是否合法,并返回合法操作員的權(quán)限級(jí)別輸入項(xiàng)目.系統(tǒng)操作員口令( 傳入?yún)?shù) )輸出項(xiàng)目操作員權(quán)限級(jí)別( 返回值 )程序邏輯生成數(shù)據(jù)庫(kù)查詢命令查詢數(shù)據(jù)庫(kù)if操作成功if查詢結(jié)果集非空返回權(quán)限級(jí)別else顯示警告”非法的賬號(hào)或口令”返回 -1else顯示警告”不能查詢數(shù)據(jù)庫(kù)”返回 -1接口調(diào)用形式: checkright(const cstring oldpwd)傳入?yún)?shù): oldpwd( 字符串常量 )待查驗(yàn)的系統(tǒng)操作員口令傳出參數(shù):系統(tǒng)操作權(quán)限( 整型 ,0-7)如口令非法,置為 -1存儲(chǔ)分

32、配局部變量:數(shù)據(jù)庫(kù)ptemp_recordsetptr數(shù)據(jù)庫(kù)查詢結(jié)果集指針查詢參數(shù)vnull_variant_t數(shù)據(jù)庫(kù)查詢連接vtquiry_variant_t數(shù)據(jù)庫(kù)查詢命令類型轉(zhuǎn)換strquirycstring查詢命令類型轉(zhuǎn)換內(nèi)部參數(shù)resultint權(quán)限級(jí)別引用的全局變量: m_pconnection_connectionptr數(shù)據(jù)庫(kù)連接指針m_strcurrusercstring當(dāng)前操作員賬號(hào)測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常數(shù)據(jù)庫(kù)數(shù)據(jù)正常合法的賬號(hào)口令獲取相應(yīng)的權(quán)限級(jí)別非法的賬號(hào)口令返回錯(cuò)誤指示,給出警告數(shù)據(jù)庫(kù)數(shù)據(jù)異常數(shù)據(jù)庫(kù)連接異常6.2 圖書(shū)庫(kù)操作模塊功能根據(jù)輸入提供對(duì)圖書(shū)庫(kù)的瀏覽、數(shù)據(jù)修改、增

33、加、刪除記錄等操作增加記錄時(shí),提供對(duì)生成的圖書(shū)書(shū)號(hào)的唯一性驗(yàn)證刪除記錄時(shí),提供對(duì)所刪除記錄的相關(guān)性檢驗(yàn)輸入項(xiàng)目數(shù)據(jù)庫(kù)連接 ( 傳入?yún)?shù) )輸出項(xiàng)目無(wú).程序邏輯初始化 ( 獲取數(shù)據(jù)庫(kù)連接, 顯示對(duì)話框 )while 用戶未輸入退出if用戶輸入”下一個(gè)”更新當(dāng)前記錄移動(dòng)至下一個(gè)記錄刷新顯示if用戶輸入”上一個(gè)”更新當(dāng)前記錄移動(dòng)至上一個(gè)記錄刷新顯示if用戶輸入”移動(dòng)到”更新當(dāng)前記錄要求輸入圖書(shū)書(shū)號(hào)if該書(shū)號(hào)存在移動(dòng)到指定的記錄刷新顯示else顯示警告”該圖書(shū)書(shū)號(hào)不存在”if用戶輸入”加入”更新當(dāng)前記錄要求輸入圖書(shū)書(shū)號(hào)if該書(shū)號(hào)已存在顯示警告”該書(shū)號(hào)已存在”else插入指定圖書(shū)書(shū)號(hào)的新記錄記錄總數(shù)加一

34、光標(biāo)移動(dòng)至新記錄處if用戶輸入”刪除”更新當(dāng)前記錄給出警告”確定繼續(xù)”if用戶確認(rèn)繼續(xù)if 該圖書(shū)借出給出警告”刪除相關(guān)借書(shū)記錄”if用戶確認(rèn)刪除相關(guān)借書(shū)記錄else中止操作刪除該圖書(shū)記錄記錄總數(shù)減一if 最后一條記錄被刪除移動(dòng)至前一條記錄else移動(dòng)至下一條記錄.顯示刷新更新記錄接口調(diào)用形式: cbookdlg:managebooks(const _connectionptr pconnection)傳入?yún)?shù): pconnection(數(shù)據(jù)庫(kù)連接指針)傳出參數(shù):無(wú)存儲(chǔ)分配內(nèi)部數(shù)據(jù):數(shù)據(jù)庫(kù)m_pconnection_connectionptr數(shù)據(jù)庫(kù)連接指針m_prs_recordsetptr數(shù)

35、據(jù)庫(kù)查詢結(jié)果集指針用戶界面m_lbookidlong當(dāng)前記錄中書(shū)號(hào)項(xiàng)m_strauthorcstring當(dāng)前記錄中作者項(xiàng)m_strbooknamecstring當(dāng)前記錄中書(shū)名項(xiàng)m_strpublishercstring當(dāng)前記錄中出版社項(xiàng)m_upublishyearuint當(dāng)前記錄中出版年項(xiàng)m_upublishmonth uint當(dāng)前記錄中出版月項(xiàng)m_intstatusint當(dāng)前記錄中狀態(tài)項(xiàng)m_fbookpricefloat當(dāng)前記錄中單價(jià)項(xiàng)m_strcurrentbookcstring當(dāng)前記錄位置顯示m_strtotalbookcstring記錄總數(shù)顯示內(nèi)部參數(shù)m_intpositionint當(dāng)

36、前記錄位置計(jì)數(shù)m_lrecordcountlong記錄總數(shù)計(jì)數(shù)測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常記錄集為空是否工作狀態(tài)正常記錄集非空對(duì)各種用戶輸入的響應(yīng)數(shù)據(jù)庫(kù)連接異常6.2.1獲取圖書(shū)記錄集模塊功能獲取所有圖書(shū)記錄,置記錄總數(shù)以及當(dāng)前位置的初始值輸入項(xiàng)目操作成功 / 失敗標(biāo)志 ( 返回值 )輸出項(xiàng)目圖書(shū)記錄集 ( 公共變量 ) ;記錄總數(shù) ( 公共變量 ) ;當(dāng)前位置 ( 公共變量 )程序邏輯生成數(shù)據(jù)庫(kù)查詢命令查詢數(shù)據(jù)庫(kù)if操作成功返回”成功”else返回”失敗”接口調(diào)用形式: bool openrecords()傳入?yún)?shù):無(wú)傳出參數(shù):操作成功/ 失敗標(biāo)志 (bool值 ).引用的全局變量:m_prs_r

37、ecordsetptr寫(xiě) ( 打開(kāi) )m_intpositionint寫(xiě)m_lrecordcountlong寫(xiě)存儲(chǔ)分配局部變量:查詢參數(shù)vnull_variant_t查詢連接vtquiry_variant_t查詢命令類型轉(zhuǎn)換strquirycstring查詢命令類型轉(zhuǎn)換測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常圖書(shū)記錄集為空?qǐng)D書(shū)記錄集非空數(shù)據(jù)庫(kù)連接異常6.2.2更新顯示模塊功能更顯當(dāng)前顯示輸入項(xiàng)目圖書(shū)記錄集 ( 公共變量 ) ;用戶界面顯示字符串( 公共變量 )輸出項(xiàng)目更新后的用戶界面顯示字符串( 公共變量 )程序邏輯逐項(xiàng)讀取記錄中的數(shù)據(jù)域置入顯示字符串中if當(dāng)前記錄為第一條禁止”前一個(gè)”按鈕if當(dāng)前記錄為最后一

38、條禁止”后一個(gè)”按鈕if記錄總數(shù)為0禁止”加入”以外的所有按鈕刷新顯示界面接口調(diào)用形式: void refreshdataview()傳入?yún)?shù):無(wú)傳出參數(shù):無(wú)引用的全局變量:m_prs_recordsetptr讀m_lbookidlong寫(xiě)m_strauthorcstring寫(xiě)m_strbooknamecstring寫(xiě)m_strpublishercstring寫(xiě)m_upublishyearuint寫(xiě)m_upublishmonth uint寫(xiě)m_intstatusint寫(xiě)m_fbookpricefloat寫(xiě)m_strcurrentbookcstring寫(xiě)m_strtotalbookcstring

39、寫(xiě).存儲(chǔ)分配局部變量:類型轉(zhuǎn)換vtemp_variant_t記錄集數(shù)據(jù)域類型轉(zhuǎn)換測(cè)試要點(diǎn)記錄集正常記錄集為空記錄集非空記錄集異常6.2.3更新當(dāng)前記錄模塊功能根據(jù)用戶界面的輸入更新當(dāng)前記錄輸入項(xiàng)目用戶界面的輸入,即用戶界面各顯示變量的值( 公共變量 )輸出項(xiàng)目數(shù)據(jù)庫(kù)中更新后的圖書(shū)記錄( 存儲(chǔ)文件 ) ;操作成功 / 失敗標(biāo)志 ( 返回值 )程序邏輯保存當(dāng)前圖書(shū)書(shū)號(hào)讀入界面的值if書(shū)號(hào)發(fā)生變化給出警告”不能更改圖書(shū)書(shū)號(hào)”恢復(fù)圖書(shū)書(shū)號(hào)的值生成數(shù)據(jù)庫(kù)更新語(yǔ)句if更新操作成功重新獲取記錄集光標(biāo)移動(dòng)到原位置返回”成功”else給出警告”操作失敗”返回”失敗”接口調(diào)用形式: bool refreshdata()傳入?yún)?shù):無(wú)傳出參數(shù):操作成功/ 失敗標(biāo)志 (bool值 )引用的全局變量:m_pconnection_connectionptr使用m_prs_recordsetptr寫(xiě)m_lbookidlong讀寫(xiě)m_strauthorcstring讀m_strbooknamecstring讀m_strpublishercstring讀m_upublishyearuint讀m_upublishmonth uint讀m_intstatusint讀m_fbookpricefloat讀m_strcurrentbookc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論