版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計----vb書店管理系統(tǒng)設(shè)計和實(shí)現(xiàn)
- 畢業(yè)設(shè)計---書店管理系統(tǒng)設(shè)計與實(shí)現(xiàn)
- vb書店管理系統(tǒng)畢業(yè)論文--書店管理系統(tǒng)
- 畢業(yè)設(shè)計--vb庫存管理系統(tǒng)設(shè)計
- 基于vb的學(xué)生管理系統(tǒng)設(shè)計與實(shí)現(xiàn)畢業(yè)設(shè)計
- 在線書店系統(tǒng)的設(shè)計與實(shí)現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---網(wǎng)上書店管理系統(tǒng)
- 網(wǎng)上書店管理系統(tǒng)畢業(yè)設(shè)計
- 網(wǎng)上書店管理系統(tǒng)畢業(yè)設(shè)計
- 地鐵車輛管理系統(tǒng)設(shè)計vb畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---vb藥房管理系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計 書店管理信息系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計---vb倉庫管理系統(tǒng) (2)
- vb地鐵車輛管理系統(tǒng)畢業(yè)設(shè)計
- 考試管理系統(tǒng)vb畢業(yè)設(shè)計
- vb宿舍文檔管理系統(tǒng)畢業(yè)設(shè)計
- 網(wǎng)上書店管理系統(tǒng)畢業(yè)設(shè)計論文
- 網(wǎng)上書店畢業(yè)設(shè)計-- 網(wǎng)上書店網(wǎng)站設(shè)計與實(shí)現(xiàn)
- [畢業(yè)設(shè)計資料]vb學(xué)生管理系統(tǒng)a畢業(yè)資料
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計
評論
0/150
提交評論