網(wǎng)上圖書銷售系統(tǒng)—數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告_第1頁(yè)
網(wǎng)上圖書銷售系統(tǒng)—數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告_第2頁(yè)
網(wǎng)上圖書銷售系統(tǒng)—數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告_第3頁(yè)
網(wǎng)上圖書銷售系統(tǒng)—數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告_第4頁(yè)
網(wǎng)上圖書銷售系統(tǒng)—數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)學(xué)院課程設(shè)計(jì)說(shuō)明書課 程 名 稱: 數(shù)據(jù)庫(kù)-課程設(shè)計(jì) 課 程 代 碼: 8422561 題 目: 網(wǎng)上圖書銷售系統(tǒng)-實(shí)現(xiàn)前臺(tái) 年級(jí)/專業(yè)/班: 2009 級(jí)信管班 學(xué) 生 姓 名: 學(xué) 號(hào): 開 始 時(shí) 間: 2009 年 6 月 9 日完 成 時(shí) 間: 2009 年 6 月 21 日課程設(shè)計(jì)成績(jī):學(xué)習(xí)態(tài)度及平時(shí)成績(jī)(30)技術(shù)水平與實(shí)際能力(20)創(chuàng)新(5)說(shuō)明書撰寫質(zhì)量(45)總 分(100)指導(dǎo)教師簽名: 年 月 日1目 錄摘摘 要要.21 1 引言引言.12 2 需求分析需求分析.22.1 國(guó)內(nèi)外研究的現(xiàn)狀 .22.2 功能需求 .22.3 數(shù)據(jù)描述 .42.4 數(shù)據(jù)庫(kù)描述 .5

2、3 3 概要設(shè)計(jì)概要設(shè)計(jì).63.1 系統(tǒng)運(yùn)行環(huán)境 .63.2 系統(tǒng)功能模塊設(shè)計(jì) .63.3 系統(tǒng)處理流程 .73.4 接口設(shè)計(jì) .74 4 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì).94.1 登錄模塊及主界面 .94.2 圖書錄入模塊 .114.3 圖書銷售模塊 .164.4 銷售統(tǒng)計(jì)模塊 .214.5 查詢庫(kù)存模塊 .245 5 系統(tǒng)測(cè)試系統(tǒng)測(cè)試.276 6 操作手冊(cè)操作手冊(cè).327 7 結(jié)論結(jié)論.337.1 系統(tǒng)功能 .337.2 系統(tǒng)不足和改進(jìn) .337.3 總結(jié) .33致致 謝謝.34參考文獻(xiàn)參考文獻(xiàn).352摘 要隨著計(jì)算機(jī)的普及書店規(guī)模的不斷擴(kuò)大,使圖書銷售管理成為書店管理中的一個(gè)重要課題。通過(guò)圖書銷售管理

3、系統(tǒng)可以解決書店管理中遇到的各種問(wèn)題。本系統(tǒng)分析了市場(chǎng)需求和實(shí)際需要,利用 VC+連接 SQL 數(shù)據(jù)庫(kù)的方式,主要實(shí)現(xiàn)了書店的網(wǎng)上圖書銷售管理,該系統(tǒng)具有處理圖書錄入、圖書銷售、銷售統(tǒng)計(jì)、查詢庫(kù)存等功能。關(guān)鍵詞:關(guān)鍵詞:圖書;銷售;庫(kù)存1 1 引言引言 傳統(tǒng)的圖書銷售管理方法,都是通過(guò)人工統(tǒng)計(jì)和計(jì)算的管理方式進(jìn)行的。這樣的管理方法不但費(fèi)時(shí)費(fèi)力,也容易產(chǎn)生計(jì)算上的錯(cuò)誤和疏漏;計(jì)算機(jī)技術(shù)的全面普及,打破了書店管理的傳統(tǒng)管理方法,提高了管理效率的同時(shí),克服了傳統(tǒng)管理方法中易產(chǎn)生的問(wèn)題,使管理員能夠有序的、全面的對(duì)圖書銷售和庫(kù)存進(jìn)行管理。網(wǎng)上圖書銷售系統(tǒng)可以完成書店的日常管理,如圖書錄入、圖書銷售、銷

4、售統(tǒng)計(jì)、查詢庫(kù)存等功能,迅速準(zhǔn)確地對(duì)已售圖書和剩余庫(kù)存進(jìn)行統(tǒng)計(jì)和匯總工作,大大提高了書店的管理效率和準(zhǔn)確性。-1網(wǎng)上圖書銷售系統(tǒng)2 需求分析2.1 國(guó)內(nèi)外研究的現(xiàn)狀在現(xiàn)代化的書店中,對(duì)圖書銷售工作運(yùn)用現(xiàn)代化技術(shù)進(jìn)行管理,是提高工作效率的有效手段。圖書銷售管理是書店日常工作中非常重要的一個(gè)方面,越來(lái)越受到書店經(jīng)營(yíng)者的重視。通過(guò)計(jì)算機(jī)管理系統(tǒng)對(duì)圖書銷售進(jìn)行全面的統(tǒng)計(jì)與管理,全面解決了書店經(jīng)營(yíng)過(guò)程中所遇到的各種問(wèn)題,并且克服了傳統(tǒng)管理方式中的易出錯(cuò)等問(wèn)題。圖書銷售管理系統(tǒng)成為書店管理的首選管理工具。2.2 功能需求2.2.1 待開發(fā)軟件的功能需求本系統(tǒng)是根據(jù)書店的實(shí)際需求而開發(fā)的,要求穩(wěn)定、可靠的實(shí)

5、現(xiàn)圖書銷售的自動(dòng)化管理,通過(guò)本系統(tǒng)可以達(dá)到以下目標(biāo):1. 圖書錄入,包括圖書的基本信息,如分類、進(jìn)價(jià)、售價(jià)、作者等。2. 圖書銷售,包括圖書的售價(jià)、折扣、銷售日期,并實(shí)現(xiàn)對(duì)庫(kù)存量的修改。3. 銷售統(tǒng)計(jì),包括按圖書類型、書名、作者、出版社等進(jìn)行統(tǒng)計(jì)。4. 查詢庫(kù)存,對(duì)指定的某本圖書剩余庫(kù)存量進(jìn)行查詢。5. 售完圖書查詢,對(duì)已售完圖書進(jìn)行查詢。2.2.2 待開發(fā)軟件的功能按照用戶需求,要滿足以上功能,我設(shè)計(jì)出了圖書銷售管理系統(tǒng)的系統(tǒng)功能圖,如圖 2.1 所示。-2網(wǎng)上圖書銷售系統(tǒng)圖書銷售管理系統(tǒng)圖書錄入查詢庫(kù)存圖書銷售銷售統(tǒng)計(jì)售完圖書查詢圖 2.1 圖書銷售管理系統(tǒng)的系統(tǒng)功能圖綜合系統(tǒng)要求,對(duì)圖

6、2.1 所示的系統(tǒng)功能解釋如下:圖書錄入,包括圖書的基本信息,如分類、進(jìn)價(jià)、售價(jià)、作者等。圖書銷售,包括圖書的售價(jià)、折扣、銷售日期,并實(shí)現(xiàn)對(duì)庫(kù)存量的修改。銷售統(tǒng)計(jì),包括按圖書類型、書名、作者、出版社等進(jìn)行統(tǒng)計(jì)。查詢庫(kù)存,對(duì)指定的某本圖書剩余庫(kù)存量進(jìn)行查詢。售完圖書查詢,對(duì)已售完圖書進(jìn)行查詢。通過(guò)以上分析,可以得到倉(cāng)庫(kù)管理系統(tǒng)的數(shù)據(jù)流圖,如圖 2.2 所示。管理員圖書信息處理圖書管理反饋信息圖書信息反饋信息記錄數(shù)據(jù)數(shù)據(jù)庫(kù)圖 2.2 圖書管理系統(tǒng)的數(shù)據(jù)流圖-3網(wǎng)上圖書銷售系統(tǒng)2.3 數(shù)據(jù)描述2.3.1 數(shù)據(jù)庫(kù)概要說(shuō)明數(shù)據(jù)庫(kù)中包括管理員信息表、圖書基本信息表、圖書類型表、圖書銷售記錄表等4 個(gè)數(shù)據(jù)表

7、。圖 2.3 所示的即為本系統(tǒng)中數(shù)據(jù)庫(kù)中的數(shù)據(jù)表結(jié)構(gòu)圖,該數(shù)據(jù)表結(jié)構(gòu)圖包含系統(tǒng)所有數(shù)據(jù)表??梢郧逦胤磻?yīng)數(shù)據(jù)庫(kù)信息。圖 2.3 數(shù)據(jù)表結(jié)構(gòu)圖2.3.22.3.2 主要數(shù)據(jù)表的結(jié)構(gòu)表 2.1 Pwd(管理員信息表)字段名數(shù)據(jù)類型字段大小描述IDint4管理員帳號(hào)Passwordnvarchar50r密碼表 2.2 BookInfo(圖書基本信息表)字段名數(shù)據(jù)類型字段大小描述BookIDint4圖書編號(hào)BookNamenvarchar50圖書名稱CategoryIDint4圖書類型編號(hào)Authornvarchar50作者Publishernvarchar50出版社PublishDatesmalld

8、atetime4出版日期Purchasefloat8進(jìn)價(jià)Pricefloat8售價(jià)Stockint4庫(kù)存本數(shù)Discountint4折扣BarCodenvarchar50條形碼表 2.3 BookCategory(圖書類型表)字段名數(shù)據(jù)類型長(zhǎng)度描述CategoryIDint4圖書類型編號(hào)-4網(wǎng)上圖書銷售系統(tǒng)CategoryNamenvarchar8圖書類型名稱表 2.4 BookSale(圖書銷售記錄表)字段名數(shù)據(jù)類型長(zhǎng)度描述IDint4銷售記錄編號(hào)BookIDint4圖書編號(hào)SalePricefloat8實(shí)際售價(jià)SaleDatesmalldatetime4銷售日期2.4 數(shù)據(jù)庫(kù)描述本軟件采用

9、SQL數(shù)據(jù)庫(kù)。-5網(wǎng)上圖書銷售系統(tǒng)3 概要設(shè)計(jì)本系統(tǒng)是根據(jù)書店的實(shí)際需求而開發(fā)的,完全能夠幫助書店實(shí)現(xiàn)高效、準(zhǔn)確的圖書銷售自動(dòng)化管理。在分析階段,我們已經(jīng)提出了系統(tǒng)的結(jié)構(gòu)和數(shù)據(jù)字典。本節(jié)我們將對(duì)系統(tǒng)的使用環(huán)境作簡(jiǎn)要介紹,并對(duì)該系統(tǒng)作概要設(shè)計(jì)。3.1 系統(tǒng)運(yùn)行環(huán)境P4 機(jī)Windows 操作系統(tǒng)Visual C+6.03.2 系統(tǒng)功能模塊設(shè)計(jì)在前面系統(tǒng)功能分析的基礎(chǔ)上,結(jié)合 Visual C+程序編制的特點(diǎn),得到如圖 3.1所示的系統(tǒng)功能模塊圖。圖書銷售管理系統(tǒng)圖書錄入模塊(M2)查詢庫(kù)存模塊(M5)圖書銷售模塊(M3)銷售統(tǒng)計(jì)模塊(M4)售完圖書查詢模塊(M6)管理員登錄模塊(M1)圖 3.1

10、 圖書銷售管理系統(tǒng)功能模塊圖各模塊功能分配如下:(1)用戶登陸功能:管理員登陸模塊(M1) 。(2)圖書錄入功能:圖書錄入模塊(M2) 。(3)圖書銷售功能:圖書銷售模塊(M3) 。-6網(wǎng)上圖書銷售系統(tǒng)(4)銷售統(tǒng)計(jì)功能:銷售統(tǒng)計(jì)模塊(M4) 。(5)查詢圖書庫(kù)存功能:查詢庫(kù)存模塊(M5) 。(6)售完圖書查詢功能:售完圖書查詢模塊(M6) 。3.3 系統(tǒng)處理流程(1)系統(tǒng)啟動(dòng),進(jìn)入身份驗(yàn)證。(2)初始化系統(tǒng),導(dǎo)入數(shù)據(jù)庫(kù)。(3)錄入圖書信息。(4)圖書銷售。(5)統(tǒng)計(jì)圖書銷售信息。(6)查詢圖書庫(kù)存信息。(7)查詢已售完圖書信息。(8)退出系統(tǒng)。3.4 接口設(shè)計(jì)3.4.1 外部接口(1) 用戶

11、界面采用圖形用戶界面,包含菜單、按鈕、對(duì)話框等元素。(2) 軟件接口軟件運(yùn)行于Visual C+6.0平臺(tái)上。(3) 硬件接口運(yùn)行于PC機(jī)上。3.4.2 內(nèi)部接口(1)用戶登陸模塊(M1):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成用戶登陸功能,之后進(jìn)入消息循環(huán)狀態(tài)。(2)圖書銷售模塊(M3):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成圖書銷售功能,之后進(jìn)入消息循環(huán)狀態(tài)。(3)銷售統(tǒng)計(jì)模塊(M4):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成銷售統(tǒng)計(jì)功能,之后進(jìn)入消息循環(huán)狀態(tài)。(4)查詢庫(kù)存模塊(M5):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成查詢庫(kù)存功能,之后-7網(wǎng)上圖書銷售系統(tǒng)進(jìn)入消息循環(huán)狀態(tài)。(5)售完圖書查詢模塊(M6):由相應(yīng)事件驅(qū)動(dòng)消息

12、激活,完成售完圖書查詢功能,之后進(jìn)入消息循環(huán)狀態(tài)。-8網(wǎng)上圖書銷售系統(tǒng)4 詳細(xì)設(shè)計(jì)該系統(tǒng)采用 VC+6.0 中的 MFC 連接 SQL 數(shù)據(jù)庫(kù)的方式,使用圖形用戶界面,主要實(shí)現(xiàn)圖書錄入、圖書銷售等功能。下面具體對(duì)各模塊進(jìn)行介紹。4.1 登錄模塊及主界面在登錄界面(如圖 4.1 所示)中輸入用戶名和密碼,登錄成功后進(jìn)入主界面。登陸框流程圖如圖 4.2 所示,系統(tǒng)主界面如圖 4.3 所示,單擊某個(gè)按鈕就能彈出某個(gè)功能的界面。圖 4.1 系統(tǒng)登錄界面輸入用戶名開始驗(yàn)證密碼是否正確輸入密碼登錄成功進(jìn)入主界面結(jié)束是否選擇帳號(hào)類型-9網(wǎng)上圖書銷售系統(tǒng)圖 4.2 登錄模塊流程圖圖 4.3 系統(tǒng)主界面4.2

13、圖書錄入模塊4.2.1 實(shí)現(xiàn)目標(biāo)添加圖書信息,圖書錄入對(duì)話框的設(shè)計(jì)如圖 4.4 所示。 “保存”按鈕對(duì)應(yīng)的方法為RAddBookDlg:OnSave(),流程圖如圖 4.5 所示。圖 4.4 圖書錄入對(duì)話框-10網(wǎng)上圖書銷售系統(tǒng)開始結(jié)束輸入圖書基本信息判斷輸入是否正確且完整添加該信息到關(guān)聯(lián)表并寫入數(shù)據(jù)庫(kù) 是否圖 4.5 RAddBookDlg:OnSave()方法的流程圖4.2.2 設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新 Dialog 資源,資源 ID 為 IDD_ADDBOOK。在IDD_YGTJK 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開“Dialog

14、Properties”對(duì)話框。在“Dialog Properties”對(duì)話框中選擇 General 選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“圖書信息錄入” 。(2)從 Controls 面板上向 Dialog 資源中添加所需控件,更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如表 4.1 所示。表 4.1 圖書錄入 Dialog 資源屬性設(shè)置Member VariablesIDPropertiesTypeMemberIDC_BK_CATEGORY默認(rèn)文本CategoryNameIDC_BK_NAME默認(rèn)文本BookNameIDC_BK_AUTHOR默認(rèn)文本AuthorIDC_BK_PUBLI

15、SHER默認(rèn)文本PublisherIDC_BK_DATE默認(rèn)日期/時(shí)間PublishDate-11網(wǎng)上圖書銷售系統(tǒng)IDC_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 窗口,添加在 OnInitDial

16、og 成員函數(shù),向 OnInitDialog添加代碼如下:BOOL RAddBookDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereGetBookGategory();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE(2)當(dāng)用戶單擊“保存“按鈕時(shí),實(shí)現(xiàn)添加圖書功能,其響應(yīng)代碼如下:void RAddBoo

17、kDlg:OnSave() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(!IsValidInput()return ;if(IDYES != AfxMessageBox(確定要保存嗎?,MB_YESNO) /放棄保存return ;if(SaveData()-12網(wǎng)上圖書銷售系統(tǒng)AfxMessageBox(保存成功!);/保存后重置數(shù)據(jù)m_bHasNewBook = true;OnReset();GetDlgItem(IDC_BK_CATEGORY)-SetFocus();elseAfxM

18、essageBox(保存失敗!);(3)判斷輸入信息是否正確的函數(shù)是 IsValidInput() ,其響應(yīng)代碼如下:bool RAddBookDlg:IsValidInput()CString str = 0123456789;if(m_strBookCategory.IsEmpty() | m_strBookCategory.FindOneOf(str) != -1)AfxMessageBox(輸入有誤!圖書類型不能為空或包含數(shù)字。);GetDlgItem(IDC_BK_CATEGORY)-SetFocus();return false;if(m_strBookName.IsEmpty()

19、AfxMessageBox(輸入有誤!書名不能為空。);GetDlgItem(IDC_BK_NAME)-SetFocus();return false;if(m_strAuthor.IsEmpty() | m_strAuthor.FindOneOf(str) != -1)AfxMessageBox(輸入有誤!作者名稱不能為空或包含數(shù)字。);GetDlgItem(IDC_BK_AUTHOR)-SetFocus();-13網(wǎng)上圖書銷售系統(tǒng)return false;if(m_strPublisher.IsEmpty()| m_strPublisher.FindOneOf(str) != -1)Afx

20、MessageBox(輸入有誤!出版社名稱不能為空或包含數(shù)字。);GetDlgItem(IDC_BK_PUBLISHER)-SetFocus();return false;if(m_dPurchase SetFocus();return false;if(m_dPrice SetFocus();return false;if( m_lDiscount 100)AfxMessageBox(圖書折扣應(yīng)為 0-100 之間正值!);GetDlgItem(IDC_BK_DISCOUNT)-SetFocus();return false;if(m_lStock SetFocus();-14網(wǎng)上圖書銷售系

21、統(tǒng)return false;if(m_strBarcode.IsEmpty() | m_strBarcode.GetLength() 15)AfxMessageBox(條形碼應(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 圖書銷售模塊4.3.1 實(shí)現(xiàn)目標(biāo)實(shí)

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

23、ialog Properties”對(duì)話框。在“Dialog Properties”對(duì)話框中選擇General 選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“圖書銷售。 ”(2)從 Controls 面板上向 Dialog 資源中添加相關(guān)控件,更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如表 3.2 所示:表 4.2 圖書銷售添加 Dialog 資源屬性設(shè)置Member VariablesIDPropertiesTypeMemberIDC_SBK_NAME默認(rèn)文本BookNameIDC_SBK_BARCODE默認(rèn)文本BarCodeIDC_SBK_PRICE默認(rèn)數(shù)字PriceIDC_SBK_SALE

24、PRICE默認(rèn)數(shù)字SalePrice-16網(wǎng)上圖書銷售系統(tǒng)IDC_SBK_DISCOUNT默認(rèn)數(shù)字DiscountIDC_SBK_DATE默認(rèn)日期/時(shí)間SaleDateIDOKCaption 銷售IDCANCELCaption 退出4.3.3 代碼分析(1)為“銷售”按鈕添加代碼,實(shí)現(xiàn)圖書銷售功能,代碼如下:void RSaleBookDlg:OnOK() / TODO: Add extra validation hereif(!m_bReadySale)m_bReadySale = FindBook();elseUpdateData(TRUE);CString strMsg;strMsg.F

25、ormat(是否出售?n 書名:%sn 價(jià)格:%.2f”,m_strBookName,m_dSalePrice);if(IDYES = AfxMessageBox(strMsg,MB_YESNO)ModifyStock();/修改圖書庫(kù)存SaveSaleRecord();/記錄銷售記錄Init();UpdateData(FALSE);GetDlgItem(IDC_SBK_NAME)-SetFocus();m_editDiscount.EnableWindow(FALSE);/CDialog:OnOK();(2)判斷銷售是否能夠成功的函數(shù)是 RSaleBookDlg:FindBook(),其代碼

26、如下:-17網(wǎng)上圖書銷售系統(tǒng)bool RSaleBookDlg:FindBook() / TODO: Add your control 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.IsE

27、mpty()strSql.Format(SELECT * FROM BookInfo WHERE BarCode = %s and Stock 0, m_strBarCode);elseAfxMessageBox(請(qǐng)輸入書名或條碼!);GetDlgItem(IDC_SBK_NAME)-SetFocus();return false;CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();trypApp-m_pRecordset-Open(strSql.AllocSysString(),pApp-m_pConnection.GetInterfacePt

28、r(),adOpenDynamic,adLockOptimistic,adCmdText);if(pApp-m_pRecordset-adoEOF)-18網(wǎng)上圖書銷售系統(tǒng)AfxMessageBox(查無(wú)此書!請(qǐng)輸入書名或條碼無(wú)誤。);pApp-m_pRecordset-Close();return false;var = pApp-m_pRecordset-GetCollect(BookID);if(var.vt != NULL)m_lBookID = var.lVal;var = pApp-m_pRecordset-GetCollect(Discount);if(var.vt != NULL

29、)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-Cl

30、ose();catch(_com_error * e)AfxMessageBox(e-ErrorMessage();m_editDiscount.EnableWindow(m_dPrice = dPurchase);m_lDiscount = (m_dPrice = dPurchase) ? m_lDiscount :100;/售價(jià)小于進(jìn)價(jià)時(shí),不允許打折m_dSalePrice = m_dPrice * (double(m_lDiscount)/100); /計(jì)算折后價(jià)UpdateData(FALSE);-19網(wǎng)上圖書銷售系統(tǒng)return true; 4.4 銷售統(tǒng)計(jì)模塊4.4.1 實(shí)現(xiàn)目標(biāo)實(shí)

31、現(xiàn)對(duì)已銷售的圖書進(jìn)行統(tǒng)計(jì)的功能,銷售統(tǒng)計(jì)對(duì)話框如圖 4.8 所示。圖 4.8 銷售統(tǒng)計(jì)對(duì)話框4.4.2 設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新 Dialog 資源,資源 ID 為 IDD_REPORT。在IDD_REPORT 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開“Dialog Properties”對(duì)話框。在“Dialog Properties”對(duì)話框中選擇 General 選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“銷售統(tǒng)計(jì)” 。(2)從 Controls 面板上向 Dialog 資源中添加相應(yīng)控件,更改資源的屬性,并為資源設(shè)置相應(yīng)的變量,如表 4.

32、3 所示:表 4.3 用戶信息管理 Dialog 資源屬性設(shè)置Member VariablesIDPropertiesTypeMemberIDC_RADIO2默認(rèn)單選框IDC_RADIO3默認(rèn)單選框IDC_RADIO4默認(rèn)單選框IDC_RADIO5默認(rèn)單選框IDC_RADIO6默認(rèn)單選框IDC_STATIC默認(rèn)單選框IDOKCaption 確定-20網(wǎng)上圖書銷售系統(tǒng)IDCANCELCaption 取消4.4.3 代碼分析查詢函數(shù)為 CRBookSaleView:OnSaleReport(),代碼如下:void CRBookSaleView:OnSaleReport() / TODO: Add

33、your command handler code hereRReportDlg dlg;dlg.m_iReportType = m_iReportType ;if(IDOK = dlg.DoModal()m_iReportType = dlg.m_iReportType;/設(shè)置銷售報(bào)表標(biāo)題/前 2 個(gè)標(biāo)題類型為用戶模式和書店管理模式,故此處加 2int iTitleType = 0;switch(m_iReportType)case 0:/圖書類型統(tǒng)計(jì)iTitleType = CATEGORY_REPORT_TITLE;break;case 1:/圖書名稱統(tǒng)計(jì)iTitleType = BOO

34、KNAME_REPORT_TITLE;break;case 2:/圖書作者統(tǒng)計(jì)iTitleType = AUTHOR_REPORT_TITLE;break;case 3:/出版社統(tǒng)計(jì)iTitleType = PUBLISHER_REPORT_TITLE;break;case 4:/全部銷售記錄統(tǒng)計(jì)-21網(wǎng)上圖書銷售系統(tǒng)iTitleType = SALE_REPORT_TITLE;break;default:break;SetTitle(iTitleType);ShowReport();4.5 查詢庫(kù)存模塊4.5.1 實(shí)現(xiàn)目標(biāo)實(shí)現(xiàn)對(duì)已銷售的圖書進(jìn)行統(tǒng)計(jì)的功能,銷售統(tǒng)計(jì)對(duì)話框如圖 4.9 所示。圖

35、 4.9 查詢庫(kù)存對(duì)話框4.5.2 設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新 Dialog 資源,資源 ID 為 IDD_QUERY。在IDD_QUERY 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開“Dialog Properties”對(duì)話框。在“Dialog Properties”對(duì)話框中選擇 General 選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“查詢” 。(2)從 Controls 面板上向 Dialog 資源中添加相應(yīng)控件,更改資源的屬性,并為資源設(shè)置相應(yīng)的變量,如表 4.4 所示:表 4.4 庫(kù)存查詢 Dialog 資源屬性設(shè)置IDPropert

36、iesMember Variables-22網(wǎng)上圖書銷售系統(tǒng)TypeMemberIDC_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:OnOK() / TODO: Add extra validation hereUpdateData(TRUE);/單獨(dú)處理類

37、型為全部的情況,0 表示選擇類型為全部m_ctrlCategory.GetLBText(m_ctrlCategory.GetCurSel(),m_strCategory);if(m_strCategory = _T(全部)m_strCategory = _T();CDialog:OnOK();(2)組合框根據(jù)圖書類型查詢的函數(shù)為 RQueryDlg:GetBookGategory(),代碼如下:void RQueryDlg:GetBookGategory()int num = 0;CString strSql;_variant_t var;m_ctrlCategory.ResetContent

38、();/清空組合框中原有數(shù)據(jù)/生成 SQL 查詢語(yǔ)句,在數(shù)據(jù)苦中查找圖書類型strSql.Format(SQL_SELECT_CATEGORYNAME);CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();-23網(wǎng)上圖書銷售系統(tǒng)trypApp-m_pRecordset-Open(strSql.AllocSysString(),pApp-m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);/遍歷數(shù)據(jù)庫(kù)中 BookCategory 表,獲取全部圖書類型wh

39、ile(!(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_ct

40、rlCategory.SetCurSel(num);-24網(wǎng)上圖書銷售系統(tǒng)5 5 系統(tǒng)測(cè)試系統(tǒng)測(cè)試進(jìn)入 VC+6.0,打開工程 RBookSale.dsw,然后進(jìn)入源程序,接著編譯和運(yùn)行即可運(yùn)行。下面將給出系統(tǒng)運(yùn)行的過(guò)程。(1)打開程序后,選擇“使用書店身份登錄” ,輸入密碼“111” ,進(jìn)入主對(duì)話框,如圖 5.1。圖 5.1 主對(duì)話框(2)在功能菜單下選擇圖書錄入功能,添加一本新的圖書信息,如圖 5.2。圖 5.2 添加圖書信息(3)點(diǎn)擊“返回”按鈕后,系統(tǒng)會(huì)自動(dòng)顯示現(xiàn)有圖書信息,如圖 5.3。-25網(wǎng)上圖書銷售系統(tǒng)圖 5.3 系統(tǒng)自動(dòng)顯示現(xiàn)有圖書信息(4)在功能菜單下進(jìn)入圖書銷售對(duì)話框,賣

41、出一本C+教程 ,如圖 5.4。點(diǎn)擊返回按鈕后,系統(tǒng)會(huì)顯示當(dāng)前所有圖書剩余庫(kù)存信息,如圖 5.4。圖 5.4 圖書銷售(5)點(diǎn)擊結(jié)束銷售后,系統(tǒng)會(huì)自動(dòng)顯示當(dāng)前所有圖書的庫(kù)存信息, C+教程的庫(kù)存量已減少一本,如圖 5.5。-26網(wǎng)上圖書銷售系統(tǒng)圖 5.5 完成銷售后的庫(kù)存信息 (6)在功能菜單下進(jìn)入銷售統(tǒng)計(jì)對(duì)話框,查詢?nèi)夸N售清單,并給出已售出圖書總本數(shù),如圖 5.6。圖 5.6 查詢所有圖書銷售清單(7)在功能菜單下進(jìn)入查詢庫(kù)存對(duì)話框,查詢魅力何來(lái)這本書的庫(kù)存信息,如圖 5.7。-27網(wǎng)上圖書銷售系統(tǒng)圖 5.7 查詢圖書庫(kù)存信息(8)再售出魅力何來(lái)2 本后,在功能菜單下進(jìn)入售完圖書列表功能,查詢已售完的圖書的信息如圖 5.8。圖 5.8 查詢售完圖書列表(9)在出售

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論