小型超市收銀系統(tǒng)的設(shè)計與實現(xiàn)-畢業(yè)設(shè)計論文_第1頁
小型超市收銀系統(tǒng)的設(shè)計與實現(xiàn)-畢業(yè)設(shè)計論文_第2頁
小型超市收銀系統(tǒng)的設(shè)計與實現(xiàn)-畢業(yè)設(shè)計論文_第3頁
小型超市收銀系統(tǒng)的設(shè)計與實現(xiàn)-畢業(yè)設(shè)計論文_第4頁
小型超市收銀系統(tǒng)的設(shè)計與實現(xiàn)-畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)號 1 畢業(yè)設(shè)計題目:小型超市收銀系統(tǒng)的設(shè)計與實現(xiàn) 作 者 屆 別 2011屆 院 別 計 專 業(yè) 計算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師 職 稱 講 師 完成時間 2011年5月20號 摘 要隨著銷售行業(yè)競爭日益激烈,小型超市收銀系統(tǒng)的引入顯得極其重要。它不但可以提高進(jìn)銷存管理的工作效率,而且可以有效減少盲目采購、降低采購成本、合理控制庫存、減少資金占用并提高市場靈敏度,從根本上提升超市的市場競爭力。本系統(tǒng)運用計算機(jī)管理信息技術(shù),建立數(shù)據(jù)庫,對超市的進(jìn)銷存過程進(jìn)行詳細(xì)的分析,實現(xiàn)了對超市的進(jìn)貨、銷售和庫存的科學(xué)管理。它主要包括以下幾大模塊:登錄模塊、商品入庫模塊、商品銷售模塊、營業(yè)統(tǒng)計模塊、商品信息模

2、塊、供應(yīng)商信息模塊、用戶信息模塊。各模塊相許獨立,同時又構(gòu)成統(tǒng)一的整體。 本文主要介紹了小型超市收銀系統(tǒng)的環(huán)境、所用到的開發(fā)語言、功能作用、設(shè)計的方案等各方面的內(nèi)容,其目的在于讓使用者了解此系統(tǒng),使他們能更好的運用本系統(tǒng),使此系統(tǒng)發(fā)揮出應(yīng)有的作用。另外在文中還予以指出了系統(tǒng)開發(fā)有待于進(jìn)一步完善發(fā)展的方向。關(guān)鍵詞:收銀系統(tǒng);控件;窗體;.net平臺abstractwith the increasingly fierce competition in sales industry, the introduction of small supermarket cashier system is ve

3、ry important. it can not only improve the working efficiency of the purchase-sell-stock management, but also can effectively reduce the blind procurement, reduce procurement cost, have the reasonable control of inventory, reduce capital that takes up and improve market sensitivity, fundamentally asc

4、ending supermarket market competitiveness.this system uses computer-information-management technology, establish the database of supermarket. with a detailed analysis of the supermarket, it achieves the functions of purchasing and the scientific management of sales and stock. it includes the followi

5、ng major modules: login module, storage module of goods, merchandise sales module, operating statistics module, product information module, the module supplier information, user information module. phase allowed to independently of each module, at the same time constitute a unified whole.in this pap

6、er, a small supermarket cash register system environment, the language used in the development, function, design and other aspects of the program, which aims to allow users to understand this system so they can better use the system, so that this system play its due role. also in the article we poin

7、ted out that the system should be with further improved development.key words: the cashier system; control; form; t platformv目 錄摘 要iabstractii1 緒 論11.1 研究課題的目的11.2 研究課題的意義22 需求分析32.1 可行性研究32.2 需求分析32.3 開發(fā)環(huán)境介紹43 總體設(shè)計73.1 設(shè)計思想73.2 設(shè)計原則73.3 功能模塊和結(jié)構(gòu)設(shè)計73.4 數(shù)據(jù)庫設(shè)計94 系統(tǒng)實現(xiàn)164.1 登陸系統(tǒng)模塊164.2 商品信息模塊174.3

8、商品入庫模塊184.4 商品銷售模塊194.5 營業(yè)統(tǒng)計模塊234.6 供應(yīng)商模塊244.7 用戶信息模塊265 總結(jié)27參 考 文 獻(xiàn)28致 謝29附 錄30畢業(yè)設(shè)計1 緒 論隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展,人們的生活方式正發(fā)生著巨大的變化。計算機(jī)技術(shù)已經(jīng)滲透到各個領(lǐng)域,成為各個行業(yè)必不可少的工具。特別是internet技術(shù)的推廣和信息高速公路的建立,使得it產(chǎn)業(yè)在市場競爭中越發(fā)顯示出其獨特的優(yōu)勢??茖W(xué)技術(shù)是第一生產(chǎn)力,科學(xué)技術(shù)的發(fā)展讓人類更加受益。各類信息系統(tǒng)應(yīng)用于各行各業(yè),不但給管理上帶來了極大的便利,而且還提高了工作效率。中小型超市在我國經(jīng)濟(jì)發(fā)展中具有重要地位,目前我國的中小型超市數(shù)量多,

9、地區(qū)分布廣泛,行業(yè)分布跨度大。隨著全球經(jīng)濟(jì)一體化的發(fā)展和電子商務(wù)的興起,中小型超市之間的競爭將越來越激烈。網(wǎng)絡(luò)及電子商務(wù)的迅猛發(fā)展突破了時間、空間的局限性,給中小型超市帶來了更多的發(fā)展機(jī)會,同時也增大了超市行業(yè)間的競爭強(qiáng)度。這就要求中小型超市必須改變營業(yè)管理模式,提高運營效率。目前,我國中小型超市的信息化水平還很低。隨著技術(shù)的發(fā)展,電腦操作及管理日趨簡化,電腦知識日趨普及,同時市場經(jīng)濟(jì)快速多變,競爭激烈,超市行業(yè)采用電腦管理進(jìn)貨、庫存、銷售等諸多環(huán)節(jié)也已成為必然趨勢。1.1 研究課題的目的社會生活的現(xiàn)代化,使得市場的走向發(fā)生巨大變化,由于經(jīng)濟(jì)的發(fā)展,人民對生活的需求已經(jīng)不再滿足于豐衣足食的低度

10、要求,許多人們往往不是單純?yōu)闈M足生活必須去購買,而是憑著喜歡、意欲和感官去購買。如果一個商店能夠打動顧客、吸引顧客,自然會顧客盈門,而近幾年新興產(chǎn)業(yè)中超級市場(supermarket)的現(xiàn)代化管理方式和便捷的購物方式,尤其是它輕松的購物環(huán)境,往往是打動顧客,吸引顧客的最主要的原因,且良好的周密的銷售服務(wù)更是贏得信譽、吸引的顧客的優(yōu)勢所在。商品經(jīng)濟(jì)的高速現(xiàn)代化發(fā)展也促進(jìn)了競爭,使一切不甘落后的商家都爭先恐后地采用最新的管理方法來加強(qiáng)自己的競爭地位。因為,超市經(jīng)營者如果不掌握當(dāng)今市場發(fā)展的這一走向,不能將超市現(xiàn)代化經(jīng)營作為奴努力開拓的目標(biāo),就無法使經(jīng)營活絡(luò)、財源茂盛?,F(xiàn)代化事業(yè)的發(fā)展,也使超市的管

11、理數(shù)段發(fā)生前所未有的革命,計算機(jī)的運用正在發(fā)達(dá)國家的各類商店超市中普及。由于它能夠準(zhǔn)確記載和查詢有關(guān)超市經(jīng)營活動的大量數(shù)據(jù),幫助超市經(jīng)營者掌握和分析營銷情況,及時作出正確決策,并且有利于商店內(nèi)部財務(wù)、工資、人員、庫存、銷售情況等管理,因而大大提高了現(xiàn)代超市的管理水平。國外很多發(fā)達(dá)資本主義國家的有關(guān)人士都在開發(fā)超市管理系統(tǒng),開發(fā)出很多大型的軟件,由于本人能力有限,開發(fā)一個小型超市管理系統(tǒng),它可以使我們國內(nèi)新起小型超市可以更好的操作。此系統(tǒng)的有減少差錯,節(jié)省人力、減少顧客購物時間,增加客流量,提高顧客滿意度等特點。我通過開發(fā)這個簡單管理信息系統(tǒng),鞏固了以前所學(xué)的知識,提高了應(yīng)用能力。1.2 研究課

12、題的意義21世紀(jì),超市的競爭進(jìn)入到了一個全新的領(lǐng)域,競爭不再是規(guī)模的競爭,而是技術(shù)的競爭、管理的競爭、人才的競爭。技術(shù)的提升和管理的升級是超市業(yè)的競爭核心。如何在激烈的競爭中擴(kuò)大銷售額、降低經(jīng)營成本、擴(kuò)大經(jīng)營規(guī)模,成為超市經(jīng)營者努力追求的目標(biāo)。為了提高物資管理的水平和工作效率,盡可能杜絕商品流通中各環(huán)節(jié)中可能出現(xiàn)的資金流失不明現(xiàn)象,商品進(jìn)銷存領(lǐng)域迫切需要引進(jìn)信息系統(tǒng)來加以管理,而商品銷售管理系統(tǒng)是當(dāng)前應(yīng)用于超市或者公司管理系統(tǒng)的典型代表。從消費者的角度來說,結(jié)帳時應(yīng)該準(zhǔn)備和快速,畢竟時間就是金錢。由于傳統(tǒng)的超市收銀管理給顧客和店主帶來很多不便。針對這方面的缺陷,開發(fā)這個系統(tǒng)可以方便快捷地查出顧

13、客結(jié)帳情況,商品信息情況,每天的售貨情況,方便了對超市商品管理、人員管理,大大提高了超市的售貨速度。進(jìn)而加速了社會的發(fā)展速度,提高了人民的生活水平??傊柚谛畔⑾到y(tǒng)可以大大提高超市的運作效率,通過全面的信息的采集和處理,不僅輔助提高了超市的決策水平,還可以迅速提高超市的管理水平,為降低經(jīng)營成本,提高效率,增強(qiáng)超市擴(kuò)張力,提供有效的技術(shù)保障。2 需求分析2.1 可行性研究系統(tǒng)開始和可行性研究是為系統(tǒng)開發(fā)做前期準(zhǔn)備1。在對一個項目的開發(fā)之前,我們總是要對其進(jìn)行一個可行性分析與需求分析,通過和指導(dǎo)老師的共同分析得出了可行性開發(fā)計劃。對于需求分析我們作了如下調(diào)查分析的需求。2.1.1 技術(shù)可行性隨

14、著軟件編程技術(shù)的不斷增加,功能的不斷加強(qiáng),和網(wǎng)絡(luò)技術(shù)的不斷成熟,信息安全的不斷完善以及開發(fā)工具的日益進(jìn)步,采用計算機(jī)系統(tǒng)來管理超市要求數(shù)據(jù)的采集、更新能夠完整、準(zhǔn)確和及時,所以開發(fā)通用的超市收銀系統(tǒng)已經(jīng)完全可以做到。2.1.2 經(jīng)濟(jì)可行性因為通過網(wǎng)絡(luò)傳遞銷售信息,可以不受距離的限制,因此可以節(jié)約許多的人力和物力,方便管理,由此可以減少不必要的開支,同時該系統(tǒng)可以提高超市的銷售效率,即提高了超市的經(jīng)濟(jì)效益,所以從經(jīng)濟(jì)上是完全可行的。2.1.3 操作可行性本系統(tǒng)采用windows圖形界面,是大家熟悉的操作系統(tǒng),對于用戶只需要具有一般的計算機(jī)知識的人員都可以輕松上手。而且整個銷售系統(tǒng)采用最友好的交互

15、界面,簡潔明了,不需要對數(shù)據(jù)庫非常了解。 由此,該系統(tǒng)的操作是可行的,有必要推廣該系統(tǒng)。綜合以上三方面,該系統(tǒng)具有很高的開發(fā)可行性,無論是從技術(shù)上經(jīng)濟(jì)上還是操作上。故此,可以設(shè)計該系統(tǒng)流程圖,建立數(shù)據(jù)字典。2.2 需求分析對于大型超市信息管理系統(tǒng)來說,通常它會把員工人事管理系統(tǒng)也包括在內(nèi)。由于現(xiàn)考慮的是小型超市,其可承擔(dān)的研發(fā)支費也有限2。所以在這個系統(tǒng)中,要實現(xiàn)的功能主要如下:(1) 功能要求對庫存產(chǎn)品進(jìn)行資料管理和統(tǒng)計;對產(chǎn)品的進(jìn)貨單和產(chǎn)品的銷售單進(jìn)行錄入管理和統(tǒng)計;對進(jìn)貨、銷售、庫存情況進(jìn)行查詢;對用戶進(jìn)行管理,具體為添加用戶、刪除用戶、修改用戶密碼;對供應(yīng)商基本信息的管理;對贏利狀況分

16、析,進(jìn)行營業(yè)統(tǒng)計,按年月日及商品類別統(tǒng)計;(2) 數(shù)據(jù)精確度產(chǎn)品的進(jìn)貨單和銷售單中,單價、金額采用浮點數(shù),數(shù)量都取整數(shù)。(3) 時間特性該系統(tǒng)軟件從啟動到進(jìn)入系統(tǒng)登錄界面的時間正常情況下少于5秒,錄入并更新數(shù)據(jù)的時間正常情況下少于10秒。(4) 適用性該管理系統(tǒng)軟件適用于windows 2000/windows xp中文版下運行。2.3 開發(fā)環(huán)境介紹該系統(tǒng)屬于管理信息系統(tǒng),管理信息系統(tǒng)(mis,management information system)可以保存用戶信息,通過對信息進(jìn)行分析和處理,可以幫助用戶制定計劃、規(guī)范管理或提供決策依據(jù)。超市收銀系統(tǒng)具有其特殊性,通常采用c/s結(jié)構(gòu),考慮到

17、其為小型超市,所以在架構(gòu)上面選擇兩層。2.3.1 c#介紹c sharp(又被簡稱為”c#”)是微軟公司在2000年6月發(fā)布的一種新的編程語言。c#看起來與java有著驚人的相似;它包括了諸如單一繼承,界面,與java幾乎同樣的語法,和編譯成中間代碼再運行的過程。但是c#與java有著明顯的不同,它借鑒了delphi的一個特點,與com(組件對象模型)是直接集成的,而且它是微軟公司.net windows網(wǎng)絡(luò)框架的主角3。c#在帶來對應(yīng)用程序的快速開發(fā)能力的同時,并沒有犧牲c與c+程序員所關(guān)心的各種特性。它忠實地繼承了c和c+的優(yōu)點。如果你對c或c+有所了解,你會發(fā)現(xiàn)它是那樣的熟悉。即使你是一

18、位新手,c#也不會給你帶來任何其它的麻煩,快速應(yīng)用程序開發(fā)(rapid application development,rad)的思想與簡潔的語法將會使你迅速成為一名熟練的開發(fā)人員。c#是專門為.net應(yīng)用而開發(fā)出的語言。這從根本上保證了c#與.net框架的完美結(jié)合。在.net運行庫的支持下,.net框架的各種優(yōu)點在c#中表現(xiàn)得淋漓盡致。c#具有如下幾個特點:(1) 簡潔的語法在缺省的情況下,c#的代碼在.net框架提供的“可操縱”環(huán)境下運行,不允許直接地內(nèi)存操作。它所帶來的最大的特色是沒有了指針。c#只支持一個“.”,對于我們來說,現(xiàn)在需要理解的一切僅僅是名字的嵌套而已。(2) 精心地面向?qū)?/p>

19、象設(shè)計c#具有面向?qū)ο蟮恼Z言所應(yīng)有的一切特性:封裝、繼承與多態(tài)性,這并不出奇。然而,通過精心地面向?qū)ο笤O(shè)計,從高級商業(yè)對象到系統(tǒng)級應(yīng)用,c#建造廣泛組件的絕對選擇。在c#的類型系統(tǒng)中,每種類型都可以看作一個對象。c#提供了一個叫做裝箱(boxing)與拆箱(unboxing)的機(jī)制來完成這種操作,而不給使用者帶來麻煩。c#只允許單繼承,即一個類不會有多個基類,從而避免了類型定義的混亂。c#中沒有了全局函數(shù),沒有了全局變量,也沒有了全局常數(shù)。一切的一切,都必須封裝在一個類之中。你的代碼將具有更好的可讀性,并且減少了發(fā)生命名沖突的可能。(3) 與web的緊密結(jié)合c#組件將能夠方便地為web服務(wù),并

20、允許它們通過internet被運行在任何操作系統(tǒng)上的任何語言所調(diào)用。舉個例子,xml已經(jīng)成為網(wǎng)絡(luò)中數(shù)據(jù)結(jié)構(gòu)傳遞的標(biāo)準(zhǔn),為了提高效率,c#允許直接將xml數(shù)據(jù)映射成為結(jié)構(gòu)。這樣就可以有效的處理各種數(shù)據(jù)。(4) 完整的安全性與錯誤處理語言的安全性與錯誤處理能力,是衡量一種語言是否優(yōu)秀的重要依據(jù)。c#的先進(jìn)設(shè)計思想可以消除軟件開發(fā)中的許多常見錯誤,并提供了包括類型安全在內(nèi)的完整的安全性能。內(nèi)存管理中的垃圾收集機(jī)制減輕了開發(fā)人員對內(nèi)存管理的負(fù)擔(dān)。.net平臺提供的垃圾收集器(garbage collection,gc)將負(fù)責(zé)資源的釋放與對象撤銷時的內(nèi)存清理工作。(5) 版本處理技術(shù)c#提供內(nèi)置的版本支

21、持來減少開發(fā)費用,使用c#將會使開發(fā)人員更加輕易地開發(fā)和維護(hù)各種商業(yè)用戶。(6) 靈活性和兼容性如果需要,c#允許你將某些類或者類的某些方法聲明為非安全的。如此就能使用指針、結(jié)構(gòu)和靜態(tài)數(shù)組。此外,它還引進(jìn)了模擬指針功能的-delegates,指代。c#不支持類的多繼承,但是通過對接口的繼承,你將獲得這一功能。2.3.2 sql server2005介紹microsoft公司的sql server是關(guān)系型網(wǎng)絡(luò)數(shù)據(jù)庫管理系統(tǒng),它的工作環(huán)境為microsoft windows nt 系列或microsoft windows98。sql server與microsoft公司的其它軟件,如microso

22、ft office和microsoft visual studio設(shè)計風(fēng)格一致,并能相互配合。sql server具有分布式數(shù)據(jù)庫和倉庫管理功能,支持客戶機(jī)/服務(wù)器結(jié)構(gòu),并能進(jìn)行分布式事務(wù)處理和聯(lián)機(jī)分析處理。sql server具有強(qiáng)大的數(shù)據(jù)庫管理功能,它提供豐富的管理工具以支持?jǐn)?shù)據(jù)庫的安全性管理、完整性管理和作業(yè)管理。sql server還具有強(qiáng)大的網(wǎng)絡(luò)功能,支持發(fā)布web頁面和接收電子郵件。sql server支持ansi sql(標(biāo)準(zhǔn)sql),并將標(biāo)準(zhǔn)sql擴(kuò)展成為更加實用的transact-sql4。使用sql server 2005,開發(fā)人員通過使用相似的語言,例如微軟的visual

23、 c# .net和微軟的visual basic,將能夠創(chuàng)立數(shù)據(jù)庫對象。開發(fā)人員還將能夠建立兩個新的對象用戶定義的類和集合。在使用本地網(wǎng)絡(luò)和互聯(lián)網(wǎng)的情況下,在不同應(yīng)用軟件之間散步數(shù)據(jù)的時候,可擴(kuò)展標(biāo)記語言(xml)是一個重要的標(biāo)準(zhǔn)。sql server 2005將會自身支持存儲和查詢可擴(kuò)展標(biāo)記語言文件。從對sql類的新的支持,到多活動結(jié)果集(mars),sql server 2005中的ado.net將推動數(shù)據(jù)集的存取和操縱,實現(xiàn)更大的可升級性和靈活性。2.3.3 c/s介紹 在網(wǎng)絡(luò)連接模式中,除對等網(wǎng)外,還有另一種形式的網(wǎng)絡(luò),即客戶機(jī)/服務(wù)器網(wǎng),client/server。在客戶機(jī)/服務(wù)器網(wǎng)

24、絡(luò)中,服務(wù)器是網(wǎng)絡(luò)的核心,而客戶機(jī)是網(wǎng)絡(luò)的基礎(chǔ),客戶機(jī)依靠服務(wù)器獲得所需要的網(wǎng)絡(luò)資源,而服務(wù)器為客戶機(jī)提供網(wǎng)絡(luò)必須的資源。這里客戶和服務(wù)器都是指通信中所涉及的兩個應(yīng)用進(jìn)程(軟件),所以有時要根據(jù)上下文判斷client與server是指軟件還是硬件。c/s可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到 client端和server端來實現(xiàn),降低了系統(tǒng)的通訊開銷5。 最簡單的c/s體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用,由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫服務(wù)器程序。二者可分別稱為前臺程序與后臺程序。運行數(shù)據(jù)庫服務(wù)器程序的機(jī)器,稱為應(yīng)用服務(wù)器,一旦服務(wù)器程序被啟動,就隨時等待響應(yīng)客戶程序發(fā)來的請求;客戶程序運行在

25、用戶自己的電腦上,對應(yīng)于服務(wù)器電腦,可稱為客戶電腦。當(dāng)需要對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行任何操作時,客戶程序就自動地尋找服務(wù)器程序,并向其發(fā)出請求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果。在典型的c/s數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲存管理功能,是由服務(wù)器程序獨立進(jìn)行的,并且通常把那些不同的(不管是已知還是未知的)前臺應(yīng)用所不能違反的規(guī)則,在服務(wù)器程序中集中實現(xiàn),例如訪問者的權(quán)限,編號不準(zhǔn)重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對于工作在前臺程序上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)這背后的過程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺程序可以變的非?!笆菪 ?,麻

26、煩的事情,都交給了服務(wù)器和網(wǎng)絡(luò)。在c/s體系的下,數(shù)據(jù)庫真正變成了公共、專業(yè)化的倉庫,受到獨立的專門管理。3 總體設(shè)計3.1 設(shè)計思想(1) 系統(tǒng)分成幾個相對獨立的模塊,但這些模塊都進(jìn)行集中式管理。(2) 分層的模塊化程序設(shè)計思想,整個系統(tǒng)采用模塊化機(jī)構(gòu)設(shè)計。作為應(yīng)用程序有較強(qiáng)的可操作性和擴(kuò)展性。(3) 合理的數(shù)據(jù)流設(shè)計,在應(yīng)用系統(tǒng)設(shè)計中,相對獨立的模塊間以數(shù)據(jù)流相互連接,使各模塊間的耦合性較低,方便系統(tǒng)運行,提高系統(tǒng)安全性。3.2 設(shè)計原則為了使本系統(tǒng)功能齊全完備,操作簡便,最大限度的提高軟件的質(zhì)量,從而滿足用戶的實際需要,在設(shè)計開發(fā)過程中遵循了,如下原則:(1) 合法性原則:依據(jù)產(chǎn)品核算系

27、統(tǒng)的工作規(guī)定以及要求,參照核算實際的工作情況,進(jìn)行諸如商品進(jìn)貨、銷售等工作。(2) 實用性原則:適合產(chǎn)品信息管理工作的實際需求,并能夠處理一些特殊情況的要求,此外,盡可能預(yù)留空間,以便擴(kuò)充功能。(3) 準(zhǔn)確性原則:對輸入的相關(guān)資料建立檢錯機(jī)制,及時報錯,使用戶能夠及時準(zhǔn)確的輸入合法資料(如類型匹配,長度不超限等)。(4) 易操作原則:要求設(shè)計的系統(tǒng)功能齊全,接口友好,操作方便,必要的地方進(jìn)行提示。(5) 源程序可讀性原則:為了便于其它設(shè)計,維護(hù)人員讀懂代碼或以后的代碼修改,軟件升級維護(hù),既可能做好代碼注釋工作。(6) 優(yōu)化原則:為了達(dá)到優(yōu)化的目的,合理的運用窗口,菜單,對象等的繼承,自定義用戶

28、對象,事件,函數(shù),減少不必要的重復(fù)性代碼,使程序簡潔明了,也方便了將來的維護(hù)。(7) 安全性原則:該系統(tǒng)的管理員具有可設(shè)置登陸密碼,修改密碼的權(quán)限。經(jīng)過前面的設(shè)計,我們對整個系統(tǒng)有了一個初步的認(rèn)識,并對各個模塊進(jìn)行了功能分化。 3.3 功能模塊和結(jié)構(gòu)設(shè)計 小型超市管理系統(tǒng)包括系統(tǒng)管理員、庫存管理員、商品銷售員三大角色,對應(yīng)本系統(tǒng)中的權(quán)限,根據(jù)權(quán)限的不同,可操作的業(yè)務(wù)不同。本節(jié)將對小型超市收銀系統(tǒng)進(jìn)行總體設(shè)計,介紹系統(tǒng)的總體功能和模塊劃分。3.3.1 系統(tǒng)結(jié)構(gòu)小型超市收銀系統(tǒng)所包含的功能模塊有:商品入庫模塊、商品銷售模塊、營業(yè)統(tǒng)計模塊、商品信息模塊、供應(yīng)商信息模塊、用戶信息模塊。系統(tǒng)功能結(jié)構(gòu)圖見

29、圖3-1。小型超市收銀系統(tǒng)商品入庫商品銷售營業(yè)統(tǒng)計商品信息供應(yīng)商信息用戶信息圖3-1 系統(tǒng)功能結(jié)構(gòu)圖超市收銀系統(tǒng)的業(yè)務(wù)流程圖,如圖3-2所示。圖3-2 系統(tǒng)業(yè)務(wù)流程圖3.3.2 系統(tǒng)各功能模塊定義(1) 商品入庫模塊該模塊用于實現(xiàn)商品的入庫管理,當(dāng)供應(yīng)商所供商品出現(xiàn)問題需退貨時可以實現(xiàn)退貨管理。另外用戶還可以根據(jù)條件查詢相關(guān)的入庫記錄。(2) 商品銷售模塊該模塊用于實現(xiàn)商品售出、收銀功能。顧客倘若對商品不滿意還可以進(jìn)行退貨處理。(3) 營業(yè)統(tǒng)計模塊該模塊實現(xiàn)商品銷售情況及入庫情況統(tǒng)計分析,讓系統(tǒng)用戶可以根據(jù)時間查詢統(tǒng)計信息。(4) 商品信息模塊該模塊實現(xiàn)商品基本信息的管理,如商品的添加、修改、

30、刪除操作、條件查詢。對于低于庫存報警值的商品會顯示出來。(5) 用戶信息模塊該模塊實現(xiàn)用戶基本信息的管理,含用戶的添加、修改、刪除,用戶信息記錄的瀏覽。(6) 供應(yīng)商信息模塊該模塊實現(xiàn)供應(yīng)商基本信息的管理,系統(tǒng)用戶可以實現(xiàn)供應(yīng)商信息的添加、刪除、修改,條件查詢以及查看供應(yīng)商可提供的相關(guān)商品。3.4 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫在一個管理信息系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞將直接對應(yīng)用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致,同時,合理的數(shù)據(jù)庫也將有利于程序的實現(xiàn)6。設(shè)計數(shù)據(jù)庫系統(tǒng)時應(yīng)該充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能

31、增加的需求。3.4.1 數(shù)據(jù)庫的需求分析sql server數(shù)據(jù)庫的建立方法可以分成兩個階段,第一個階段是根據(jù)要輸入的數(shù)據(jù)性質(zhì),新增表并設(shè)置表的字段名稱、數(shù)據(jù)類型和語句,第二個階段是在表內(nèi)輸入數(shù)據(jù)。根據(jù)上述系統(tǒng)功能的分析,得出系統(tǒng)有如下需求信息:(1) 系統(tǒng)必須能夠區(qū)別各種用戶,如庫存員、收銀員。(2) 系統(tǒng)支持用戶的增加、登陸。(3) 系統(tǒng)必須能夠顯示各種商品的信息,并允許用戶使用搜索功能來查找自己所需要的商品。(4) 系統(tǒng)必須能將所有商品信息進(jìn)行分類。(5) 系統(tǒng)能支持用戶將商品入庫、退貨。(6) 系統(tǒng)能支持用戶將商品售出、退貨。(7) 系統(tǒng)支持供應(yīng)商信息的管理。(8) 系統(tǒng)支持營業(yè)情況的

32、查詢。經(jīng)過上述功能分析和需求總結(jié),設(shè)計如下的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):(1) 用戶,包括數(shù)據(jù)項:編號,用戶名,密碼,權(quán)限。(2) 商品類別,包括數(shù)據(jù)項:編號,商品名稱。(3) 商品,包括數(shù)據(jù)項:商品編號(條形碼),商品名稱,類別,庫存量、報警值,計量單位,規(guī)格,售價。(4) 供應(yīng)商,包括數(shù)據(jù)項:名稱,聯(lián)系人,聯(lián)系電話,傳真,地址,合作起始時間。(5) 銷售記錄,包括數(shù)據(jù)項:編號,操作人,商品編號,售價,售出數(shù)量,售出時間。(6) 進(jìn)貨記錄,包括數(shù)據(jù)項:商品,供應(yīng)商,操作人,進(jìn)價,進(jìn)貨數(shù)量,進(jìn)貨時間。(7) 供貨,包括數(shù)據(jù)項:供應(yīng)商,商品,最新進(jìn)價。3.4.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計得到上面的數(shù)據(jù)項和數(shù)據(jù)結(jié)

33、構(gòu)后,就可以設(shè)計出系統(tǒng)中的各個實體以及他們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。本系統(tǒng)根據(jù)上面功能分析和需求總結(jié)設(shè)計出的實體共有下面幾個,下面分別列出本系統(tǒng)所使用到的各基本實體和各實體之間的聯(lián)系。如圖3-3所示: 圖3-3 實體聯(lián)系(e-r)圖3.4.3 數(shù)據(jù)庫邏輯設(shè)計(1) 表設(shè)計將數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計轉(zhuǎn)換成關(guān)系模型,就得到了以下的幾張數(shù)據(jù)庫中的表7:下面分別介紹這些表。系統(tǒng)登錄用戶的基本信息保存在用戶信息表里,其中對于用戶編號,通過自增方式實現(xiàn),無需用戶手動編號,編號從1000起始。詳細(xì)說明如表3-1所示。表3-1 用戶信息表(users)序號屬性名字段名類型長度null默認(rèn)備注1編號

34、useridint4主鍵自增,標(biāo)識種子10002真實名字usernamevarchar103密碼userpasswordvarchar50md5加密存儲4權(quán)限userrightvarchar10商品種類繁多,可以劃分為大范圍的不同種類。對于這些種類,已事先劃分并存儲于數(shù)據(jù)庫中,不需要用戶自動添加。商品類別信息表如下表3-2。表3-2 商品類別信息表(goodstype)序號屬性名字段名類型長度null默認(rèn)備注1類別編號typeidtinyint主鍵自增2名稱typenamenvarchar10商品信息表記載的是商品的詳細(xì)信息,含商品編號、名稱、類別、計量單位、規(guī)格、售價、庫存量等等。具體的各字

35、段屬性說明和類型如下表3-3。表3-3 商品信息表(goodsinfo)序號屬性名字段名類型長度null默認(rèn)備注1商品編號goodsidnvarchar20主鍵2類型號typeidtinyint3名稱goodsnamenvarchar504計量單位goodsunitnvarchar55規(guī)格goodsnormnvarchar206售價goodssellpricesmallmoney7庫存量goodsnumint408報警值alarmnumint409備注goodsremarknvarchar100描述信息入庫記錄表包含商品入庫的相關(guān)信息,入庫信息有入庫時間、操作人、進(jìn)庫商品、商品數(shù)量等。每一筆商

36、品的入庫都對應(yīng)一個編號,具有唯一性。在這里,對編號的處理就是用入庫時的時間做編號。具體的各字段的屬性說明和類型如下表3-4所示。表3-4 入庫記錄表(stockinfo)序號屬性名字段名類型長度null默認(rèn)備注1編號stockidvarchar20主鍵,與時間相關(guān)2商品編號goodsidnvarchar20外鍵3供應(yīng)商編號companyidint4外鍵4操作員operatorint4外鍵5進(jìn)價goodspricesmallmoney6數(shù)量goodsnumint417備注remarknvarchar100商品銷售信息存儲在銷售記錄表中,流水編號也采用時間作為編號,具有唯一性。各字段的詳細(xì)情況見下

37、表3-5。表3-5 銷售記錄表(sellinfo)序號屬性名字段名類型長度null默認(rèn)備注1編號sellidvarchar20主鍵,與時間相關(guān)2商品編號goodsidnvarchar20外鍵3操作者operatorint4外鍵4售價sellpricesmallmoney5數(shù)量goodsnumint46備注remarknvarchar100退貨原因供應(yīng)商供貨價格表中記載的是供應(yīng)商所可商品的信息,含商品編號、供貨商編號、最新進(jìn)價。各字段的詳細(xì)信息見下表3-6。表3-6 供應(yīng)商供貨價格表(stockprice)序號屬性名字段名類型長度null默認(rèn)備注1商品編號goodsidnvarchar20組合主

38、鍵2供應(yīng)商編號companyidint4組合主鍵3最新進(jìn)價goodssellpricesmallmoney供應(yīng)商信息表記錄的是供應(yīng)商的基本信息,其中編號由系統(tǒng)自動編號,采取主鍵自增方式,編號始于1000。各字段的詳細(xì)信息見下表3-7。表3-7 供應(yīng)商信息表(company)序號屬性名字段名類型長度null默認(rèn)備注1編號companyidint4主鍵自增,標(biāo)識種子10002名稱companynamenvarchar503聯(lián)系人companydirectornvarchar104電話companyphonenvarchar205傳真companyfaxnvarchar206地址companyadd

39、nvarchar507合作時間hzdatatimedatetime(2) 視圖設(shè)計根據(jù)邏輯模型所設(shè)計出的各種數(shù)據(jù)表構(gòu)成了完整的物理數(shù)據(jù)庫。由于業(yè)務(wù)范圍的限制,每一個用戶不可能訪問數(shù)據(jù)庫系統(tǒng)中的所有數(shù)據(jù)表,所訪問的只是數(shù)據(jù)表的一個子集。我們把一個用戶能訪問到的數(shù)據(jù)表集合稱為一個視圖(view)8。視圖是以一致和直觀的方式提供給用戶的數(shù)據(jù)形式。視圖以這種形式給用戶提供數(shù)據(jù),一方面為了滿足用戶對數(shù)據(jù)訪問的方便性、簡潔性需要,使數(shù)據(jù)在視圖中以更符合用戶要求和喜好的形式展現(xiàn)出來,另一方面,為了保證數(shù)據(jù)的一致性,最好不要把數(shù)據(jù)表直接提供給最終用戶。該數(shù)據(jù)庫中涉及到的視圖有兩個:視圖querysell,對應(yīng)

40、的transact-sql語句:select dbo.sellinfo.sellid, dbo.sellinfo.goodsid, dbo.goodsinfo.goodsname, dbo.goodstype.typename, dbo.users.username, dbo.sellinfo.sellprice, dbo.sellinfo.goodsnum, dbo.sellinfo.remarkfrom dbo.goodsinfo inner join dbo.sellinfo on dbo.goodsinfo.goodsid = dbo.sellinfo.goodsid inner jo

41、in dbo.users on dbo.sellinfo.operator = dbo.users.userid inner join dbo.goodstype on dbo.goodsinfo.typeid = dbo.goodstype.typeid視圖querystock,對應(yīng)的transact-sql語句:select dbo.stockinfo.stockid, dbo.stockinfo.goodsid, dbo.goodsinfo.goodsname, dbo.goodstype.typename, dbo.company.companyname, dbo.users.user

42、name, dbo.stockinfo.goodsprice, dbo.stockinfo.goodsnum, dbo.stockinfo.remarkfrom dbo.stockinfo inner join dbo.goodsinfo on dbo.stockinfo.goodsid = dbo.goodsinfo.goodsid inner join dbo.users on dbo.stockinfo.operator = dbo.users.userid inner join dbo.company on dbo.stockinfo.companyid = dbo.company.c

43、ompanyid inner join dbo.goodstype on dbo.goodsinfo.typeid = dbo.goodstype.typeid4 系統(tǒng)實現(xiàn)系統(tǒng)用sql server2005做后臺數(shù)據(jù)庫,進(jìn)行基于.net發(fā)平臺的winform應(yīng)用程序開發(fā),基本實現(xiàn)其功能。以下將描述系統(tǒng)幾個主要功能模塊的運行和測試的結(jié)果。4.1 登陸系統(tǒng)模塊當(dāng)我們建立了一個完整的系統(tǒng)時,尤其對于管理系統(tǒng),對于進(jìn)入每個系統(tǒng)的人員我們都要對他進(jìn)行身份驗證,我們當(dāng)然不希望有任何人進(jìn)入該系統(tǒng)進(jìn)行惡意的破壞,對系統(tǒng)中的數(shù)據(jù)進(jìn)行修改,維護(hù)該系統(tǒng)的系統(tǒng)管理員也不希望有任何麻煩,所以對系統(tǒng)進(jìn)行安全保護(hù)顯的很重要

44、,無論對于誰,系統(tǒng)的安全問題是首要的9。為了解決這個問題,有一個簡單、實用,但是老套的方法,就是口令加密。在該小型超市收銀系統(tǒng)中對口令的加密采取的是常用的md5加密算法。在新增或修改用戶信息時,存入數(shù)據(jù)庫的是用戶密碼的md5哈希值,在登錄驗證時根據(jù)用戶輸入的密碼計算相應(yīng)的md5哈希值進(jìn)行比較。加密方法: public static string encryptmd5(string olddata) /將字符串轉(zhuǎn)化為字節(jié)序列 byte clearbytes = new unicodeencoding().getbytes(olddata); /計算字節(jié)序列對應(yīng)的hash值 byte hashed

45、bytes = (hashalgorithm)cryptoconfig.createfromname(md5).computehash(clearbytes); /返回經(jīng)md5加密后的字符串 return bitconverter.tostring(hashedbytes); 在用戶登錄系統(tǒng)時,用戶只需要輸入分配的用戶id,只要id號正確就可以自動顯示出相應(yīng)的用戶名。為了防止他人獲知用戶的密碼,增強(qiáng)系統(tǒng)的安全性,我們將待輸入密碼的文本框的passwordchar設(shè)為*,當(dāng)用戶輸入密碼后,系統(tǒng)將對所輸入的密碼進(jìn)行檢查,只有當(dāng)密碼正確才可進(jìn)入到系統(tǒng)主界面,否則系統(tǒng)會提示錯誤。登錄界面如圖4-1所示

46、。圖4-1 登錄界面圖用戶登錄成功后,會記下登錄該系統(tǒng)的用戶的權(quán)限,權(quán)限的不同,進(jìn)入主界面后可進(jìn)行的操作而異,體現(xiàn)在控件的可響應(yīng)用戶的鼠標(biāo)點擊事件與否。主界面如圖4-2所示。由于該用戶屬商品銷售中的收銀員,可以看到他只具有商品銷售的權(quán)限。圖4-2 系統(tǒng)主界面圖4.2 商品信息模塊商品基本信息管理模塊,用戶可以對商品信息加以管理,界面可交互性強(qiáng),運行時的界面圖如下圖4-3。其中紅色顯示為低于庫存值,需要進(jìn)貨的商品。圖4-3 商品基本信息管理界面圖4.3 商品入庫模塊具有庫存管理權(quán)限的用戶進(jìn)行商品入庫操作時,需要輸入商品編號,至于供應(yīng)商可以從下拉列表中選擇,如果供應(yīng)商記錄未添加至數(shù)據(jù)庫,可先單擊右

47、側(cè)的“添加供應(yīng)商”按鈕。依次輸入進(jìn)貨價、進(jìn)貨數(shù)量,當(dāng)進(jìn)貨數(shù)量為負(fù)數(shù)時進(jìn)行就是退貨操作。確認(rèn)進(jìn)貨時若發(fā)現(xiàn)為新商品則提示先新增商品,進(jìn)貨記錄成功添加出現(xiàn)對話框提醒。進(jìn)貨運行界面如下圖4-4所示。圖4-4 商品入庫運行圖在入庫查詢中,可以根據(jù)各種條件組合查詢,在輸入商品名稱時可實現(xiàn)模糊查詢匹配,滿足條件的入庫記錄將出現(xiàn)在網(wǎng)格中10。如圖4-5。圖4-5 入庫查詢界面圖4.4 商品銷售模塊商品銷售模塊能處理商品銷售業(yè)務(wù)過程,輸入商品編號后回車確認(rèn)后單擊“確認(rèn)”按鈕就可將商品添加至待售商品列表。根據(jù)快捷鍵操作,修改數(shù)量。當(dāng)顧客對購買的商品不滿意時,在未使用商品的情況下,可以對商品進(jìn)行退貨。這時只需將商品

48、數(shù)量的修改置為負(fù)數(shù)即可。另外可以在備注框中輸入退貨原因信息,方便了解退貨原因,反饋給商品廠家。商品銷售運行界面圖如下圖4-6所示。圖4-6 商品銷售運行界面圖開發(fā)商品銷售模塊過程中,對輸入的數(shù)據(jù)要進(jìn)行嚴(yán)格控制。此時,用到較多的是textbox控件的keypress事件和textchange事件,下面對這兩個事件進(jìn)行詳細(xì)說明。(1) 實收金額文本框中控制金額的輸入合理,只能是數(shù)字鍵、backspace鍵、小數(shù)點鍵被按下時才接受所按下的鍵,實現(xiàn)的代碼如下11:private void txtgetmoney_keypress(object sender, keypresseventargs e)

49、if (e.keychar != 8 & !char.isdigit(e.keychar)&e.keychar!=.&e.keychar!=-) messagebox.show(輸入數(shù)字); /彈出提示 e.handled = true; (2) 找零金額由系統(tǒng)自動計算出并顯示在文本框中,實現(xiàn)代碼如下:private void txtgetmoney_textchanged(object sender, eventargs e)/當(dāng)所收付款改變時,所找零錢數(shù)目也跟著改變 if (txtgetmoney.text != ) if (txtgetmoney.text != -) float fltmoney = convert.tosingle(txtgetmoney.text.tostring(); float fltneedpay = convert.tosingle(lblneedm.text.tostring(); txtchange.text = (fltmoney - fltneedpay).tost

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論