VC++課程設計報告 圖書館管理系統(tǒng)
《VC++課程設計報告 圖書館管理系統(tǒng)》由會員分享,可在線閱讀,更多相關《VC++課程設計報告 圖書館管理系統(tǒng)(59頁珍藏版)》請在裝配圖網上搜索。
1、 江 蘇 師 范 大 學 科 文 學 院 本 科 生 課 程 設 計 課 程 名 稱: 計算機程序設計(VC++) 題 目: 圖書館管理系統(tǒng) 專 業(yè) 班 級: 10電信一班 學 生 姓 名: 張文成 學 生 學 號: 108326122 日 期: 20130111 指 導 教 師: 姜芳艽 科文
2、學院教務部印制 一、課程設計目的、任務和內容要求: 《計算機語言程序設計》是一門以編程實踐為主的專業(yè)課,目的在于培養(yǎng)學生利用計算機語言進行軟件開發(fā)所必需的基本思想和基本技能,進一步提高綜合應用計算機語言的各種編程知識和技巧進行程序設計的能力,通過本次課程設計,學生應能達到具備設計功能較為復雜的應用程序的能力,同時培養(yǎng)學生自主學習和獨立創(chuàng)新的精神。 任務如下: 1.進行需求分析和概要設計,給出流程圖。 2.寫出詳細設計,熟悉其中采用的關鍵技術。 3.給出具體的編碼實現并調試。 4.寫課程設計報告提交源程序。 內容要求: 設計并完成軟件系統(tǒng)。要求:
3、 1.應具有簡潔友好的用戶界面。 2.要求軟件系統(tǒng)的功能完整。 3.要求程序具備正確性,可讀性和運行的高效性。 二、進度安排: 第1~3天: 查找資料,進行需求分析和概要設計; 第4~6天: 各模塊的詳細設計; 第7~12天: 軟件實現與調試; 第13~14天:寫課程設計報告并提交源程序。 三、主要參考文獻: 1.孫鑫. VC++深入詳解[M] .北京:電子工業(yè)出版社, 2006.
4、 2.鄭阿奇. Visual C++實用教程(第3版)[M]北京:.電子工業(yè)出版社,2010 3.管西京. 深入體驗VC++項目開發(fā)(開發(fā)日記)[M] .北京:清華大學出版社, 2011 4.馬安鵬.Visual C++程序設計導學[M] .北京;清華大學出版社,2002 5.Beck Zaratian.Microsoft Visual Visual C++ 6.0程序員指南.希望圖書創(chuàng)作室譯. [M] .北京;北京希望電腦公司出品,1998 6.Richard C.Leinecker,Tom Archer. Visual C++ 6 寶典.張艷,張謙譯. [M] .北京;電子工業(yè)
5、出版社,1999 指導教師簽字: 年 月 日 江蘇師范大學物理與電子工程學院課程設計報告 目 錄 目 錄 I 摘 要 I Abstract II 1 緒論 1 1.1需求背景 1 1.1.1開發(fā)目標 1 1.1.2開發(fā)意義 1 1.1.3主要工作內容 2 2 設計方案簡述 3 2.1 圖書館管理系統(tǒng)功能介紹 3 2.2程序開發(fā)
6、環(huán)境和基本開發(fā)軟件 3 2.2.1 VC++開發(fā)軟件 3 2.2.2 數據庫開發(fā)軟件 3 2.2.3環(huán)境搭建 4 2.3 程序設計流程圖 4 2.4系統(tǒng)的功能模塊劃分 4 3詳細設計 6 3.1 數據庫的建立及更新 6 3.1.1數據庫的建立 6 3.2系統(tǒng)登錄模塊設計 8 3.3系統(tǒng)主界面設計 11 3.4圖書信息管理模塊設計 12 3.5管理員、讀者信息管理模塊設計 13 3.7借書、罰金查詢查詢模塊設計 15 3.7系統(tǒng)幫助模塊設 16 4 設計結果及分析 17 4.1黑盒測試 17 4.2測試結果 17 4.2.1登錄測試 17 4.2.2管理測試
7、 18 4.2.3借書測試 22 4.2.4還書測試 23 4.2.5借書、罰金查詢測試 24 4.2.6系統(tǒng)時間查詢測試 25 5 總結 26 5.1 小結 26 參考文獻 27 附錄 主要程序代碼 28 摘 要 隨著現代科學技術的進步,人類社會正逐走向信息化。圖書館擁有豐富的文獻信息資源,是社會信息系統(tǒng)的重要組成部分,在信息社會中的作用愈來愈重要。我國圖書館計算機等信息技術的應用起步于20世紀70年代末期,隨著改革開放的步伐得以迅速發(fā)展,特別是90年代以后,我國圖書館信息網絡建設取得了較大發(fā)展,圖書館信息化建設邁上了一個新臺階。 本文介紹了在Visua
8、l C++環(huán)境下開發(fā)圖書管理信息系統(tǒng)的過程。文章介紹了圖書館管理信息系統(tǒng)的系統(tǒng)分析部分,包括可行性分析、圖書借閱流程分析等;系統(tǒng)設計部分主要介紹了系統(tǒng)功能設計和數據庫設計及代碼設計;系統(tǒng)實現部分說明了幾個主要模塊的算法,本系統(tǒng)界面友好,操作簡單,比較實用。 系統(tǒng)主要完成了用戶登錄功能、新建、刪除用戶功能、用戶管理功能,對數據庫內圖書信息、借閱信息和讀者信息進行查詢、添加、刪除功能。 關鍵詞: Visual C++;數據庫管理;圖書;借閱 Abstract Along with the progress of modern sc
9、ience and technology, human society is driven to informationization.Libraries have abundant literature information resources, social information system is an important part of the role in the information society, more and more important. Chinese library computers started in the application of inform
10、ation technology in the late 1970s, along with the reform and opening-up develop rapidly, especially after 1990s, the library information network construction in China has made great development, library informatization construction to step on to a new step. This paper introduces in Visual C++ env
11、ironment development books management information system process. This paper introduces the library management information system of analysis parts, including the feasibility analysis, library process analysis, etc. System design part mainly introduced the system function design and database design
12、and code design; System realize part of several major modules illustrates the algorithm, this system friendly interface, the operation is simple, is more practical. Library management system mainly to complete the user login, create, delete user function, user management function, the database of l
13、ibrary information, library information. Key words: Visual C++;database; management; books; borrow - 53 - 1 緒論 1.1需求背景 隨著科學技術的不斷提高,計算機科學日漸成熟, 作為計算機應用的一部分,使用計算機對圖書信息進行管理,具有手工管理所無法比擬的優(yōu)點。圖書管理系統(tǒng)的開發(fā)是一個老生常談的問題,以其作為數據庫開發(fā)的示例不僅是因為它的開放性,而且還因為它是一個開放的系統(tǒng),比較成熟。 用計算機制作的圖書信息管理系統(tǒng)還可以通過功能強大的Internet網及時的向讀者
14、發(fā)布圖書的最新動態(tài),因此,開發(fā)這樣一套管理軟件成為很有必要的事情。而今,這類相關的管理系統(tǒng)已廣泛的應用在各行各業(yè),成為各行業(yè)提高相關管理效率的重要手段。圖書信息管理系統(tǒng)也在日益廣泛地應用于各圖書館的管理中,大大提高了圖書管理的相關管理效率,其在圖書管理中所起的作用是顯而易見的。 1.1.1開發(fā)目標 本次課題為圖書信息管理系統(tǒng),其主要包含圖書基本信息和圖書借閱系統(tǒng),能進行圖書信息的錄入、讀者登記、查詢等功能。該項目開發(fā)的軟件為學校圖書信息管理系統(tǒng)軟件,是鑒于目前學校圖書數劇增,圖書信息呈爆炸性增長的前提下,圖書館對圖書信息管理的自動化與準確化的要求日益強烈的背景下構思出來的,該軟件設計完成后
15、可用于所有中小型圖書館的圖書信息的管理。 1.1.2開發(fā)意義 目前社會上信息管理系統(tǒng)發(fā)展飛快,各個企事業(yè)單位都引入了信息管理軟件來管理自己日益增長的各種信息,圖書管理系統(tǒng)也是有了很大的發(fā)展,商業(yè)化的圖書信息管理軟件也不少,但本系統(tǒng)完全獨立開發(fā),力求使系統(tǒng)功能簡潔明了,但功能齊全且易于操作。 1.1.3主要工作內容 本課題研究內容本次畢業(yè)設計通過對管理系統(tǒng)模型的研究,提出了一套構造圖書信息管理系統(tǒng)模型的方法,提出了圖書管理系統(tǒng)的一般建立方法,并且利用數據庫、信息系統(tǒng)分析所學知識,結合其它相關管理常識,通過對某圖書館圖書流通過程的分析,建立相關數據模型,利用面向對象開發(fā)工具對其進行設計與開
16、發(fā)。系統(tǒng)主要由兩大子系統(tǒng)組成:圖書管理和維護子系統(tǒng)以及圖書信息服務子系統(tǒng)。系統(tǒng)主要有四個數據庫表:圖書信息表,用戶信息表,學生信息表和借出信息表本課題研究方案1. 以現代軟件工程原理和思想指導整個課題的開發(fā)過程,要經過系統(tǒng)可行性分析、需求分析、概要設計、詳細設計、編碼、調試維護和安裝實施等步驟。2.要有詳細的設計說明書; 3.每一模塊的流程圖要很清晰;4.本系統(tǒng)能夠正常的運行,能較好得完成預定的功能;5.系統(tǒng)要有完整的幫助文件,供前臺操作員能方便的操作本系統(tǒng)。 2 設計方案簡述 2.1
17、圖書館管理系統(tǒng)功能介紹 本系統(tǒng)主要實現對圖書館信息的管理,主要可以分為兩大塊:圖書信息的服務系統(tǒng)和圖書的綜合管理系統(tǒng)。圖書的使用對象是借閱者,例如學生,教師;管理者是圖書館的管理員。因此根據這些信息,本系統(tǒng)的主要功能就是:實現圖書館圖書信息的管理和維護,如用戶信息管理,圖書館規(guī)則維護,新書入庫,整理圖書,修改圖書信息和進行查詢等;以及服務系統(tǒng)的圖書信息查詢,圖書的借出和歸還等功能圖書信息管理系統(tǒng)能夠為用戶提供充足的信息和快捷的查詢手段。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高圖書信息管理的效率,也是圖書管理的科學化、數字化、正規(guī)化管理,
18、與世界接軌的重要條件。 2.2程序開發(fā)環(huán)境和基本開發(fā)軟件 2.2.1 VC++開發(fā)軟件 對于小型應用軟件的開發(fā),VC++ 6.0易操作,并且有強大的調試和糾錯功能,對于經驗不多的開發(fā)者來說,VC++ 6.0 應該是首先選擇的工具。這款軟件主要基于MFC(Microsoft Foundation Classes)卡發(fā)環(huán)境,MFC是以C++類的形式封裝了Windows的API,并且包含一個應用程序框架,以減少應用程序開發(fā)人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內建控件和組件的封裝類。MFC中有大量的美觀的使用控件,對于程序界面的設計十分方便。
19、 2.2.2 數據庫開發(fā)軟件 在這里采用了Microsoft Acess ODBC數據庫,來實現對數據的存儲與更新。Microsoft Acess ODBC數據庫具有操作簡便,性能良好等特點,便于vc++編程初學者使用 2.2.3環(huán)境搭建 首先,構建數據庫,在構建完成之后,進行配置Microsoft Acess ODBC數據庫。配置完成之后,新建單文檔,導入數據源文件即可。 2.3 程序設計流程圖 表BOOK 圖書管理系統(tǒng) 用戶登錄 輸入用戶名和密碼 是否正確 是 否 圖書管理 讀者管理 借閱管理 管理員管理 新書入庫 書籍查詢 書籍信息
20、修改 增加讀者 讀者信息查詢 讀者信息修改 圖書借閱 圖書歸還 逾期罰款 管理員信息查詢 增加、刪除帳號 退出系統(tǒng) 表READER 表BORROW 表FINE 表CLERK 圖2-1流程圖 2.4系統(tǒng)的功能模塊劃分 整個圖書管理系統(tǒng)分為四個模塊。分別為圖書管理模塊、借閱管理模塊、讀者管理模塊和系統(tǒng)管理模塊。 圖書管理 讀者管理 圖書管理系統(tǒng) 借閱管理 系統(tǒng)管理 新書入庫 讀者信息查詢 管理員信息查詢 罰金設置 圖書歸還 書籍查詢 書籍信息修改 圖書歸還 逾期罰款 圖書借閱 圖書歸還 讀者信息修改 增加讀者 退出
21、系統(tǒng) 刪除帳號 登錄 圖2-2 系統(tǒng)模塊化分 3詳細設計 3.1 數據庫的建立及更新 3.1.1數據庫的建立 用ACCESS2007建立名為“Library”的數據庫,創(chuàng)建5個表,分別為:BOOK,CLERK,READER,BORROW和FINE。 圖3-1ACCESS數據表 圖3-2 ODBC數據源管理器配置 圖3-3利用ODBC數據源管理器創(chuàng)建數據源 圖3-4建立名為“Library”的MFC單文檔應用程序向導 3.2系統(tǒng)登錄模塊設計 圖3-5添加系統(tǒng)登錄對
22、話框 圖3-6屬性設置 雙擊對話框打開ClassWizard對話框,為IDD_LOGIN添加CLoginMDlg類,按下表為該類。 圖3-7添加成員變量 圖3-8創(chuàng)建一個名為CClerkDataSet新類 圖3-9創(chuàng)建數據源 圖3-10選擇對應的表格 圖3-11添加相應的消息響應函數 3.3系統(tǒng)主界面設計 圖3-12主界面 其中系統(tǒng)登錄可以登陸和退出系統(tǒng),管理信息可以查看管理員信息、圖書信息、讀者信息;借閱手續(xù)中包含圖書借閱、圖書歸還、繳納罰款;信息查詢中包含讀者查詢、系統(tǒng)時間查詢;幫助中可以查看系統(tǒng)幫助和版本信息。 3.4圖書
23、信息管理模塊設計 圖3-13書籍信息界面 添加書籍信息對話框,屬性設置為IDD_BOOK_MAINTAIN,微軟雅黑,10號字體 為IDD_BOOK_MAINTAIN添加成員變量。 創(chuàng)建一個新類,名為CBookDataSet,方法步驟同CClerkDataSet,添加消息映射,最后輸入按鈕代碼。 3.5管理員、讀者信息管理模塊設計 圖3-14管理員信息管理 添加管理員信息對話框,屬性設置為IDD_CLERK_MAINTAIN,微軟雅黑,10號建立新類CClerkMDlg,按圖書信息模塊設計步驟做相似操作,添加消息映射,最后輸入按鈕代碼。 圖3-15讀者信息管
24、理 添加讀者信息對話框,屬性設置為IDD_READER_MAINTAIN,微軟雅黑,10號,為IDD_LENDOUT添加成員變量。建立新類LendOutDlg,按上述步驟做相似操作,添加消息響應,最后輸入按鈕代碼。 圖3-16還書管理 添加圖書歸還對話框,屬性設置為IDD_ReturnBook,微軟雅黑,10號,為IDD_ReturnBook添加成員變量,建立新類CReturnBookDlg,按上述步驟做相似操作,添加消息映射,最后輸入代碼。 3.7借書、罰金查詢查詢模塊設計 圖3-17借書查詢 添加借書查詢對話框,屬性設置為IDD_DLGREADERQRY,微軟雅黑,
25、10號,為IDD_DLGREADERQRY添加成員變量,建立新類CReaderQryDlg,按上述步驟做相似操作,添加消息映射,最后輸入代碼。 圖3-18罰金查詢 添加繳納罰金對話框,屬性設置為IDD_FINE,微軟雅黑,10號字體,為IDD_FINE添加成員變量,建立新類CFineHistoryDataSet,按上述步驟做相似操作,添加消息映射 最后輸入代碼。 3.7系統(tǒng)幫助模塊設 圖3-19系統(tǒng)幫助 4 設計結果及分析 4.1黑盒測試 采用黑盒測試方法。對功能進行逐一測試,在輸入合理及不合理的數據后測試系統(tǒng)的正常運作情況 測
26、試1:系統(tǒng)登錄測試 測試2:圖書管理測試 測試3:讀者管理測試 測試4:管理員管理測試 測試5:借書測試 測試6:還書測試 測試7:借書、罰金查詢測試 4.2測試結果 4.2.1登錄測試 圖4-1正確登錄 圖4-2錯誤登錄 4.2.2管理測試 圖4-3圖書新增 圖4-4讀者新增 圖4-5編輯管理員信息 圖4-6編輯書籍信息 圖4-7編輯讀者信息 圖4-8書籍信息查詢 4-9讀者信息查詢 4.2.3借書測試 圖4-10借書測試 圖4-11借閱成功 圖4-12借閱失敗 4.2.4還
27、書測試 圖4-13圖書歸還 4.2.5借書、罰金查詢測試 圖4-14借書查詢 圖4-15罰金查詢 4.2.6系統(tǒng)時間查詢測試 圖4-16系統(tǒng)時間查詢 5 總結 5.1 小結 在這次的課程設計中,讓我學到了很多在課堂上和書本上學不到的知識,我在這次課程設計中最大的收獲有以下幾方面: 領略到了數據庫設計在計算機領域的重要性。數據庫作為一個永久存儲形式在應用中發(fā)揮著重要的作用。在數據庫設計中,我明白了數據庫設計不是范式越高越好的,我們要根據我們的應用來決定,一切應該以需求為首要選擇。 對編程環(huán)境、一些控
28、件的使用和界面的設計更加熟悉。因為《圖書管理系統(tǒng)》中設計到很多控件的使用,只有很好的使用這些控件才可以給出一個很好的界面呈現在用戶面前。這樣更有利于數據庫和用戶之間的交流。 利用軟件工程學開發(fā)系統(tǒng)。雖然這個《圖書管理系統(tǒng)》是一個小的系統(tǒng),但從這個小的項目中也讓我明白了數據庫作為任何一個系統(tǒng)的后臺的重要性,在開發(fā)系統(tǒng)設計和實現中學到和總結很多經驗和教訓。 參考文獻 參考文獻類型及標識: 參考文獻類型 專著 論文集 報紙文章 期刊文章 學位論文 報告 標準 專利 文獻類型標識 M C N J D R S P 其
29、他未作說明的文獻,建議采用單字母“Z”。 [1] 孫鑫. VC++深入詳解[M] .北京:電子工業(yè)出版社, 2006 [2] 鄭阿奇. Visual C++實用教程(第3版)[M]北京:.電子工業(yè)出版社,2010 [3] 管西京. 深入體驗VC++項目開發(fā)(開發(fā)日記)[M] .北京:清華大學出版社, 2011 [4] 馬安鵬.Visual C++程序設計導學[M] .北京:清華大學出版社,2002 [5] Beck Zaratian.Microsoft Visual Visual C++ 6.0程序員指南.希望圖書創(chuàng)作室譯. [M] .北京;北京希望電腦公司出品,1998 [6]
30、 Richard C.Leinecker,Tom Archer. Visual C++ 6 寶典.張艷,張謙譯. [M] .北京;電子工業(yè)出版社,1999 附錄 主要程序代碼 1、 主界面代碼 // CMainFrame construction/destruction //窗體框架創(chuàng)建函數 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) re
31、turn -1; /*if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create }*/
32、 if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } // TODO: Delete these three lines if you dont want the toolbar to // be dockable
33、 //以下為自己添加的代碼部分 //先啟動登陸界面 //=============用戶登陸對話框顯示============= CLoginDlg dlg1;//聲明一個登陸對話框對象 dlg1.DoModal();//讓對話框對象以有模形式顯示 //================開機啟動畫面================ //CSplashWnd::ShowSplashScreen(this); //顯示啟動畫面 //SetTimer(1, 850, NULL); //修改第二個參數以調整畫面停留時間 //Sleep(2000); //陽傘公司圖
34、標 CSplashDlg *dlg = new CSplashDlg(this); dlg->Create(CSplashDlg::IDD,this); //創(chuàng)建對話框 dlg->ShowWindow(SW_SHOW); //顯示對話框 dlg->UpdateWindow(); Sleep(1500); //畫面顯示停留時間,單位為毫秒 dlg->DestroyWindow(); //銷毀對話框 return 0; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {
35、if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs // TODO: 在此處通過修改 //CREATESTRUCT cs 來修改窗口類或樣式 cs.style &=~FWS_ADDTOTITLE; cs.lpszName = "江蘇師范大學敬文圖書館管理系統(tǒng)"; //設定窗口的尺寸
36、 cs.cx = 1024; cs.cy = 714; return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CMainFrame message handlers //圖書管理菜單按鈕 void CMainFrame::OnBookDlg() { CBookMDlg dlg;//定義一個對話框類對象 dlg.DoModal();//顯示對話框 } //讀者信息管理菜單按鈕 void CMa
37、inFrame::OnReaderDlg() { // TODO: Add your command handler code here CReaderMDlg dlg;//定義一個對話框類對象 dlg.DoModal();//顯示對話框 } //管理員信息管理菜單按鈕 void CMainFrame::OnClerkDlg() { // TODO: Add your command handler code here CClerkMDlg dlg;//定義一個對話框類對象 dlg.DoModal();//顯示對話框 } //書籍借出管理菜單
38、按鈕 void CMainFrame::OnLenoutDlg() { // TODO: Add your command handler code here CLendOutDlg dlg;//定義一個對話框類對象 dlg.DoModal();//顯示對話框 } //管理菜單按鈕 void CMainFrame::OnFineDlg() { // TODO: Add your command handler code here CFineDlg dlg;//定義一個對話框類對象 dlg.DoModal();//顯示對話框 } //讀者信
39、息查詢管理菜單按鈕 void CMainFrame::OnReaderqryDlg() { // TODO: Add your command handler code here CReaderQryDlg dlg;//定義一個對話框類對象 dlg.DoModal();//顯示對話框 } //圖書歸還管理菜單按鈕 void CMainFrame::OnReturnbookDlg() { // TODO: Add your command handler code here CReturnBookDlg dlg;//定義一個對話框類對象 dlg.Do
40、Modal();//顯示對話框 } //系統(tǒng)幫助菜單按鈕 void CMainFrame::OnSystermhelp() { // TODO: Add your command handler code here CSystemHelp dlg;//定義一個對話框類對象 dlg.DoModal();//顯示對話框 } //系統(tǒng)時間菜單按鈕 void CMainFrame::OnSystermtimeDlg() { // TODO: Add your command handler code here CSystemTime dlg;//定義
41、一個對話框類對象 dlg.DoModal();//顯示對話框 } //登陸對話框菜單按鈕 void CMainFrame::OnLoginDlg() { // TODO: Add your command handler code here CLoginDlg dlg;//定義一個對話框類對象 dlg.DoModal();//顯示對話框 } //程序退出菜單按鈕 void CMainFrame::OnExit() { // TODO: Add your command handler code here if(MessageBox("確
42、定要退出嗎?","提示",MB_YESNO)==IDYES)// { CFrameWnd::OnClose();//關閉應用程序 } } 2、 管理信息 CBookMDlg::CBookMDlg(CWnd* pParent /*=NULL*/) : CDialog(CBookMDlg::IDD, pParent) { //{{AFX_DATA_INIT(CBookMDlg) m_strAUTHOR = _T(""); m_strBOOKID = _T(""); m_strBOOKIDQ = _T(""); m_strBOOKNAME = _T(
43、""); m_strBOOKNAMEQ = _T(""); m_strPRESS = _T(""); m_strPRESSDATE = _T(""); m_strFLAG = _T(""); //}}AFX_DATA_INIT } void CBookMDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBookMDlg) DDX_Text(pDX, IDC_AUTHOR, m_strAUTHOR); DDX_Text(p
44、DX, IDC_BOOKID, m_strBOOKID); DDX_Text(pDX, IDC_BOOKID_Q, m_strBOOKIDQ); DDX_Text(pDX, IDC_BOOKNAME, m_strBOOKNAME); DDX_Text(pDX, IDC_BOOKNAME_Q, m_strBOOKNAMEQ); DDX_Text(pDX, IDC_PRESS, m_strPRESS); DDX_Text(pDX, IDC_PRESSDATE, m_strPRESSDATE); DDX_Text(pDX, IDC_FLAG_BORROW, m_strFLAG
45、); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBookMDlg, CDialog) //{{AFX_MSG_MAP(CBookMDlg) ON_BN_CLICKED(IDC_SAVE, OnSave) ON_BN_CLICKED(IDC_EXIT, OnExit) ON_BN_CLICKED(IDC_FIRST, OnFirst) ON_BN_CLICKED(IDC_PRIOR, OnPrior) ON_BN_CLICKED(IDC_NEXT, OnNext) ON_BN_CLICKED(IDC_LAST, OnLas
46、t) ON_BN_CLICKED(IDC_NEW, OnNew) ON_BN_CLICKED(IDC_ENQUERY, OnEnquery) ON_BN_CLICKED(IDC_EDIT, OnEdit) ON_BN_CLICKED(IDC_DELETE, OnDelete) ON_BN_CLICKED(IDC_CANCEL, OnCancel) ON_BN_CLICKED(IDC_CANCELRec, OnCANCELRec) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////
47、////////////////////////////////////////////// // CBookMDlg message handlers //===========================界面操作============================== //保存按鈕消息映射函數 void CBookMDlg::OnSave() { // TODO: Add your control notification handler code here UpdateData(TRUE);//控件內容更新到關聯(lián)變量 //輸入為空 提示警告
48、 if (m_strBOOKNAME.IsEmpty() || m_strBOOKID.IsEmpty()) { AfxMessageBox("請輸入相應數據!"); return; } if(m_bAdd)//判別添加標志位 { m_rsDataSet.AddNew();//添加 MessageBox("添加完成!"); } else { //編輯標志位有效 if(m_bEdit) { m_rsDataSet.Edit();//編輯 MessageBox("編輯完成!"); } } //控件
49、關聯(lián)變量更新到數據庫 m_rsDataSet.m_BOOKNAME=m_strBOOKNAME; //書名 m_rsDataSet.m_BOOKID=m_strBOOKID; //書籍條碼 m_rsDataSet.m_AUTHOR=m_strAUTHOR; //作者 m_rsDataSet.m_PRESS=m_strPRESS; //出版社 m_rsDataSet.m_PRESSDATE=m_strPRESSDATE; //出版日期 m_rsDataSet.m_FLAG=m_strFLAG; //借閱信息 //更新到數據庫 m_rsDataSet
50、.Update(); m_rsDataSet.Requery(); //標志位失效 m_bAdd = FALSE; m_bEdit = FALSE; MessageBox("操作成功!"); DisplayRecord();//顯示刷新紀錄 //恢復控件只讀 不可編輯 //根據控件ID獲取控件的句柄 指針指向成員函數撤銷編輯框只讀設置 ((CEdit*)GetDlgItem(IDC_BOOKNAME))->SetReadOnly(true); //書籍名稱 ((CEdit*)GetDlgItem(IDC_BOOKID))->SetR
51、eadOnly(true); //書籍條碼 ((CEdit*)GetDlgItem(IDC_AUTHOR))->SetReadOnly(true); //作者 ((CEdit*)GetDlgItem(IDC_PRESS))->SetReadOnly(true); //出版社 ((CEdit*)GetDlgItem(IDC_PRESSDATE))->SetReadOnly(true); //出版日期 ((CEdit*)GetDlgItem(IDC_FLAG_BORROW))->SetReadOnly(true); //能否借閱 } //取消按鈕消息映射函
52、數 void CBookMDlg::OnCANCELRec() { // TODO: Add your control notification handler code here //標志位失效 m_bEdit = FALSE; m_bAdd = FALSE; MessageBox("操作已取消!"); DisplayRecord(); } //取消按鈕消息映射函數 void CBookMDlg::OnCancel() { // TODO: Add your control notification handler code here C
53、Dialog::OnCancel(); } //退出按鈕消息映射函數 void CBookMDlg::OnExit() { // TODO: Add your control notification handler code here CDialog::OnCancel(); } //================================數據庫查詢操作====================================== //第一條按鈕消息映射函數 void CBookMDlg::OnFirst() { if(!m_rsDat
54、aSet.IsEOF())//判斷是否到達記錄集的結尾 { m_rsDataSet.MoveFirst();//指針指向第一條記錄 DisplayRecord();//顯示刷新記錄 } } //上一條按鈕消息映射函數 void CBookMDlg::OnPrior() { //IsBOF()當指針移動到第一條記錄前面或者表中沒有記錄的時候返回真 if(!m_rsDataSet.IsBOF()) //判斷是否到達記錄集的結尾 { m_rsDataSet.MovePrev(); //指針移動到上一條記錄 DisplayRecord();
55、//顯示刷新記錄 } } //下一條按鈕消息映射函數 void CBookMDlg::OnNext() { if(!m_rsDataSet.IsEOF())//判斷是否到達記錄集的結尾 { m_rsDataSet.MoveNext();//指針移動到下一條記錄 DisplayRecord();//顯示刷新記錄 } } //末一條按鈕消息映射函數 void CBookMDlg::OnLast() { //IsEOF()當指針移動到最后一條記錄后面的時候返回真 if(!m_rsDataSet.IsEOF())//判斷是否到達記錄集的
56、結尾 { m_rsDataSet.MoveLast();//指針移動到最后一條記錄 DisplayRecord();//顯示刷新記錄 } } //====================數據庫修改操作=================== //新增按鈕消息映射函數 void CBookMDlg::OnNew() { UpdateData(FALSE); //編輯框控件數據清空 m_strBOOKNAME=""; //書名 m_strBOOKID=""; //書籍條碼 m_strAUTHOR=""; //作者 m_strPRES
57、S=""; //出版社 m_strPRESSDATE=""; //出版日期 m_strFLAG=""; //借閱信息 UpdateData(FALSE);//更新到關聯(lián)變量 //標志位設置 m_bEdit = FALSE; m_bAdd = TRUE; //撤銷控件只讀 可編輯 //根據控件ID獲取控件的句柄 指針指向成員函數撤銷編輯框只讀設置 ((CEdit*)GetDlgItem(IDC_BOOKNAME))->SetReadOnly(false); //書籍名稱 ((CEdit*)GetDlgItem(IDC_BOOKID))->SetRe
58、adOnly(false); //書籍條碼 ((CEdit*)GetDlgItem(IDC_AUTHOR))->SetReadOnly(false); //作者 ((CEdit*)GetDlgItem(IDC_PRESS))->SetReadOnly(false); //出版社 ((CEdit*)GetDlgItem(IDC_PRESSDATE))->SetReadOnly(false); //出版日期 ((CEdit*)GetDlgItem(IDC_FLAG_BORROW))->SetReadOnly(false); //能否借閱 } //查詢按鈕消息映射
59、函數 void CBookMDlg::OnEnquery() { //目的將表單中的控件的輸入內容更新到所關聯(lián)的變量上,讓m_strBOOKNAMEQ和m_strBOOKIDQ獲得輸入直 UpdateData(TRUE); m_strBOOKNAMEQ.TrimLeft(); m_strBOOKIDQ.TrimLeft(); //成員函數調用 if(m_strBOOKNAMEQ.IsEmpty() && m_strBOOKIDQ.IsEmpty())//編輯框內容不能都為空 { MessageBox("要查詢的書目不能為空!"); return;
60、 } //判斷記錄集是否打開,若打開則關閉 if(m_rsDataSet.IsOpen()) m_rsDataSet.Close(); //指定查詢條件 要先關閉記錄集才能有效 m_rsDataSet.m_strFilter.Format("BOOKNAME=%sOR BOOKID=%s",m_strBOOKNAMEQ,m_strBOOKIDQ); //BOOKNAME是book表的字段名,用于指定查詢條件 BOOKNAME=m_strBOOKNAMEQ m_rsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE); //m_rsDataS
61、et.Open();//打開記錄集 m_rsDataSet.Requery(); if(!m_rsDataSet.IsEOF())//記錄集沒有結束 說明找到指定條件下的記錄 否則沒有對應記錄 { DisplayRecord();//顯示刷新記錄 } else MessageBox("沒有查到你要找的書目記錄!"); } //修改按鈕消息映射函數 void CBookMDlg::OnEdit() { // TODO: Add your control notification handler code here m_bEdit = TRU
62、E;//編輯標志位有效 m_bAdd = FALSE;//添加標志位無效 //撤銷控件只讀 可編輯 //根據控件ID獲取控件的句柄 指針指向成員函數撤銷編輯框只讀設置 ((CEdit*)GetDlgItem(IDC_BOOKNAME))->SetReadOnly(false); //書籍名稱 ((CEdit*)GetDlgItem(IDC_BOOKID))->SetReadOnly(false); //書籍條碼 ((CEdit*)GetDlgItem(IDC_AUTHOR))->SetReadOnly(false); //作者 ((CEdit*)GetD
63、lgItem(IDC_PRESS))->SetReadOnly(false); //出版社 ((CEdit*)GetDlgItem(IDC_PRESSDATE))->SetReadOnly(false); //出版日期 ((CEdit*)GetDlgItem(IDC_FLAG_BORROW))->SetReadOnly(false); //能否借閱 } //刪除按鈕消息映射函數 void CBookMDlg::OnDelete() { // TODO: Add your control notification handler code here CRecor
64、dsetStatus status;//記錄指針位置 m_rsDataSet.GetStatus(status);//獲取記錄指針所在位置 m_rsDataSet.Delete();//刪除當前記錄 if(status.m_lCurrentRecord==0)//判斷刪除后,當前指針位置 { m_rsDataSet.MoveNext();// } else//記錄指針位置在最后一條 { m_rsDataSet.MoveFirst();//指針指向第一條 } UpdateData(FALSE);//更新到關聯(lián)變量 DisplayRecord()
65、;//顯示刷新記錄 } //對話框初始化函數 BOOL CBookMDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_bEdit = FALSE;//標志位失效 m_bAdd = FALSE; //標志位失效 //m_rsDataSet.m_strFilter.Format("BOOKNAME=%s OR BOOKID=%s",m_strBOOKNAMEQ,m_strBOOKIDQ); //打開數據庫 如果打開失敗返回假 并且提示
66、 if(!m_rsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE)) AfxMessageBox("數據打開失??!"); DisplayRecord();//顯示刷新記錄 //=====================登陸權限判別======================== CLibraryApp *app = (CLibraryApp *)AfxGetApp(); //生成指向應用程序類的指針 if(app->flag ==1)//訪問全局變量 判斷是否為管理員 開放編輯權限 { //命令按鈕權限開放 GetDlgItem(IDC_NEW)->EnableWindow(true); //新建 GetDlgItem(IDC_ENQUERY)->EnableWindow(true); //查詢 GetDlgItem(IDC_EDIT)->EnableWindow(true); //編輯 GetDlgItem(IDC_DELETE)->EnableWindow(true); //
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。