2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩36頁(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、<p><b>  數(shù)學(xué)與計(jì)算機(jī)學(xué)院</b></p><p><b>  課程設(shè)計(jì)說(shuō)明書(shū)</b></p><p>  課 程 名 稱(chēng): 數(shù)據(jù)庫(kù)-課程設(shè)計(jì) </p><p>  課 程 代 碼: </p><p>  題 目

2、: 網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)-實(shí)現(xiàn)前臺(tái) </p><p><b>  年級(jí)/專(zhuān)業(yè)/班:</b></p><p>  學(xué) 生 姓 名: </p><p>  學(xué)   號(hào): </p><p>  開(kāi) 始 時(shí) 間: 2013

3、年 6 月 9 日</p><p>  完 成 時(shí) 間: 2013 年 6 月 21 日</p><p><b>  課程設(shè)計(jì)成績(jī):</b></p><p>  指導(dǎo)教師簽名: 年 月 日</p><p><b>  目 錄</b

4、></p><p><b>  摘 要2</b></p><p><b>  1 引言1</b></p><p><b>  2 需求分析2</b></p><p>  2.1 國(guó)內(nèi)外研究的現(xiàn)狀2</p><p>  2.2 功能需求

5、2</p><p>  2.3 數(shù)據(jù)描述4</p><p>  2.4 數(shù)據(jù)庫(kù)描述5</p><p><b>  3 概要設(shè)計(jì)6</b></p><p>  3.1 系統(tǒng)運(yùn)行環(huán)境6</p><p>  3.2 系統(tǒng)功能模塊設(shè)計(jì)6</p><p>  3.3 系統(tǒng)處

6、理流程7</p><p>  3.4 接口設(shè)計(jì)7</p><p><b>  4 詳細(xì)設(shè)計(jì)9</b></p><p>  4.1 登錄模塊及主界面9</p><p>  4.2 圖書(shū)錄入模塊11</p><p>  4.3 圖書(shū)銷(xiāo)售模塊16</p><p>  

7、4.4 銷(xiāo)售統(tǒng)計(jì)模塊21</p><p>  4.5 查詢(xún)庫(kù)存模塊24</p><p><b>  5 系統(tǒng)測(cè)試27</b></p><p><b>  6 操作手冊(cè)32</b></p><p><b>  7 結(jié)論33</b></p><p>

8、;  7.1 系統(tǒng)功能33</p><p>  7.2 系統(tǒng)不足和改進(jìn)33</p><p><b>  7.3 總結(jié)33</b></p><p><b>  致 謝34</b></p><p><b>  參考文獻(xiàn)35</b></p><p>

9、;<b>  摘 要</b></p><p>  隨著計(jì)算機(jī)的普及書(shū)店規(guī)模的不斷擴(kuò)大,使圖書(shū)銷(xiāo)售管理成為書(shū)店管理中的一個(gè)重要課題。通過(guò)圖書(shū)銷(xiāo)售管理系統(tǒng)可以解決書(shū)店管理中遇到的各種問(wèn)題。本系統(tǒng)分析了市場(chǎng)需求和實(shí)際需要,利用VC++連接SQL數(shù)據(jù)庫(kù)的方式,主要實(shí)現(xiàn)了書(shū)店的網(wǎng)上圖書(shū)銷(xiāo)售管理,該系統(tǒng)具有處理圖書(shū)錄入、圖書(shū)銷(xiāo)售、銷(xiāo)售統(tǒng)計(jì)、查詢(xún)庫(kù)存等功能。</p><p> 

10、 關(guān)鍵詞:圖書(shū);銷(xiāo)售;庫(kù)存</p><p><b>  1 引言 </b></p><p>  傳統(tǒng)的圖書(shū)銷(xiāo)售管理方法,都是通過(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ū)銷(xiāo)售和庫(kù)存進(jìn)

11、行管理。</p><p>  網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)可以完成書(shū)店的日常管理,如圖書(shū)錄入、圖書(shū)銷(xiāo)售、銷(xiāo)售統(tǒng)計(jì)、查詢(xún)庫(kù)存等功能,迅速準(zhǔn)確地對(duì)已售圖書(shū)和剩余庫(kù)存進(jìn)行統(tǒng)計(jì)和匯總工作,大大提高了書(shū)店的管理效率和準(zhǔn)確性。</p><p><b>  2 需求分析</b></p><p>  2.1 國(guó)內(nèi)外研究的現(xiàn)狀</p><p>  在

12、現(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ū)店管理的首選管理工具。</p><p><b>  2.2 功能需求</b><

13、/p><p>  2.2.1待開(kāi)發(fā)軟件的功能需求</p><p>  本系統(tǒng)是根據(jù)書(shū)店的實(shí)際需求而開(kāi)發(fā)的,要求穩(wěn)定、可靠的實(shí)現(xiàn)圖書(shū)銷(xiāo)售的自動(dòng)化管理,通過(guò)本系統(tǒng)可以達(dá)到以下目標(biāo):</p><p>  圖書(shū)錄入,包括圖書(shū)的基本信息,如分類(lèi)、進(jìn)價(jià)、售價(jià)、作者等。</p><p>  圖書(shū)銷(xiāo)售,包括圖書(shū)的售價(jià)、折扣、銷(xiāo)售日期,并實(shí)現(xiàn)對(duì)庫(kù)存量的修改。<

14、;/p><p>  銷(xiāo)售統(tǒng)計(jì),包括按圖書(shū)類(lèi)型、書(shū)名、作者、出版社等進(jìn)行統(tǒng)計(jì)。</p><p>  查詢(xún)庫(kù)存,對(duì)指定的某本圖書(shū)剩余庫(kù)存量進(jìn)行查詢(xún)。</p><p>  售完圖書(shū)查詢(xún),對(duì)已售完圖書(shū)進(jìn)行查詢(xún)。</p><p>  2.2.2待開(kāi)發(fā)軟件的功能</p><p>  按照用戶(hù)需求,要滿(mǎn)足以上功能,我設(shè)計(jì)出了圖書(shū)銷(xiāo)售管理

15、系統(tǒng)的系統(tǒng)功能圖,如圖2.1所示。</p><p>  圖2.1 圖書(shū)銷(xiāo)售管理系統(tǒng)的系統(tǒng)功能圖</p><p>  綜合系統(tǒng)要求,對(duì)圖2.1所示的系統(tǒng)功能解釋如下:</p><p>  圖書(shū)錄入,包括圖書(shū)的基本信息,如分類(lèi)、進(jìn)價(jià)、售價(jià)、作者等。</p><p>  圖書(shū)銷(xiāo)售,包括圖書(shū)的售價(jià)、折扣、銷(xiāo)售日期,并實(shí)現(xiàn)對(duì)庫(kù)存量的修改。</p&

16、gt;<p>  銷(xiāo)售統(tǒng)計(jì),包括按圖書(shū)類(lèi)型、書(shū)名、作者、出版社等進(jìn)行統(tǒng)計(jì)。</p><p>  查詢(xún)庫(kù)存,對(duì)指定的某本圖書(shū)剩余庫(kù)存量進(jìn)行查詢(xún)。</p><p>  售完圖書(shū)查詢(xún),對(duì)已售完圖書(shū)進(jìn)行查詢(xún)。</p><p>  通過(guò)以上分析,可以得到倉(cāng)庫(kù)管理系統(tǒng)的數(shù)據(jù)流圖,如圖2.2所示。</p><p>  圖2.2 圖書(shū)管理系統(tǒng)的

17、數(shù)據(jù)流圖</p><p><b>  2.3 數(shù)據(jù)描述</b></p><p>  2.3.1數(shù)據(jù)庫(kù)概要說(shuō)明</p><p>  數(shù)據(jù)庫(kù)中包括管理員信息表、圖書(shū)基本信息表、圖書(shū)類(lèi)型表、圖書(shū)銷(xiāo)售記錄表等4個(gè)數(shù)據(jù)表。</p><p>  圖2.3所示的即為本系統(tǒng)中數(shù)據(jù)庫(kù)中的數(shù)據(jù)表結(jié)構(gòu)圖,該數(shù)據(jù)表結(jié)構(gòu)圖包含系統(tǒng)所有數(shù)據(jù)表。可以

18、清晰地反應(yīng)數(shù)據(jù)庫(kù)信息。</p><p>  圖2.3 數(shù)據(jù)表結(jié)構(gòu)圖</p><p>  2.3.2主要數(shù)據(jù)表的結(jié)構(gòu)</p><p>  表2.1 Pwd(管理員信息表)</p><p>  表2.2 BookInfo(圖書(shū)基本信息表)</p><p>  表2.3 BookCategory(圖書(shū)類(lèi)型表)</p&g

19、t;<p>  表2.4 BookSale(圖書(shū)銷(xiāo)售記錄表)</p><p><b>  2.4 數(shù)據(jù)庫(kù)描述</b></p><p>  本軟件采用SQL數(shù)據(jù)庫(kù)。</p><p><b>  3 概要設(shè)計(jì)</b></p><p>  本系統(tǒng)是根據(jù)書(shū)店的實(shí)際需求而開(kāi)發(fā)的,完全能夠幫助書(shū)店

20、實(shí)現(xiàn)高效、準(zhǔn)確的圖書(shū)銷(xiāo)售自動(dòng)化管理。在分析階段,我們已經(jīng)提出了系統(tǒng)的結(jié)構(gòu)和數(shù)據(jù)字典。本節(jié)我們將對(duì)系統(tǒng)的使用環(huán)境作簡(jiǎn)要介紹,并對(duì)該系統(tǒng)作概要設(shè)計(jì)。</p><p>  3.1 系統(tǒng)運(yùn)行環(huán)境</p><p><b>  P4機(jī)</b></p><p>  Windows操作系統(tǒng)</p><p>  Visual C++6.0

21、</p><p>  3.2 系統(tǒng)功能模塊設(shè)計(jì)</p><p>  在前面系統(tǒng)功能分析的基礎(chǔ)上,結(jié)合Visual C++程序編制的特點(diǎn),得到如圖3.1所示的系統(tǒng)功能模塊圖。</p><p>  圖3.1圖書(shū)銷(xiāo)售管理系統(tǒng)功能模塊圖</p><p>  各模塊功能分配如下:</p><p> ?。?)用戶(hù)登陸功能:管理員登

22、陸模塊(M1)。</p><p>  (2)圖書(shū)錄入功能:圖書(shū)錄入模塊(M2)。</p><p>  (3)圖書(shū)銷(xiāo)售功能:圖書(shū)銷(xiāo)售模塊(M3)。</p><p>  (4)銷(xiāo)售統(tǒng)計(jì)功能:銷(xiāo)售統(tǒng)計(jì)模塊(M4)。</p><p> ?。?)查詢(xún)圖書(shū)庫(kù)存功能:查詢(xún)庫(kù)存模塊(M5)。</p><p> ?。?)售完圖書(shū)查詢(xún)功能

23、:售完圖書(shū)查詢(xún)模塊(M6)。</p><p>  3.3 系統(tǒng)處理流程</p><p> ?。?)系統(tǒng)啟動(dòng),進(jìn)入身份驗(yàn)證。</p><p>  (2)初始化系統(tǒng),導(dǎo)入數(shù)據(jù)庫(kù)。</p><p> ?。?)錄入圖書(shū)信息。</p><p><b> ?。?)圖書(shū)銷(xiāo)售。</b></p>&l

24、t;p> ?。?)統(tǒng)計(jì)圖書(shū)銷(xiāo)售信息。</p><p> ?。?)查詢(xún)圖書(shū)庫(kù)存信息。</p><p> ?。?)查詢(xún)已售完圖書(shū)信息。</p><p><b> ?。?)退出系統(tǒng)。</b></p><p><b>  3.4 接口設(shè)計(jì)</b></p><p>  3.4.1

25、 外部接口</p><p><b>  (1) 用戶(hù)界面</b></p><p>  采用圖形用戶(hù)界面,包含菜單、按鈕、對(duì)話框等元素。</p><p><b>  (2) 軟件接口</b></p><p>  軟件運(yùn)行于Visual C++6.0平臺(tái)上。</p><p>&l

26、t;b>  (3) 硬件接口</b></p><p><b>  運(yùn)行于PC機(jī)上。</b></p><p>  3.4.2 內(nèi)部接口</p><p> ?。?)用戶(hù)登陸模塊(M1):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成用戶(hù)登陸功能,之后進(jìn)入消息循環(huán)狀態(tài)。</p><p> ?。?)圖書(shū)銷(xiāo)售模塊(M3):由相應(yīng)事

27、件驅(qū)動(dòng)消息激活,完成圖書(shū)銷(xiāo)售功能,之后進(jìn)入消息循環(huán)狀態(tài)。</p><p> ?。?)銷(xiāo)售統(tǒng)計(jì)模塊(M4):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成銷(xiāo)售統(tǒng)計(jì)功能,之后進(jìn)入消息循環(huán)狀態(tài)。</p><p>  (4)查詢(xún)庫(kù)存模塊(M5):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成查詢(xún)庫(kù)存功能,之后進(jìn)入消息循環(huán)狀態(tài)。</p><p>  (5)售完圖書(shū)查詢(xún)模塊(M6):由相應(yīng)事件驅(qū)動(dòng)消息激活,完成售

28、完圖書(shū)查詢(xún)功能,之后進(jìn)入消息循環(huán)狀態(tài)。</p><p><b>  4 詳細(xì)設(shè)計(jì)</b></p><p>  該系統(tǒng)采用VC++6.0中的MFC連接SQL數(shù)據(jù)庫(kù)的方式,使用圖形用戶(hù)界面,主要實(shí)現(xiàn)圖書(shū)錄入、圖書(shū)銷(xiāo)售等功能。下面具體對(duì)各模塊進(jìn)行介紹。</p><p>  4.1 登錄模塊及主界面</p><p>  在登錄界

29、面(如圖4.1所示)中輸入用戶(hù)名和密碼,登錄成功后進(jìn)入主界面。登陸框流程圖如圖4.2所示,系統(tǒng)主界面如圖4.3所示,單擊某個(gè)按鈕就能彈出某個(gè)功能的界面。</p><p>  圖4.1 系統(tǒng)登錄界面</p><p>  圖4.2登錄模塊流程圖</p><p>  圖4.3 系統(tǒng)主界面</p><p>  4.2 圖書(shū)錄入模塊</p>

30、<p>  4.2.1 實(shí)現(xiàn)目標(biāo)</p><p>  添加圖書(shū)信息,圖書(shū)錄入對(duì)話框的設(shè)計(jì)如圖4.4所示?!氨4妗卑粹o對(duì)應(yīng)的方法為RAddBookDlg::OnSave(),流程圖如圖4.5所示。</p><p>  圖4.4 圖書(shū)錄入對(duì)話框</p><p>  圖4.5 RAddBookDlg::OnSave()方法的流程圖</p>&l

31、t;p>  4.2.2 設(shè)計(jì)步驟</p><p> ?。?)向項(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ū)信息錄入”。&l

32、t;/p><p> ?。?)從Controls面板上向Dialog資源中添加所需控件,更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如表4.1所示。</p><p>  表4.1 圖書(shū)錄入Dialog資源屬性設(shè)置</p><p>  4.2.3 代碼分析</p><p> ?。?)打開(kāi)ClassWizard窗口,添加在OnInitDialog成員函數(shù)

33、,向OnInitDialog添加代碼如下:</p><p>  BOOL RAddBookDlg::OnInitDialog() </p><p><b>  {</b></p><p>  CDialog::OnInitDialog();</p><p>  // TODO: Add extra initializa

34、tion here</p><p>  GetBookGategory();</p><p>  return TRUE; // return TRUE unless you set the focus to a control</p><p>  // EXCEPTION: OCX Property Pages should return FALSE</p

35、><p><b>  }</b></p><p> ?。?)當(dāng)用戶(hù)單擊“保存“按鈕時(shí),實(shí)現(xiàn)添加圖書(shū)功能,其響應(yīng)代碼如下:</p><p>  void RAddBookDlg::OnSave() </p><p><b>  {</b></p><p>  // TODO: Ad

36、d your control notification handler code here</p><p>  UpdateData(TRUE);</p><p>  if(!IsValidInput())</p><p><b>  return ;</b></p><p>  if(IDYES != AfxMessa

37、geBox("確定要保存嗎?",MB_YESNO)) //放棄保存</p><p><b>  return ;</b></p><p>  if(SaveData())</p><p><b>  {</b></p><p>  AfxMessageBox("保存成功

38、!");</p><p><b>  //保存后重置數(shù)據(jù)</b></p><p>  m_bHasNewBook = true;</p><p>  OnReset();</p><p>  GetDlgItem(IDC_BK_CATEGORY)->SetFocus();</p><p

39、><b>  }</b></p><p><b>  else</b></p><p>  AfxMessageBox("保存失敗!");</p><p><b>  }</b></p><p> ?。?)判斷輸入信息是否正確的函數(shù)是IsValidIn

40、put(),其響應(yīng)代碼如下:</p><p>  bool RAddBookDlg::IsValidInput()</p><p><b>  {</b></p><p>  CString str = "0123456789";</p><p>  if(m_strBookCategory.IsEm

41、pty() || m_strBookCategory.FindOneOf(str) != -1)</p><p><b>  {</b></p><p>  AfxMessageBox("輸入有誤!圖書(shū)類(lèi)型不能為空或包含數(shù)字。");</p><p>  GetDlgItem(IDC_BK_CATEGORY)->SetF

42、ocus();</p><p>  return false;</p><p><b>  }</b></p><p>  if(m_strBookName.IsEmpty())</p><p><b>  {</b></p><p>  AfxMessageBox(&quo

43、t;輸入有誤!書(shū)名不能為空。");</p><p>  GetDlgItem(IDC_BK_NAME)->SetFocus();</p><p>  return false;</p><p><b>  }</b></p><p>  if(m_strAuthor.IsEmpty() || m_strA

44、uthor.FindOneOf(str) != -1)</p><p><b>  {</b></p><p>  AfxMessageBox("輸入有誤!作者名稱(chēng)不能為空或包含數(shù)字。");</p><p>  GetDlgItem(IDC_BK_AUTHOR)->SetFocus();</p><

45、p>  return false;</p><p><b>  }</b></p><p>  if(m_strPublisher.IsEmpty()|| m_strPublisher.FindOneOf(str) != -1)</p><p><b>  {</b></p><p>  Af

46、xMessageBox("輸入有誤!出版社名稱(chēng)不能為空或包含數(shù)字。");</p><p>  GetDlgItem(IDC_BK_PUBLISHER)->SetFocus();</p><p>  return false;</p><p><b>  }</b></p><p>  if(m_

47、dPurchase <= 0)</p><p><b>  {</b></p><p>  AfxMessageBox("圖書(shū)進(jìn)價(jià)應(yīng)為正值!");</p><p>  GetDlgItem(IDC_BK_PURCHASE)->SetFocus();</p><p>  return fal

48、se;</p><p><b>  }</b></p><p>  if(m_dPrice <= 0 )</p><p><b>  {</b></p><p>  AfxMessageBox("圖書(shū)售價(jià)應(yīng)為正值!");</p><p>  GetD

49、lgItem(IDC_BK_PRICE)->SetFocus();</p><p>  return false;</p><p><b>  }</b></p><p>  if( m_lDiscount < 0 || m_lDiscount > 100)</p><p><b>  {&l

50、t;/b></p><p>  AfxMessageBox("圖書(shū)折扣應(yīng)為0-100之間正值!");</p><p>  GetDlgItem(IDC_BK_DISCOUNT)->SetFocus();</p><p>  return false;</p><p><b>  }</b>

51、</p><p>  if(m_lStock <1)</p><p><b>  {</b></p><p>  AfxMessageBox("圖書(shū)數(shù)量應(yīng)為正值!");</p><p>  GetDlgItem(IDC_BK_STOCK)->SetFocus();</p>&

52、lt;p>  return false;</p><p><b>  }</b></p><p>  if(m_strBarcode.IsEmpty() || m_strBarcode.GetLength() > 15)</p><p><b>  {</b></p><p>  Afx

53、MessageBox("條形碼應(yīng)為15位整數(shù)!");</p><p>  GetDlgItem(IDC_BK_BARCODE)->SetFocus();</p><p>  return false;</p><p><b>  }</b></p><p>  //AfxMessageBox(

54、m_strBookName + "\r\n" +</p><p>  //m_strBookCategory + "\r\n" +</p><p>  //m_strAuthor + "\r\n" +</p><p>  //m_strPublisher + "\r\n" +

55、</p><p>  //m_strBarcode );</p><p>  return true;</p><p><b>  }</b></p><p>  4.3 圖書(shū)銷(xiāo)售模塊</p><p>  4.3.1 實(shí)現(xiàn)目標(biāo)</p><p>  實(shí)現(xiàn)圖書(shū)銷(xiāo)售功能,圖書(shū)

56、銷(xiāo)售對(duì)話框設(shè)計(jì)如圖4.6所示?!颁N(xiāo)售”按鈕對(duì)應(yīng)的方法為RSaleBookDlg::OnOK(),流程圖如圖4.7所示。</p><p>  圖4.6 圖書(shū)銷(xiāo)售對(duì)話框</p><p>  圖4.7 RSaleBookDlg::OnOK()方法的流程圖</p><p>  4.3.2 實(shí)現(xiàn)步驟</p><p> ?。?)向項(xiàng)目中添加一個(gè)新Dial

57、og資源,資源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ū)銷(xiāo)售?!?lt;/p><p>  (2)從Controls面板上向Dialog資源中添加相關(guān)控件,

58、更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如表3.2所示:</p><p>  表4.2 圖書(shū)銷(xiāo)售添加Dialog資源屬性設(shè)置</p><p>  4.3.3 代碼分析</p><p> ?。?)為“銷(xiāo)售”按鈕添加代碼,實(shí)現(xiàn)圖書(shū)銷(xiāo)售功能,代碼如下:</p><p>  void RSaleBookDlg::OnOK() </p>

59、<p><b>  {</b></p><p>  // TODO: Add extra validation here</p><p>  if(!m_bReadySale)</p><p>  m_bReadySale = FindBook();</p><p><b>  else</b

60、></p><p><b>  {</b></p><p>  UpdateData(TRUE);</p><p>  CString strMsg;</p><p>  strMsg.Format("是否出售?\n 書(shū)名:%s\n 價(jià)格:%.2f”,m_strBookName</p>&l

61、t;p>  ,m_dSalePrice);</p><p>  if(IDYES == AfxMessageBox(strMsg,MB_YESNO))</p><p><b>  {</b></p><p>  ModifyStock();//修改圖書(shū)庫(kù)存</p><p>  SaveSaleRecord();

62、//記錄銷(xiāo)售記錄</p><p><b>  }</b></p><p><b>  Init();</b></p><p>  UpdateData(FALSE);</p><p>  GetDlgItem(IDC_SBK_NAME)->SetFocus();</p><

63、;p>  m_editDiscount.EnableWindow(FALSE);</p><p><b>  }</b></p><p>  //CDialog::OnOK();</p><p><b>  }</b></p><p> ?。?)判斷銷(xiāo)售是否能夠成功的函數(shù)是RSaleBookD

64、lg::FindBook(),其代碼如下:</p><p>  bool RSaleBookDlg::FindBook() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  U

65、pdateData(TRUE);</p><p>  CString strSql ;</p><p>  _variant_t var;</p><p>  double dPurchase;</p><p>  if(!m_strBookName.IsEmpty())</p><p>  strSql.Forma

66、t("SELECT * FROM BookInfo WHERE BookName = \"%s\" and Stock >0", m_strBookName);</p><p>  else if(!m_strBarCode.IsEmpty())</p><p>  strSql.Format("SELECT * FROM BookI

67、nfo WHERE BarCode = \"%s\" and Stock >0", m_strBarCode);</p><p><b>  else</b></p><p><b>  {</b></p><p>  AfxMessageBox("請(qǐng)輸入書(shū)名或條碼!"

68、;);</p><p>  GetDlgItem(IDC_SBK_NAME)->SetFocus();</p><p>  return false;</p><p><b>  }</b></p><p>  CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();&l

69、t;/p><p><b>  try</b></p><p><b>  {</b></p><p>  pApp->m_pRecordset->Open(strSql.AllocSysString(),</p><p>  pApp->m_pConnection.GetInterfa

70、cePtr(),</p><p>  adOpenDynamic,</p><p>  adLockOptimistic,</p><p>  adCmdText);</p><p>  if(pApp->m_pRecordset->adoEOF)</p><p><b>  {</b>

71、;</p><p>  AfxMessageBox("查無(wú)此書(shū)!請(qǐng)輸入書(shū)名或條碼無(wú)誤。");</p><p>  pApp->m_pRecordset->Close();</p><p>  return false;</p><p><b>  }</b></p><

72、p>  var = pApp->m_pRecordset->GetCollect("BookID");</p><p>  if(var.vt != NULL)</p><p>  m_lBookID = var.lVal;</p><p>  var = pApp->m_pRecordset->GetCollect

73、("Discount");</p><p>  if(var.vt != NULL)</p><p>  m_lDiscount = var.lVal;</p><p>  var = pApp->m_pRecordset->GetCollect("Price");</p><p>  if

74、(var.vt != NULL)</p><p>  m_dPrice = var.dblVal;</p><p>  var = pApp->m_pRecordset->GetCollect("Purchase");</p><p>  if(var.vt != NULL)</p><p>  dPurcha

75、se = var.dblVal;</p><p>  var = pApp->m_pRecordset->GetCollect("CategoryID");</p><p>  if(var.vt != NULL)</p><p>  m_lCategory = var.lVal;</p><p>  pAp

76、p->m_pRecordset->Close();</p><p><b>  }</b></p><p>  catch(_com_error * e)</p><p><b>  {</b></p><p>  AfxMessageBox(e->ErrorMessage());

77、</p><p><b>  }</b></p><p>  m_editDiscount.EnableWindow(m_dPrice >= dPurchase);</p><p>  m_lDiscount = (m_dPrice >= dPurchase) ? m_lDiscount :100;//售價(jià)小于進(jìn)價(jià)時(shí),不允許打折&

78、lt;/p><p>  m_dSalePrice = m_dPrice * (double(m_lDiscount)/100); //計(jì)算折后價(jià)</p><p>  UpdateData(FALSE);</p><p>  return true;</p><p><b>  } </b></p>&l

79、t;p>  4.4 銷(xiāo)售統(tǒng)計(jì)模塊</p><p>  4.4.1 實(shí)現(xiàn)目標(biāo)</p><p>  實(shí)現(xiàn)對(duì)已銷(xiāo)售的圖書(shū)進(jìn)行統(tǒng)計(jì)的功能,銷(xiāo)售統(tǒng)計(jì)對(duì)話框如圖4.8所示。</p><p>  圖4.8 銷(xiāo)售統(tǒng)計(jì)對(duì)話框</p><p>  4.4.2 設(shè)計(jì)步驟</p><p>  (1)向項(xiàng)目中添加一個(gè)新Dialog資源,資

80、源ID為IDD_REPORT。在IDD_REPORT對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開(kāi)“Dialog Properties”對(duì)話框。在“Dialog Properties”對(duì)話框中選擇General選項(xiàng)卡,更改其“Caption”文本框內(nèi)容為“銷(xiāo)售統(tǒng)計(jì)”。</p><p>  (2)從Controls面板上向Dialog資源中添加相應(yīng)控件,更改資源的屬性,并為資源設(shè)

81、置相應(yīng)的變量,如表4.3所示:</p><p>  表4.3用戶(hù)信息管理Dialog資源屬性設(shè)置</p><p>  4.4.3 代碼分析</p><p>  查詢(xún)函數(shù)為CRBookSaleView::OnSaleReport(),代碼如下:</p><p>  void CRBookSaleView::OnSaleReport() <

82、/p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p><p>  RReportDlg dlg;</p><p>  dlg.m_iReportType = m_iReportType ;</p><p&g

83、t;  if(IDOK == dlg.DoModal())</p><p><b>  {</b></p><p>  m_iReportType = dlg.m_iReportType;</p><p>  //設(shè)置銷(xiāo)售報(bào)表標(biāo)題</p><p>  //前2個(gè)標(biāo)題類(lèi)型為用戶(hù)模式和書(shū)店管理模式,故此處加2</p&g

84、t;<p>  int iTitleType = 0;</p><p>  switch(m_iReportType)</p><p><b>  {</b></p><p>  case 0://圖書(shū)類(lèi)型統(tǒng)計(jì)</p><p>  iTitleType = CATEGORY_REPORT_TITLE;<

85、;/p><p><b>  break;</b></p><p>  case 1://圖書(shū)名稱(chēng)統(tǒng)計(jì)</p><p>  iTitleType = BOOKNAME_REPORT_TITLE;</p><p><b>  break;</b></p><p>  case 2:/

86、/圖書(shū)作者統(tǒng)計(jì)</p><p>  iTitleType = AUTHOR_REPORT_TITLE;</p><p><b>  break;</b></p><p>  case 3://出版社統(tǒng)計(jì)</p><p>  iTitleType = PUBLISHER_REPORT_TITLE;</p>&

87、lt;p><b>  break;</b></p><p>  case 4://全部銷(xiāo)售記錄統(tǒng)計(jì)</p><p>  iTitleType = SALE_REPORT_TITLE;</p><p><b>  break;</b></p><p><b>  default:<

88、;/b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  SetTitle(iTitleType);</p><p>  ShowReport();</p><p><b>  }</b>

89、;</p><p><b>  }</b></p><p>  4.5 查詢(xún)庫(kù)存模塊</p><p>  4.5.1 實(shí)現(xiàn)目標(biāo)</p><p>  實(shí)現(xiàn)對(duì)已銷(xiāo)售的圖書(shū)進(jìn)行統(tǒng)計(jì)的功能,銷(xiāo)售統(tǒng)計(jì)對(duì)話框如圖4.9所示。</p><p>  圖4.9 查詢(xún)庫(kù)存對(duì)話框</p><p>

90、;  4.5.2 設(shè)計(jì)步驟</p><p>  (1)向項(xiàng)目中添加一個(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)容為“查詢(xún)”。</p>&l

91、t;p>  (2)從Controls面板上向Dialog資源中添加相應(yīng)控件,更改資源的屬性,并為資源設(shè)置相應(yīng)的變量,如表4.4所示:</p><p>  表4.4庫(kù)存查詢(xún)Dialog資源屬性設(shè)置</p><p>  4.5.3 代碼分析</p><p> ?。?)“確定”按鈕的函數(shù)為RQueryDlg::OnOK(),代碼如下:</p><

92、p>  void RQueryDlg::OnOK() </p><p><b>  {</b></p><p>  // TODO: Add extra validation here</p><p>  UpdateData(TRUE);</p><p>  //單獨(dú)處理類(lèi)型為全部的情況,0表示選擇類(lèi)型為全部&l

93、t;/p><p>  m_ctrlCategory.GetLBText(m_ctrlCategory.GetCurSel(),m_strCategory);</p><p>  if(m_strCategory == _T("全部"))</p><p>  m_strCategory = _T("");</p>&l

94、t;p>  CDialog::OnOK();</p><p><b>  }</b></p><p> ?。?)組合框根據(jù)圖書(shū)類(lèi)型查詢(xún)的函數(shù)為RQueryDlg::GetBookGategory(),代碼如下:</p><p>  void RQueryDlg::GetBookGategory()</p><p>

95、<b>  {</b></p><p>  int num = 0;</p><p>  CString strSql;</p><p>  _variant_t var;</p><p>  m_ctrlCategory.ResetContent();//清空組合框中原有數(shù)據(jù)</p><p>

96、  //生成SQL查詢(xún)語(yǔ)句,在數(shù)據(jù)苦中查找圖書(shū)類(lèi)型</p><p>  strSql.Format(SQL_SELECT_CATEGORYNAME);</p><p>  CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();</p><p><b>  try</b></p><

97、;p><b>  {</b></p><p>  pApp->m_pRecordset->Open(strSql.AllocSysString(),</p><p>  pApp->m_pConnection.GetInterfacePtr(),</p><p>  adOpenDynamic,</p>&

98、lt;p>  adLockOptimistic,</p><p>  adCmdText);</p><p>  //遍歷數(shù)據(jù)庫(kù)中BookCategory表,獲取全部圖書(shū)類(lèi)型</p><p>  while(!(pApp->m_pRecordset->adoEOF))</p><p><b>  {</b&g

99、t;</p><p>  var = pApp->m_pRecordset->GetCollect("CategoryName");</p><p>  if(var.vt != NULL)</p><p>  m_ctrlCategory.AddString((LPCSTR)_bstr_t(var));</p><

100、;p>  pApp->m_pRecordset->MoveNext();</p><p><b>  num++;</b></p><p><b>  }</b></p><p>  m_ctrlCategory.AddString("全部");</p><p>

101、;  pApp->m_pRecordset->Close();</p><p><b>  }</b></p><p>  catch(_com_error * e)</p><p><b>  {</b></p><p>  AfxMessageBox(e->ErrorMessa

102、ge());</p><p><b>  }</b></p><p>  //設(shè)置當(dāng)前選擇類(lèi)型為全部</p><p>  m_ctrlCategory.SetCurSel(num);</p><p><b>  }</b></p><p><b>  5 系統(tǒng)測(cè)試&

103、lt;/b></p><p>  進(jìn)入VC++6.0,打開(kāi)工程RBookSale.dsw,然后進(jìn)入源程序,接著編譯和運(yùn)行即可運(yùn)行。下面將給出系統(tǒng)運(yùn)行的過(guò)程。</p><p> ?。?)打開(kāi)程序后,選擇“使用書(shū)店身份登錄”,輸入密碼“111”,進(jìn)入主對(duì)話框,如圖5.1。</p><p><b>  圖5.1 主對(duì)話框</b></p&g

104、t;<p> ?。?)在功能菜單下選擇圖書(shū)錄入功能,添加一本新的圖書(shū)信息,如圖5.2。</p><p>  圖5.2 添加圖書(shū)信息</p><p> ?。?)點(diǎn)擊“返回”按鈕后,系統(tǒng)會(huì)自動(dòng)顯示現(xiàn)有圖書(shū)信息,如圖5.3。</p><p>  圖5.3 系統(tǒng)自動(dòng)顯示現(xiàn)有圖書(shū)信息</p><p> ?。?)在功能菜單下進(jìn)入圖書(shū)銷(xiāo)售對(duì)話

105、框,賣(mài)出一本《C++教程》,如圖5.4。點(diǎn)擊返回按鈕后,系統(tǒng)會(huì)顯示當(dāng)前所有圖書(shū)剩余庫(kù)存信息,如圖5.4。</p><p><b>  圖5.4 圖書(shū)銷(xiāo)售</b></p><p> ?。?)點(diǎn)擊結(jié)束銷(xiāo)售后,系統(tǒng)會(huì)自動(dòng)顯示當(dāng)前所有圖書(shū)的庫(kù)存信息,《C++教程》的庫(kù)存量已減少一本,如圖5.5。</p><p>  圖5.5 完成銷(xiāo)售后的庫(kù)存信息 &l

106、t;/p><p> ?。?)在功能菜單下進(jìn)入銷(xiāo)售統(tǒng)計(jì)對(duì)話框,查詢(xún)?nèi)夸N(xiāo)售清單,并給出已售出圖書(shū)總本數(shù),如圖5.6。</p><p>  圖5.6 查詢(xún)所有圖書(shū)銷(xiāo)售清單</p><p> ?。?)在功能菜單下進(jìn)入查詢(xún)庫(kù)存對(duì)話框,查詢(xún)《魅力何來(lái)》這本書(shū)的庫(kù)存信息,如圖5.7。</p><p>  圖5.7 查詢(xún)圖書(shū)庫(kù)存信息</p>&l

107、t;p> ?。?)再售出《魅力何來(lái)》2本后,在功能菜單下進(jìn)入售完圖書(shū)列表功能,查詢(xún)已售完的圖書(shū)的信息如圖5.8。</p><p>  圖5.8 查詢(xún)售完圖書(shū)列表</p><p> ?。?)在出售圖書(shū)時(shí),若無(wú)對(duì)應(yīng)圖書(shū)信息或圖書(shū)庫(kù)存為零,將出售失敗,并給出提示信息,如圖5.9。</p><p>  圖5.9圖書(shū)銷(xiāo)售失敗</p><p>&l

108、t;b>  6 操作手冊(cè)</b></p><p>  首先將date文件夾下的兩個(gè)數(shù)據(jù)庫(kù)文件附加到本地的SQL數(shù)據(jù)庫(kù)中,然后進(jìn)入VC++6.0,打開(kāi)工程RBookSale.dsw,進(jìn)入源程序后,接著編譯和運(yùn)行即可。</p><p><b>  7 結(jié)論</b></p><p><b>  7.1 系統(tǒng)功能</b

109、></p><p>  本系統(tǒng)為圖書(shū)銷(xiāo)售管理系統(tǒng),主要實(shí)現(xiàn)圖書(shū)錄入、圖書(shū)銷(xiāo)售、銷(xiāo)售統(tǒng)計(jì)、查詢(xún)庫(kù)存等功能。該系統(tǒng)中采用圖形用戶(hù)界面,直觀、清晰,方便用戶(hù)操作。圖書(shū)銷(xiāo)售管理系統(tǒng)可以完成書(shū)店的日常管理,迅速準(zhǔn)確地對(duì)已售圖書(shū)和剩余庫(kù)存進(jìn)行統(tǒng)計(jì)和匯總工作,大大提高了書(shū)店的管理效率和準(zhǔn)確性。</p><p>  7.2 系統(tǒng)不足和改進(jìn)</p><p>  我在同學(xué)的幫助和

110、老師的悉心指導(dǎo)下完成了該圖書(shū)銷(xiāo)售管理,但程序還是存在一些不足之處。比如程序沒(méi)有直接提供修改密碼的功能,系統(tǒng)管理員密碼保存在數(shù)據(jù)庫(kù)的Pwd表中,若要修改密碼,可以到數(shù)據(jù)庫(kù)中直接修改。由于時(shí)間倉(cāng)促,沒(méi)有優(yōu)化設(shè)計(jì),還存在一些垃圾和重復(fù)代碼,也沒(méi)有進(jìn)行全面的測(cè)試,需要進(jìn)一步的改進(jìn)。本系統(tǒng)規(guī)模小,實(shí)現(xiàn)的功能簡(jiǎn)單,但稍加改動(dòng)和完善,完全可以應(yīng)用到普通書(shū)店的銷(xiāo)售管理中。</p><p><b>  7.3 總結(jié)<

111、;/b></p><p>  本次課程設(shè)計(jì)完成的是圖書(shū)銷(xiāo)售管理系統(tǒng),我基本完成了所要求的幾個(gè)功能,包括圖書(shū)錄入、圖書(shū)銷(xiāo)售、銷(xiāo)售統(tǒng)計(jì)、查詢(xún)庫(kù)存等功能。通過(guò)本次課程設(shè)計(jì),自己對(duì)Visual C++6.0的基本知識(shí)有了一個(gè)很好的鞏固和學(xué)習(xí),特別是Visual C++6.0中的MFC,它的功能是非常強(qiáng)大的,使用它制作圖形界面很方便。而且自己還進(jìn)一步熟悉了SQL數(shù)據(jù)庫(kù)的知識(shí),包括建表、查詢(xún)、修改等操作,以及學(xué)習(xí)了Vi

112、sual C++6.0怎樣連接數(shù)據(jù)庫(kù)。</p><p>  開(kāi)始做這個(gè)課程設(shè)計(jì)的時(shí)候,感覺(jué)到自己只有一些理論知識(shí),無(wú)法動(dòng)手來(lái)操作。通過(guò)認(rèn)真的學(xué)習(xí)來(lái)解決這一問(wèn)題,這也提高了實(shí)際操作的能力。在編寫(xiě)程序的過(guò)程中,也發(fā)現(xiàn)自己還是存在著很多的缺點(diǎn),對(duì)Visual C++6.0和MFC的知識(shí)和使用不是很熟悉,操作數(shù)據(jù)庫(kù)也不熟練,還需要自己多加練習(xí)來(lái)達(dá)到熟練的目的,以后還要努力學(xué)習(xí)鍛煉自己。致 謝</p>&l

113、t;p>  首先要感謝的是本次課程設(shè)計(jì)的指導(dǎo)老師對(duì)我的耐心指導(dǎo),我才順利地完成了這次課程設(shè)計(jì)??梢哉f(shuō)這很大程度上歸功于老師的幫助,這也給了我很大的鼓勵(lì),使我有信心完成該題目。</p><p>  另外還要感謝的就是我的同學(xué)們,在這次課程設(shè)計(jì)中他們給了我很多細(xì)心的幫助。 </p><p><b>  參考文獻(xiàn)</b></p><p>  [

114、1] 宋坤,李偉明 編著. Visual C++數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)案例精選.人民郵電出版社,2006</p><p>  [2] 鄭莉,董淵 編著.C++語(yǔ)言程序設(shè)計(jì)(第三版).清華大學(xué)出版社,2003</p><p>  [3] 胡哲源 編著. Visual C++ MFC程序設(shè)計(jì)與剖析.清華大學(xué)出版社,2001</p><p>  [4] 李強(qiáng),賈云霞 編著. Vi

115、sual C++項(xiàng)目開(kāi)發(fā)實(shí)踐. 北京:中國(guó)鐵道出版社,2003 </p><p>  [5]求是科技 編著. Visual C++6.0信息管理系統(tǒng)開(kāi)發(fā).人民郵電出版社,2001</p><p>  [6]網(wǎng)冠科技 編著. Visual C++6.0 MFC 時(shí)尚編程百例.機(jī)械工業(yè)出版社,2004</p><p>  [7] 《軟件工程概論》 張海藩 清華大學(xué)

溫馨提示

  • 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ù)僅提供信息存儲(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)論