




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 數(shù)據(jù)庫(kù)系統(tǒng)原理及其應(yīng)用教程數(shù)據(jù)庫(kù)系統(tǒng)原理及其應(yīng)用教程 課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)報(bào)告 題目名稱題目名稱: :網(wǎng)上圖書(shū)銷售系統(tǒng)網(wǎng)上圖書(shū)銷售系統(tǒng) 任課教師:任課教師: 姓姓 名:名: 學(xué)學(xué) 號(hào):號(hào): 2010 年年 12 月月 30 日日 2 目 錄 摘摘 要要.3 1 1 引言引言.3 2 2 需求分析需求分析.3 2.1 功能需求 .3 2.2 數(shù)據(jù)描述 .5 2.3 數(shù)據(jù)庫(kù)描述 .6 3 3 概要設(shè)計(jì)概要設(shè)計(jì).6 3.1 系統(tǒng)運(yùn)行環(huán)境 .6 3.2 系統(tǒng)功能模塊設(shè)計(jì) .7 3.3 系統(tǒng)處理流程 .7 3.4 接口設(shè)計(jì) .8 4 4 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì).8 4.1 登錄模塊及主界面 .9 4.2
2、圖書(shū)錄入模塊 .10 4.3 圖書(shū)銷售模塊 .15 4.4 銷售統(tǒng)計(jì)模塊 .20 4.5 查詢庫(kù)存模塊 .22 5 5 系統(tǒng)測(cè)試系統(tǒng)測(cè)試.25 6 6 操作手冊(cè)操作手冊(cè).29 7 7 結(jié)論結(jié)論.29 7.1 系統(tǒng)功能 .29 7.2 系統(tǒng)不足和改進(jìn) .29 7.3 總結(jié) .30 參考文獻(xiàn)參考文獻(xiàn).30 評(píng)評(píng) 語(yǔ)語(yǔ) 3131 3 摘 要 隨著計(jì)算機(jī)的普及書(shū)店規(guī)模的不斷擴(kuò)大,使圖書(shū)銷售管理成為書(shū)店管 理中的一個(gè)重要課題。通過(guò)圖書(shū)銷售管理系統(tǒng)可以解決書(shū)店管理中遇到的 各種問(wèn)題。本系統(tǒng)分析了市場(chǎng)需求和實(shí)際需要,利用 vc+連接 sql 數(shù)據(jù) 庫(kù)的方式,主要實(shí)現(xiàn)了書(shū)店的網(wǎng)上圖書(shū)銷售管理,該系統(tǒng)具有處理圖
3、書(shū)錄 入、圖書(shū)銷售、銷售統(tǒng)計(jì)、查詢庫(kù)存等功能。 關(guān)鍵詞:關(guān)鍵詞:圖書(shū);銷售;庫(kù)存 1 1 引言引言 傳統(tǒng)的圖書(shū)銷售管理方法,都是通過(guò)人工統(tǒng)計(jì)和計(jì)算的管理方式進(jìn)行的。 這樣的管理方法不但費(fèi)時(shí)費(fèi)力,也容易產(chǎn)生計(jì)算上的錯(cuò)誤和疏漏;計(jì)算機(jī)技術(shù) 的全面普及,打破了書(shū)店管理的傳統(tǒng)管理方法,提高了管理效率的同時(shí),克服 了傳統(tǒng)管理方法中易產(chǎn)生的問(wèn)題,使管理員能夠有序的、全面的對(duì)圖書(shū)銷售和 庫(kù)存進(jìn)行管理。 網(wǎng)上圖書(shū)銷售系統(tǒng)可以完成書(shū)店的日常管理,如圖書(shū)錄入、圖書(shū)銷售、銷 售統(tǒng)計(jì)、查詢庫(kù)存等功能,迅速準(zhǔn)確地對(duì)已售圖書(shū)和剩余庫(kù)存進(jìn)行統(tǒng)計(jì)和匯總 工作,大大提高了書(shū)店的管理效率和準(zhǔn)確性。 2 2 需求分析需求分析 2.
4、1 功能需求 2.1.1 待開(kāi)發(fā)軟件的功能需求 本系統(tǒng)是根據(jù)書(shū)店的實(shí)際需求而開(kāi)發(fā)的,要求穩(wěn)定、可靠的實(shí)現(xiàn)圖書(shū)銷售 的自動(dòng)化管理,通過(guò)本系統(tǒng)可以達(dá)到以下目標(biāo): 4 1. 圖書(shū)錄入,包括圖書(shū)的基本信息,如分類、進(jìn)價(jià)、售價(jià)、作者等。 2. 圖書(shū)銷售,包括圖書(shū)的售價(jià)、折扣、銷售日期,并實(shí)現(xiàn)對(duì)庫(kù)存量的修改。 3. 銷售統(tǒng)計(jì),包括按圖書(shū)類型、書(shū)名、作者、出版社等進(jìn)行統(tǒng)計(jì)。 4. 查詢庫(kù)存,對(duì)指定的某本圖書(shū)剩余庫(kù)存量進(jìn)行查詢。 5. 售完圖書(shū)查詢,對(duì)已售完圖書(shū)進(jìn)行查詢。 2.1.2 待開(kāi)發(fā)軟件的功能 按照用戶需求,要滿足以上功能,我設(shè)計(jì)出了圖書(shū)銷售管理系統(tǒng)的系統(tǒng)功能圖, 如圖 2.1 所示。 圖書(shū)銷售管理系
5、統(tǒng) 圖書(shū) 錄入 查詢 庫(kù)存 圖書(shū) 銷售 銷售 統(tǒng)計(jì) 售完 圖書(shū) 查詢 圖 2.1 圖書(shū)銷售管理系統(tǒng)的系統(tǒng)功能圖 綜合系統(tǒng)要求,對(duì)圖 2.1 所示的系統(tǒng)功能解釋如下: 圖書(shū)錄入,包括圖書(shū)的基本信息,如分類、進(jìn)價(jià)、售價(jià)、作者等。 圖書(shū)銷售,包括圖書(shū)的售價(jià)、折扣、銷售日期,并實(shí)現(xiàn)對(duì)庫(kù)存量的修改。 銷售統(tǒng)計(jì),包括按圖書(shū)類型、書(shū)名、作者、出版社等進(jìn)行統(tǒng)計(jì)。 查詢庫(kù)存,對(duì)指定的某本圖書(shū)剩余庫(kù)存量進(jìn)行查詢。 售完圖書(shū)查詢,對(duì)已售完圖書(shū)進(jìn)行查詢。 通過(guò)以上分析,可以得到倉(cāng)庫(kù)管理系統(tǒng)的數(shù)據(jù)流圖,如圖 2.2 所示。 5 管理員 圖書(shū)信息 處理 圖書(shū)管理 反饋信息 圖書(shū)信息 反饋信息 記錄數(shù)據(jù) 數(shù)據(jù)庫(kù) 圖 2.2
6、 圖書(shū)管理系統(tǒng)的數(shù)據(jù)流圖 2.2 數(shù)據(jù)描述 2.2.1 數(shù)據(jù)庫(kù)概要說(shuō)明 數(shù)據(jù)庫(kù)中包括管理員信息表、圖書(shū)基本信息表、圖書(shū)類型表、圖書(shū)銷售記 錄表等 4 個(gè)數(shù)據(jù)表。 圖 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.2.22.2.2 主要數(shù)據(jù)表的結(jié)構(gòu) 表 2.1 pwd(管理員信息表) 字段名數(shù)據(jù)類型字段大小描述 idint4管理員帳號(hào) passwordnvarchar50r密碼 表 2.2 bookinfo(圖書(shū)基本信息表) 字段名數(shù)據(jù)類型字段大小描述 bookidint4圖書(shū)編號(hào) bookname
7、nvarchar50圖書(shū)名稱 categoryidint4圖書(shū)類型編號(hào) authornvarchar50作者 6 publishernvarchar50出版社 publishdatesmalldatetime4出版日期 purchasefloat8進(jìn)價(jià) pricefloat8售價(jià) stockint4庫(kù)存本數(shù) discountint4折扣 barcodenvarchar50條形碼 表 2.3 bookcategory(圖書(shū)類型表) 字段名數(shù)據(jù)類型長(zhǎng)度描述 categoryidint4圖書(shū)類型編號(hào) categorynamenvarchar8圖書(shū)類型名稱 表 2.4 booksale(圖書(shū)銷售記錄表
8、) 字段名數(shù)據(jù)類型長(zhǎng)度描述 idint4銷售記錄編號(hào) bookidint4圖書(shū)編號(hào) salepricefloat8實(shí)際售價(jià) saledatesmalldatetime4銷售日期 2.3 數(shù)據(jù)庫(kù)描述 本軟件采用sql數(shù)據(jù)庫(kù)。 3 概要設(shè)計(jì) 本系統(tǒng)是根據(jù)書(shū)店的實(shí)際需求而開(kāi)發(fā)的,完全能夠幫助書(shū)店實(shí)現(xiàn)高效、準(zhǔn) 確的圖書(shū)銷售自動(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)境 pc 機(jī) windows 操作系統(tǒng) visual c+6.0 7 3.2 系統(tǒng)功能模塊設(shè)計(jì) 在前面系統(tǒng)功能分析的基礎(chǔ)上,結(jié)合 visual
9、 c+程序編制的特點(diǎn),得到如 圖 3.1 所示的系統(tǒng)功能模塊圖。 圖書(shū)銷售管理系統(tǒng) 圖書(shū)錄入模塊(m2) 查詢庫(kù)存模塊(m5) 圖書(shū)銷售模塊(m3) 銷售統(tǒng)計(jì)模塊(m4) 售完圖書(shū)查詢模塊(m6) 管理員登錄模塊(m1) 圖 3.1 圖書(shū)銷售管理系統(tǒng)功能模塊圖 各模塊功能分配如下: (1)用戶登陸功能:管理員登陸模塊(m1) 。 (2)圖書(shū)錄入功能:圖書(shū)錄入模塊(m2) 。 (3)圖書(shū)銷售功能:圖書(shū)銷售模塊(m3) 。 (4)銷售統(tǒng)計(jì)功能:銷售統(tǒng)計(jì)模塊(m4) 。 (5)查詢圖書(shū)庫(kù)存功能:查詢庫(kù)存模塊(m5) 。 (6)售完圖書(shū)查詢功能:售完圖書(shū)查詢模塊(m6) 。 3.3 系統(tǒng)處理流程 (1
10、)系統(tǒng)啟動(dòng),進(jìn)入身份驗(yàn)證。 (2)初始化系統(tǒng),導(dǎo)入數(shù)據(jù)庫(kù)。 (3)錄入圖書(shū)信息。 (4)圖書(shū)銷售。 (5)統(tǒng)計(jì)圖書(shū)銷售信息。 8 (6)查詢圖書(shū)庫(kù)存信息。 (7)查詢已售完圖書(shū)信息。 (8)退出系統(tǒng)。 3.4 接口設(shè)計(jì) 3.4.1 外部接口 (1) 用戶界面 采用圖形用戶界面,包含菜單、按鈕、對(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)圖書(shū)銷售模塊(m3):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成圖書(shū)銷售功能, 之
11、后進(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ù)存功能, 之后進(jìn)入消息循環(huán)狀態(tài)。 (5)售完圖書(shū)查詢模塊(m6):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成售完圖書(shū) 查詢功能,之后進(jìn)入消息循環(huán)狀態(tài)。 4 詳細(xì)設(shè)計(jì) 該系統(tǒng)采用 vc+6.0 中的 mfc 連接 sql 數(shù)據(jù)庫(kù)的方式,使用圖形用戶界面, 主要實(shí)現(xiàn)圖書(shū)錄入、圖書(shū)銷售等功能。下面具體對(duì)各模塊進(jìn)行介紹。 9 4.1 登錄模塊及主界面 在登錄界面(如圖 4.1 所示)中輸入用戶名和密碼,登錄成功后進(jìn)入主界 面。登陸框流程圖
12、如圖 4.2 所示,系統(tǒng)主界面如圖 4.3 所示,單擊某個(gè)按鈕就 能彈出某個(gè)功能的界面。 圖 4.1 系統(tǒng)登錄界面 輸入用戶名 開(kāi)始 驗(yàn)證密碼是否正確 輸入密碼 登錄成功進(jìn)入主界面 結(jié)束 是 否 選擇帳號(hào)類型 圖 4.2 登錄模塊流程圖 10 4.2 圖書(shū)錄入模塊 4.2.1 實(shí)現(xiàn)目標(biāo) 添加圖書(shū)信息,圖書(shū)錄入對(duì)話框的設(shè)計(jì)如圖 4.4 所示。 “保存”按鈕對(duì)應(yīng)的 方法為 raddbookdlg:onsave(),流程圖如圖 4.5 所示。 圖 4.4 圖書(shū)錄入對(duì)話框 11 開(kāi)始 結(jié)束 輸入圖書(shū)基本信息 判斷輸入是否正 確且完整 添加該信息到關(guān)聯(lián)表并寫(xiě) 入數(shù)據(jù)庫(kù) 是 否 圖 4.5 raddboo
13、kdlg:onsave()方法的流程圖 4.2.2 設(shè)計(jì)步驟 (1)向項(xiàng)目中添加一個(gè)新 dialog 資源,資源 id 為 idd_addbook。在 idd_ygtjk 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties” 菜單命令,打開(kāi)“dialog properties”對(duì)話框。在“dialog properties”對(duì)話框中 選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“圖書(shū)信息錄入” 。 (2)從 controls 面板上向 dialog 資源中添加所需控件,更改資源的屬性, 并為資源設(shè)置相對(duì)應(yīng)的變量,如表 4.1 所示。 表 4.1 圖書(shū)錄入
14、dialog 資源屬性設(shè)置 member variables idproperties typemember idc_bk_category默認(rèn)文本categoryname idc_bk_name默認(rèn)文本bookname idc_bk_author默認(rèn)文本author idc_bk_publisher默認(rèn)文本publisher idc_bk_date默認(rèn)日期/時(shí)間publishdate 12 idc_bk_purchase默認(rèn)數(shù)字purchase idc_bk_price默認(rèn)數(shù)字price idc_bk_payoff默認(rèn)數(shù)字price idc_bk_stock默認(rèn)數(shù)字stock idc_bk_
15、barcode默認(rèn)文本barcode idc_bk_discount默認(rèn)數(shù)字discount idc_resetcaption 重填 idc_savecaption 添加 idcancelcaption 退出 4.2.3 代碼分析 (1)打開(kāi) classwizard 窗口,添加在 oninitdialog 成員函數(shù),向 oninitdialog 添加代碼如下: bool raddbookdlg:oninitdialog() cdialog:oninitdialog(); / todo: add extra initialization here getbookgategory(); retur
16、n 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)添加圖書(shū)功能,其響應(yīng)代碼如下: void raddbookdlg:onsave() / todo: add your control notification handler code here updatedata(true); if(!isvalidinput() return ; if(idyes != afxmessagebox(
17、確定要保存嗎?,mb_yesno) /放棄保存 return ; 13 if(savedata() afxmessagebox(保存成功!); /保存后重置數(shù)據(jù) m_bhasnewbook = true; onreset(); getdlgitem(idc_bk_category)-setfocus(); else afxmessagebox(保存失敗!); (3)判斷輸入信息是否正確的函數(shù)是 isvalidinput() ,其響應(yīng)代碼如下: bool raddbookdlg:isvalidinput() cstring str = 0123456789; if(m_strbookcatego
18、ry.isempty() | m_strbookcategory.findoneof(str) != -1) afxmessagebox(輸入有誤!圖書(shū)類型不能為空或包含數(shù)字。); getdlgitem(idc_bk_category)-setfocus(); return false; if(m_strbookname.isempty() afxmessagebox(輸入有誤!書(shū)名不能為空。); getdlgitem(idc_bk_name)-setfocus(); return false; if(m_strauthor.isempty() | m_strauthor.findoneof(
19、str) != -1) 14 afxmessagebox(輸入有誤!作者名稱不能為空或包含數(shù)字。); getdlgitem(idc_bk_author)-setfocus(); return false; if(m_strpublisher.isempty()| m_strpublisher.findoneof(str) != -1) afxmessagebox(輸入有誤!出版社名稱不能為空或包含數(shù)字。); getdlgitem(idc_bk_publisher)-setfocus(); return false; if(m_dpurchase setfocus(); return false
20、; if(m_dprice setfocus(); return false; if( m_ldiscount 100) afxmessagebox(圖書(shū)折扣應(yīng)為 0-100 之間正值!); getdlgitem(idc_bk_discount)-setfocus(); return false; if(m_lstock setfocus(); return false; if(m_strbarcode.isempty() | m_strbarcode.getlength() 15) afxmessagebox(條形碼應(yīng)為 15 位整數(shù)!); getdlgitem(idc_bk_barcode
21、)-setfocus(); return false; /afxmessagebox(m_strbookname + rn + /m_strbookcategory + rn + /m_strauthor + rn + /m_strpublisher + rn + /m_strbarcode ); return true; 4.3 圖書(shū)銷售模塊 4.3.1 實(shí)現(xiàn)目標(biāo) 實(shí)現(xiàn)圖書(shū)銷售功能,圖書(shū)銷售對(duì)話框設(shè)計(jì)如圖 4.6 所示。 “銷售”按鈕對(duì)應(yīng) 的方法為 rsalebookdlg:onok(),流程圖如圖 4.7 所示。 16 圖 4.6 圖書(shū)銷售對(duì)話框 開(kāi)始 結(jié)束 輸入書(shū)名或條 形碼 判斷輸入是
22、否正確 且 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ì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的 “properties”菜單命令,打開(kāi)“dialog properties”對(duì)話框。在“dialog properties”對(duì)話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為 “圖書(shū)銷售。 ” (2)從 controls 面板上
23、向 dialog 資源中添加相關(guān)控件,更改資源的屬性, 并為資源設(shè)置相對(duì)應(yīng)的變量,如表 3.2 所示: 表 4.2 圖書(shū)銷售添加 dialog 資源屬性設(shè)置 member variables idproperties typemember idc_sbk_name默認(rèn)文本bookname 17 idc_sbk_barcode默認(rèn)文本barcode idc_sbk_price默認(rèn)數(shù)字price idc_sbk_saleprice默認(rèn)數(shù)字saleprice idc_sbk_discount默認(rèn)數(shù)字discount idc_sbk_date默認(rèn)日期/時(shí)間saledate idokcaption 銷售
24、 idcancelcaption 退出 4.3.3 代碼分析 (1)為“銷售”按鈕添加代碼,實(shí)現(xiàn)圖書(shū)銷售功能,代碼如下: void rsalebookdlg:onok() / todo: add extra validation here if(!m_breadysale) m_breadysale = findbook(); else updatedata(true); cstring strmsg; strmsg.format(是否出售?n 書(shū)名:%sn 價(jià)格:%.2f”,m_strbookname ,m_dsaleprice); if(idyes = afxmessagebox(strm
25、sg,mb_yesno) modifystock();/修改圖書(shū)庫(kù)存 savesalerecord();/記錄銷售記錄 init(); updatedata(false); getdlgitem(idc_sbk_name)-setfocus(); m_editdiscount.enablewindow(false); 18 /cdialog:onok(); (2)判斷銷售是否能夠成功的函數(shù)是 rsalebookdlg:findbook(),其代碼 如下: bool rsalebookdlg:findbook() / todo: add your control notification han
26、dler code here updatedata(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 * from bookinfo where barcode = %s and stock 0, m
27、_strbarcode); else afxmessagebox(請(qǐng)輸入書(shū)名或條碼!); getdlgitem(idc_sbk_name)-setfocus(); return false; crbooksaleapp* papp = (crbooksaleapp*)afxgetapp(); try papp-m_precordset-open(strsql.allocsysstring(), papp-m_pconnection.getinterfaceptr() adlockoptimistic, adcmdtext); 19 if(papp-m_precordset-adoeof) af
28、xmessagebox(查無(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 = papp-m_precordset-getcollect(discount); if(var.vt != null) m_ldiscount = var.lval; var = papp-m_precordset-getcollect(price); if(var.vt !
29、= 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_editdi
30、scount.enablewindow(m_dprice = dpurchase); m_ldiscount = (m_dprice = dpurchase) ? m_ldiscount :100;/售價(jià)小于 20 進(jìn)價(jià)時(shí),不允許打折 m_dsaleprice = m_dprice * (double(m_ldiscount)/100); /計(jì)算折后價(jià) updatedata(false); return true; 4.4 銷售統(tǒng)計(jì)模塊 4.4.1 實(shí)現(xiàn)目標(biāo) 實(shí)現(xiàn)對(duì)已銷售的圖書(shū)進(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)目中添
31、加一個(gè)新 dialog 資源,資源 id 為 idd_report。在 idd_report 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties” 菜單命令,打開(kāi)“dialog properties”對(duì)話框。在“dialog properties”對(duì)話框中 選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“銷售統(tǒng)計(jì)” 。 (2)從 controls 面板上向 dialog 資源中添加相應(yīng)控件,更改資源的屬性, 并為資源設(shè)置相應(yīng)的變量,如表 4.3 所示: 表 4.3 用戶信息管理 dialog 資源屬性設(shè)置 member variables idpropert
32、ies typemember idc_radio2默認(rèn)單選框 idc_radio3默認(rèn)單選框 idc_radio4默認(rèn)單選框 idc_radio5默認(rèn)單選框 21 idc_radio6默認(rèn)單選框 idc_static默認(rèn)單選框 idokcaption 確定 idcancelcaption 取消 4.4.3 代碼分析 查詢函數(shù)為 crbooksaleview:onsalereport(),代碼如下: void crbooksaleview:onsalereport() / todo: add your command handler code here rreportdlg dlg; dlg.m
33、_ireporttype = m_ireporttype ; if(idok = dlg.domodal() m_ireporttype = dlg.m_ireporttype; /設(shè)置銷售報(bào)表標(biāo)題 /前 2 個(gè)標(biāo)題類型為用戶模式和書(shū)店管理模式,故此處加 2 int ititletype = 0; switch(m_ireporttype) case 0:/圖書(shū)類型統(tǒng)計(jì) ititletype = category_report_title; break;case 1:/圖書(shū)名稱統(tǒng)計(jì) ititletype = bookname_report_title; break; case 2:/圖書(shū)作者統(tǒng)
34、計(jì) ititletype = author_report_title; break; case 3:/出版社統(tǒng)計(jì) ititletype = publisher_report_title; 22 break; case 4:/全部銷售記錄統(tǒng)計(jì) 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ì)已銷售的圖書(shū)進(jìn)行統(tǒng)計(jì)的功能,銷售統(tǒng)計(jì)對(duì)話框如圖 4.9 所示。 圖 4.9 查詢庫(kù)存對(duì)話框 4.5.2 設(shè)計(jì)步驟 (1)向項(xiàng)目
35、中添加一個(gè)新 dialog 資源,資源 id 為 idd_query。在 idd_query 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties” 菜單命令,打開(kāi)“dialog properties”對(duì)話框。在“dialog properties”對(duì)話框中 選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“查詢” 。 (2)從 controls 面板上向 dialog 資源中添加相應(yīng)控件,更改資源的屬性, 并為資源設(shè)置相應(yīng)的變量,如表 4.4 所示: 23 表 4.4 庫(kù)存查詢 dialog 資源屬性設(shè)置 member variables idproperti
36、es typemember idc_book_category默認(rèn)組合框 idc_book_name默認(rèn)文本bookname idc_book_author默認(rèn)文本author idc_book_publisher默認(rèn)文本publisher idokcaption 確定 idcancelcaption 取消 4.5.3 代碼分析 (1) “確定”按鈕的函數(shù)為 rquerydlg:onok(),代碼如下: void rquerydlg:onok() / todo: add extra validation here updatedata(true); /單獨(dú)處理類型為全部的情況,0 表示選擇類型
37、為全部 m_ctrlcategory.getlbtext(m_ctrlcategory.getcursel(),m_strcategory); if(m_strcategory = _t(全部) m_strcategory = _t(); cdialog:onok(); (2)組合框根據(jù)圖書(shū)類型查詢的函數(shù)為 rquerydlg:getbookgategory(), 代碼如下: void rquerydlg:getbookgategory() int num = 0; cstring strsql; _variant_t var; m_ctrlcategory.resetcontent();/清
38、空組合框中原有數(shù)據(jù) /生成 sql 查詢語(yǔ)句,在數(shù)據(jù)苦中查找圖書(shū)類型 24 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ù)庫(kù)中 bookcategory 表,獲取全部圖書(shū)類型 whil
39、e(!(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)前選擇類
40、型為全部 m_ctrlcategory.setcursel(num); 25 26 5 5 系統(tǒng)測(cè)試系統(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ì)話框,如圖 5.1。 圖 5.1 主對(duì)話框 (2)在功能菜單下選擇圖書(shū)錄入功能,添加一本新的圖書(shū)信息,如圖 5.2。 圖 5.2 添加圖書(shū)信息 (3)點(diǎn)擊“返回”按鈕后,系統(tǒng)會(huì)自動(dòng)顯示現(xiàn)有圖書(shū)信息,如圖 27 5.3。 圖 5.3 系統(tǒng)自動(dòng)顯示現(xiàn)有圖書(shū)信息 (4)在功能菜單下進(jìn)入圖書(shū)銷售對(duì)話框,賣出一本c+教程 ,如圖 5.4。點(diǎn)擊返回按鈕后,系統(tǒng)會(huì)顯示當(dāng)前所有圖書(shū)剩余庫(kù)存信息,如圖 5.4。 圖 5.4 圖書(shū)銷售 (5)點(diǎn)擊結(jié)束銷售后,系統(tǒng)會(huì)自動(dòng)顯示當(dāng)前所有圖書(shū)的庫(kù)存信息, c+ 教程的庫(kù)存量已減少一本,如圖 5.5。 28 圖 5.5 完成銷售后的庫(kù)存信息 (6)在功能菜單下進(jìn)入銷售統(tǒng)計(jì)對(duì)話框,查詢?nèi)夸N售清單,并給出已 售出圖書(shū)總本數(shù),如圖 5.6。 圖 5.6 查詢所有圖書(shū)銷售清單 (7)在功能菜單下
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年學(xué)校工作總結(jié)(32篇)
- 工程項(xiàng)目管理中工程監(jiān)理的重要性
- 文化藝術(shù)培訓(xùn)市場(chǎng)供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 盾構(gòu)施工中常見(jiàn)的問(wèn)題及處理措施
- 屋頂分布式光伏發(fā)電項(xiàng)目可行性研究報(bào)告
- 2025年中國(guó)圓柱體保險(xiǎn)絲管行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 中國(guó)不繡鋼廚房設(shè)備項(xiàng)目投資可行性研究報(bào)告
- 2025年度生物科技研發(fā)擔(dān)保書(shū)借款協(xié)議書(shū)
- 2025年度跨境電商運(yùn)輸保險(xiǎn)合同標(biāo)準(zhǔn)范本
- 2025年櫻花洗液行業(yè)深度研究分析報(bào)告
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2025年醫(yī)院財(cái)務(wù)工作計(jì)劃(2篇)
- DB32T 4969-2024大型醫(yī)用設(shè)備使用監(jiān)督管理平臺(tái)基礎(chǔ)數(shù)據(jù)采集規(guī)范
- 2025年大連長(zhǎng)興開(kāi)發(fā)建設(shè)限公司工作人員公開(kāi)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 教科版三年級(jí)下冊(cè)科學(xué)全冊(cè)單元教材分析
- 《物理學(xué)的發(fā)展史》課件
- 2025年廣東廣州市海珠區(qū)官洲街道辦事處政府雇員招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《道路交通安全法》課件完整版
- 《小腸梗阻的診斷與治療中國(guó)專家共識(shí)(2023版)》解讀
- 2024屆廣東省廣州市高三一??荚囉⒄Z(yǔ)試題講評(píng)課件
- 切削加工中的刀具路徑規(guī)劃算法考核試卷
評(píng)論
0/150
提交評(píng)論