




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第18章圖書管理系統的實現隨著讀書的普及,讀者群體日漸擴大,圖書種類也越來越繁多。圖書館那種由簡單數據記錄,電子表格統籌數據的方法已經不再適應。為了更為理想地完成對圖書的管理同時能對讀者信息進行統籌統計,一個專門的管理系統已經成為了圖書館管理者的迫切需求。18.1概述圖書管理系統在實際中應用廣泛,例如所有大型圖書館或者高校的圖書館都必須配備一套完整的圖書管理系統,甚至局部小學也需要一個圖書管理系統。它主要對一個學校的圖書館或者其他類型的圖書相關業務部門的所有圖書信息進行管理。例如圖書銷售企業、圖書配送等,本章結合小型學校的圖書管理系統的整個框架介紹整個數據庫系統的實現。下面對一個學習類的圖書管理系統的根本信息進行描述。1.根本功能高校圖書管理系統根本功能應該包括借書管理、還書管理,書籍信息管理、用戶管理、掛失管理、信息查詢和違章處分幾個方面。2.用戶分類由于是一個管理系統,首先就需要管理人員對數據庫進行管理,其次應該對老師和學生的使用權限進行管理,同時可以添加各種用戶。3.書籍信息應該對圖書的書名、作者以及出版社等信息進行保存。4.信息查詢讀者應該可以登錄到系統內查看所借書籍的信息、可以修改密碼等,還可以對書籍信息進行查詢、檢索等。上面介紹了一般圖書管理系統所需要的根本功能,下面的章節中需要嚴格按照軟件工程的操作標準進行軟件的開發。由于篇幅有限,本章實現的僅僅是單機版程序,感興趣的讀者可以結合前面介紹的網絡編程的根本程序設計一套網絡版的圖書管理系統。18.2需求分析與系統設計上面分析了圖書管理系統的根本功能,下面進行具體的需求分析和系統設計分析。為了描述的嚴謹性,下面介紹將按照軟件工程的根本步驟進行表達。本節主要進行系統的需求分析和系統的整體設計。需求分析與可行性研究前面已經介紹了根本的數據庫功能,下面結合上面的根本功能詳細描述本章所要求的功能。本章所實現的是根本的圖書管理系統,所以上述的根本功能必須全部實現,為了進一步描述需求,定義的根本功能包括下面幾個方面。1.用戶登錄模塊圖書管理系統首先要實現的就是用戶登錄。一個沒有登錄的用戶只可以進行簡單的查詢,其他功能是不能進行的。同時由于用戶需要區分其權限,定義為如下幾個級別。管理員:負責整個數據庫的管理工作,包括添加用戶、管理用戶等。普通用戶:在用戶根據其用戶名和密碼登錄以后,系統要根據其登錄情況設置用戶。2.數據錄入模塊對于管理員來說,它可以進行整個系統的管理工作,這其中包括數據錄入工作,其內容主要包括下面兩個方面。圖書數據錄入:管理員可以進行新進書籍的錄入工作,它應該包括書籍的根本信息。讀者數據錄入:管理員可以添加用戶,同時設置其權限。3.數據管理功能模塊管理員可以對讀者的信息進行修改,包括其用戶密碼、用戶權限等,還可以對圖書的信息進行修改,同時可以刪除記錄等。4.圖書借閱和歸還模塊系統應該可以實現讀者借閱和歸還的功能,同時修改圖書的狀態。5.信息查詢模塊所有用戶可以進行書籍的檢索工作,它不需要用戶登錄。上面介紹了整個系統的功能模塊,欲實現該系統就應該按照上面功能模塊的定義進行實施。在系統實施之前,首先應該研究該系統的可行性。可行性是系統的關鍵,一個從理論上不可行的系統是不能得到實施的。本系統所采用的開發環境為VisualC++6.0,運行環境為Windows98/NT/XP/VISTA平臺,運行的軟硬件要求如下所述。硬件局部:處理器P4,2.5GHz,內存512M〔或更高〕,VGA視頻顯示器,標準的鼠標,鍵盤。軟件局部:數據庫系統為SQLServer2021企業版,開發工具使用VisualC++6.0。說明:上面的硬件局部主要為SQLServer的安裝要求。整個系統使用VisualC++6.0開發,因此它可以運行在任何版本的Windows系統中。18.2.2系統設計分析上面介紹了整個系統的需求分析,下面對系統設計進行分析,其具體設計將在下面進行介紹。整個系統采用的是VisualC++6.0,數據庫采用的是SQLServer2021企業版,整個系統的軟硬件要求較低,大局部PC機都可以運行本軟件。18.3數據庫設計數據庫設計是整個數據庫系統中最為關鍵的局部,一個好的數據庫系統必須有一個設計合理的數據庫的支持,本節就圖書管理系統進行數據庫的設計。數據庫系統的設計需要經過需求分析、概念設計、邏輯設計和物理設計幾個階段。18.3.1需求分析前面已經介紹了圖書管理系統的根本要求,整個圖書的數據框架圖如圖18.1所示。圖18.1數據框架圖18.3.2概念設計前面介紹了整個系統的主要數據及其之間的關系,下面介紹數據庫的概念設計。1.用戶表前面已經介紹了用戶的根本信息,其中包括用戶名和密碼,同時包括權限和對應的可借書籍的數目。同時設計一個用戶的ID號作為唯一標識讀者的號碼。2.書籍表記錄書籍的根本信息,其內容包括書籍號碼、書籍名、數據作者、書籍的出版社和書籍簡介。同時增加書籍的狀態,是借出在館內。3.借閱表記錄借閱書籍的用戶ID和書籍的名稱,同時記錄借閱時間和到期時間。18.3.3數據庫構建上面介紹了數據中所需要的根本表,下面具體講解利用SQLServer2021建立此數據庫的操作步驟,如下所述。〔1〕利用SQLServer2021的企業管理器新建一個數據庫Library,如圖18.2所示。圖18.2新建數據庫Library〔2〕新建一張讀者表READER。設計結果如圖18.3所示。新建一張書籍表BOOK。設計結果如圖18.4所示。圖18.3READER表圖圖18.4BOOK表圖〔3〕新建一張借閱表READBOOK。利用屬性設置其ID和BID為外鍵,如圖18.5所示。設計結果如圖18.6所示。圖18.5設置外鍵圖18.6READBOOK表〔4〕編輯表,此時可以設置其初始信息,以便在程序中使用。注意:當設置有外鍵以后,必須先編輯主鍵表的信息,然后才可以對外鍵表進行編輯,而且外鍵值必須在主鍵所在表中存在。18.4各模塊設計前面介紹了建立圖書管理系統數據庫的根本步驟,本節詳細介紹利用VisualC++6.0開發這個系統的操作步驟。系統窗體模塊組成前面講解了數據庫設計的根本步驟,同時分析了整個系統的根本功能,下面對整個系統進行描述。系統應該分為下面幾個界面。用戶登錄界面:無論是管理員、教師還是普通讀者,在進行根本操作時都必須進行登錄,同時根據登錄結果進行相應的權限分配。同時管理員可以負責借書、還書等主要功能的操作。數據錄入與管理界面:管理員可以進行讀者和書籍信息的錄入工作,同時可以對數據進行修改。由于包括書籍和讀者兩種類型的信息,故數據管理包括書籍信息管理和讀者信息管理。圖書借閱界面:讀者可以進行讀書借閱。圖書歸還界面:實現圖書歸還的功能,和圖書借閱的區別是只要提供書籍的號碼即可。讀者效勞界面:讀者可以對自己所借書籍的情況進行瀏覽。查詢界面:可以對數據進行檢索。在實際中,采用的是基于單文檔的應用程序框架,同時提供了實現各個操作的菜單,用戶只要利用菜單進行操作就可以完成根本的操作。首先介紹程序中的菜單,整個系統的主菜單如圖18.7所示。圖18.7程序主菜單每個主菜單下的菜單項名稱及其ID如表18.1所示。表18.1主菜單下的菜單項下面對每一個模塊的實現進行介紹。主
菜
單子菜單項標題ID系統[&S]登錄[&L]ID_LOGIN_IN退出[&O]ID_LOGIN_OUT日常工作[&D]借書[&J]ID_LEND_OUT還書[&R]ID_RETURN_BACK基本資料維護[&B]用戶資料維護[&U]ID_USER_MAINTAIN圖書資料維護[&B]ID_BOOK_MAINTAIN其他服務[&Q]查詢[&Q]ID_ReaderQry讀者服務[&Q]ID_Reader用戶登錄模塊的實現對于整個系統來說,用戶必須登錄才可以進行各種各樣的操作,因此必須實現登錄界面。登錄界面采用對話框的形式,因此需要利用資源編輯工具添加一個對話框資源,并且在上面添加控件,具體操作步驟如下所述。〔1〕創立一個新的對話框資源,其ID為IDD_LOGIN,標題為“登錄對話框〞。刪除上面的OK按鈕,同時增加一個新的按鈕,ID為IDC_LOGIN,標題為“登錄〞。再添加兩個編輯框控件,其ID分別為IDC_LOGIN_NAME和IDC_LOGIN_PASSWORD,即用來輸入用戶名和密碼,同時設置IDC_LOGIN_PASSWORD為密碼形式。然后再添加一些Static控件用來顯示文字等,如圖18.8所示。圖18.8用戶登錄界面及關鍵控件id〔2〕利用類向導為該對話框資源添加類CLoginDlg,同時為兩個編輯框控件添加兩個變量,如下所示。CStringm_name;CStringm_password;同時為該類添加變量如下:BOOLm_bLogin; //記錄登錄狀態CStringm_which; //記錄登錄者的權限〔3〕為了使用ADO進行數據庫程序設計,首先在stdafx.h中添加如下語句:#import"C:\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespacerename("EOF","end")即導入動態鏈接庫。〔4〕利用類向導添加單擊“登錄〞按鈕的消息映射,編寫函數代碼如下:【提示】假定讀者建立了名為“student〞的數據源,SQLServer2021的登錄id為“Administrator〞,沒有設置密碼,初始選擇的庫為“Library〞。用戶需要預先在Library庫的READER表中添加表項,以便登錄時用。〔5〕為了在實際應用中,在選擇“系統〞|“登錄〞命令而彈出該對話框,并且保存登錄狀態,在CMainFrame中添加成員如下:BOOLm_log; //登錄狀態CStringm_name; //登錄名CStringm_passwoord; //登錄密碼CStringm_which; //登錄者權限,讀者還是管理員利用類向導在CMainFrame中添加單擊此菜單命令的消息映射,編寫函數代碼如下:注意:此時需要在MainFrm.cpp中添加語句#include"LoginDlg.h",否那么會出現錯誤。利用上面的函數就可以實現登錄功能。如果登錄成功,那么退出對話框,否那么給出提示信息,同時回到“登錄對話框〞。用戶主界面的實現用戶界面主要是各個菜單的顯示,可用狀態的問題,例如只要登錄后才可以顯示某些功能。下面分兩種情況進行介紹。管理員:所有功能的操作。普通讀者:只可以進行“其他效勞〞菜單下的兩個功能操作。利用類向導添加大局部菜單的ON_UPDATE_COMMAND_UI函數,其需要添加該事件響應函數的菜單包括大局部,可以看到如下代碼:分析:其中只要根據上面得到m_log的值進行設置,同時如果不是管理員,那么除了“讀者效勞〞之外的其他ON_UPDATE_COMMAND_UI響應函數都不可用。根據要求,所有的函數代碼如下:分析:上面代碼實現了根本的用戶界面,但是中選擇“系統〞|“退出〞命令后,系統應恢復到初始情況。利用類向導添加選擇“系統〞|“退出〞命令的消息映射,編寫函數如下:實際中隨意將which設置為“管理員〞或者“讀者〞此時,系統就可以完全根據狀態進行菜單狀態的顯示。書籍管理模塊的實現書籍管理包括書籍數據的添加和修改等功能,同時可以根據書籍的ID號進行查詢功能。書籍的管理是通過一個對話框實現的,此對話框的設計界面如以下圖18.9所示,具體的步驟如下所述。圖18.9書籍維護對話框界面〔1〕再次利用資源編輯器添加一個對話框資源IDD_BOOK,在上面添加5個編輯框,用來輸入書籍信息。其ID分別為IDC_ID、IDC_NAME、IDC_WRITER、IDC_PRESS、IDC_INFO,分別用來輸入書號、書名、作者、出版社、根本信息。再添加一個ComboBox控件,用來輸入書籍的狀態,在屬性中的data下添加“可借〞、“不可借〞并且將上述控件全部設置為不可用狀態,在應用中根據用戶選擇進行處理。〔2〕利用類向導為該對話框資源添加類CBookDlg。再利用類向導為控件添加變量,其ID與變量列表如表18.2所示。表18.2控件變量名稱和類型〔3〕在對話框上添加按鈕控件,其中按鈕控件的ID、標題和功能如表表18.3所示。控件ID數據類型密
碼IDC_COMBO1CComboBoxm_comboIDC_IDCStringm_idIDC_INFOCStringm_infoIDC_NAMECStringm_nameIDC_PRESSCStringm_pressIDC_WRITERCStringm_writer表18.3按鈕控件控件ID標
題功
能IDC_ADD添加添加書籍信息IDC_EDIT修改修改書籍信息IDC_SAVE保存保存添加或者修改IDCANCEL退出退出程序〔4〕利用類向導添加單擊“添加〞按鈕的消息映射,編寫函數如下:分析:可以看到,“添加〞按鈕僅僅是讓用戶輸入信息,并不是保存信息。如果需要將所編輯的信息保存到數據庫,需要單擊“保存〞按鈕。利用類向導添加單擊“保存〞按鈕的消息映射,編寫函數代碼如下:分析:上面的代碼首先需要檢查輸入的信息是否齊全,只要信息齊全時才可以插入數據到數據庫中。〔5〕添加一個“刪除〞按鈕,其ID為IDC_DEL,作用是刪除當前的記錄。注意,此時的編輯框中必須存在數據。因此必須在單擊了“查詢〞或“保存〞后,按鈕才可用。在CBookDlg類添加公有成員變量intnum,并在它的構造函數中初始化為0。利用類向導添加單擊“刪除〞按鈕的消息映射,編寫代碼如下:上面的代碼是利用SQL語句刪除當前記錄。〔6〕利用類向導添加單擊“修改〞按鈕的消息映射,編寫函數代碼如下:分析:可見,單擊“修改〞按鈕只需要讓編輯框可用,從而使用戶可以對信息進行修改,如果需要保存數據,那么還需要單擊“保存〞按鈕。〔7〕在對話框上添加一個查詢模塊,可以利用各種信息進行查詢。添加一個ComboBox控件,用來選擇查詢的工程,其ID為IDC_COMBO2,在屬性data下添加“書籍作者〞、“出版社〞、“書籍名稱〞、“書籍號〞設置styles為DropList。然后添加一編輯框控件,其ID為IDC_MSG。再添加一按鈕控件,其ID為IDC_QRY,標題為“查詢〞。再添加兩個按鈕控件IDC_LAST和IDC_NEXT,標題為“上一條〞和“下一條〞,用來對所查詢的信息進行顯示,設置其不可用。再添加一個按鈕控件,其ID為IDC_AGAIN,標題為“重新查詢〞,即進行一次查詢后必須按下此按鈕才可以進行二次查詢,設置其為不可用。〔8〕為ComboBox控件添加變量CComboBox m_qrymsg。為編輯框控件添加變量CString m_msg。利用類向導添加單擊“查詢〞按鈕的消息映射。編寫函數如下:分析:可以看到,上面的代碼是根據num的值進行顯示的。num是添加的一個整型變量,初始化為0,在單擊“上一條〞按鈕時將num減1,然后調用上面的查詢函數。單擊“下一條〞按鈕那么將num加1,同時根據num和記錄集記錄的數目設置相關按鈕的狀態,從而實現各種操作。〔9〕在進行了一次查詢之后,必須單擊“重新查詢〞按鈕才可以進行二次查詢。利用類向導添加單擊“重新查詢〞按鈕的消息映射,編寫代碼如下:分析:上面的代碼是把變量num重新歸為0,同時設置相關按鈕的狀態使用戶可進行二次查詢。至此就把書籍相關的數據管理界面完成了,它可以進行相關書籍數據的管理工作,同時可以進行相關的查詢工作。〔10〕登錄書籍管理界面,選擇“根本資料維護〞|“圖書資料維護〞命令時需要彈出上面設計的對話框。利用類向導添加單擊此菜單項的消息映射,編寫函數如下:01 voidCMainFrame::OnBookMaintain()02 {03 //TODO:Addyourcommandhandlercodehere04 CBookDlgdlg;05 dlg.DoModal(); //彈出對話框06 }至此就完成此模塊的功能。注意:在MainFrame.cpp中需添加頭文件包含語句#include"BookDlg.h",否那么會報錯。讀者管理功能模塊的實現讀者數據管理模塊與書籍管理模塊根本類似,實現的功能也根本類似,界面設計如圖18.10所示,下面介紹操作的詳細步驟。圖18.10讀者管理對話框界面〔1〕創立一個新的對話框資源,其ID為IDD_READER,標題設置為“讀者管理模塊〞。創立對話框類“CReaderDlg〞。在上面添加多個編輯框控件,并利用類向導為其中一些添加變量,其ID、標題、變量等控件的情況如表18.4所示。表18.4編輯框的ID即相關變量再添加兩個Combo控件,IDC_COMBO1進行讀者權限的顯示,初始data“管理員〞、“普通讀者〞。IDC_COMBO2用來選擇查詢信息的選項,初始data為“ID號〞和“姓名〞。控件ID變量類型變
量
名IDC_IDCStringm_idIDC_NAMECStringm_nameIDC_PASSWORDCStringm_passwordIDC_NUMCStringm_numIDC_MSGCStringm_msgIDC_COMBO1CComboBoxm_whichIDC_COMBO2CComboBoxm_idorname〔2〕添加多個按鈕控件,單擊這些按鈕控件時可以實現根本的操作,控件的ID、標題和功能列表如表18.5所示。表18.5按鈕的ID、標題和功能上面列出了對話框上的根本控件,下面來實現各個功能。控件ID標
題功
能IDC_ADD添加使編輯框可用,進行信息的添加IDC_SAVE保存當前信息保存到數據庫IDC_QRY查詢進行查詢IDC_EDIT修改對所查詢的信息進行修改IDC_DEL刪除刪除一個查詢到的信息IDCANCEL退出退出本模塊〔3〕數據的添加和保存,對“添加〞和“保存〞按鈕進行消息映射,編寫函數如下:〔4〕添加單擊“查詢〞按鈕的消息映射,編寫函數如下:讀者的查詢與書籍的查詢根本相同,在此不再說明。〔5〕添加單擊“修改〞和“刪除〞按鈕的消息映射,編寫代碼如下:分析:“修改〞和“刪除〞的根本功能與書籍管理模塊的根本功能類似,即首先把數據在數據庫中刪除,然后進行編輯,最后,在單擊了“保存〞按鈕后數據保存在數據庫中。〔6〕登錄書籍管理界面,選擇“根本資料維護〞|“讀者資料維護〞命令時需要彈出上面設計的對話框。利用類向導添加單擊此菜單項的消息映射,編寫函數如下:至此就完成此模塊的功能。注意:在MainFrame.cpp中需添加頭文件包含語句#include"ReaderDlg.h",否那么會報錯。圖書借閱和歸還模塊的實現圖書的借閱和歸還是一個很重要的功能,但是它涉及到的內容較為簡單。對于借書只要把數據輸入數據庫中就可以了,其中只要提供書籍的號碼和讀者的ID號即可。需要注意的是這兩項內容必須是在數據庫中存在的。對于還書,那么只要提供一個書籍的ID號即可。為了使用的方便,將借書和還書分為兩個步驟,下面介紹操作的詳細步驟。1.借書模塊〔1〕利用資源編輯工具添加一個新的對話框資源,ID為IDD_BOOK_READ,并且在上面添加兩個編輯框,用來接收書籍的ID號和讀者的ID號。同時再添加一個DATETIMEPICKER控件用來接收時間,界面如圖18.11所示。圖18.11借書管理程序界面〔2〕利用類向導為該對話框添加類CBookReadDlg。〔3〕利用類向導為控件添加變量,即控件的ID和變量的類型以及變量名稱,如表18.6所示。表18.6控件的ID及變量〔4〕添加單擊“確定〞按鈕的消息映射,編寫代碼如下:分析:上面是借書模塊的實現,它需要修改根本表BOOK和READBOOK。首先確定輸入的信息是否合理,即讀者和書籍的信息是否存在。其次判斷讀者權限,即讀者可以借的冊數和已經借的總冊數進行比較,只有在還可以借時才可以進行借書處理。然后判斷書籍狀態是否可借,只有在可借的狀態下才可以進行借書處理,同時設置此書狀態為不可借。最后進行借書,寫數據到數據庫。控件ID變量類型變
量
名IDC_DATETIMEPICKER1
IDC_READERIDCStringm_read;IDC_BOOKIDCStringm_book〔5〕登錄書籍管理界面,選擇“日常工作〞|“借書〞命令時需要彈出上面設計的對話框,利用類向導添加單擊此菜單項的消息映射,編寫函數如下:至此就完成此模塊的功能。注意:在MainFrame.cpp中需添加頭文件包含語句#include"ReadBookDlg.h",否那么會報錯。2.還書模塊還書模塊進行書籍的還書處理,此時它只要在數據庫中刪除信息,然后設置書籍的相關狀態就可以了,界面設計如圖18.12所示。下面介紹具體操作步驟。圖18.12還書模塊界面〔1〕利用資源編輯工具添加一個新的對話框資源,ID為IDD_RETURNBOOK。添加一個編輯框控件,其ID為IDC_BOOKID。〔2〕利用類向導為該對話框添加類CBookRDlg,同時為編輯框添加變量CStringm_bookid。〔3〕添加單擊“確定〞按鈕的消息映射,編寫代碼如下:分析:上面的代碼首先進行輸入數據的合法性驗證,即在READBOOK表中只有唯一記錄時才可以進行操作。將借書數據刪除后,同時設置書籍狀態為可借狀態。〔4〕登錄書籍管理界面,選擇“日常工作〞|“還書〞命令時需要彈出上面設計的對話框,利用類向導添加單擊此菜單項的消息映射,編寫函數如下:至此就完成此模塊的功能。注意:在MainFrame.cpp中需添加頭文件包含語句#include"BookRDlg.h",否那么會報錯。讀者效勞模塊的實現當用戶以普通用戶的身份登錄后,讀者可以進行自身一些數據的查看,例如查看所借書籍,到期時間等,界面如圖18.13所示。下面來實現這個功能,具體步驟如下所述。圖18.13讀者借書信息模塊界面〔1〕添加一個對話框資源,其ID為IDD_USERINFO,標題為“讀者借書信息〞。在上面添加一個列表控件,其ID為IDC_LIST1,用來顯示讀者借書的信息。〔2〕利用類向導為該對話框添加類CUserInfoDlg,同時利用類向導為列表控件添加變量ClistCtrlm_list。〔3〕在讀者登錄后,就需要進行數據的顯示,因此利用類向導添加WM_INITDIALOG事件的函數OnInitDialog(),在此函數中調用該函數進行顯示,函數如下:分析:上面的函數首先利用全局變量CStringname〔保存了登錄者姓名〕得到其ID,然后利用ID進行數據查詢,其中需要進行表的連接查詢。關于SQL語句的設計,在此不再表達,讀者可查閱相關書籍。最后顯示在列表控件中。注意:由于對話框顯示即把數據顯示出來,因此必須利用函數OnInitDialog()函數進行設計,否那么程序極有可能會出現錯誤,OnInitDialog()函數對對話框進行初始化,是在顯示之前進行的。〔4〕在選擇“其他效勞〞|“讀者效勞〞命令后彈出該對話框,因此添加選擇“其他效勞〞|“讀者效勞〞命令的消息映射,編寫代碼如下:注意:在MainFrame.cpp中需添加頭文件包含語句#include"UserInfoDlg.h",否那么會報錯。信息查詢模塊的實現信息查詢或者說是書籍檢索是任何人都可以進行的操作,它不要求用戶登錄。實際上關于書籍的檢索在書籍管理模塊已經使用了。下面介紹利用列表控件顯示檢索信息的實現,具體的操作步驟如下所述。〔1〕創立一個對話框資源,ID為IDD_QRY。在上面添加一個列表控件用來顯示檢索結果,添加一個編輯框,用來輸入檢索條件,其ID為IDC_EDIT。同時添加一個ComboBox控件,其ID為IDC_COMBO,用來選擇檢索條件,初始化為書籍作者/出版社/書籍名稱/書籍號,界面如圖18.14所示。圖18.14書籍檢索模塊界面〔2〕利用類向導為該對話框資源添加一個類CQryDlg,同時利用類向導為控件添加變量CListCtrlm_list、CComboBoxm_combo和CStringm_edit。〔3〕利用類向導添加WM_INITDIALOG事件的函數OnInitDialog(),調用該函數進行列表控件的初始化,代碼如下:〔4〕添加一個按鈕控件,其ID為IDC_QRY,標題為“查詢〞。利用類向導添加單擊“查詢〞按鈕的消息映射,編寫函數如下:分析:這段代碼與前面書籍數據管理時的代碼根本相同,只不過在列表控件中顯示出來。〔5〕利用類向導添加選擇此“其他效勞〞|“查詢〞菜單命令的消息映射,編寫函數如下:至此就完成此模塊的功能。注意:在MainFrame.cpp中需添加頭文件包含語句#include"QryDlg.h",否那么會報錯。至此完成了整個系統的全部功能。當然本系統是較為簡單的數據庫系統,離實際的應用還有很多差距,但作為學習,可以從中學到很多知識。有興趣的讀者可以在此根底上增加新的功能,或者重新設計整個系統,使系統的可用性更為強大。18.5系統測試前面進行了整個系統的設計工作,但系統必須經過嚴格的測試才可以進行實際的應用,本節通過上面的實例介紹一般的軟件測試方法和步驟。18.5.1測試策略分析作為一個數據庫軟件,應該結合數據庫本身和軟件進行聯合測試。也就是說可以在軟件中進行一些操作,同時在數據庫中查看相關的數據。在本系統中采用模塊化測試策略,即對每個模塊都進行嚴格的測試。當然整個系統也應該按照一定的順序進行,例如必須在借書以后才可以對還書模塊進行測試。在節中,可以看到整個模塊化策略的根本順序。18.5.2模塊化測試模塊化測試是軟件測試中最為常用的軟件測試戰略。由于本系統十分簡單,完成的功能十分有限,因此進行模塊化測試時只要進行一般的數據測試即可。下面進行具體的測試步驟。1.登錄模塊的測試登錄模塊的測試包括成功登錄、不成功以及退出3種情況,同時需要查看登錄成功及退出后的菜單是否正常等。運行該程序后,選擇“系統〞|“登錄〞命令,彈出登錄對話框。在上面輸入用戶名和密碼后,單擊“確定〞按鈕,如圖18.15所示。圖18.15登錄對話
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030現代農業行業產業運行態勢及投資規劃深度研究報告
- 2025至2030中國穿梭泡罩包裝系統行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025至2030中國移動式架車機行業商業模式及發展前景與投資報告
- 2025至2030中國硬件錢包行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025至2030中國石墨烯納米片市場產銷需求及投資風險研究報告
- 2025至2030中國電鍍用光刻膠行業運營規劃及投資前景深度研究報告
- 2025至2030中國電磁爐市場營銷策略及未來發展熱點預測報告
- 2025至2030中國電流轉換器行業市場現狀分析及競爭格局與投資發展報告
- 2025至2030中國環保面料市場運行剖析及投資前景深度探討報告
- 2025至2030中國狗屎鏟行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025年湖北省中考道德與法治真題含答案
- 2024年上海浦東新區公辦學校儲備教師招聘筆試真題
- 物流司機獎罰管理制度
- 體裁教學法在高中英語閱讀教學中的應用研究-以說明文為例
- 7數滬科版期末考試卷-2024-2025學年七年級(初一)數學下冊期末考試模擬卷02
- 人教版(2024)2025年春季學期七年級下冊地理期末復習模擬試卷(原卷)
- 2025年全國統一高考英語試卷(全國一卷)含答案
- 2025年全國普通高校招生全國統一考試數學試卷(新高考Ⅰ卷)含答案
- 生物●廣東卷丨2024年廣東省普通高中學業水平選擇性考試生物試卷及答案
- 2025年河南省豫地科技集團有限公司社會招聘169人筆試參考題庫附帶答案詳解析集合
- 2025年中國電風扇行業市場現狀、進出口貿易、市場規模預測報告
評論
0/150
提交評論