版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、中南民族大學(xué)計算機科學(xué)學(xué)院Windows系統(tǒng)編程課程設(shè)計報告題 目:圖書管理系統(tǒng) 書庫系統(tǒng)設(shè)計 專 業(yè) 08自動化 學(xué) 生 姓 名 何龍 班 級 學(xué) 號 指 導(dǎo) 老 師 鄭波盡 完 成 日 期 圖書管理系統(tǒng) 書庫管理系統(tǒng)一、課題背景:隨著社會信息量的與日俱增,作為信息存儲的主要媒體之一圖書,數(shù)量、規(guī)模比以往任何時候都大的多,不論個人還是圖書管理部門都需要使用方便而有效的方式來管理自己的書籍。在計算機日益普及的今天,對個人而言若采用一套行之有效的圖書管理系統(tǒng)來管理自己的書籍,會方便許多。對圖書管理部門而言,以前單一的手工檢索已不能滿足人們的要求,為了便于圖書資料的管理需要有效的圖書管理軟件。圖書
2、管理系統(tǒng)軟件是一套功能比較完善的數(shù)據(jù)管理軟件,具有數(shù)據(jù)操作方便高效迅速等優(yōu)點。該軟件采用數(shù)據(jù)庫軟件開發(fā)工具進行開發(fā),具有很好的可移植性,可在應(yīng)用范圍較廣WINDOWS系列等操作系統(tǒng)上使用。二、課題目的:1. 進一步掌握利用Visual Studio進行程序設(shè)計的能力2. 基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法3. 加深對數(shù)據(jù)庫的掌握和運用4. 掌握用VC+開發(fā)應(yīng)用程序的的一般步驟和方法5. 進一步加強C+的編程能力和對程序結(jié)構(gòu)的理解6. 學(xué)會調(diào)試一個較長程序的基本方法三、課題要求:根據(jù)所學(xué)知識,編寫指定題目的程序,并規(guī)范地完成課程設(shè)計報告。通過課程設(shè)計,加深對Windows程序設(shè)計課程所學(xué)知
3、識的理解,學(xué)會編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腤indows平臺應(yīng)用程序,從而具備利用計算機編程分析解決綜合性實際問題的初步能力。具體要求如下:1 了解Windows編程的基礎(chǔ)知識,掌握MFC應(yīng)用程序的基本知識;基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法;掌握用VC+開發(fā)應(yīng)用程序的一般步驟和方法;系統(tǒng)以Windows標(biāo)準(zhǔn)菜單界面方式工作,運行界面友好,演示程序以用戶和計算機的對話方式進行。2 采用界面選擇與編輯框兩種輸入方式,輸出結(jié)果直接顯示在售票對話框中。輸入的數(shù)據(jù)必須符合程序所規(guī)定的合法輸入方式,對不合法的信息輸入將提示無法處理。3 輸入輸出的要求 采用界面選擇與編輯框兩種輸入方式,輸
4、出結(jié)果直接顯示在售票對話框中。輸入的數(shù)據(jù)必須符合程序所規(guī)定的合法輸入方式,對不合法的信息輸入將提示無法處理。4 使用界面編程、網(wǎng)絡(luò)、數(shù)據(jù)庫、文件系統(tǒng)、線程和進程、異常處理等知識。特別是數(shù)據(jù)庫的應(yīng)用,用來存儲數(shù)據(jù)和提供數(shù)據(jù)。對于網(wǎng)絡(luò)主要進行網(wǎng)絡(luò)通信,連接客戶端和服務(wù)器端。四、開發(fā)工具介紹 1.總體介紹:Visual Studio 是一套完整的開發(fā)工具集,用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動應(yīng)用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成開發(fā)環(huán)境 (IDE),利用此 I
5、DE 可以共享工具且有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了 .NET Framework 的功能,通過此框架可使用簡化 ASP Web 應(yīng)用程序和 XML Web Services 開發(fā)的關(guān)鍵技術(shù)。2.功能介紹:創(chuàng)建滿足關(guān)鍵性要求的多層次的智能客戶端、Web、移動或基于Microsoft Office的應(yīng)用程序。使用Visual Studio 2010, 專業(yè)開發(fā)人員能夠: 使用改進后的可視化設(shè)計工具、編程語言和代碼編輯器,享受高效率的開發(fā)環(huán)境。 在統(tǒng)一的開發(fā)環(huán)境中,開發(fā)并調(diào)試多層次的服務(wù)器應(yīng)用程序。使用集成的可視化數(shù)據(jù)庫設(shè)計和報告工具,創(chuàng)建SQL Server 2005解決方案。使
6、用Visual Studio SDK創(chuàng)建可以擴展Visual Studio IDE的工具。Microsoft為單獨工作或在小型團隊中的專業(yè)開發(fā)人員提供了兩種選擇,Visual Studio 2005 Professional Edition和用于Microsoft Office系統(tǒng)的Visual Studio 2005工具。每種版本都在標(biāo)準(zhǔn)版的特性上進行了擴展,包括用于遠(yuǎn)程服務(wù)程序開發(fā)和調(diào)試、SQL Server2005開發(fā)的工具,以及完整的、沒有限制的開發(fā)環(huán)境。每種產(chǎn)品都可以單獨購買或打包定購。專業(yè)開發(fā)人員喜歡自由的使用.NET Framework 2.0,它是一種穩(wěn)健的、功能齊備的開發(fā)環(huán)境
7、,支持創(chuàng)建擴展Visual Studio集成開發(fā)環(huán)境的工具。3.主要部分運行庫實際上在組件的運行時和開發(fā)時操作中都起到很大的作用,盡管名稱中沒有體現(xiàn)這個意思。在組件運行時,運行庫除了負(fù)責(zé)滿足此組件在其他組件上可能具有的依賴項外,還負(fù)責(zé)管理內(nèi)存分配、啟動和停止線程和進程,以及強制執(zhí)行安全策略。在開發(fā)時,運行庫的作用稍有變化;由于做了大量的自動處理工作(如內(nèi)存管理),運行庫使開發(fā)人員的操作非常簡單,尤其是與今天的 COM 相比。特別是反射等功能顯著減少了開發(fā)人員為將業(yè)務(wù)邏輯轉(zhuǎn)變?yōu)榭芍赜媒M件而必須編寫的代碼量。該框架為開發(fā)人員提供了統(tǒng)一的、面向?qū)ο蟮?、分層的和可擴展的類庫集 (API)。目前,C+
8、開發(fā)人員使用 Microsoft 基礎(chǔ)類,而 Java 開發(fā)人員使用 Windows 基礎(chǔ)類。該框架統(tǒng)一了這些完全不同的模型,還為 Visual Basic 和 JScript 程序員提供了對類庫的訪問。通過創(chuàng)建跨所有編程語言的公共 API 集,公共語言運行庫使得跨語言繼承、錯誤處理和調(diào)試成為可能。從 JScript 到 C+ 的所有編程語言具有對框架的相似訪問,開發(fā)人員可以自由選擇它們要使用的語言。ASP.NET 建立在 .NET Framework 的編程類的基礎(chǔ)上,為 Web 應(yīng)用程序模型提供了一組可簡化 Web 應(yīng)用程序生成的控件和基礎(chǔ)結(jié)構(gòu)。ASP.NET 包括可用于封裝通用 HTML
9、 用戶界面元素(如文本框、按鈕和列表框)的一組控件。但這些控件在 Web 服務(wù)器上運行,并以 HTML 的形式將其用戶界面呈現(xiàn)在瀏覽器中。在服務(wù)器上,這些控件公布面向?qū)ο蟮木幊棠P?,該模型?Web 開發(fā)人員提供面向?qū)ο缶幊痰呢S富功能。ASP.NET 還提供基礎(chǔ)結(jié)構(gòu)服務(wù),如狀態(tài)管理和進程回收,從而可以進一步減少開發(fā)人員必須編寫的代碼數(shù)量,并提高應(yīng)用程序的可靠性。另外,ASP.NET 使用這些同樣的概念使開發(fā)人員能夠以服務(wù)的形式交付軟件。使用 XML Web Services 功能,ASP.NET 開發(fā)人員可以編寫他們的業(yè)務(wù)邏輯,并使用 ASP.NET 基礎(chǔ)結(jié)構(gòu)通過 SOAP 交付該服務(wù)。五、設(shè)
10、計思路整體思路分析: 1. 整個程序設(shè)計成以下幾個大的模塊:1系統(tǒng)管理,下屬可以實現(xiàn)又分為:用戶管理、注銷/重新登錄、退出系統(tǒng)三個功能。2.基礎(chǔ)數(shù)據(jù)設(shè)置,下屬可以實現(xiàn):罰款設(shè)置、圖書類別設(shè)置、讀者類別設(shè)置三個功能。3.借閱管理,下屬分為:借書、還書、借書查詢、還書查詢四個模塊。4.書庫管理,下屬分為:新書入庫、圖書查詢和圖書掛失三個模塊。5.讀者管理,下屬分為:讀者登記、讀者信息查詢、讀者注銷三個功能。6.數(shù)據(jù)庫管理,下屬分為:數(shù)據(jù)庫備份、數(shù)據(jù)庫恢復(fù)兩個模塊書庫管理模塊在整體程程序中格的位置:用戶管理數(shù)據(jù)庫采用的是SQL Server數(shù)據(jù)庫,建立用戶權(quán)限表以及設(shè)備信息表,通過MFC ODBC方
11、式訪問,使用類CRecordset的函數(shù)MoveFirst()、MoveLast()、MoveNext()、MovePrev()、IsBOF()、IsEOF()對設(shè)備信息表實現(xiàn)遍歷操作,使用類CRecordset的函數(shù)AddNew增加設(shè)備或者函數(shù)Delete刪除信息。并根據(jù)用戶登錄情況確定用戶是否可以修改設(shè)備信息,以此實現(xiàn)后臺數(shù)據(jù)與前臺界面操作的一致。在帳戶被通過后,用戶可以使用它來登錄系統(tǒng),登錄時系統(tǒng)自動查找用戶表,判斷帳戶是否存在,存在則提示用戶登錄成功,并顯示可以的操作;否則,提示不存在該用戶,返回登錄界面,讓用戶重新輸入信息。另外,經(jīng)過這個驗證的過程,提醒用戶牢記帳號和密碼,防止他人盜
12、竊個人信息,從而提高用戶信息的安全性。進行登錄操作時,訪問到了用戶表(User)。在用戶未成功登錄時,個人資料功能是被禁止的。只有成功登錄以后,用戶才有資格修改自己的資料,包括基本信息的修改,帳戶(昵稱或密碼)的更新,帳號是不可以更改的,一旦服務(wù)器分配以后,始終與帳戶綁定。方便管理員管理帳戶,也使得系統(tǒng)具有一定的穩(wěn)定性。該模塊訪問到了用戶表和個人信息表。 備注:當(dāng)在修改密碼時,系統(tǒng)會確認(rèn)舊密碼,如果輸入的舊密碼錯誤,系統(tǒng)會彈出出錯信息,否則才允許更新密碼。并且,如果修改昵稱,系統(tǒng)會把修改后的昵稱更新到兩個表中,使得數(shù)據(jù)能夠保持同步,方便管理員的管理和維護,提高了系統(tǒng)的可靠性。系統(tǒng)具有數(shù)據(jù)錄入、
13、數(shù)據(jù)修改、記錄查詢、報表打印等功能。較全面滿足了材料庫存管理的各項工作。該系統(tǒng)采用模塊化原理編程,做到了模塊規(guī)模適中,本身相對獨立。模塊化使程序結(jié)構(gòu)清晰,易于設(shè)計、易于理解,提高了系統(tǒng)的可靠性。用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢統(tǒng)計,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的詳細(xì)設(shè)計打下基礎(chǔ)。2.書庫模塊分析:書庫管理需要實現(xiàn)三個功能,分別是新書入庫、圖書掛失和圖書查詢。模塊主體設(shè)計如下:六、流程圖(或功能模塊圖)總程序設(shè)計框圖: 書庫管理系統(tǒng)設(shè)計框圖:七,實驗各個模塊代碼及相關(guān)分析說明:書庫管
14、理模塊在整個程序中的位置1.新書入庫模塊先使用VS中的MFC控件建立如下框圖然后再確定按鈕添加以下對應(yīng)函數(shù)#include "stdafx.h"#include "Library.h"#include "NewBookDlg.h"#include "BookTypeSet.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CNewBookDlg dialogCNewBookDlg:CN
15、ewBookDlg(CWnd* pParent /*=NULL*/): CDialog(CNewBookDlg:IDD, pParent)/AFX_DATA_INIT(CNewBookDlg)m_strBookType = _T("");m_strBookCode = _T("");m_strBookName = _T("");m_strPrice = _T("");m_strPress = _T("");m_strWriter = _T("");m_strBrief = _
16、T("");/AFX_DATA_INITvoid CNewBookDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CNewBookDlg)DDX_Control(pDX, IDC_COMBO_BOOKTYPE, m_ctrBookType);DDX_Control(pDX, IDC_LIST1, m_ctrList);DDX_CBString(pDX, IDC_COMBO_BOOKTYPE, m_strBookType);DDX_Text(pDX, IDC_EDI
17、T_BOOK_CODE, m_strBookCode);DDX_Text(pDX, IDC_EDIT_BOOK_NAME, m_strBookName);DDX_Text(pDX, IDC_EDIT_BOOK_PRICE, m_strPrice);DDX_Text(pDX, IDC_EDIT_PRESS, m_strPress);DDX_Text(pDX, IDC_EDIT_WRITER, m_strWriter);DDX_Text(pDX, IDC_EDIT_BRIEF, m_strBrief);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CNewBookDlg, CDia
18、log)/AFX_MSG_MAP(CNewBookDlg)ON_BN_CLICKED(IDC_BUTTON_NEW, OnButtonNew)ON_BN_CLICKED(IDC_BUTTON_ALL, OnButtonAll)ON_BN_CLICKED(IDC_BUTTON_DELETE, OnButtonDelete)ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CNewBookDlg message handlersBOOL CNewBookDlg:OnInitDialog() CDia
19、log:OnInitDialog();/設(shè)置列表m_ctrList.InsertColumn(0,"圖書編號");m_ctrList.InsertColumn(1,"圖書名稱");m_ctrList.InsertColumn(2,"圖書類別");m_ctrList.InsertColumn(3,"作者");m_ctrList.InsertColumn(4,"出版社");m_ctrList.InsertColumn(5,"圖書價格");m_ctrList.InsertColum
20、n(6,"登記日期");m_ctrList.InsertColumn(7,"備注說明");m_ctrList.SetColumnWidth(0,60);m_ctrList.SetColumnWidth(1,120);m_ctrList.SetColumnWidth(2,80);m_ctrList.SetColumnWidth(3,80);m_ctrList.SetColumnWidth(4,80);m_ctrList.SetColumnWidth(5,80);m_ctrList.SetColumnWidth(6,80);m_ctrList.SetColu
21、mnWidth(7,80);m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);/初始化圖書類型CBookTypeSet recordset ;if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,"select * from bookType")MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯誤",MB_OK);return FALSE;while(!recordset.IsEOF()m_ctrBookType.Ad
22、dString(recordset.m_type);recordset.MoveNext();recordset.Close();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CNewBookDlg:OnButtonNew() / TODO: Add your control notification handler code hereUpdateData();if(m_strBookCode.IsE
23、mpty()AfxMessageBox("請輸入圖書編號!");return;if(m_strBookType.IsEmpty()AfxMessageBox("請輸入圖書類型!");return;if(m_strBookName.IsEmpty()AfxMessageBox("請輸入圖書名稱!");return;CString strSQL;CTime current=CTime:GetCurrentTime();strSQL.Format("select * from bookInfo where code = '
24、%s'",m_strBookCode);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯誤",MB_OK);return ;if(m_recordset.GetRecordCount()!=0)m_recordset.Close();AfxMessageBox("該圖書編號已經(jīng)存在,請重新輸入!");return;m_recordset.Close();if(!m_recordset.Open(AFX_DB_
25、USE_DEFAULT_TYPE)MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯誤",MB_OK);return ;/添加圖書記錄m_recordset.AddNew();m_recordset.m_code=m_strBookCode;m_recordset.m_name =m_strBookName;m_recordset.m_type= m_strBookType;m_recordset.m_in_date =current;m_recordset.m_price=m_strPrice ;m_recordset.m_press=m_strP
26、ress ;m_recordset.m_writer=m_strWriter ;m_recordset.m_brief=m_strBrief ;m_recordset.m_isBorrow = FALSE;m_recordset.Update();m_recordset.Close();/更新列表CString strTime;m_ctrList.InsertItem(0,m_strBookCode);m_ctrList.SetItemText(0,1,m_strBookName);m_ctrList.SetItemText(0,2,m_strBookType);m_ctrList.SetIt
27、emText(0,3,m_strWriter);m_ctrList.SetItemText(0,4,m_strPress);m_ctrList.SetItemText(0,5,m_strPrice);strTime.Format("%d-%d-%d",current.GetYear(),current.GetMonth(),current.GetDay();m_ctrList.SetItemText(0,6,strTime);m_ctrList.SetItemText(0,7,m_strBrief);/更新界面顯示m_strBookType = _T(""
28、;);m_strBookCode = _T("");m_strBookName = _T("");m_strPrice = _T("");m_strPress = _T("");m_strWriter = _T("");m_strBrief = _T("");UpdateData(FALSE);void CNewBookDlg:OnButtonAll() / TODO: Add your control notification handler code herem_ctrL
29、ist.DeleteAllItems();m_ctrList.SetRedraw(FALSE);UpdateData(TRUE);CString strSQL;strSQL.Format( "select * from bookInfo ");if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯誤",MB_OK);return ;int i=0;CString strTime;while(!m_recordset.IsEOF()m
30、_ctrList.InsertItem(i,m_recordset.m_code);m_ctrList.SetItemText(i,1,m_recordset.m_name);m_ctrList.SetItemText(i,2,m_recordset.m_type);m_ctrList.SetItemText(i,3,m_recordset.m_writer);m_ctrList.SetItemText(i,4,m_recordset.m_press);m_ctrList.SetItemText(i,5,m_recordset.m_price);strTime.Format("%d-
31、%d-%d",m_recordset.m_in_date.GetYear(),m_recordset.m_in_date.GetMonth(),m_recordset.m_in_date.GetDay();m_ctrList.SetItemText(i,6,strTime);m_ctrList.SetItemText(i,7,m_recordset.m_brief);i+;m_recordset.MoveNext();m_recordset.Close();m_ctrList.SetRedraw(TRUE);void CNewBookDlg:OnButtonDelete() / TO
32、DO: Add your control notification handler code hereint i = m_ctrList.GetSelectionMark();if(0>i)AfxMessageBox("請選擇一條記錄進行刪除!");return;CString strSQL;strSQL.Format("select * from bookInfo where code = '%s' ",m_ctrList.GetItemText(i,0);if(!m_recordset.Open(AFX_DB_USE_DEFAU
33、LT_TYPE,strSQL)AfxMessageBox("打開數(shù)據(jù)庫失敗!");return ;m_recordset.Delete();m_recordset.Close();m_ctrList.DeleteItem(i);/更新界面顯示m_strBookType = _T("");m_strBookCode = _T("");m_strBookName = _T("");m_strPrice = _T("");m_strPress = _T("");m_strWrite
34、r = _T("");m_strBrief = _T("");UpdateData(FALSE);void CNewBookDlg:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereint i = m_ctrList.GetSelectionMark();m_strBookType = m_ctrList.GetItemText(i,2);m_strBookCode = m_ctrList.GetItem
35、Text(i,0);m_strBookName = m_ctrList.GetItemText(i,1);m_strPrice = m_ctrList.GetItemText(i,5);m_strPress = m_ctrList.GetItemText(i,4);m_strWriter = m_ctrList.GetItemText(i,3);m_strBrief = m_ctrList.GetItemText(i,7);UpdateData(FALSE);*pResult = 0;2.圖書查詢模塊對查詢按鈕添加相應(yīng)的函數(shù)如下:#include "stdafx.h"#in
36、clude "Library.h"#include "BorrowSearchDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CBorrowSearchDlg dialogCBorrowSearchDlg:CBorrowSearchDlg(CWnd* pParent /*=NULL*/): CDialog(CBorrowSearchDlg:IDD, pParent)/AFX_DATA_INIT(CBorrowSea
37、rchDlg)m_strBookCode = _T("");m_strReaderCode = _T("");/AFX_DATA_INITvoid CBorrowSearchDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CBorrowSearchDlg)DDX_Control(pDX, IDC_LIST1, m_ctrList);DDX_Text(pDX, IDC_EDIT_BOOKCODE, m_strBookCode);DDX_Text(
38、pDX, IDC_EDIT_READERCODE, m_strReaderCode);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CBorrowSearchDlg, CDialog)/AFX_MSG_MAP(CBorrowSearchDlg)ON_BN_CLICKED(IDC_BUTTON_SEARCH, OnButtonSearch)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CBorrowSearchDlg message handlersBOOL CBorrowSearchDlg:OnInitDialog() CDialog:OnInitDialog(
39、);m_ctrList.InsertColumn(0,"讀者編號");m_ctrList.InsertColumn(1,"讀者姓名");m_ctrList.InsertColumn(2,"圖書編號");m_ctrList.InsertColumn(3,"圖書名稱");m_ctrList.InsertColumn(4,"圖書類別");m_ctrList.InsertColumn(5,"圖書價格");m_ctrList.InsertColumn(6,"借出日期"
40、;);m_ctrList.InsertColumn(7,"歸還日期");m_ctrList.InsertColumn(8,"操作員");m_ctrList.SetColumnWidth(0,60);m_ctrList.SetColumnWidth(1,60);m_ctrList.SetColumnWidth(2,80);m_ctrList.SetColumnWidth(3,100);m_ctrList.SetColumnWidth(4,80);m_ctrList.SetColumnWidth(5,80);m_ctrList.SetColumnWidth(
41、6,80);m_ctrList.SetColumnWidth(7,80);m_ctrList.SetColumnWidth(8,80);m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CBorrowSearchDlg:OnButtonSearch() / TODO: Add
42、 your control notification handler code hereUpdateData();CString strSQL;if(!m_strReaderCode.IsEmpty()&!m_strBookCode.IsEmpty()strSQL.Format("select * from borrowInfo where reader_code = '%s' and book_code = '%s'" ,m_strReaderCode,m_strBookCode);else if(!m_strReaderCode.
43、IsEmpty()strSQL.Format("select * from borrowInfo where reader_code = '%s' " ,m_strReaderCode);else if(!m_strBookCode.IsEmpty()strSQL.Format("select * from borrowInfo where book_code = '%s'" ,m_strBookCode);else strSQL="select * from borrowInfo"m_ctrList.
44、DeleteAllItems();m_ctrList.SetRedraw(FALSE);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯誤",MB_OK);return ;int i=0;CString strTime;while(!m_recordset.IsEOF()m_ctrList.InsertItem(i,m_recordset.m_reader_code);m_ctrList.SetItemText(i,1,m_recordset.m
45、_reader_name);m_ctrList.SetItemText(i,2,m_recordset.m_book_code);m_ctrList.SetItemText(i,3,m_recordset.m_book_name);m_ctrList.SetItemText(i,4,m_recordset.m_price);m_ctrList.SetItemText(i,5,m_recordset.m_book_type);strTime.Format("%d-%d-%d",m_recordset.m_borrow_date.GetYear(),m_recordset.m_
46、borrow_date.GetMonth(),m_recordset.m_borrow_date.GetDay();m_ctrList.SetItemText(i,6,strTime);strTime.Format("%d-%d-%d",m_recordset.m_return_date.GetYear(),m_recordset.m_return_date.GetMonth(),m_recordset.m_return_date.GetDay();m_ctrList.SetItemText(i,7,strTime);m_ctrList.SetItemText(i,8,m_
47、recordset.m_operator);i+;m_recordset.MoveNext();m_recordset.Close();m_ctrList.SetRedraw(TRUE);3.圖書掛失模塊對掛失函數(shù)添加相應(yīng)代碼#include "stdafx.h"#include "Library.h"#include "BookLostDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CBook
48、LostDlg dialogCBookLostDlg:CBookLostDlg(CWnd* pParent /*=NULL*/): CDialog(CBookLostDlg:IDD, pParent)/AFX_DATA_INIT(CBookLostDlg)m_strCode = _T("");/AFX_DATA_INITvoid CBookLostDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CBookLostDlg)DDX_Control(pDX, IDC_L
49、IST1, m_ctrList);DDX_Text(pDX, IDC_EDIT_BOOK_CODE, m_strCode);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CBookLostDlg, CDialog)/AFX_MSG_MAP(CBookLostDlg)ON_BN_CLICKED(IDC_BUTTON_LOST, OnButtonLost)ON_BN_CLICKED(IDC_BUTTON_ALL, OnButtonAll)ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)/AFX_MSG_MAPEND_MESSAGE_MAP()
50、/ CBookLostDlg message handlersBOOL CBookLostDlg:OnInitDialog() CDialog:OnInitDialog();/設(shè)置列表m_ctrList.InsertColumn(0,"圖書編號");m_ctrList.InsertColumn(1,"圖書名稱");m_ctrList.InsertColumn(2,"圖書類別");m_ctrList.InsertColumn(3,"作者");m_ctrList.InsertColumn(4,"出版社&quo
51、t;);m_ctrList.InsertColumn(5,"圖書價格");m_ctrList.InsertColumn(6,"登記日期");m_ctrList.InsertColumn(7,"備注說明");m_ctrList.SetColumnWidth(0,60);m_ctrList.SetColumnWidth(1,120);m_ctrList.SetColumnWidth(2,80);m_ctrList.SetColumnWidth(3,80);m_ctrList.SetColumnWidth(4,80);m_ctrList.S
52、etColumnWidth(5,80);m_ctrList.SetColumnWidth(6,80);m_ctrList.SetColumnWidth(7,80);m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CBookLostDlg:OnButtonLost() / T
53、ODO: Add your control notification handler code hereUpdateData();if(m_strCode.IsEmpty()AfxMessageBox("請輸入待掛失的圖書編號!");return;CString strSQL;strSQL.Format("select * from bookInfo where code = '%s' ",m_strCode);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)AfxMessageBo
54、x("打開數(shù)據(jù)庫失敗!");return ;if(m_recordset.GetRecordCount()=0)AfxMessageBox("沒有找到該圖書!");m_recordset.Close();return;m_recordset.Delete();m_recordset.Close();AfxMessageBox("圖書掛失成功!",MB_ICONINFORMATION );m_ctrList.DeleteAllItems();/更新界面顯示m_strCode = _T("");UpdateData(FALSE);void CBookLostDlg:OnButtonAll() / TODO: Add your control notification handler code hereCString strSQL;strSQL.Format( "select * from bookInfo ");RefreshData( strSQL);void CBookLostDlg:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度考古發(fā)掘文物搬運與保護合同4篇
- 基于物聯(lián)網(wǎng)的2025年度智能物流代理協(xié)議2篇
- 二零二五版電子商務(wù)合同電子商務(wù)合同電子檔案管理與利用合同3篇
- 二零二五年度商業(yè)綜合體清潔外包合同安全規(guī)范2篇
- 二零二五年度能源設(shè)施蟲害防治與能源安全協(xié)議4篇
- 2025年度個人藝術(shù)品居間買賣合同范本4篇
- 二零二五年度綠色廚房裝修設(shè)計與環(huán)保材料供應(yīng)合同2篇
- 2025年度個人小額貸款合同風(fēng)險評估4篇
- 2025年挖機駕駛員招聘合同范本匯編3篇
- 個人與旅游公司服務(wù)合同(2024版)3篇
- 人教版物理八年級下冊 專項訓(xùn)練卷 (一)力、運動和力(含答案)
- 山東省房屋市政工程安全監(jiān)督機構(gòu)人員業(yè)務(wù)能力考試題庫-中(多選題)
- 重慶市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024年中考語文滿分作文6篇(含題目)
- 北師大版 2024-2025學(xué)年四年級數(shù)學(xué)上冊典型例題系列第三單元:行程問題“拓展型”專項練習(xí)(原卷版+解析)
- 2023年譯林版英語五年級下冊Units-1-2單元測試卷-含答案
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運行管理規(guī)程
- 種子輪投資協(xié)議
- 執(zhí)行依據(jù)主文范文(通用4篇)
- 浙教版七年級數(shù)學(xué)下冊全冊課件
評論
0/150
提交評論