版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
年4月19日網(wǎng)上圖書銷售系統(tǒng)設(shè)計報告文檔僅供參考網(wǎng)絡(luò)教育學(xué)院本科畢業(yè)論文題目:網(wǎng)上圖書銷售系統(tǒng)-實現(xiàn)前臺完成期限:4月20日至5月20日學(xué)習(xí)中心年級專業(yè)指導(dǎo)教師姓名學(xué)號目錄TOC\o"1-2"\h\z摘要 21引言 12需求分析 22.1國內(nèi)外研究的現(xiàn)狀 22.2功能需求 22.3數(shù)據(jù)描述 42.4數(shù)據(jù)庫描述 53概要設(shè)計 63.1系統(tǒng)運行環(huán)境 63.2系統(tǒng)功能模塊設(shè)計 63.3系統(tǒng)處理流程 73.4接口設(shè)計 74詳細(xì)設(shè)計 94.1登錄模塊及主界面 94.2圖書錄入模塊 114.3圖書銷售模塊 164.4銷售統(tǒng)計模塊 214.5查詢庫存模塊 245系統(tǒng)測試 276操作手冊 327結(jié)論 337.1系統(tǒng)功能 337.2系統(tǒng)不足和改進(jìn) 337.3總結(jié) 33致謝 34參考文獻(xiàn) 35摘要隨著Internet的迅速崛起,網(wǎng)絡(luò)信息化得發(fā)展,在線圖書銷售利用Vc++連接SQL數(shù)據(jù)庫的方式也迅速的發(fā)展并深入人們的日常生活中。更多的人更愿意秩足不出戶就能夠挑選購買自己喜歡的各種書籍,這樣大大縮短了購書的時間,提高了效率??梢?網(wǎng)上圖書銷售系統(tǒng)跨越了時間的空間的限制,給商業(yè)流通領(lǐng)域帶來了不一樣的變革,也給消費者帶來了便捷。關(guān)鍵詞:網(wǎng)上購書系統(tǒng);電子商務(wù)TheDesignandRealizationofSQLBookshopManagementSystemBeasedon.NETAbstractWiththerapidriseofInternet,thedevelopmentofnetworkinformationtechnology,Sqlbookshopsystemasatypicalelectroniccommercesystemalsodevelopsrapidlyanddeepsintopeople’slife.Moreandmorepeoplecouldbewillingtoselectandbuytheirfavoritebooksathome,sothatisgreatlyreducingthetimeofshopping,andimprovingtheefficiency.Obviously,thesqlbookshopmanagementsystemhascrossedtheconstraintofthetimeandthespace,itnotonlybringsadifferentchangtothecommercialdomain,butalsobringsconvenienttotheconsumers.Keywords:Sqlbookshopsystem;Books;Electroniccommerce;StocksSale1引言傳統(tǒng)的圖書銷售管理方法,都是經(jīng)過人工統(tǒng)計和計算的管理方式進(jìn)行的。這樣的管理方法不但費時費力,也容易產(chǎn)生計算上的錯誤和疏漏;計算機技術(shù)的全面普及,打破了書店管理的傳統(tǒng)管理方法,提高了管理效率的同時,克服了傳統(tǒng)管理方法中易產(chǎn)生的問題,使管理員能夠有序的、全面的對圖書銷售和庫存進(jìn)行管理。網(wǎng)上圖書銷售系統(tǒng)能夠完成書店的日常管理,如圖書錄入、圖書銷售、銷售統(tǒng)計、查詢庫存等功能,迅速準(zhǔn)確地對已售圖書和剩余庫存進(jìn)行統(tǒng)計和匯總工作,大大提高了書店的管理效率和準(zhǔn)確性。
2需求分析2.1國內(nèi)外研究的現(xiàn)狀在現(xiàn)代化的書店中,對圖書銷售工作運用現(xiàn)代化技術(shù)進(jìn)行管理,是提高工作效率的有效手段。圖書銷售管理是書店日常工作中非常重要的一個方面,越來越受到書店經(jīng)營者的重視。經(jīng)過計算機管理系統(tǒng)對圖書銷售進(jìn)行全面的統(tǒng)計與管理,全面解決了書店經(jīng)營過程中所遇到的各種問題,而且克服了傳統(tǒng)管理方式中的易出錯等問題。圖書銷售管理系統(tǒng)成為書店管理的首選管理工具。2.2功能需求2.2.1待開發(fā)軟件的功能需求本系統(tǒng)是根據(jù)書店的實際需求而開發(fā)的,要求穩(wěn)定、可靠的實現(xiàn)圖書銷售的自動化管理,經(jīng)過本系統(tǒng)能夠達(dá)到以下目標(biāo):圖書錄入,包括圖書的基本信息,如分類、進(jìn)價、售價、作者等。圖書銷售,包括圖書的售價、折扣、銷售日期,并實現(xiàn)對庫存量的修改。銷售統(tǒng)計,包括按圖書類型、書名、作者、出版社等進(jìn)行統(tǒng)計。查詢庫存,對指定的某本圖書剩余庫存量進(jìn)行查詢。售完圖書查詢,對已售完圖書進(jìn)行查詢。2.2.2待開發(fā)軟件的功能按照用戶需求,要滿足以上功能,我設(shè)計出了圖書銷售管理系統(tǒng)的系統(tǒng)功能圖,如圖2.1所示。圖書銷售管理系統(tǒng)圖書銷售管理系統(tǒng)圖書錄入查詢庫存圖書銷售銷售統(tǒng)計售完圖書查詢圖2.1圖書銷售管理系統(tǒng)的系統(tǒng)功能圖綜合系統(tǒng)要求,對圖2.1所示的系統(tǒng)功能解釋如下:圖書錄入,包括圖書的基本信息,如分類、進(jìn)價、售價、作者等。圖書銷售,包括圖書的售價、折扣、銷售日期,并實現(xiàn)對庫存量的修改。銷售統(tǒng)計,包括按圖書類型、書名、作者、出版社等進(jìn)行統(tǒng)計。查詢庫存,對指定的某本圖書剩余庫存量進(jìn)行查詢。售完圖書查詢,對已售完圖書進(jìn)行查詢。經(jīng)過以上分析,能夠得到倉庫管理系統(tǒng)的數(shù)據(jù)流圖,如圖2.2所示。管理員管理員圖書信息處理圖書管理反饋信息圖書信息反饋信息記錄數(shù)據(jù)數(shù)據(jù)庫圖2.2圖書管理系統(tǒng)的數(shù)據(jù)流圖2.3數(shù)據(jù)描述2.3.1數(shù)據(jù)庫概要說明數(shù)據(jù)庫中包括管理員信息表、圖書基本信息表、圖書類型表、圖書銷售記錄表等4個數(shù)據(jù)表。圖2.3所示的即為本系統(tǒng)中數(shù)據(jù)庫中的數(shù)據(jù)表結(jié)構(gòu)圖,該數(shù)據(jù)表結(jié)構(gòu)圖包含系統(tǒng)所有數(shù)據(jù)表。能夠清晰地反應(yīng)數(shù)據(jù)庫信息。圖2.3數(shù)據(jù)表結(jié)構(gòu)圖2.3.2主要數(shù)據(jù)表的結(jié)構(gòu)表2.1Pwd(管理員信息表)字段名數(shù)據(jù)類型字段大小描述IDInt4管理員帳號PasswordNvarchar50r密碼表2.2BookInfo(圖書基本信息表)字段名數(shù)據(jù)類型字段大小描述BookIDInt4圖書編號BookNamenvarchar50圖書名稱CategoryIDInt4圖書類型編號Authornvarchar50作者Publishernvarchar50出版社PublishDatesmalldatetime4出版日期Purchasefloat8進(jìn)價Pricefloat8售價StockInt4庫存本數(shù)DiscountInt4折扣BarCodenvarchar50條形碼表2.3BookCategory(圖書類型表)字段名數(shù)據(jù)類型長度描述CategoryIDInt4圖書類型編號CategoryNameNvarchar8圖書類型名稱表2.4BookSale(圖書銷售記錄表)字段名數(shù)據(jù)類型長度描述IDInt4銷售記錄編號BookIDInt4圖書編號SalePriceFloat8實際售價SaleDatesmalldatetime4銷售日期2.4數(shù)據(jù)庫描述本軟件采用SQL數(shù)據(jù)庫。
3概要設(shè)計本系統(tǒng)是根據(jù)書店的實際需求而開發(fā)的,完全能夠幫助書店實現(xiàn)高效、準(zhǔn)確的圖書銷售自動化管理。在分析階段,我們已經(jīng)提出了系統(tǒng)的結(jié)構(gòu)和數(shù)據(jù)字典。本節(jié)我們將對系統(tǒng)的使用環(huán)境作簡要介紹,并對該系統(tǒng)作概要設(shè)計。3.1系統(tǒng)運行環(huán)境P4機Windows操作系統(tǒng)VisualC++6.03.2系統(tǒng)功能模塊設(shè)計在前面系統(tǒng)功能分析的基礎(chǔ)上,結(jié)合VisualC++程序編制的特點,得到如圖3.1所示的系統(tǒng)功能模塊圖。圖書銷售管理系統(tǒng)圖書銷售管理系統(tǒng)圖書錄入模塊(M2)查詢庫存模塊(M5)圖書銷售模塊(M3)銷售統(tǒng)計模塊(M4)售完圖書查詢模塊(M6)管理員登錄模塊(M1)圖3.1圖書銷售管理系統(tǒng)功能模塊圖各模塊功能分配如下:(1)用戶登陸功能:管理員登陸模塊(M1)。(2)圖書錄入功能:圖書錄入模塊(M2)。(3)圖書銷售功能:圖書銷售模塊(M3)。(4)銷售統(tǒng)計功能:銷售統(tǒng)計模塊(M4)。(5)查詢圖書庫存功能:查詢庫存模塊(M5)。(6)售完圖書查詢功能:售完圖書查詢模塊(M6)。3.3系統(tǒng)處理流程(1)系統(tǒng)啟動,進(jìn)入身份驗證。(2)初始化系統(tǒng),導(dǎo)入數(shù)據(jù)庫。(3)錄入圖書信息。(4)圖書銷售。(5)統(tǒng)計圖書銷售信息。(6)查詢圖書庫存信息。(7)查詢已售完圖書信息。(8)退出系統(tǒng)。3.4接口設(shè)計3.4.1外部接口(1)用戶界面采用圖形用戶界面,包含菜單、按鈕、對話框等元素。(2)軟件接口軟件運行于VisualC++6.0平臺上。(3)硬件接口運行于PC機上。3.4.2內(nèi)部接口(1)用戶登陸模塊(M1):由相應(yīng)事件驅(qū)動消息激活,完成用戶登陸功能,之后進(jìn)入消息循環(huán)狀態(tài)。(2)圖書銷售模塊(M3):由相應(yīng)事件驅(qū)動消息激活,完成圖書銷售功能,之后進(jìn)入消息循環(huán)狀態(tài)。(3)銷售統(tǒng)計模塊(M4):由相應(yīng)事件驅(qū)動消息激活,完成銷售統(tǒng)計功能,之后進(jìn)入消息循環(huán)狀態(tài)。(4)查詢庫存模塊(M5):由相應(yīng)事件驅(qū)動消息激活,完成查詢庫存功能,之后進(jìn)入消息循環(huán)狀態(tài)。(5)售完圖書查詢模塊(M6):由相應(yīng)事件驅(qū)動消息激活,完成售完圖書查詢功能,之后進(jìn)入消息循環(huán)狀態(tài)。
4詳細(xì)設(shè)計該系統(tǒng)采用VC++6.0中的MFC連接SQL數(shù)據(jù)庫的方式,使用圖形用戶界面,主要實現(xiàn)圖書錄入、圖書銷售等功能。下面具體對各模塊進(jìn)行介紹。4.1登錄模塊及主界面在登錄界面(如圖4.1所示)中輸入用戶名和密碼,登錄成功后進(jìn)入主界面。登陸框流程圖如圖4.2所示,系統(tǒng)主界面如圖4.3所示,單擊某個按鈕就能彈出某個功能的界面。圖4.1系統(tǒng)登錄界面輸入用戶名輸入用戶名開始驗證密碼是否正確輸入密碼登錄成功進(jìn)入主界面結(jié)束是否選擇帳號類型圖4.2登錄模塊流程圖圖4.3系統(tǒng)主界面4.2圖書錄入模塊4.2.1實現(xiàn)目標(biāo)添加圖書信息,圖書錄入對話框的設(shè)計如圖4.4所示?!北4妗卑粹o對應(yīng)的方法為RAddBookDlg::OnSave(),流程圖如圖4.5所示。圖4.4圖書錄入對話框開始開始結(jié)束輸入圖書基本信息判斷輸入是否正確且完整添加該信息到關(guān)聯(lián)表并寫入數(shù)據(jù)庫是否圖4.5RAddBookDlg::OnSave()方法的流程圖4.2.2設(shè)計步驟(1)向項目中添加一個新Dialog資源,資源ID為IDD_ADDBOOK。在IDD_YGTJK對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的”Properties”菜單命令,打開”DialogProperties”對話框。在”DialogProperties”對話框中選擇General選項卡,更改其”Caption”文本框內(nèi)容為”圖書信息錄入”。(2)從Controls面板上向Dialog資源中添加所需控件,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表4.1所示。表4.1圖書錄入Dialog資源屬性設(shè)置IDPropertiesMemberVariablesTypeMemberIDC_BK_CATEGORY默認(rèn)文本CategoryNameIDC_BK_NAME默認(rèn)文本BookNameIDC_BK_AUTHOR默認(rèn)文本AuthorIDC_BK_PUBLISHER默認(rèn)文本PublisherIDC_BK_DATE默認(rèn)日期/時間PublishDateIDC_BK_PURCHASE默認(rèn)數(shù)字PurchaseIDC_BK_PRICE默認(rèn)數(shù)字PriceIDC_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)打開ClassWizard窗口,添加在OnInitDialog成員函數(shù),向OnInitDialog添加代碼如下:BOOLRAddBookDlg::OnInitDialog(){ CDialog::OnInitDialog(); //TODO:Addextrainitializationhere GetBookGategory(); returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}(2)當(dāng)用戶單擊”保存”按鈕時,實現(xiàn)添加圖書功能,其響應(yīng)代碼如下:voidRAddBookDlg::OnSave(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(TRUE); if(!IsValidInput()) return; if(IDYES!=AfxMessageBox("確定要保存嗎?",MB_YESNO))//放棄保存 return; if(SaveData()) { AfxMessageBox("保存成功!"); //保存后重置數(shù)據(jù) m_bHasNewBook=true; OnReset(); GetDlgItem(IDC_BK_CATEGORY)->SetFocus(); } else AfxMessageBox("保存失敗!");}(3)判斷輸入信息是否正確的函數(shù)是IsValidInput(),其響應(yīng)代碼如下:boolRAddBookDlg::IsValidInput(){ CStringstr=""; if(m_strBookCategory.IsEmpty()||m_strBookCategory.FindOneOf(str)!=-1) { AfxMessageBox("輸入有誤!圖書類型不能為空或包含數(shù)字。"); GetDlgItem(IDC_BK_CATEGORY)->SetFocus(); returnfalse; } if(m_strBookName.IsEmpty()) { AfxMessageBox("輸入有誤!書名不能為空。"); GetDlgItem(IDC_BK_NAME)->SetFocus(); returnfalse; } if(m_strAuthor.IsEmpty()||m_strAuthor.FindOneOf(str)!=-1) { AfxMessageBox("輸入有誤!作者名稱不能為空或包含數(shù)字。"); GetDlgItem(IDC_BK_AUTHOR)->SetFocus(); returnfalse; } if(m_strPublisher.IsEmpty()||m_strPublisher.FindOneOf(str)!=-1) { AfxMessageBox("輸入有誤!出版社名稱不能為空或包含數(shù)字。"); GetDlgItem(IDC_BK_PUBLISHER)->SetFocus(); returnfalse; } if(m_dPurchase<=0) { AfxMessageBox("圖書進(jìn)價應(yīng)為正值!"); GetDlgItem(IDC_BK_PURCHASE)->SetFocus(); returnfalse; } if(m_dPrice<=0) { AfxMessageBox("圖書售價應(yīng)為正值!"); GetDlgItem(IDC_BK_PRICE)->SetFocus(); returnfalse; } if(m_lDiscount<0||m_lDiscount>100) { AfxMessageBox("圖書折扣應(yīng)為0-100之間正值!"); GetDlgItem(IDC_BK_DISCOUNT)->SetFocus(); returnfalse; } if(m_lStock<1) { AfxMessageBox("圖書數(shù)量應(yīng)為正值!"); GetDlgItem(IDC_BK_STOCK)->SetFocus(); returnfalse; } if(m_strBarcode.IsEmpty()||m_strBarcode.GetLength()>15) { AfxMessageBox("條形碼應(yīng)為15位整數(shù)!"); GetDlgItem(IDC_BK_BARCODE)->SetFocus(); returnfalse; }// AfxMessageBox(m_strBookName+"\r\n"+// m_strBookCategory+"\r\n"+// m_strAuthor+"\r\n"+// m_strPublisher+"\r\n"+// m_strBarcode); returntrue;}4.3圖書銷售模塊4.3.1實現(xiàn)目標(biāo)實現(xiàn)圖書銷售功能,圖書銷售對話框設(shè)計如圖4.6所示?!变N售”按鈕對應(yīng)的方法為RSaleBookDlg::OnOK(),流程圖如圖4.7所示。圖4.6圖書銷售對話框開始開始結(jié)束輸入書名或條形碼判斷輸入是否正確且FindBook()函數(shù)返回值為1添加該信息到關(guān)聯(lián)表并寫入數(shù)據(jù)庫是否圖4.7RSaleBookDlg::OnOK()方法的流程圖4.3.2實現(xiàn)步驟(1)向項目中添加一個新Dialog資源,資源ID為IDD_SALEBOOK。在IDD_YGGONGZITJ對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的”Properties”菜單命令,打開”DialogProperties”對話框。在”DialogProperties”對話框中選擇General選項卡,更改其”Caption”文本框內(nèi)容為”圖書銷售?!?2)從Controls面板上向Dialog資源中添加相關(guān)控件,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表3.2所示:表4.2圖書銷售添加Dialog資源屬性設(shè)置IDPropertiesMemberVariablesTypeMemberIDC_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_SBK_DATE默認(rèn)日期/時間SaleDateIDOKCaption銷售IDCANCELCaption退出4.3.3代碼分析(1)為”銷售”按鈕添加代碼,實現(xiàn)圖書銷售功能,代碼如下:voidRSaleBookDlg::OnOK(){ //TODO:Addextravalidationhere if(!m_bReadySale) m_bReadySale=FindBook(); else { UpdateData(TRUE); CStringstrMsg;strMsg.Format("是否出售?\n書名:%s\n價格:%.2f”,m_strBookName,m_dSalePrice); if(IDYES==AfxMessageBox(strMsg,MB_YESNO)) { ModifyStock(); //修改圖書庫存 SaveSaleRecord(); //記錄銷售記錄 } Init(); UpdateData(FALSE); GetDlgItem(IDC_SBK_NAME)->SetFocus(); m_editDiscount.EnableWindow(FALSE); } //CDialog::OnOK();}(2)判斷銷售是否能夠成功的函數(shù)是RSaleBookDlg::FindBook(),其代碼如下:boolRSaleBookDlg::FindBook(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(TRUE); CStringstrSql; _variant_tvar; doubledPurchase; if(!m_strBookName.IsEmpty()) strSql.Format("SELECT*FROMBookInfoWHEREBookName=\"%s\"andStock>0",m_strBookName); elseif(!m_strBarCode.IsEmpty()) strSql.Format("SELECT*FROMBookInfoWHEREBarCode=\"%s\"andStock>0",m_strBarCode); else { AfxMessageBox("請輸入書名或條碼!"); GetDlgItem(IDC_SBK_NAME)->SetFocus(); returnfalse; } CRBookSaleApp*pApp=(CRBookSaleApp*)AfxGetApp(); try { pApp->m_pRecordset->Open(strSql.AllocSysString(), pApp->m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); if(pApp->m_pRecordset->adoEOF) { AfxMessageBox("查無此書!請輸入書名或條碼無誤。"); pApp->m_pRecordset->Close(); returnfalse; } var=pApp->m_pRecordset->GetCollect("BookID"); if(var.vt!=NULL) m_lBookID=var.lVal; var=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=var.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)?m_lDiscount:100; //售價小于進(jìn)價時,不允許打折 m_dSalePrice=m_dPrice*(double(m_lDiscount)/100); //計算折后價 UpdateData(FALSE); returntrue;}4.4銷售統(tǒng)計模塊4.4.1實現(xiàn)目標(biāo)實現(xiàn)對已銷售的圖書進(jìn)行統(tǒng)計的功能,銷售統(tǒng)計對話框如圖4.8所示。圖4.8銷售統(tǒng)計對話框4.4.2設(shè)計步驟(1)向項目中添加一個新Dialog資源,資源ID為IDD_REPORT。在IDD_REPORT對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的”Properties”菜單命令,打開”DialogProperties”對話框。在”DialogProperties”對話框中選擇General選項卡,更改其”Caption”文本框內(nèi)容為”銷售統(tǒng)計”。(2)從Controls面板上向Dialog資源中添加相應(yīng)控件,更改資源的屬性,并為資源設(shè)置相應(yīng)的變量,如表4.3所示:表4.3用戶信息管理Dialog資源屬性設(shè)置IDPropertiesMemberVariablesTypeMemberIDC_RADIO2默認(rèn)單選框IDC_RADIO3默認(rèn)單選框IDC_RADIO4默認(rèn)單選框IDC_RADIO5默認(rèn)單選框IDC_RADIO6默認(rèn)單選框IDC_STATIC默認(rèn)單選框IDOKCaption確定IDCANCELCaption取消4.4.3代碼分析查詢函數(shù)為CRBookSaleView::OnSaleReport(),代碼如下:voidCRBookSaleView::OnSaleReport(){ //TODO:Addyourcommandhandlercodehere RReportDlgdlg; dlg.m_iReportType=m_iReportType; if(IDOK==dlg.DoModal()) { m_iReportType=dlg.m_iReportType; //設(shè)置銷售報表標(biāo)題 //前2個標(biāo)題類型為用戶模式和書店管理模式,故此處加2 intiTitleType=0; switch(m_iReportType) { case0://圖書類型統(tǒng)計 iTitleType=CATEGORY_REPORT_TITLE; break; case1://圖書名稱統(tǒng)計 iTitleType=BOOKNAME_REPORT_TITLE; break; case2://圖書作者統(tǒng)計 iTitleType=AUTHOR_REPORT_TITLE; break; case3://出版社統(tǒng)計 iTitleType=PUBLISHER_REPORT_TITLE; break; case4://全部銷售記錄統(tǒng)計 iTitleType=SALE_REPORT_TITLE; break; default: break; } SetTitle(iTitleType); ShowReport(); }}4.5查詢庫存模塊4.5.1實現(xiàn)目標(biāo)實現(xiàn)對已銷售的圖書進(jìn)行統(tǒng)計的功能,銷售統(tǒng)計對話框如圖4.9所示。圖4.9查詢庫存對話框4.5.2設(shè)計步驟(1)向項目中添加一個新Dialog資源,資源ID為IDD_QUERY。在IDD_QUERY對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的”Properties”菜單命令,打開”DialogProperties”對話框。在”DialogProperties”對話框中選擇General選項卡,更改其”Caption”文本框內(nèi)容為”查詢”。(2)從Controls面板上向Dialog資源中添加相應(yīng)控件,更改資源的屬性,并為資源設(shè)置相應(yīng)的變量,如表4.4所示:表4.4庫存查詢Dialog資源屬性設(shè)置IDPropertiesMemberVariablesTypeMemberIDC_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(),代碼如下:voidRQueryDlg::OnOK(){ //TODO:Addextravalidationhere UpdateData(TRUE); //單獨處理類型為全部的情況,0表示選擇類型為全部 m_ctrlCategory.GetLBText(m_ctrlCategory.GetCurSel(),m_strCategory); if(m_strCategory==_T("全部")) m_strCategory=_T(""); CDialog::OnOK();}(2)組合框根據(jù)圖書類型查詢的函數(shù)為RQueryDlg::GetBookGategory(),代碼如下:voidRQueryDlg::GetBookGategory(){ intnum=0; CStringstrSql; _variant_tvar; m_ctrlCategory.ResetContent(); //清空組合框中原有數(shù)據(jù) //生成SQL查詢語句,在數(shù)據(jù)苦中查找圖書類型 strSql.Format(SQL_SELECT_CATEGORYNAME); CRBookSaleApp*pApp=(CRBookSaleApp*)AfxGetApp(); try { pApp->m_pRecordset->Open(strSql.AllocSysString(), pApp->m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); //遍歷數(shù)據(jù)庫中BookCategory表,獲取全部圖書類型 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_ctrlCategory.AddString("全部"); pApp->m_pRecordset->Close(); } catch(_com_error*e) { AfxMessageBox(e->ErrorMessage()); } //設(shè)置當(dāng)前選擇類型為全部 m_ctrlCategory.SetCurSel(num);}
5系統(tǒng)測試進(jìn)入VC++6.0,打開工程RBookSale.dsw,然后進(jìn)入源程序,接著編譯和運行即可運行。下面將給出系統(tǒng)運行的過程。(1)打開程序后,選擇”使用書店身份登錄”,輸入密碼”111”,進(jìn)入主對話框,如圖5.1。圖5.1主對話框(2)在功能菜單下選擇圖書錄入功能,添加一本新的圖書信息,如圖5.2。圖5.2添加圖書信息(3)點擊”返回”按鈕后,系統(tǒng)會自動顯示現(xiàn)有圖書信息,如圖5.3。圖5.3系統(tǒng)自動顯示現(xiàn)有
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026浙江金華武勤城市服務(wù)有限公司招聘50人備考題庫及答案詳解1套
- 2026祿勸彝族苗族自治縣屏山小學(xué)公開招聘臨聘教練員備考題庫(4人)及完整答案詳解
- 2026年固廢資源化利用創(chuàng)新策略
- 工程施工機械使用保養(yǎng)手冊
- 2026福建南平浦開集團(tuán)有限公司下屬浦城夢筆智行公共交通有限公司的招聘18人備考題庫及1套完整答案詳解
- 財務(wù)費用報銷培訓(xùn)課件
- 職業(yè)健康風(fēng)險評估在化工企業(yè)職業(yè)健康品牌建設(shè)中的應(yīng)用
- 職業(yè)健康檔案電子化數(shù)據(jù)完整性提升方案
- 職業(yè)健康政策在醫(yī)療機構(gòu)的落地實踐
- 職業(yè)健康大數(shù)據(jù)在醫(yī)保支付中的應(yīng)用
- 《筑牢安全防線 歡度平安寒假》2026年寒假安全教育主題班會課件
- 2026國家國防科技工業(yè)局所屬事業(yè)單位第一批招聘62人備考題庫及答案詳解(新)
- 信息技術(shù)應(yīng)用創(chuàng)新軟件適配測評技術(shù)規(guī)范
- 養(yǎng)老院老人生活設(shè)施管理制度
- 2026年稅務(wù)稽查崗位考試試題及稽查實操指引含答案
- (2025年)林業(yè)系統(tǒng)事業(yè)單位招聘考試《林業(yè)知識》真題庫與答案
- 2026版安全隱患排查治理
- 道路施工安全管理課件
- 2026年七臺河職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試備考題庫有答案解析
- 肉瘤的課件教學(xué)課件
- 辦公樓電梯間衛(wèi)生管理方案
評論
0/150
提交評論