2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  書店管理系統(tǒng)設(shè)計和實(shí)現(xiàn)</p><p><b>  摘 要</b></p><p>  本文是關(guān)于書店管理系統(tǒng)的相關(guān)軟件開發(fā)的一篇實(shí)踐性論文。</p><p>  在當(dāng)今社會,隨著計算機(jī)的發(fā)展及網(wǎng)絡(luò)技術(shù)的應(yīng)用,日常管理工作應(yīng)該從以前繁瑣的事務(wù)中解放出來,從而提高了工作效率。目前在大的書店應(yīng)有一整套比較完整的信息管理系統(tǒng),

2、而在一般小型的書店中大部分工作還是進(jìn)行著手工管理,工作效率很低,并且不能及時了解書店各類圖書的庫存,讀者需求的圖書難以在短時間里找到﹑圖書的入庫和更新比較麻煩等,不便于動態(tài)及時調(diào)整圖書結(jié)構(gòu)。同時由于不可避免的人為因素,造成數(shù)據(jù)的遺漏﹑誤報等。為了更好地適應(yīng)當(dāng)前書店的銷售需求,緩解手工管理存在的弊端,開發(fā)了書店管理系統(tǒng),該系統(tǒng)向用戶提供的服務(wù)將在傳統(tǒng)的“入庫->銷售->盤點(diǎn)”基礎(chǔ)上,進(jìn)一步提供全方位的信息服務(wù)。</p&g

3、t;<p>  根據(jù)小型書店的規(guī)模和經(jīng)濟(jì)能力,本系統(tǒng)具有書店管理系統(tǒng)的基本功能,如圖書管理﹑入庫管理﹑銷售管理﹑綜合查詢﹑系統(tǒng)管理等,并且界面簡單﹑操作簡便。作為一種該研究方向的實(shí)踐性探索,本圖書銷售管理系統(tǒng)旨在提供一個可以操作的,方便查詢,易于修改的輔助管理系統(tǒng),以滿足當(dāng)前小型書店在管理實(shí)踐和業(yè)務(wù)操作中的具體需求。</p><p>  [關(guān)鍵詞] 書店管理 管理系統(tǒng) 輔助管理 軟件開發(fā)</

4、p><p><b>  ABSTRACT </b></p><p>  This thesis with practical application is concerning about developing programme of the managing system in bookshops.</p><p>  Nowadays, wi

5、th rapid developing of computers and applying of network technology, in order to make a great difference in efficiency and productivity, daily management should be freed from nagging formalities and other unnecessary ite

6、ms.. At present, a series of information managing system which is complete and well-working enough has been applied to large bookshops, while for some smaller ones most of work has been done by hand, which is incurring l

7、ower efficiency and higher energy-cost. Worse st</p><p>  According to the running scales and the capacity of economy, this system has basic functions such as books management, purchasing management, sales m

8、anagement, system management, comprehensive search, and so on. Moreover, it shows simple interface and processing convenience. As an explore with practical meaning, the aim of this system is to offer a user-friendly and

9、supplementary managing system to satisfy detailed needs of managing practice and business process. </p><p>  [Key Words] developing programme sales managing system </p><p>  books managem

10、ent business process </p><p>  managing system in bookshops.</p><p><b>  目 錄</b></p><p><b>  一、前言(1)</b></p><p>  二、需求分析(2)</p>

11、<p> ?。ㄒ唬┫到y(tǒng)需求(2)</p><p> ?。ǘ┕δ苄枨螅?)</p><p>  1、權(quán)限設(shè)置(2)</p><p>  2、圖書銷售(2)</p><p>  3、圖書入庫(3)</p><p>  4、圖書信息設(shè)置(3)</p><p>  5、綜合查詢

12、(3)</p><p>  6、系統(tǒng)設(shè)置(4)</p><p>  7、數(shù)據(jù)庫管理(4)</p><p> ?。ㄈ┬阅苄枨螅?)</p><p>  1、硬件環(huán)境(4)</p><p>  2、軟件環(huán)境(4)</p><p>  三、總體設(shè)計(5)</p><

13、p> ?。ㄒ唬┗驹O(shè)計概念和處理流程(5)</p><p> ?。ǘ┫到y(tǒng)層次模塊圖(5)</p><p> ?。ㄈ?shù)據(jù)庫設(shè)計(6)</p><p>  1、數(shù)據(jù)庫介紹(6)</p><p>  2、使用ODBC數(shù)據(jù)庫接口訪問數(shù)據(jù)庫(6)</p><p>  3、數(shù)據(jù)庫需求分析(7)</p&g

14、t;<p>  4、數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(9)</p><p>  四、詳細(xì)設(shè)計與實(shí)現(xiàn)(9)</p><p> ?。ㄒ唬┫到y(tǒng)主控平臺(9)</p><p>  1、主控平臺界面的設(shè)計(9)</p><p>  2、主控平臺界面的實(shí)現(xiàn)(9)</p><p>  (二)權(quán)限設(shè)置模塊(9)</p

15、><p>  1、權(quán)限設(shè)置模塊IPO圖(10)</p><p>  2、權(quán)限設(shè)置模塊的實(shí)現(xiàn)(10)</p><p>  (三)圖書銷售模塊(11)</p><p>  1、圖書銷售模塊IPO圖(11)</p><p>  2、圖書銷售模塊的實(shí)現(xiàn)(12)</p><p> ?。ㄋ模﹫D書入庫模

16、塊(17)</p><p>  1、圖書入庫模塊IPO圖(17)</p><p>  2、圖書入庫模塊的實(shí)現(xiàn)(18)</p><p> ?。ㄎ澹﹫D書信息設(shè)置模塊(19)</p><p>  1、圖書信息設(shè)置模塊IPO圖(19)</p><p>  2、圖書信息設(shè)置模塊的實(shí)現(xiàn)(20)</p>&

17、lt;p> ?。┚C合查詢模塊(22)</p><p>  1、圖書查詢子模塊(22)</p><p>  2、銷售查詢子模塊(24)</p><p> ?。ㄆ撸┫到y(tǒng)設(shè)置模塊(26)</p><p> ?。ò耍?shù)據(jù)庫管理模塊(31)</p><p>  1、數(shù)據(jù)庫管理模塊IPO圖(31) </

18、p><p>  2、數(shù)據(jù)庫管理模塊的實(shí)現(xiàn)(32)</p><p>  五、結(jié)論與體會(34)</p><p><b>  參考文獻(xiàn)(35)</b></p><p><b>  致謝(35)</b></p><p>  書店管理系統(tǒng)設(shè)計和實(shí)現(xiàn)</p><

19、p><b>  前言</b></p><p>  在當(dāng)今社會,隨著計算機(jī)的發(fā)展及網(wǎng)絡(luò)技術(shù)的應(yīng)用,日常管理工作應(yīng)該從以前繁瑣的事務(wù)中解放出來,從而提高了工作效率。目前在大的書店已經(jīng)有一整套比較完整的信息管理系統(tǒng),而在一般小型的書店中大部分工作還是進(jìn)行著手工管理,工作效率很低,并且不能及時了解書店各類圖書的庫存,讀者需求的圖書難以在短時間里找到,圖書的入庫和更新比較麻煩等,不便于動態(tài)及時調(diào)

20、整圖書結(jié)構(gòu)。同時由于不可避免的人為因素,造成數(shù)據(jù)的遺漏,誤報等。使用計算機(jī)對書店圖書信息進(jìn)行管理,具有手工所無法比擬的優(yōu)點(diǎn)。例如:檢索迅速﹑查找方便﹑可靠性高﹑保密性好﹑壽命長﹑成本低﹑高效率﹑對進(jìn)書有較好的預(yù)測性等。</p><p>  為了更好地適應(yīng)當(dāng)前書店的銷售需求,緩解手工管理存在的弊端,開發(fā)了書店管理系統(tǒng),該系統(tǒng)向用戶提供的服務(wù)將在傳統(tǒng)的“入庫->銷售->盤點(diǎn)”基礎(chǔ)上,進(jìn)一步提供全方位的信息

21、服務(wù)。它具有以下幾個特點(diǎn):</p><p>  1、可以存儲店中所有圖書的資料以及庫存情況,具有安全,高效的特性。</p><p>  2、只需一到二名檔案錄入員即可操作系統(tǒng),節(jié)省大量人力。</p><p>  3、可以迅速查到所需信息。</p><p>  4、系統(tǒng)對軟,硬件方面的需求不高,軟件要求易學(xué),容易掌握,可以很簡單方便地管理圖書信

22、息。硬件的配置要求不能太高,這樣可以很好的適應(yīng)當(dāng)前的各類書店。</p><p>  總之,圖書銷售管理系統(tǒng)旨在提供一個可以操作的,方便查詢,易于修改的輔助管理系統(tǒng)。同時提供了系統(tǒng)智能輔助與用戶選擇兩種方式,提高查詢效率。</p><p><b>  二、需求分析 </b></p><p><b>  系統(tǒng)需求 </b>&l

23、t;/p><p>  書店管理系統(tǒng)需要滿足來自三個方面需求:第一,書店工作人員通過計算機(jī)來管理各類圖書,進(jìn)行圖書分類編號,調(diào)整圖書結(jié)構(gòu),增加圖書庫存,適應(yīng)讀者的需求。第二,工作人員對讀者的需求情況能作好全面的掌握,及時得到歷史銷售記錄。第三,也是書店的核心工作,對圖書的銷售管理。</p><p><b>  功能需求</b></p><p>  基

24、于系統(tǒng)需求分析,該系統(tǒng)需要實(shí)現(xiàn)以下基本功能:</p><p><b>  1、權(quán)限設(shè)置</b></p><p>  本系統(tǒng)的使用用戶分兩種:管理員和普通用戶。管理員具有使用本系統(tǒng)的所有功能,而普通用戶是需要具有日常書店的管理功能即可。用戶權(quán)限的設(shè)置通過用戶登陸界面的輸入來進(jìn)行。</p><p><b>  2、圖書銷售</b&g

25、t;</p><p>  圖書管理人員通過此模塊來銷售各類圖書并對銷售情況進(jìn)行記錄,記錄的信息包括圖書銷售的數(shù)量,價格,折扣比例等。在進(jìn)行銷售圖書時,輸入圖書的編號,系統(tǒng)就可以搜索到該圖書編號對應(yīng)的圖書信息,然后列出該圖書銷售是需要的基本信息,書名,出版社﹑價格等。銷售可以輸入折扣數(shù)以便打折,在購買相同的多本書時,可以直接輸入圖書數(shù)量,避免重復(fù)輸入圖書編號。同時,也提供撤銷銷售記錄的功能,銷售員可以撤銷銷售時的上

26、一條記錄。程序還能自動統(tǒng)計讀者購買的總金額,便于銷售員掌握。</p><p><b>  3、圖書入庫</b></p><p>  書店工作人員通過此模塊來管理各類圖書庫存的數(shù)目。當(dāng)一批圖書入庫時,只需要輸入圖書編號和圖書數(shù)量,程序?qū)⒆詣痈膸齑娴膱D書數(shù)量。使用的公式為:現(xiàn)有圖書庫存=原有圖書庫存 + 新入庫圖書數(shù)量。</p><p><

27、b>  4、圖書信息設(shè)置</b></p><p>  書店工作人員通過次模塊來管理各類圖書信息,包括圖書信息的修改,刪除等。在進(jìn)行圖書的刪除時,要首先彈出提示窗口讓用戶確認(rèn)是否刪除,只有在用戶確認(rèn)后才能夠進(jìn)行圖書的刪除。在進(jìn)行圖書的修改時,根據(jù)用戶選定的書進(jìn)行修改,即列出所有用戶選定的信息,在這個基礎(chǔ)上進(jìn)行圖書信息的修改。</p><p><b>  5、綜合查

28、詢</b></p><p>  綜合查詢提供兩種功能,通過它可以查詢讀者所需要的圖書信息和銷售情況。圖書信息查詢提供了用包括圖書編號和圖書名稱來對圖書信息進(jìn)行查詢的各種查詢條件,讀者可以根據(jù)查詢方式和條件來進(jìn)行所需圖書的查詢。同時,在查詢時還提供了進(jìn)行模糊查詢的功能,即該模塊能夠利用讀者輸入的非完整的查詢條件進(jìn)行查詢,例如,讀者在書籍編號大查詢條件中輸入“06”,系統(tǒng)就能夠查出所有書籍編號包括“06”

29、的圖書,像“1006”,“0600”等。這樣更加方便了讀者的查詢。銷售查詢提供了按銷售的流水帳方式查詢,查詢時可以得到一段時間圖書銷售情況。</p><p><b>  6、系統(tǒng)設(shè)置</b></p><p>  包括圖書分類設(shè)置,出版社設(shè)置和用戶管理等工作。在該模塊中工作人員可以進(jìn)行添加和刪除各類圖書所屬分類的名稱,圖書出版社,同時還可進(jìn)行系統(tǒng)用戶登陸的一些管理,包括

30、添加,刪除用戶,更改用戶的登陸密碼等。</p><p><b>  7、數(shù)據(jù)庫管理</b></p><p>  對現(xiàn)有數(shù)據(jù)庫進(jìn)行管理,包括數(shù)據(jù)庫備份和恢復(fù),以方便用戶對數(shù)據(jù)庫的管理和維護(hù)工作,提高管理的數(shù)據(jù)庫安全性。</p><p><b>  (三)性能需求</b></p><p><b&g

31、t;  1.硬件環(huán)境</b></p><p>  在最低配置的情況下,系統(tǒng)的性能往往不盡如人意,現(xiàn)在的硬件性能已經(jīng)相當(dāng)出色,而且價格也很便宜,因此通常給服務(wù)器配置高性能硬件。</p><p>  ·處理器:Intel Pentium II 266 MX 或更高</p><p><b>  ·內(nèi)存: 64M</b>

32、</p><p>  ·硬盤空間:2 GB</p><p>  ·顯卡:SVGA顯示適配器</p><p><b>  2.軟件環(huán)境</b></p><p>  ·操作系統(tǒng):Windows 98/ME/2000/XP</p><p>  ·數(shù)據(jù)庫:Micro

33、soft Access 2000</p><p><b>  三﹑總體設(shè)計</b></p><p>  (一) 基本設(shè)計概念和處理流程</p><p>  本系統(tǒng)主要針對小型書店的規(guī)模小,手工處理繁瑣的情況,實(shí)現(xiàn)了書店日常管理的基本功能,操作簡單方便﹑上手快。另外,基于成本以及安全的考慮,假設(shè)本系統(tǒng)是一個相對封閉的單機(jī)運(yùn)行系統(tǒng),不提供于其它系統(tǒng)

34、的實(shí)時數(shù)據(jù)交互。</p><p>  本系統(tǒng)采用Visual C++ 6.0開發(fā),采用Microsoft Access 2000 作為后臺數(shù)據(jù)庫,在滿足需求的前提下,將系統(tǒng)對運(yùn)行環(huán)境的性能要求降到最低。</p><p>  系統(tǒng)基本流程是:用戶登陸->主界面->選擇各項功能。</p><p>  (二)系統(tǒng)層次模塊圖</p><p&g

35、t;  根據(jù)需求分析的結(jié)果,本系統(tǒng)主要劃分以下7個子模塊:權(quán)限驗(yàn)證﹑圖書銷售﹑圖書入庫﹑圖書信息設(shè)置﹑綜合查詢﹑系統(tǒng)設(shè)置﹑數(shù)據(jù)庫管理等主要的系統(tǒng)。如圖1所示。系統(tǒng)業(yè)務(wù)處理流程如圖2所示。</p><p> ?。▓D1) 書店管理系統(tǒng)主模塊</p><p>  (圖 2) 系統(tǒng)業(yè)務(wù)處理流程圖</p><p><b> ?。ㄈ?shù)據(jù)庫設(shè)計</b>&l

36、t;/p><p>  鑒于ODBC(Open Database Connectivity)是用于數(shù)據(jù)庫訪問的應(yīng)用最廣泛的應(yīng)用程序編程接口,它允許應(yīng)用程序使用相同的代碼訪問不同的數(shù)據(jù)庫管理系統(tǒng)(DBMS),本系統(tǒng)采用ODBC的方式訪問數(shù)據(jù)庫。 </p><p><b>  1、數(shù)據(jù)庫介紹 </b></p><p>  Access 2000數(shù)據(jù)庫管理

37、系統(tǒng)是Microsoft Office 的重要組成部分,適用于小型商務(wù)活動,用以存儲和管理商務(wù)活動所需要的數(shù)據(jù)。Access不僅是一個數(shù)據(jù)庫,而且它具有強(qiáng)大的管理功能。</p><p>  2、使用ODBC數(shù)據(jù)庫接口訪問數(shù)據(jù)庫</p><p>  ODBC(Open Database Connectivity, 開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA, Windows Open

38、Services Architectrue)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。</p><p>  本系統(tǒng)通過Visual C++封裝的ODBC API即MFC ODBC類對Access數(shù)據(jù)庫進(jìn)行操作。把Access數(shù)據(jù)庫注冊到ODBC驅(qū)動程序管理器,由MFC ODBC類生成相應(yīng)的表類。在此基礎(chǔ)上進(jìn)行添加,修改,刪除等操作。使用MFC ODBC

39、的時候,Windows的ODBC管理程序把數(shù)據(jù)庫訪問的請求傳遞給正確的驅(qū)動程序,驅(qū)動程序在使用SQL語句指示DBMS(Database Management System,數(shù)據(jù)庫管理系統(tǒng))完成數(shù)據(jù)庫訪問工作。 </p><p><b>  3、數(shù)據(jù)庫需求分析</b></p><p>  根據(jù)系統(tǒng)功能設(shè)計的要求以及功能模塊的劃分,對于本系統(tǒng)的數(shù)據(jù)庫,可以列出以下數(shù)據(jù)項和

40、數(shù)據(jù)結(jié)構(gòu):</p><p>  (1)圖書信息表----bookinfo</p><p>  數(shù)據(jù)來源:銷售管理模塊----圖書入庫或圖書信息設(shè)置中進(jìn)行錄入</p><p>  (2) 圖書銷售表----booksale</p><p>  數(shù)據(jù)來源:銷售管理模塊----圖書銷售中進(jìn)行錄入</p><p>  (3)圖

41、書銷售臨時表----tempbooksale</p><p>  數(shù)據(jù)來源:銷售管理模塊----圖書銷售中進(jìn)行錄入并清空</p><p>  (4)出版社信息表----publisherinfo</p><p>  數(shù)據(jù)來源:系統(tǒng)設(shè)置----出版社設(shè)置中進(jìn)行錄入</p><p>  (5)圖書類別表----booktypeinfo</p

42、><p>  數(shù)據(jù)來源:系統(tǒng)設(shè)置----圖書類別設(shè)置中進(jìn)行錄入</p><p>  (6)系統(tǒng)用戶信息表----userinfo</p><p>  數(shù)據(jù)來源:系統(tǒng)管理模塊----用戶設(shè)置中進(jìn)行錄入</p><p>  4、數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計</p><p>  數(shù)據(jù)庫的表之間相互關(guān)聯(lián)可以保證數(shù)據(jù)庫數(shù)據(jù)的一致性,但是很有限

43、。由程序代碼來實(shí)現(xiàn)能更好的檢查數(shù)據(jù)庫數(shù)據(jù)的一致性。所以本系統(tǒng)的數(shù)據(jù)庫表相互獨(dú)立。</p><p>  四、詳細(xì)設(shè)計與實(shí)現(xiàn) </p><p><b>  (一)系統(tǒng)主控平臺</b></p><p>  1.主控平臺界面的設(shè)計 </p><p>  充分考慮易于操作的系統(tǒng)需求,主控制平臺使用簡單和直觀的布局設(shè)計。.<

44、/p><p>  2.主控平臺界面的實(shí)現(xiàn)</p><p>  (1)主體框架:使用MFC AppWizard創(chuàng)建一個單文檔結(jié)構(gòu)的應(yīng)用程序工程,建立起系統(tǒng)主體框架,生成應(yīng)用程序類(CBookShopMISApp)﹑文檔類(CBookShopMISDoc)﹑視圖類(CBookShopMISView)和主框架類(CMainFram).</p><p>  (2)菜單:根據(jù)系統(tǒng)

45、總體設(shè)計中功能模塊的劃分,使用資源編輯器創(chuàng)建系統(tǒng)菜單。</p><p>  (二)權(quán)限設(shè)置模塊 </p><p>  此模塊主要是根據(jù)用戶輸入的名稱和密碼驗(yàn)證用戶身份并且決定用戶的操作權(quán)限,并把用戶信息設(shè)置到當(dāng)前用戶類中。</p><p><b>  權(quán)限設(shè)置IPO圖</b></p><p><b>  輸入:

46、用戶名和密碼</b></p><p><b>  處理: </b></p><p>  (1)程序開始啟動系統(tǒng)登陸對話框。</p><p>  (2)用戶輸入用戶名和密碼。</p><p>  (3)從用戶表中檢查是否有相應(yīng)的用戶名和密碼。</p><p>  (4)如果用戶名或密碼錯

47、誤,進(jìn)行提示;如果錯誤次數(shù)達(dá)到三次,則提示并退出。</p><p>  (5)如果正確,則根據(jù)該用戶的權(quán)限類別進(jìn)行權(quán)限設(shè)置。</p><p>  (6)進(jìn)入主程序界面</p><p><b>  輸出:主程序界面</b></p><p>  2、權(quán)限設(shè)置模塊的實(shí)現(xiàn)</p><p>  通過定義CL

48、oginDialog類來實(shí)現(xiàn)權(quán)限設(shè)置模塊功能。其主要代碼如下:</p><p>  (1) 根據(jù)用戶名和密碼驗(yàn)證用戶身份和分配權(quán)限</p><p>  //在登陸按鈕被點(diǎn)擊后,進(jìn)行權(quán)限驗(yàn)證。</p><p>  void CLoginDialog::OnOK() </p><p><b>  {</b></p>

49、;<p>  UpdateData(TRUE);</p><p>  CUserSet m_UserSet;</p><p>  CBookShopMISApp *ptheApp = (CBookShopMISApp *)AfxGetApp();</p><p><b>  try{</b></p><p>

50、;  if(m_UserSet.IsOpen())</p><p>  m_UserSet.Close();</p><p>  m_UserSet.m_strFilter.Format(" username= '%s' and userpassword = '%s'",</p><p>  m_strUserNa

51、me, m_strUserPwd);</p><p>  m_UserSet.Open(CRecordset::snapshot, NULL, CRecordset::none);</p><p>  if(m_UserSet.IsEOF()){</p><p>  m_UserSet.Close();</p><p>  if(++i ==

52、 3){</p><p>  AfxMessageBox("很抱歉,您的輸入錯誤次數(shù)已達(dá)到3次.\n系統(tǒng)即將退出.");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  AfxMessageBox("密碼

53、錯誤, 請重試!");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else{</b></p><p>  ptheApp->m_PresentUser.SetUserInfo(m_Us

54、erSet.m_username,</p><p>  m_UserSet.m_userpassword,m_UserSet.m_isAdmin);</p><p>  m_UserSet.Close();</p><p>  AfxMessageBox("密碼正確,登陸成功!");</p><p><b>  

55、}</b></p><p><b>  }</b></p><p>  catch(CDBException *e){</p><p>  e->ReportError();</p><p><b>  return;</b></p><p><b&g

56、t;  }</b></p><p>  CDialog::OnOK();</p><p><b>  }</b></p><p><b>  (三)圖書銷售模塊</b></p><p>  1.圖書銷售IPO圖</p><p>  輸入:圖書編號﹑圖書數(shù)量和折扣(

57、缺省為不打折)。</p><p><b>  處理:</b></p><p><b>  圖書銷售對話框啟動</b></p><p>  用戶輸入圖書編號,并點(diǎn)擊 “搜索” 按鈕,系統(tǒng)進(jìn)行圖書搜索</p><p>  如果無此編號的圖書,進(jìn)行提示;反之,則列出該圖書的基本信息。</p>

58、<p>  輸入圖書數(shù)量,然后,按回車鍵計算出該筆銷售的金額。</p><p>  按“下一本”按鈕,則進(jìn)行下一本書的銷售。</p><p>  按“結(jié)賬”按鈕,則完成此次的銷售功能。并算出總金額。</p><p>  點(diǎn)擊銷售列表,按“撤銷”按鈕,則取消該書的銷售。</p><p>  按“退出”按鈕,則退出圖書銷售。</

59、p><p>  輸出:更新圖書信息表和圖書銷售表。</p><p>  2、圖書銷售模塊的實(shí)現(xiàn)</p><p>  根據(jù)圖書銷售模塊的IPO圖,通過定義CBookSaleDialog類來實(shí)現(xiàn)圖書銷售模塊的功能。其主要實(shí)現(xiàn)代碼如下:</p><p>  (1) CBookSaleDialog類使用的圖書信息表記錄集CBookSet﹑圖書銷售表記錄集

60、CBookSaleSet和臨時圖書銷售表記錄集CTempSaleSet.,操作完成后,更新和調(diào)整圖書信息表,增加圖書銷售表記錄,臨時銷售表為空。</p><p>  (2) 圖書銷售。流程: 選擇圖書編號->點(diǎn)擊搜索按鈕->輸入圖書折扣和圖書數(shù)量->回車鍵->點(diǎn)擊下一本->或結(jié)賬->退出。</p><p>  // 根據(jù)圖書編號進(jìn)行搜索,如果存在,則顯示

61、圖書詳細(xì)信息</p><p>  void CBookSaleDialog::OnButtonSearch() </p><p><b>  {</b></p><p>  UpdateData(TRUE);</p><p>  if(m_strBookNo == "") {</p>&

62、lt;p>  MessageBox("圖書編號不能為空");</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  CBookSet m_BookSet;</p><p><b>  try{</b

63、></p><p>  m_BookSet.m_strFilter.Format("bookno = '%s'",m_strBookNo);</p><p>  m_BookSet.Open(CRecordset::snapshot, NULL, CRecordset::none);</p><p>  if(m_BookS

64、et.IsEOF() || (m_BookSet.m_number == 0)) {</p><p>  m_BookSet.Close();</p><p>  AfxMessageBox("該編號的圖書不存在,請重新輸入編號!");</p><p>  ResetMembers();</p><p><b>

65、;  return;</b></p><p><b>  }</b></p><p>  CString strTemp;</p><p>  strTemp.Format("%d",m_BookSet.m_number);</p><p>  m_strBookName = m_Book

66、Set.m_bookname;</p><p>  m_strPublisher = m_BookSet.m_pubname;</p><p>  m_strAuthor = m_BookSet.m_author;</p><p>  CString TempPrice;</p><p>  TempPrice.Format("%.

67、2f",m_BookSet.m_price);</p><p>  m_strPrice = TempPrice; //m_BookSet.m_price;</p><p>  m_BookSet.Close();</p><p>  UpdateData(FALSE);</p><p><b>  }</b>

68、;</p><p>  catch(CDBException *e){</p><p>  e->ReportError();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  // 計算銷售值<

69、/b></p><p>  void CBookSaleDialog::OnOK() </p><p><b>  {</b></p><p>  UpdateData(TRUE);</p><p>  if(m_strNumber == ""){</p><p>  M

70、essageBox("請輸入銷售圖書數(shù)量");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  float TempFianalPrice;</p><p>  TempFianalPrice = atoi(m_st

71、rNumber) * atof(m_strPrice) * atoi(m_strDisCount) / 100;</p><p>  m_strFianalPrice.Format("%.2f",TempFianalPrice);</p><p>  UpdateData(FALSE);</p><p><b>  }</b>

72、;</p><p><b>  // 下一本</b></p><p>  void CBookSaleDialog::OnButtonNext() </p><p><b>  {</b></p><p>  UpdateData(TRUE);</p><p>  if(m_

73、strBookNo == ""){</p><p>  MessageBox("請輸入要銷售圖書的編號");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(m_strNumber == &

74、quot;"){</p><p>  MessageBox("請輸入要銷售圖書的數(shù)量");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(atoi(m_strNumber) <=0){<

75、/p><p>  MessageBox("銷售圖書數(shù)量不能少于一本");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(m_strDisCount == ""){</p><

76、;p>  MessageBox("請輸入該書要打幾折");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  // 獲取當(dāng)前時間</b></p><p><b>  CTi

77、me t;</b></p><p>  t = CTime::GetCurrentTime();</p><p>  CString time = "";</p><p>  CString year;</p><p>  CString month;</p><p>  CString

78、 day;</p><p>  year.Format("%d",t.GetYear());</p><p>  month.Format("%d",t.GetMonth());</p><p>  if(t.GetMonth() < 9)</p><p>  month = "0&qu

79、ot; + month;</p><p>  day.Format("%d",t.GetDay());</p><p>  if(t.GetDay() < 9)</p><p>  day = "0" + day;</p><p>  time = year + month + day;</

80、p><p>  CBookSet m_BookSet;</p><p>  CTempSaleSet m_TempSaleSet;</p><p>  int TempNumber;</p><p><b>  try{</b></p><p>  m_BookSet.m_strFilter.Form

81、at("bookno = '%s'",m_strBookNo);</p><p>  m_BookSet.Open(CRecordset::snapshot, NULL, CRecordset::none);</p><p>  if(!m_BookSet.IsEOF()){</p><p>  TempNumber = m_Bo

82、okSet.m_number - atoi(m_strNumber);</p><p>  if(TempNumber < 0){</p><p>  AfxMessageBox("庫存不足,請重新輸入銷售圖書數(shù)量");</p><p><b>  return ;</b></p><p>&l

83、t;b>  }</b></p><p>  m_BookSet.Edit();</p><p>  m_BookSet.m_number = TempNumber;</p><p>  m_BookSet.Update();</p><p>  m_BookSet.Close();</p><p> 

84、 m_BookSet.m_pDatabase->Close();</p><p>  // 添加銷售的圖書到臨時銷售表</p><p>  m_TempSaleSet.Open();</p><p>  m_TempSaleSet.AddNew();</p><p>  m_TempSaleSet.m_author = m_strAut

85、hor;</p><p>  m_TempSaleSet.m_publisher = m_strPublisher;</p><p>  m_TempSaleSet.m_bookname = m_strBookName;</p><p>  m_TempSaleSet.m_bookno = m_strBookNo;</p><p>  m_T

86、empSaleSet.m_number = atoi(m_strNumber);</p><p>  m_TempSaleSet.m_discount = atoi(m_strDisCount);</p><p>  m_TempSaleSet.m_sum = atof(m_strFianalPrice);</p><p>  m_TempSaleSet.m_pri

87、ce = atof(m_strPrice);</p><p>  m_TempSaleSet.m_date = atol(time);</p><p>  m_TempSaleSet.Update();</p><p>  m_TempSaleSet.Close();</p><p>  m_TempSaleSet.m_pDatabase-&

88、gt;Close();</p><p>  // 顯示在銷售列表中</p><p>  m_TempSaleSet.Open();</p><p>  m_TempSaleSet.MoveLast();</p><p>  int pos = m_ListSale.GetItemCount();</p><p>  C

89、String TempNumber;</p><p>  CString TempPrice;</p><p>  CString TempDiscount;</p><p>  CString TempSum;</p><p>  TempNumber.Format("%d",m_TempSaleSet.m_number

90、);</p><p>  TempPrice.Format("%.2f",m_TempSaleSet.m_price);</p><p>  TempDiscount.Format("%d",m_TempSaleSet.m_discount);</p><p>  TempSum.Format("%.2f"

91、,m_TempSaleSet.m_sum);</p><p>  m_ListSale.InsertItem(pos, m_TempSaleSet.m_bookname);</p><p>  m_ListSale.SetItemText(pos,1,TempNumber);</p><p>  m_ListSale.SetItemText(pos,2,TempPr

92、ice);</p><p>  m_ListSale.SetItemText(pos,3,TempDiscount);</p><p>  m_ListSale.SetItemText(pos,4,TempSum);</p><p>  m_TempSaleSet.Close();</p><p>  ResetMembers();</

93、p><p><b>  }</b></p><p><b>  }</b></p><p>  catch(CDBException *e){</p><p>  e->ReportError();</p><p><b>  return;</b>&

94、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  // 結(jié)賬</b></p><p>  void CBookSaleDialog::OnButtonBill() </p><p><b&g

95、t;  {</b></p><p>  UpdateData();</p><p>  if(m_strBookNo != "")</p><p>  OnButtonNext();</p><p>  float m_Sum = 0;</p><p>  CTempSaleSet m_

96、TempSaleSet;</p><p>  CBookSaleSet m_BookSaleSet;</p><p><b>  try{</b></p><p>  m_TempSaleSet.Open();</p><p>  m_BookSaleSet.Open();</p><p>  m

97、_TempSaleSet.MoveFirst();</p><p>  while(! m_TempSaleSet.IsEOF()){</p><p><b>  //算出總銷售額</b></p><p>  m_Sum = m_Sum + m_TempSaleSet.m_sum;</p><p>  //-------

98、----- 添加進(jìn)銷售列表中-------------------</p><p>  m_BookSaleSet.AddNew();</p><p>  m_BookSaleSet.m_author = m_TempSaleSet.m_author;</p><p>  m_BookSaleSet.m_bookname = m_TempSaleSet.m_

99、bookname;</p><p>  m_BookSaleSet.m_bookno = m_TempSaleSet.m_bookno;</p><p>  m_BookSaleSet.m_date = m_TempSaleSet.m_date;</p><p>  m_BookSaleSet.m_discount = m_TempSaleSet.

100、m_discount;</p><p>  m_BookSaleSet.m_number = m_TempSaleSet.m_number;</p><p>  m_BookSaleSet.m_price = m_TempSaleSet.m_price;</p><p>  m_BookSaleSet.m_moneysum = m_TempSaleS

101、et.m_sum;</p><p>  m_BookSaleSet.m_publisher = m_TempSaleSet.m_publisher;</p><p>  m_BookSaleSet.Update();</p><p>  //---------------------------------------------------</p>

102、<p>  m_TempSaleSet.Delete();</p><p>  m_TempSaleSet.MoveNext();</p><p><b>  }</b></p><p>  m_TempSaleSet.Close();</p><p>  m_TempSaleSet.m_pDatabase-&

103、gt;Close();</p><p>  m_BookSaleSet.Close();</p><p>  m_BookSaleSet.m_pDatabase->Close();</p><p><b>  }</b></p><p>  catch(CDBException *e){</p>&l

104、t;p>  e->ReportError();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  m_strSaleSum.Format("%.2f",m_Sum);</p><p>  UpdateDa

105、ta(FALSE);</p><p><b>  }</b></p><p>  (3) 撤銷功能。流程:點(diǎn)擊銷售列表,點(diǎn)擊撤銷按鈕即可完成。</p><p>  void CBookSaleDialog::OnButtonCancel() </p><p><b>  {</b></p>

106、;<p>  int i = m_ListSale.GetSelectionMark();</p><p>  CString BookName = m_ListSale.GetItemText(i, 0);</p><p>  int TempNumber = 0;</p><p>  if(i < 0){</p><p&

107、gt;  AfxMessageBox("請選取要刪除的銷售記錄!");</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  // 從臨時表中刪除該銷售記錄</p><p>  CTempSaleSet m_TempSa

108、leSet;</p><p>  m_TempSaleSet.m_strFilter.Format("bookname = '%s'",BookName);</p><p>  m_TempSaleSet.Open(CRecordset::snapshot, NULL , CRecordset::none);</p><p>  

109、if(!m_TempSaleSet.IsEOF()){</p><p>  TempNumber = m_TempSaleSet.m_number;</p><p>  m_TempSaleSet.Delete();</p><p><b>  }</b></p><p>  m_TempSaleSet.Close();

110、</p><p>  m_TempSaleSet.m_pDatabase->Close();</p><p>  // 恢復(fù)圖書原先數(shù)量</p><p>  CBookSet m_BookSet;</p><p>  m_BookSet.m_strFilter.Format("bookname = '%s'&q

111、uot;, BookName);</p><p>  m_BookSet.Open(CRecordset::snapshot, NULL, CRecordset::none);</p><p>  if(!m_BookSet.IsEOF()){</p><p>  m_BookSet.Edit();</p><p>  m_BookSet.m

112、_number = m_BookSet.m_number + TempNumber;</p><p>  m_BookSet.Update();</p><p><b>  }</b></p><p>  m_BookSet.Close();</p><p>  m_BookSet.m_pDatabase->Clo

113、se();</p><p>  ListSale();</p><p><b>  }</b></p><p><b>  (四)圖書入庫模塊</b></p><p>  1.圖書入庫模塊IPO圖</p><p>  輸入:圖書編號和圖書數(shù)量</p><p

114、><b>  處理:</b></p><p>  圖書入庫對話框啟動。</p><p>  等待用戶輸入圖書的編號和數(shù)量,可以在此輸入圖書詳細(xì)信息,但不是必需的。</p><p>  將圖書添加到圖書信息表中</p><p>  輸出:更新圖書信息表</p><p>  2. 圖書入庫模塊的

115、實(shí)現(xiàn)</p><p>  根據(jù)圖書入庫模塊的IPO圖,通過定義CBookInputDialog類來實(shí)現(xiàn)該模塊的主體功能。</p><p>  相關(guān)的記錄集類CBookSet。</p><p><b>  新書錄入。</b></p><p>  處理過程:判斷用戶是否全部輸入必填的圖書信息,然后根據(jù)用戶輸入的圖書編號查詢圖

116、書信息表是否有重復(fù)編號,是則在原有圖書信息基礎(chǔ)上增加圖書的數(shù)量;否則添加新的圖書記錄在圖書信息表中。</p><p>  // 添加圖書到圖書信息庫中</p><p>  void CBookInputDialog::OnButtonSaveAndGoon() </p><p><b>  {</b></p><p> 

117、 UpdateData(TRUE);</p><p><b>  CTime t;</b></p><p>  t = CTime::GetCurrentTime();</p><p>  CString time = "";</p><p>  CString year;</p>&l

118、t;p>  CString month;</p><p>  CString day;</p><p>  year.Format("%d",t.GetYear());</p><p>  month.Format("%d",t.GetMonth());</p><p>  day.Format(

119、"%d",t.GetDay());</p><p>  time = year + "-" + month + "-"+ day; </p><p>  if(m_strBookNo == ""){</p><p>  MessageBox("請輸入圖書編號");&

120、lt;/p><p><b>  return ;</b></p><p><b>  }</b></p><p>  if(m_strNumber == ""){</p><p>  MessageBox("請輸入圖書數(shù)量");</p><p&

121、gt;<b>  return;</b></p><p><b>  }</b></p><p>  CBookSet m_BookSet;</p><p><b>  try{</b></p><p>  if(m_BookSet.IsOpen()){</p>

122、<p>  m_BookSet.Close();</p><p>  m_BookSet.m_pDatabase->Close();</p><p><b>  }</b></p><p>  m_BookSet.m_strFilter.Format("bookno = '%s'",m_str

123、BookNo);</p><p>  m_BookSet.Open(CRecordset::snapshot, NULL, CRecordset::none);</p><p>  // 如果庫中無此書,則增加</p><p>  if(m_BookSet.IsEOF()){</p><p>  m_BookSet.AddNew();<

124、/p><p>  m_BookSet.m_bookno = m_strBookNo;</p><p>  m_BookSet.m_number = atoi(m_strNumber);</p><p>  m_BookSet.m_bookname = m_strBookName;</p><p>  m_BookSet.m_bookbn =

125、m_strBookBn;</p><p>  m_BookSet.m_booktypename = m_strBookType;</p><p>  m_BookSet.m_pubname = m_strPublisher;</p><p>  m_BookSet.m_author = m_strAuthor;</p><p>  m_Boo

126、kSet.m_price = atof(m_strPrice);</p><p>  m_BookSet.m_date = time;</p><p><b>  }</b></p><p><b>  else{</b></p><p>  m_BookSet.Edit();</p>

127、<p>  m_BookSet.m_number = m_BookSet.m_number + atoi(m_strNumber);</p><p>  m_BookSet.m_date = time;</p><p><b>  }</b></p><p>  m_BookSet.Update();</p><

128、;p>  m_BookSet.Close();</p><p>  m_BookSet.m_pDatabase->Close();</p><p><b>  }</b></p><p>  catch(CDBException *e){</p><p>  e->ReportError();</

129、p><p><b>  }</b></p><p>  OnButtonAdd(); </p><p><b>  }</b></p><p>  (五)圖書信息設(shè)置模塊</p><p>  圖書信息模塊由圖書的信息設(shè)置和圖書的刪除功能。</p><p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論