計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文-基于C++的圖書(shū)銷(xiāo)售系統(tǒng)_第1頁(yè)
計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文-基于C++的圖書(shū)銷(xiāo)售系統(tǒng)_第2頁(yè)
計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文-基于C++的圖書(shū)銷(xiāo)售系統(tǒng)_第3頁(yè)
計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文-基于C++的圖書(shū)銷(xiāo)售系統(tǒng)_第4頁(yè)
計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文-基于C++的圖書(shū)銷(xiāo)售系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2 需求分析2.1 國(guó)內(nèi)外研究的現(xiàn)狀在現(xiàn)代化的書(shū)店中,對(duì)圖書(shū)銷(xiāo)售工作運(yùn)用現(xiàn)代化技術(shù)進(jìn)行管理,是提高工作效率的有效手段。圖書(shū)銷(xiāo)售管理是書(shū)店日常工作中非常重要的一個(gè)方面,越來(lái)越受到書(shū)店經(jīng)營(yíng)者的重視。通過(guò)計(jì)算機(jī)管理系統(tǒng)對(duì)圖書(shū)銷(xiāo)售進(jìn)行全面的統(tǒng)計(jì)與管理,全面解決了書(shū)店經(jīng)營(yíng)過(guò)程中所遇到的各種問(wèn)題,并且克服了傳統(tǒng)管理方式中的易出錯(cuò)等問(wèn)題。圖書(shū)銷(xiāo)售管理系統(tǒng)成為書(shū)店管理的首選管理工具。2.2 功能需求2.2.1待開(kāi)發(fā)軟件的功能需求本系統(tǒng)是根據(jù)書(shū)店的實(shí)際需求而開(kāi)發(fā)的,要求穩(wěn)定、可靠的實(shí)現(xiàn)圖書(shū)銷(xiāo)售的自動(dòng)化管理,通過(guò)本系統(tǒng)可以達(dá)到以下目標(biāo):1. 圖書(shū)錄入,包括圖書(shū)的基本信息,如分類(lèi)、進(jìn)價(jià)、售價(jià)、作者等。2. 圖書(shū)銷(xiāo)售

2、,包括圖書(shū)的售價(jià)、折扣、銷(xiāo)售日期,并實(shí)現(xiàn)對(duì)庫(kù)存量的修改。3. 銷(xiāo)售統(tǒng)計(jì),包括按圖書(shū)類(lèi)型、書(shū)名、作者、出版社等進(jìn)行統(tǒng)計(jì)。4. 查詢(xún)庫(kù)存,對(duì)指定的某本圖書(shū)剩余庫(kù)存量進(jìn)行查詢(xún)。5. 售完圖書(shū)查詢(xún),對(duì)已售完圖書(shū)進(jìn)行查詢(xún)。2.2.2待開(kāi)發(fā)軟件的功能按照用戶(hù)需求,要滿(mǎn)足以上功能,我設(shè)計(jì)出了圖書(shū)銷(xiāo)售管理系統(tǒng)的系統(tǒng)功能圖,如圖2.1所示。圖書(shū)銷(xiāo)售管理系統(tǒng)圖書(shū)錄入查詢(xún)庫(kù)存圖書(shū)銷(xiāo)售銷(xiāo)售統(tǒng)計(jì)售完圖書(shū)查詢(xún)圖2.1 圖書(shū)銷(xiāo)售管理系統(tǒng)的系統(tǒng)功能圖2.3 數(shù)據(jù)描述2.3.1數(shù)據(jù)庫(kù)概要說(shuō)明數(shù)據(jù)庫(kù)中包括管理員信息表、圖書(shū)基本信息表、圖書(shū)類(lèi)型表、圖書(shū)銷(xiāo)售記錄表等4個(gè)數(shù)據(jù)表。圖2.3所示的即為本系統(tǒng)中數(shù)據(jù)庫(kù)中的數(shù)據(jù)表結(jié)構(gòu)圖,該數(shù)據(jù)

3、表結(jié)構(gòu)圖包含系統(tǒng)所有數(shù)據(jù)表??梢郧逦胤磻?yīng)數(shù)據(jù)庫(kù)信息。圖2.3 數(shù)據(jù)表結(jié)構(gòu)圖2.3.2主要數(shù)據(jù)表的結(jié)構(gòu)表2.1 Pwd(管理員信息表)字段名數(shù)據(jù)類(lèi)型字段大小描述IDint4管理員帳號(hào)Passwordnvarchar50r密碼表2.2 BookInfo(圖書(shū)基本信息表)字段名數(shù)據(jù)類(lèi)型字段大小描述BookIDint4圖書(shū)編號(hào)BookNamenvarchar50圖書(shū)名稱(chēng)CategoryIDint4圖書(shū)類(lèi)型編號(hào)Authornvarchar50作者Publishernvarchar50出版社PublishDatesmalldatetime4出版日期Purchasefloat8進(jìn)價(jià)Pricefloat8售

4、價(jià)Stockint4庫(kù)存本數(shù)Discountint4折扣BarCodenvarchar50條形碼表2.3 BookCategory(圖書(shū)類(lèi)型表)字段名數(shù)據(jù)類(lèi)型長(zhǎng)度描述CategoryIDint4圖書(shū)類(lèi)型編號(hào)CategoryNamenvarchar8圖書(shū)類(lèi)型名稱(chēng)表2.4 BookSale(圖書(shū)銷(xiāo)售記錄表)字段名數(shù)據(jù)類(lèi)型長(zhǎng)度描述IDint4銷(xiāo)售記錄編號(hào)BookIDint4圖書(shū)編號(hào)SalePricefloat8實(shí)際售價(jià)SaleDatesmalldatetime4銷(xiāo)售日期2.4 數(shù)據(jù)庫(kù)描述本軟件采用SQL數(shù)據(jù)庫(kù)。3 概要設(shè)計(jì)3.2 系統(tǒng)功能模塊設(shè)計(jì)在前面系統(tǒng)功能分析的基礎(chǔ)上,結(jié)合Visual C+程序

5、編制的特點(diǎn),得到如圖3.1所示的系統(tǒng)功能模塊圖。圖書(shū)銷(xiāo)售管理系統(tǒng)圖書(shū)錄入模塊(M2)查詢(xún)庫(kù)存模塊(M5)圖書(shū)銷(xiāo)售模塊(M3)銷(xiāo)售統(tǒng)計(jì)模塊(M4)售完圖書(shū)查詢(xún)模塊(M6)管理員登錄模塊(M1)圖3.1圖書(shū)銷(xiāo)售管理系統(tǒng)功能模塊圖各模塊功能分配如下:(1)用戶(hù)登陸功能:管理員登陸模塊(M1)。(2)圖書(shū)錄入功能:圖書(shū)錄入模塊(M2)。(3)圖書(shū)銷(xiāo)售功能:圖書(shū)銷(xiāo)售模塊(M3)。(4)銷(xiāo)售統(tǒng)計(jì)功能:銷(xiāo)售統(tǒng)計(jì)模塊(M4)。(5)查詢(xún)圖書(shū)庫(kù)存功能:查詢(xún)庫(kù)存模塊(M5)。(6)售完圖書(shū)查詢(xún)功能:售完圖書(shū)查詢(xún)模塊(M6)。3.3 系統(tǒng)處理流程(1)系統(tǒng)啟動(dòng),進(jìn)入身份驗(yàn)證。(2)初始化系統(tǒng),導(dǎo)入數(shù)據(jù)庫(kù)。(3)錄入

6、圖書(shū)信息。(4)圖書(shū)銷(xiāo)售。(5)統(tǒng)計(jì)圖書(shū)銷(xiāo)售信息。(6)查詢(xún)圖書(shū)庫(kù)存信息。(7)查詢(xún)已售完圖書(shū)信息。(8)退出系統(tǒng)。4 詳細(xì)設(shè)計(jì)該系統(tǒng)采用VC+6.0中的MFC連接SQL數(shù)據(jù)庫(kù)的方式,使用圖形用戶(hù)界面,主要實(shí)現(xiàn)圖書(shū)錄入、圖書(shū)銷(xiāo)售等功能。下面具體對(duì)各模塊進(jìn)行介紹。4.1 登錄模塊及主界面在登錄界面(如圖4.1所示)中輸入用戶(hù)名和密碼,登錄成功后進(jìn)入主界面。登陸框流程圖如圖4.2所示,系統(tǒng)主界面如圖4.3所示,單擊某個(gè)按鈕就能彈出某個(gè)功能的界面。圖4.1 系統(tǒng)登錄界面4.2 圖書(shū)錄入模塊4.2.1 實(shí)現(xiàn)目標(biāo)添加圖書(shū)信息,圖書(shū)錄入對(duì)話(huà)框的設(shè)計(jì)如圖4.4所示。“保存”按鈕對(duì)應(yīng)的方法為RAddBookD

7、lg:OnSave(),流程圖如圖4.5所示。圖4.4 圖書(shū)錄入對(duì)話(huà)框開(kāi)始結(jié)束輸入圖書(shū)基本信息判斷輸入是否正確且完整添加該信息到關(guān)聯(lián)表并寫(xiě)入數(shù)據(jù)庫(kù) 是否圖4.5 RAddBookDlg:OnSave()方法的流程圖4.2.2 設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_ADDBOOK。在IDD_YGTJK對(duì)話(huà)框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開(kāi)“Dialog Properties”對(duì)話(huà)框。在“Dialog Properties”對(duì)話(huà)框中選擇General選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“圖書(shū)信息錄入”。(2)從Con

8、trols面板上向Dialog資源中添加所需控件,更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如表4.1所示。表4.1 圖書(shū)錄入Dialog資源屬性設(shè)置IDPropertiesMember VariablesTypeMemberIDC_BK_CATEGORY默認(rèn)文本CategoryNameIDC_BK_NAME默認(rèn)文本BookNameIDC_BK_AUTHOR默認(rèn)文本AuthorIDC_BK_PUBLISHER默認(rèn)文本PublisherIDC_BK_DATE默認(rèn)日期/時(shí)間PublishDateIDC_BK_PURCHASE默認(rèn)數(shù)字PurchaseIDC_BK_PRICE默認(rèn)數(shù)字PriceIDC_

9、BK_PAYOFF默認(rèn)數(shù)字PriceIDC_BK_STOCK默認(rèn)數(shù)字StockIDC_BK_BARCODE默認(rèn)文本BarCodeIDC_BK_DISCOUNT默認(rèn)數(shù)字DiscountIDC_RESETCaption 重填I(lǐng)DC_SAVECaption 添加IDCANCELCaption 退出4.2.3 代碼分析(1)打開(kāi)ClassWizard窗口,添加在OnInitDialog成員函數(shù),向OnInitDialog添加代碼如下:BOOL RAddBookDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initializati

10、on hereGetBookGategory();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE(2)當(dāng)用戶(hù)單擊“保存“按鈕時(shí),實(shí)現(xiàn)添加圖書(shū)功能,其響應(yīng)代碼如下:void RAddBookDlg:OnSave() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(!IsValidInput()return ;if

11、(IDYES != AfxMessageBox("確定要保存嗎?",MB_YESNO) /放棄保存return ;if(SaveData()AfxMessageBox("保存成功!");/保存后重置數(shù)據(jù)m_bHasNewBook = true;OnReset();GetDlgItem(IDC_BK_CATEGORY)->SetFocus();elseAfxMessageBox("保存失敗!");(3)判斷輸入信息是否正確的函數(shù)是IsValidInput(),其響應(yīng)代碼如下:bool RAddBookDlg:IsValidInpu

12、t()CString str = ""if(m_strBookCategory.IsEmpty() | m_strBookCategory.FindOneOf(str) != -1)AfxMessageBox("輸入有誤!圖書(shū)類(lèi)型不能為空或包含數(shù)字。");GetDlgItem(IDC_BK_CATEGORY)->SetFocus();return false;if(m_strBookName.IsEmpty()AfxMessageBox("輸入有誤!書(shū)名不能為空。");GetDlgItem(IDC_BK_NAME)->Se

13、tFocus();return false;if(m_strAuthor.IsEmpty() | m_strAuthor.FindOneOf(str) != -1)AfxMessageBox("輸入有誤!作者名稱(chēng)不能為空或包含數(shù)字。");GetDlgItem(IDC_BK_AUTHOR)->SetFocus();return false;if(m_strPublisher.IsEmpty()| m_strPublisher.FindOneOf(str) != -1)AfxMessageBox("輸入有誤!出版社名稱(chēng)不能為空或包含數(shù)字。");GetD

14、lgItem(IDC_BK_PUBLISHER)->SetFocus();return false;if(m_dPurchase <= 0)AfxMessageBox("圖書(shū)進(jìn)價(jià)應(yīng)為正值!");GetDlgItem(IDC_BK_PURCHASE)->SetFocus();return false;if(m_dPrice <= 0 )AfxMessageBox("圖書(shū)售價(jià)應(yīng)為正值!");GetDlgItem(IDC_BK_PRICE)->SetFocus();return false;if( m_lDiscount <

15、 0 | m_lDiscount > 100)AfxMessageBox("圖書(shū)折扣應(yīng)為0-100之間正值!");GetDlgItem(IDC_BK_DISCOUNT)->SetFocus();return false;if(m_lStock <1)AfxMessageBox("圖書(shū)數(shù)量應(yīng)為正值!");GetDlgItem(IDC_BK_STOCK)->SetFocus();return false;if(m_strBarcode.IsEmpty() | m_strBarcode.GetLength() > 15)AfxMe

16、ssageBox("條形碼應(yīng)為15位整數(shù)!");GetDlgItem(IDC_BK_BARCODE)->SetFocus();return false;/AfxMessageBox(m_strBookName + "rn" +/m_strBookCategory + "rn" +/m_strAuthor + "rn" +/m_strPublisher + "rn" +/m_strBarcode );return true;4.3 圖書(shū)銷(xiāo)售模塊4.3.1 實(shí)現(xiàn)目標(biāo)實(shí)現(xiàn)圖書(shū)銷(xiāo)售功能,圖書(shū)銷(xiāo)售對(duì)

17、話(huà)框設(shè)計(jì)如圖4.6所示?!颁N(xiāo)售”按鈕對(duì)應(yīng)的方法為RSaleBookDlg:OnOK(),流程圖如圖4.7所示。圖4.6 圖書(shū)銷(xiāo)售對(duì)話(huà)框開(kāi)始結(jié)束輸入書(shū)名或條形碼判斷輸入是否正確且FindBook()函數(shù)返回值為1添加該信息到關(guān)聯(lián)表并寫(xiě)入數(shù)據(jù)庫(kù)是否圖4.7 RSaleBookDlg:OnOK()方法的流程圖4.3.2 實(shí)現(xiàn)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_SALEBOOK。在IDD_YGGONGZITJ對(duì)話(huà)框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的 “Properties”菜單命令,打開(kāi)“Dialog Properties”對(duì)話(huà)框。在“Dialog Properties

18、”對(duì)話(huà)框中選擇General選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“圖書(shū)銷(xiāo)售?!保?)從Controls面板上向Dialog資源中添加相關(guān)控件,更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如表3.2所示:表4.2 圖書(shū)銷(xiāo)售添加Dialog資源屬性設(shè)置IDPropertiesMember VariablesTypeMemberIDC_SBK_NAME默認(rèn)文本BookNameIDC_SBK_BARCODE默認(rèn)文本BarCodeIDC_SBK_PRICE默認(rèn)數(shù)字PriceIDC_SBK_SALEPRICE默認(rèn)數(shù)字SalePriceIDC_SBK_DISCOUNT默認(rèn)數(shù)字DiscountIDC_S

19、BK_DATE默認(rèn)日期/時(shí)間SaleDateIDOKCaption 銷(xiāo)售IDCANCELCaption 退出4.3.3 代碼分析(1)為“銷(xiāo)售”按鈕添加代碼,實(shí)現(xiàn)圖書(shū)銷(xiāo)售功能,代碼如下:void RSaleBookDlg:OnOK() / TODO: Add extra validation hereif(!m_bReadySale)m_bReadySale = FindBook();elseUpdateData(TRUE);CString strMsg;strMsg.Format("是否出售?n 書(shū)名:%sn 價(jià)格:%.2f”,m_strBookName,m_dSalePrice)

20、;if(IDYES = AfxMessageBox(strMsg,MB_YESNO)ModifyStock();/修改圖書(shū)庫(kù)存SaveSaleRecord();/記錄銷(xiāo)售記錄Init();UpdateData(FALSE);GetDlgItem(IDC_SBK_NAME)->SetFocus();m_editDiscount.EnableWindow(FALSE);/CDialog:OnOK();(2)判斷銷(xiāo)售是否能夠成功的函數(shù)是RSaleBookDlg:FindBook(),其代碼如下:bool RSaleBookDlg:FindBook() / TODO: Add your cont

21、rol notification handler code hereUpdateData(TRUE);CString strSql ;_variant_t var;double dPurchase;if(!m_strBookName.IsEmpty()strSql.Format("SELECT * FROM BookInfo WHERE BookName = "%s" and Stock >0", m_strBookName);else if(!m_strBarCode.IsEmpty()strSql.Format("SELECT * F

22、ROM BookInfo WHERE BarCode = "%s" and Stock >0", m_strBarCode);elseAfxMessageBox("請(qǐng)輸入書(shū)名或條碼!");GetDlgItem(IDC_SBK_NAME)->SetFocus();return false;CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();trypApp->m_pRecordset->Open(strSql.AllocSysString(),pApp->m_pConne

23、ction.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);if(pApp->m_pRecordset->adoEOF)AfxMessageBox("查無(wú)此書(shū)!請(qǐng)輸入書(shū)名或條碼無(wú)誤。");pApp->m_pRecordset->Close();return false;var = pApp->m_pRecordset->GetCollect("BookID");if(var.vt != NULL)m_lBookID = var.lVal;var =

24、 pApp->m_pRecordset->GetCollect("Discount");if(var.vt != NULL)m_lDiscount = var.lVal;var = pApp->m_pRecordset->GetCollect("Price");if(var.vt != NULL)m_dPrice = var.dblVal;var = pApp->m_pRecordset->GetCollect("Purchase");if(var.vt != NULL)dPurchase = va

25、r.dblVal;var = pApp->m_pRecordset->GetCollect("CategoryID");if(var.vt != NULL)m_lCategory = var.lVal;pApp->m_pRecordset->Close();catch(_com_error * e)AfxMessageBox(e->ErrorMessage();m_editDiscount.EnableWindow(m_dPrice >= dPurchase);m_lDiscount = (m_dPrice >= dPurchase

26、) ? m_lDiscount :100;/售價(jià)小于進(jìn)價(jià)時(shí),不允許打折m_dSalePrice = m_dPrice * (double(m_lDiscount)/100); /計(jì)算折后價(jià)UpdateData(FALSE);return true; 4.4 銷(xiāo)售統(tǒng)計(jì)模塊4.4.1 實(shí)現(xiàn)目標(biāo)實(shí)現(xiàn)對(duì)已銷(xiāo)售的圖書(shū)進(jìn)行統(tǒng)計(jì)的功能,銷(xiāo)售統(tǒng)計(jì)對(duì)話(huà)框如圖4.8所示。圖4.8 銷(xiāo)售統(tǒng)計(jì)對(duì)話(huà)框4.4.2 設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_REPORT。在IDD_REPORT對(duì)話(huà)框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開(kāi)“Dialog Prop

27、erties”對(duì)話(huà)框。在“Dialog Properties”對(duì)話(huà)框中選擇General選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“銷(xiāo)售統(tǒng)計(jì)”。(2)從Controls面板上向Dialog資源中添加相應(yīng)控件,更改資源的屬性,并為資源設(shè)置相應(yīng)的變量,如表4.3所示:表4.3用戶(hù)信息管理Dialog資源屬性設(shè)置IDPropertiesMember VariablesTypeMemberIDC_RADIO2默認(rèn)單選框IDC_RADIO3默認(rèn)單選框IDC_RADIO4默認(rèn)單選框IDC_RADIO5默認(rèn)單選框IDC_RADIO6默認(rèn)單選框IDC_STATIC默認(rèn)單選框IDOKCaption 確定IDC

28、ANCELCaption 取消4.4.3 代碼分析查詢(xún)函數(shù)為CRBookSaleView:OnSaleReport(),代碼如下:void CRBookSaleView:OnSaleReport() / TODO: Add your command handler code hereRReportDlg dlg;dlg.m_iReportType = m_iReportType ;if(IDOK = dlg.DoModal()m_iReportType = dlg.m_iReportType;/設(shè)置銷(xiāo)售報(bào)表標(biāo)題/前2個(gè)標(biāo)題類(lèi)型為用戶(hù)模式和書(shū)店管理模式,故此處加2int iTitleType =

29、 0;switch(m_iReportType)case 0:/圖書(shū)類(lèi)型統(tǒng)計(jì)iTitleType = CATEGORY_REPORT_TITLE;break;case 1:/圖書(shū)名稱(chēng)統(tǒng)計(jì)iTitleType = BOOKNAME_REPORT_TITLE;break;case 2:/圖書(shū)作者統(tǒng)計(jì)iTitleType = AUTHOR_REPORT_TITLE;break;case 3:/出版社統(tǒng)計(jì)iTitleType = PUBLISHER_REPORT_TITLE;break;case 4:/全部銷(xiāo)售記錄統(tǒng)計(jì)iTitleType = SALE_REPORT_TITLE;break;defau

30、lt:break;SetTitle(iTitleType);ShowReport();4.5 查詢(xún)庫(kù)存模塊4.5.1 實(shí)現(xiàn)目標(biāo)實(shí)現(xiàn)對(duì)已銷(xiāo)售的圖書(shū)進(jìn)行統(tǒng)計(jì)的功能,銷(xiāo)售統(tǒng)計(jì)對(duì)話(huà)框如圖4.9所示。圖4.9 查詢(xún)庫(kù)存對(duì)話(huà)框4.5.2 設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_QUERY。在IDD_QUERY對(duì)話(huà)框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開(kāi)“Dialog Properties”對(duì)話(huà)框。在“Dialog Properties”對(duì)話(huà)框中選擇General選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“查詢(xún)”。(2)從Controls面

31、板上向Dialog資源中添加相應(yīng)控件,更改資源的屬性,并為資源設(shè)置相應(yīng)的變量,如表4.4所示:表4.4庫(kù)存查詢(xún)Dialog資源屬性設(shè)置IDPropertiesMember VariablesTypeMemberIDC_BOOK_CATEGORY默認(rèn)組合框IDC_BOOK_NAME默認(rèn)文本BookNameIDC_BOOK_AUTHOR默認(rèn)文本AuthorIDC_BOOK_PUBLISHER默認(rèn)文本PublisherIDOKCaption 確定IDCANCELCaption 取消4.5.3 代碼分析(1)“確定”按鈕的函數(shù)為RQueryDlg:OnOK(),代碼如下:void RQueryDlg:

32、OnOK() / TODO: Add extra validation hereUpdateData(TRUE);/單獨(dú)處理類(lèi)型為全部的情況,0表示選擇類(lèi)型為全部m_ctrlCategory.GetLBText(m_ctrlCategory.GetCurSel(),m_strCategory);if(m_strCategory = _T("全部")m_strCategory = _T("");CDialog:OnOK();(2)組合框根據(jù)圖書(shū)類(lèi)型查詢(xún)的函數(shù)為RQueryDlg:GetBookGategory(),代碼如下:void RQueryDlg:G

33、etBookGategory()int num = 0;CString strSql;_variant_t var;m_ctrlCategory.ResetContent();/清空組合框中原有數(shù)據(jù)/生成SQL查詢(xún)語(yǔ)句,在數(shù)據(jù)苦中查找圖書(shū)類(lèi)型strSql.Format(SQL_SELECT_CATEGORYNAME);CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();trypApp->m_pRecordset->Open(strSql.AllocSysString(),pApp->m_pConnection.GetInterf

34、acePtr(),adOpenDynamic,adLockOptimistic,adCmdText);/遍歷數(shù)據(jù)庫(kù)中BookCategory表,獲取全部圖書(shū)類(lèi)型while(!(pApp->m_pRecordset->adoEOF)var = pApp->m_pRecordset->GetCollect("CategoryName");if(var.vt != NULL)m_ctrlCategory.AddString(LPCSTR)_bstr_t(var);pApp->m_pRecordset->MoveNext();num+;m_ctr

35、lCategory.AddString("全部");pApp->m_pRecordset->Close();catch(_com_error * e)AfxMessageBox(e->ErrorMessage();/設(shè)置當(dāng)前選擇類(lèi)型為全部m_ctrlCategory.SetCurSel(num);5 系統(tǒng)測(cè)試進(jìn)入VC+6.0,打開(kāi)工程RBookSale.dsw,然后進(jìn)入源程序,接著編譯和運(yùn)行即可運(yùn)行。下面將給出系統(tǒng)運(yùn)行的過(guò)程。(1)打開(kāi)程序后,選擇“使用書(shū)店身份登錄”,輸入密碼“111”,進(jìn)入主對(duì)話(huà)框,如圖5.1。圖5.1 主對(duì)話(huà)框(2)在功能菜單下選擇圖書(shū)錄入功能,添加一本新的圖書(shū)信息,如圖5.2。圖5.2 添加圖書(shū)信息(3)點(diǎn)擊“返回”按鈕后,系統(tǒng)會(huì)自動(dòng)顯示現(xiàn)有圖書(shū)信息,如圖5.3。圖5.3 系統(tǒng)自

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論