版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、學號 畢業(yè)設計題目:小型超市收銀系統(tǒng)的設計與實現(xiàn) 作 者 屆 別 2011屆 院 別 計算機學院 專 業(yè) 計算機科學與技術 指導教師 職 稱 講 師 完成時間 2011年5月20號 摘 要隨著銷售行業(yè)競爭日益激烈,小型超市收銀系統(tǒng)的引入顯得極其重要。它不但可以提高進銷存管理的工作效率,而且可以有效減少盲目采購、降低采購成本、合理控制庫存、減少資金占用并提高市場靈敏度,從根本上提升超市的市場競爭力。本系統(tǒng)運用計算機管理信息技術,建立數(shù)據(jù)庫,對超市的進銷存過程進行詳細的分析,實現(xiàn)了對超市的進貨、銷售和庫存的科學管理。它主要包括以下幾大模塊:登錄模塊、商品入庫模塊、商品銷售模塊、營業(yè)統(tǒng)計模塊、商品信
2、息模塊、供應商信息模塊、用戶信息模塊。各模塊相許獨立,同時又構(gòu)成統(tǒng)一的整體。 本文主要介紹了小型超市收銀系統(tǒng)的環(huán)境、所用到的開發(fā)語言、功能作用、設計的方案等各方面的內(nèi)容,其目的在于讓使用者了解此系統(tǒng),使他們能更好的運用本系統(tǒng),使此系統(tǒng)發(fā)揮出應有的作用。另外在文中還予以指出了系統(tǒng)開發(fā)有待于進一步完善發(fā)展的方向。關鍵詞:收銀系統(tǒng);控件;窗體;.net平臺V目 錄摘 要IABSTRACTII1 緒 論11.1 研究課題的目的11.2 研究課題的意義22 需求分析32.1 可行性研究32.2 需求分析32.3 開發(fā)環(huán)境介紹43 總體設計73.1 設計思想73.2 設計原則73.3 功能模塊和結(jié)構(gòu)設計7
3、3.4 數(shù)據(jù)庫設計94 系統(tǒng)實現(xiàn)164.1 登陸系統(tǒng)模塊164.2 商品信息模塊174.3 商品入庫模塊184.4 商品銷售模塊194.5 營業(yè)統(tǒng)計模塊234.6 供應商模塊244.7 用戶信息模塊265 總結(jié)27參 考 文 獻28致 謝29附 錄301 緒 論隨著現(xiàn)代科學技術的迅猛發(fā)展,人們的生活方式正發(fā)生著巨大的變化。計算機技術已經(jīng)滲透到各個領域,成為各個行業(yè)必不可少的工具。特別是Internet技術的推廣和信息高速公路的建立,使得IT產(chǎn)業(yè)在市場競爭中越發(fā)顯示出其獨特的優(yōu)勢。科學技術是第一生產(chǎn)力,科學技術的發(fā)展讓人類更加受益。各類信息系統(tǒng)應用于各行各業(yè),不但給管理上帶來了極大的便利,而且還
4、提高了工作效率。中小型超市在我國經(jīng)濟發(fā)展中具有重要地位,目前我國的中小型超市數(shù)量多,地區(qū)分布廣泛,行業(yè)分布跨度大。隨著全球經(jīng)濟一體化的發(fā)展和電子商務的興起,中小型超市之間的競爭將越來越激烈。網(wǎng)絡及電子商務的迅猛發(fā)展突破了時間、空間的局限性,給中小型超市帶來了更多的發(fā)展機會,同時也增大了超市行業(yè)間的競爭強度。這就要求中小型超市必須改變營業(yè)管理模式,提高運營效率。目前,我國中小型超市的信息化水平還很低。隨著技術的發(fā)展,電腦操作及管理日趨簡化,電腦知識日趨普及,同時市場經(jīng)濟快速多變,競爭激烈,超市行業(yè)采用電腦管理進貨、庫存、銷售等諸多環(huán)節(jié)也已成為必然趨勢。1.1 研究課題的目的社會生活的現(xiàn)代化,使得
5、市場的走向發(fā)生巨大變化,由于經(jīng)濟的發(fā)展,人民對生活的需求已經(jīng)不再滿足于豐衣足食的低度要求,許多人們往往不是單純?yōu)闈M足生活必須去購買,而是憑著喜歡、意欲和感官去購買。如果一個商店能夠打動顧客、吸引顧客,自然會顧客盈門,而近幾年新興產(chǎn)業(yè)中超級市場(supermarket)的現(xiàn)代化管理方式和便捷的購物方式,尤其是它輕松的購物環(huán)境,往往是打動顧客,吸引顧客的最主要的原因,且良好的周密的銷售服務更是贏得信譽、吸引的顧客的優(yōu)勢所在。商品經(jīng)濟的高速現(xiàn)代化發(fā)展也促進了競爭,使一切不甘落后的商家都爭先恐后地采用最新的管理方法來加強自己的競爭地位。因為,超市經(jīng)營者如果不掌握當今市場發(fā)展的這一走向,不能將超市現(xiàn)代化
6、經(jīng)營作為奴努力開拓的目標,就無法使經(jīng)營活絡、財源茂盛?,F(xiàn)代化事業(yè)的發(fā)展,也使超市的管理數(shù)段發(fā)生前所未有的革命,計算機的運用正在發(fā)達國家的各類商店超市中普及。由于它能夠準確記載和查詢有關超市經(jīng)營活動的大量數(shù)據(jù),幫助超市經(jīng)營者掌握和分析營銷情況,及時作出正確決策,并且有利于商店內(nèi)部財務、工資、人員、庫存、銷售情況等管理,因而大大提高了現(xiàn)代超市的管理水平。國外很多發(fā)達資本主義國家的有關人士都在開發(fā)超市管理系統(tǒng),開發(fā)出很多大型的軟件,由于本人能力有限,開發(fā)一個小型超市管理系統(tǒng),它可以使我們國內(nèi)新起小型超市可以更好的操作。此系統(tǒng)的有減少差錯,節(jié)省人力、減少顧客購物時間,增加客流量,提高顧客滿意度等特點。
7、我通過開發(fā)這個簡單管理信息系統(tǒng),鞏固了以前所學的知識,提高了應用能力。1.2 研究課題的意義21世紀,超市的競爭進入到了一個全新的領域,競爭不再是規(guī)模的競爭,而是技術的競爭、管理的競爭、人才的競爭。技術的提升和管理的升級是超市業(yè)的競爭核心。如何在激烈的競爭中擴大銷售額、降低經(jīng)營成本、擴大經(jīng)營規(guī)模,成為超市經(jīng)營者努力追求的目標。為了提高物資管理的水平和工作效率,盡可能杜絕商品流通中各環(huán)節(jié)中可能出現(xiàn)的資金流失不明現(xiàn)象,商品進銷存領域迫切需要引進信息系統(tǒng)來加以管理,而商品銷售管理系統(tǒng)是當前應用于超市或者公司管理系統(tǒng)的典型代表。從消費者的角度來說,結(jié)帳時應該準備和快速,畢竟時間就是金錢。由于傳統(tǒng)的超市
8、收銀管理給顧客和店主帶來很多不便。針對這方面的缺陷,開發(fā)這個系統(tǒng)可以方便快捷地查出顧客結(jié)帳情況,商品信息情況,每天的售貨情況,方便了對超市商品管理、人員管理,大大提高了超市的售貨速度。進而加速了社會的發(fā)展速度,提高了人民的生活水平??傊柚谛畔⑾到y(tǒng)可以大大提高超市的運作效率,通過全面的信息的采集和處理,不僅輔助提高了超市的決策水平,還可以迅速提高超市的管理水平,為降低經(jīng)營成本,提高效率,增強超市擴張力,提供有效的技術保障。2 需求分析2.1 可行性研究系統(tǒng)開始和可行性研究是為系統(tǒng)開發(fā)做前期準備1。在對一個項目的開發(fā)之前,我們總是要對其進行一個可行性分析與需求分析,通過和指導老師的共同分析得
9、出了可行性開發(fā)計劃。對于需求分析我們作了如下調(diào)查分析的需求。2.1.1 技術可行性隨著軟件編程技術的不斷增加,功能的不斷加強,和網(wǎng)絡技術的不斷成熟,信息安全的不斷完善以及開發(fā)工具的日益進步,采用計算機系統(tǒng)來管理超市要求數(shù)據(jù)的采集、更新能夠完整、準確和及時,所以開發(fā)通用的超市收銀系統(tǒng)已經(jīng)完全可以做到。2.1.2 經(jīng)濟可行性因為通過網(wǎng)絡傳遞銷售信息,可以不受距離的限制,因此可以節(jié)約許多的人力和物力,方便管理,由此可以減少不必要的開支,同時該系統(tǒng)可以提高超市的銷售效率,即提高了超市的經(jīng)濟效益,所以從經(jīng)濟上是完全可行的。2.1.3 操作可行性本系統(tǒng)采用Windows圖形界面,是大家熟悉的操作系統(tǒng),對于
10、用戶只需要具有一般的計算機知識的人員都可以輕松上手。而且整個銷售系統(tǒng)采用最友好的交互界面,簡潔明了,不需要對數(shù)據(jù)庫非常了解。 由此,該系統(tǒng)的操作是可行的,有必要推廣該系統(tǒng)。綜合以上三方面,該系統(tǒng)具有很高的開發(fā)可行性,無論是從技術上經(jīng)濟上還是操作上。故此,可以設計該系統(tǒng)流程圖,建立數(shù)據(jù)字典。2.2 需求分析對于大型超市信息管理系統(tǒng)來說,通常它會把員工人事管理系統(tǒng)也包括在內(nèi)。由于現(xiàn)考慮的是小型超市,其可承擔的研發(fā)支費也有限2。所以在這個系統(tǒng)中,要實現(xiàn)的功能主要如下:(1) 功能要求對庫存產(chǎn)品進行資料管理和統(tǒng)計;對產(chǎn)品的進貨單和產(chǎn)品的銷售單進行錄入管理和統(tǒng)計;對進貨、銷售、庫存情況進行查詢;對用戶進
11、行管理,具體為添加用戶、刪除用戶、修改用戶密碼;對供應商基本信息的管理;對贏利狀況分析,進行營業(yè)統(tǒng)計,按年月日及商品類別統(tǒng)計;(2) 數(shù)據(jù)精確度產(chǎn)品的進貨單和銷售單中,單價、金額采用浮點數(shù),數(shù)量都取整數(shù)。(3) 時間特性該系統(tǒng)軟件從啟動到進入系統(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)可以保存用戶信息,通過對信息進行分析和處理,可以幫助用戶制
12、定計劃、規(guī)范管理或提供決策依據(jù)。超市收銀系統(tǒng)具有其特殊性,通常采用C/S結(jié)構(gòu),考慮到其為小型超市,所以在架構(gòu)上面選擇兩層。2.3.1 C#介紹C sharp(又被簡稱為”C#”)是微軟公司在2000年6月發(fā)布的一種新的編程語言。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承,界面,與Java幾乎同樣的語法,和編譯成中間代碼再運行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司.NET windows網(wǎng)絡框架的主角3。C#在帶來對應用程序的快速開發(fā)能力的同時,并沒有犧牲C與C+程序員所關心的各種特性。它忠實
13、地繼承了C和C+的優(yōu)點。如果你對C或C+有所了解,你會發(fā)現(xiàn)它是那樣的熟悉。即使你是一位新手,C#也不會給你帶來任何其它的麻煩,快速應用程序開發(fā)(Rapid Application Development,RAD)的思想與簡潔的語法將會使你迅速成為一名熟練的開發(fā)人員。C#是專門為.NET應用而開發(fā)出的語言。這從根本上保證了C#與.NET框架的完美結(jié)合。在.NET運行庫的支持下,.NET框架的各種優(yōu)點在C#中表現(xiàn)得淋漓盡致。C#具有如下幾個特點:(1) 簡潔的語法在缺省的情況下,C#的代碼在.NET框架提供的“可操縱”環(huán)境下運行,不允許直接地內(nèi)存操作。它所帶來的最大的特色是沒有了指針。C#只支持一
14、個“.”,對于我們來說,現(xiàn)在需要理解的一切僅僅是名字的嵌套而已。(2) 精心地面向?qū)ο笤O計C#具有面向?qū)ο蟮恼Z言所應有的一切特性:封裝、繼承與多態(tài)性,這并不出奇。然而,通過精心地面向?qū)ο笤O計,從高級商業(yè)對象到系統(tǒng)級應用,C#建造廣泛組件的絕對選擇。在C#的類型系統(tǒng)中,每種類型都可以看作一個對象。C#提供了一個叫做裝箱(boxing)與拆箱(unboxing)的機制來完成這種操作,而不給使用者帶來麻煩。C#只允許單繼承,即一個類不會有多個基類,從而避免了類型定義的混亂。C#中沒有了全局函數(shù),沒有了全局變量,也沒有了全局常數(shù)。一切的一切,都必須封裝在一個類之中。你的代碼將具有更好的可讀性,并且減少
15、了發(fā)生命名沖突的可能。(3) 與Web的緊密結(jié)合C#組件將能夠方便地為Web服務,并允許它們通過Internet被運行在任何操作系統(tǒng)上的任何語言所調(diào)用。舉個例子,XML已經(jīng)成為網(wǎng)絡中數(shù)據(jù)結(jié)構(gòu)傳遞的標準,為了提高效率,C#允許直接將XML數(shù)據(jù)映射成為結(jié)構(gòu)。這樣就可以有效的處理各種數(shù)據(jù)。(4) 完整的安全性與錯誤處理語言的安全性與錯誤處理能力,是衡量一種語言是否優(yōu)秀的重要依據(jù)。C#的先進設計思想可以消除軟件開發(fā)中的許多常見錯誤,并提供了包括類型安全在內(nèi)的完整的安全性能。內(nèi)存管理中的垃圾收集機制減輕了開發(fā)人員對內(nèi)存管理的負擔。.NET平臺提供的垃圾收集器(Garbage Collection,GC)
16、將負責資源的釋放與對象撤銷時的內(nèi)存清理工作。(5) 版本處理技術C#提供內(nèi)置的版本支持來減少開發(fā)費用,使用C#將會使開發(fā)人員更加輕易地開發(fā)和維護各種商業(yè)用戶。(6) 靈活性和兼容性如果需要,C#允許你將某些類或者類的某些方法聲明為非安全的。如此就能使用指針、結(jié)構(gòu)和靜態(tài)數(shù)組。此外,它還引進了模擬指針功能的-delegates,指代。C#不支持類的多繼承,但是通過對接口的繼承,你將獲得這一功能。2.3.2 SQL Server2005介紹Microsoft公司的SQL Server是關系型網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng),它的工作環(huán)境為Microsoft Windows NT 系列或Microsoft Wind
17、ows98。SQL Server與Microsoft公司的其它軟件,如Microsoft office和Microsoft Visual Studio設計風格一致,并能相互配合。SQL Server具有分布式數(shù)據(jù)庫和倉庫管理功能,支持客戶機/服務器結(jié)構(gòu),并能進行分布式事務處理和聯(lián)機分析處理。SQL Server具有強大的數(shù)據(jù)庫管理功能,它提供豐富的管理工具以支持數(shù)據(jù)庫的安全性管理、完整性管理和作業(yè)管理。SQL Server還具有強大的網(wǎng)絡功能,支持發(fā)布Web頁面和接收電子郵件。SQL Server支持ANSI SQL(標準SQL),并將標準SQL擴展成為更加實用的Transact-SQL4。使
18、用SQL Server 2005,開發(fā)人員通過使用相似的語言,例如微軟的Visual C# .NET和微軟的Visual Basic,將能夠創(chuàng)立數(shù)據(jù)庫對象。開發(fā)人員還將能夠建立兩個新的對象用戶定義的類和集合。在使用本地網(wǎng)絡和互聯(lián)網(wǎng)的情況下,在不同應用軟件之間散步數(shù)據(jù)的時候,可擴展標記語言(XML)是一個重要的標準。SQL Server 2005將會自身支持存儲和查詢可擴展標記語言文件。從對SQL類的新的支持,到多活動結(jié)果集(MARS),SQL Server 2005中的ADO.NET將推動數(shù)據(jù)集的存取和操縱,實現(xiàn)更大的可升級性和靈活性。2.3.3 C/S介紹 在網(wǎng)絡連接模式中,除對等網(wǎng)外,還有
19、另一種形式的網(wǎng)絡,即客戶機/服務器網(wǎng),Client/Server。在客戶機/服務器網(wǎng)絡中,服務器是網(wǎng)絡的核心,而客戶機是網(wǎng)絡的基礎,客戶機依靠服務器獲得所需要的網(wǎng)絡資源,而服務器為客戶機提供網(wǎng)絡必須的資源。這里客戶和服務器都是指通信中所涉及的兩個應用進程(軟件),所以有時要根據(jù)上下文判斷client與server是指軟件還是硬件。C/S可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到 Client端和Server端來實現(xiàn),降低了系統(tǒng)的通訊開銷5。 最簡單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫應用,由兩部分組成,即客戶應用程序和數(shù)據(jù)庫服務器程序。二者可分別稱為前臺程序與后臺程序。運行數(shù)據(jù)庫服務器程序的機器,稱
20、為應用服務器,一旦服務器程序被啟動,就隨時等待響應客戶程序發(fā)來的請求;客戶程序運行在用戶自己的電腦上,對應于服務器電腦,可稱為客戶電腦。當需要對數(shù)據(jù)庫中的數(shù)據(jù)進行任何操作時,客戶程序就自動地尋找服務器程序,并向其發(fā)出請求,服務器程序根據(jù)預定的規(guī)則作出應答,送回結(jié)果。在典型的C/S數(shù)據(jù)庫應用中,數(shù)據(jù)的儲存管理功能,是由服務器程序獨立進行的,并且通常把那些不同的(不管是已知還是未知的)前臺應用所不能違反的規(guī)則,在服務器程序中集中實現(xiàn),例如訪問者的權(quán)限,編號不準重復、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對于工作在前臺程序上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)這背后的過程,
21、就可以完成自己的一切工作。在客戶服務器架構(gòu)的應用中,前臺程序可以變的非?!笆菪 ?,麻煩的事情,都交給了服務器和網(wǎng)絡。在C/S體系的下,數(shù)據(jù)庫真正變成了公共、專業(yè)化的倉庫,受到獨立的專門管理。3 總體設計3.1 設計思想(1) 系統(tǒng)分成幾個相對獨立的模塊,但這些模塊都進行集中式管理。(2) 分層的模塊化程序設計思想,整個系統(tǒng)采用模塊化機構(gòu)設計。作為應用程序有較強的可操作性和擴展性。(3) 合理的數(shù)據(jù)流設計,在應用系統(tǒng)設計中,相對獨立的模塊間以數(shù)據(jù)流相互連接,使各模塊間的耦合性較低,方便系統(tǒng)運行,提高系統(tǒng)安全性。3.2 設計原則為了使本系統(tǒng)功能齊全完備,操作簡便,最大限度的提高軟件的質(zhì)量,從而滿足
22、用戶的實際需要,在設計開發(fā)過程中遵循了,如下原則:(1) 合法性原則:依據(jù)產(chǎn)品核算系統(tǒng)的工作規(guī)定以及要求,參照核算實際的工作情況,進行諸如商品進貨、銷售等工作。(2) 實用性原則:適合產(chǎn)品信息管理工作的實際需求,并能夠處理一些特殊情況的要求,此外,盡可能預留空間,以便擴充功能。(3) 準確性原則:對輸入的相關資料建立檢錯機制,及時報錯,使用戶能夠及時準確的輸入合法資料(如類型匹配,長度不超限等)。(4) 易操作原則:要求設計的系統(tǒng)功能齊全,接口友好,操作方便,必要的地方進行提示。(5) 源程序可讀性原則:為了便于其它設計,維護人員讀懂代碼或以后的代碼修改,軟件升級維護,既可能做好代碼注釋工作。
23、(6) 優(yōu)化原則:為了達到優(yōu)化的目的,合理的運用窗口,菜單,對象等的繼承,自定義用戶對象,事件,函數(shù),減少不必要的重復性代碼,使程序簡潔明了,也方便了將來的維護。(7) 安全性原則:該系統(tǒng)的管理員具有可設置登陸密碼,修改密碼的權(quán)限。經(jīng)過前面的設計,我們對整個系統(tǒng)有了一個初步的認識,并對各個模塊進行了功能分化。 3.3 功能模塊和結(jié)構(gòu)設計 小型超市管理系統(tǒng)包括系統(tǒng)管理員、庫存管理員、商品銷售員三大角色,對應本系統(tǒng)中的權(quán)限,根據(jù)權(quán)限的不同,可操作的業(yè)務不同。本節(jié)將對小型超市收銀系統(tǒng)進行總體設計,介紹系統(tǒng)的總體功能和模塊劃分。3.3.1 系統(tǒng)結(jié)構(gòu)小型超市收銀系統(tǒng)所包含的功能模塊有:商品入庫模塊、商品
24、銷售模塊、營業(yè)統(tǒng)計模塊、商品信息模塊、供應商信息模塊、用戶信息模塊。系統(tǒng)功能結(jié)構(gòu)圖見圖3-1。小型超市收銀系統(tǒng)商品入庫商品銷售營業(yè)統(tǒng)計商品信息供應商信息用戶信息圖3-1 系統(tǒng)功能結(jié)構(gòu)圖超市收銀系統(tǒng)的業(yè)務流程圖,如圖3-2所示。圖3-2 系統(tǒng)業(yè)務流程圖3.3.2 系統(tǒng)各功能模塊定義(1) 商品入庫模塊該模塊用于實現(xiàn)商品的入庫管理,當供應商所供商品出現(xiàn)問題需退貨時可以實現(xiàn)退貨管理。另外用戶還可以根據(jù)條件查詢相關的入庫記錄。(2) 商品銷售模塊該模塊用于實現(xiàn)商品售出、收銀功能。顧客倘若對商品不滿意還可以進行退貨處理。(3) 營業(yè)統(tǒng)計模塊該模塊實現(xiàn)商品銷售情況及入庫情況統(tǒng)計分析,讓系統(tǒng)用戶可以根據(jù)時間
25、查詢統(tǒng)計信息。(4) 商品信息模塊該模塊實現(xiàn)商品基本信息的管理,如商品的添加、修改、刪除操作、條件查詢。對于低于庫存報警值的商品會顯示出來。(5) 用戶信息模塊該模塊實現(xiàn)用戶基本信息的管理,含用戶的添加、修改、刪除,用戶信息記錄的瀏覽。(6) 供應商信息模塊該模塊實現(xiàn)供應商基本信息的管理,系統(tǒng)用戶可以實現(xiàn)供應商信息的添加、刪除、修改,條件查詢以及查看供應商可提供的相關商品。3.4 數(shù)據(jù)庫設計數(shù)據(jù)庫在一個管理信息系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設計的好壞將直接對應用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致,同時,合理的數(shù)據(jù)庫也將有利于
26、程序的實現(xiàn)6。設計數(shù)據(jù)庫系統(tǒng)時應該充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。3.4.1 數(shù)據(jù)庫的需求分析SQL Server數(shù)據(jù)庫的建立方法可以分成兩個階段,第一個階段是根據(jù)要輸入的數(shù)據(jù)性質(zhì),新增表并設置表的字段名稱、數(shù)據(jù)類型和語句,第二個階段是在表內(nèi)輸入數(shù)據(jù)。根據(jù)上述系統(tǒng)功能的分析,得出系統(tǒng)有如下需求信息:(1) 系統(tǒng)必須能夠區(qū)別各種用戶,如庫存員、收銀員。(2) 系統(tǒng)支持用戶的增加、登陸。(3) 系統(tǒng)必須能夠顯示各種商品的信息,并允許用戶使用搜索功能來查找自己所需要的商品。(4) 系統(tǒng)必須能將所有商品信息進行分類。(5) 系統(tǒng)能支持用戶將商品入庫、退貨。(6) 系統(tǒng)能支
27、持用戶將商品售出、退貨。(7) 系統(tǒng)支持供應商信息的管理。(8) 系統(tǒng)支持營業(yè)情況的查詢。經(jīng)過上述功能分析和需求總結(jié),設計如下的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):(1) 用戶,包括數(shù)據(jù)項:編號,用戶名,密碼,權(quán)限。(2) 商品類別,包括數(shù)據(jù)項:編號,商品名稱。(3) 商品,包括數(shù)據(jù)項:商品編號(條形碼),商品名稱,類別,庫存量、報警值,計量單位,規(guī)格,售價。(4) 供應商,包括數(shù)據(jù)項:名稱,聯(lián)系人,聯(lián)系電話,傳真,地址,合作起始時間。(5) 銷售記錄,包括數(shù)據(jù)項:編號,操作人,商品編號,售價,售出數(shù)量,售出時間。(6) 進貨記錄,包括數(shù)據(jù)項:商品,供應商,操作人,進價,進貨數(shù)量,進貨時間。(7) 供貨,包括數(shù)
28、據(jù)項:供應商,商品,最新進價。3.4.2 數(shù)據(jù)庫概念結(jié)構(gòu)設計得到上面的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)后,就可以設計出系統(tǒng)中的各個實體以及他們之間的關系,為后面的邏輯結(jié)構(gòu)設計打下基礎。本系統(tǒng)根據(jù)上面功能分析和需求總結(jié)設計出的實體共有下面幾個,下面分別列出本系統(tǒng)所使用到的各基本實體和各實體之間的聯(lián)系。如圖3-3所示: 圖3-3 實體聯(lián)系(E-R)圖3.4.3 數(shù)據(jù)庫邏輯設計(1) 表設計將數(shù)據(jù)庫的概念結(jié)構(gòu)設計轉(zhuǎn)換成關系模型,就得到了以下的幾張數(shù)據(jù)庫中的表7:下面分別介紹這些表。系統(tǒng)登錄用戶的基本信息保存在用戶信息表里,其中對于用戶編號,通過自增方式實現(xiàn),無需用戶手動編號,編號從1000起始。詳細說明如表3-1所
29、示。表3-1 用戶信息表(Users)序號屬性名字段名類型長度NULL默認備注1編號UserIDint4×主鍵自增,標識種子10002真實名字UserNamevarchar10×3密碼UserPasswordvarchar50×MD5加密存儲4權(quán)限UserRightvarchar10×商品種類繁多,可以劃分為大范圍的不同種類。對于這些種類,已事先劃分并存儲于數(shù)據(jù)庫中,不需要用戶自動添加。商品類別信息表如下表3-2。表3-2 商品類別信息表(GoodsType)序號屬性名字段名類型長度NULL默認備注1類別編號TypeIDtinyint×主鍵自增
30、2名稱TypeNamenvarchar10×商品信息表記載的是商品的詳細信息,含商品編號、名稱、類別、計量單位、規(guī)格、售價、庫存量等等。具體的各字段屬性說明和類型如下表3-3。表3-3 商品信息表(GoodsInfo)序號屬性名字段名類型長度NULL默認備注1商品編號GoodsIDnvarchar20×主鍵2類型號TypeIDtinyint×3名稱GoodsNamenvarchar50×4計量單位GoodsUnitnvarchar5×5規(guī)格GoodsNormnvarchar206售價GoodsSellPricesmallmoney×7
31、庫存量GoodsNumint4×08報警值AlarmNumint4×09備注GoodsRemarknvarchar100描述信息入庫記錄表包含商品入庫的相關信息,入庫信息有入庫時間、操作人、進庫商品、商品數(shù)量等。每一筆商品的入庫都對應一個編號,具有唯一性。在這里,對編號的處理就是用入庫時的時間做編號。具體的各字段的屬性說明和類型如下表3-4所示。表3-4 入庫記錄表(StockInfo)序號屬性名字段名類型長度NULL默認備注1編號StockIDvarchar20×主鍵,與時間相關2商品編號GoodsIDnvarchar20×外鍵3供應商編號Compan
32、yIDint4×外鍵4操作員Operatorint4×外鍵5進價GoodsPricesmallmoney×6數(shù)量GoodsNumint4×17備注Remarknvarchar100商品銷售信息存儲在銷售記錄表中,流水編號也采用時間作為編號,具有唯一性。各字段的詳細情況見下表3-5。表3-5 銷售記錄表(SellInfo)序號屬性名字段名類型長度NULL默認備注1編號SellIDvarchar20×主鍵,與時間相關2商品編號GoodsIDnvarchar20×外鍵3操作者Operatorint4×外鍵4售價SellPrices
33、mallmoney×5數(shù)量GoodsNumint4×6備注Remarknvarchar100退貨原因供應商供貨價格表中記載的是供應商所可商品的信息,含商品編號、供貨商編號、最新進價。各字段的詳細信息見下表3-6。表3-6 供應商供貨價格表(StockPrice)序號屬性名字段名類型長度NULL默認備注1商品編號GoodsIDnvarchar20×組合主鍵2供應商編號CompanyIDint4×組合主鍵3最新進價GoodsSellPricesmallmoney×供應商信息表記錄的是供應商的基本信息,其中編號由系統(tǒng)自動編號,采取主鍵自增方式,編號始
34、于1000。各字段的詳細信息見下表3-7。表3-7 供應商信息表(Company)序號屬性名字段名類型長度NULL默認備注1編號CompanyIDint4×主鍵自增,標識種子10002名稱CompanyNamenvarchar50×3聯(lián)系人CompanyDirectornvarchar10×4電話CompanyPhonenvarchar20×5傳真CompanyFaxnvarchar206地址CompanyAddnvarchar50×7合作時間HzDataTimedatetime×(2) 視圖設計根據(jù)邏輯模型所設計出的各種數(shù)據(jù)表構(gòu)成了
35、完整的物理數(shù)據(jù)庫。由于業(yè)務范圍的限制,每一個用戶不可能訪問數(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,對應的Transact-SQL語句:SELECT dbo.SellInfo.SellID, dbo.SellInfo.Goo
36、dsID, 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 JOIN dbo.Users ON dbo.SellInfo.Operator = dbo.Users.UserID INN
37、ER JOIN dbo.GoodsType ON dbo.GoodsInfo.TypeID = dbo.GoodsType.TypeID視圖QueryStock,對應的Transact-SQL語句:SELECT dbo.StockInfo.StockID, dbo.StockInfo.GoodsID, dbo.GoodsInfo.GoodsName, dbo.GoodsType.TypeName, dbo.Company.CompanyName, dbo.Users.UserName, dbo.StockInfo.GoodsPrice, dbo.StockInfo.GoodsNum, dbo.
38、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.CompanyID INNER JOIN dbo.GoodsType ON dbo.GoodsInfo.TypeID =
39、dbo.GoodsType.TypeID4 系統(tǒng)實現(xiàn)系統(tǒng)用SQL Server2005做后臺數(shù)據(jù)庫,進行基于.net發(fā)平臺的WinForm應用程序開發(fā),基本實現(xiàn)其功能。以下將描述系統(tǒng)幾個主要功能模塊的運行和測試的結(jié)果。4.1 登陸系統(tǒng)模塊當我們建立了一個完整的系統(tǒng)時,尤其對于管理系統(tǒng),對于進入每個系統(tǒng)的人員我們都要對他進行身份驗證,我們當然不希望有任何人進入該系統(tǒng)進行惡意的破壞,對系統(tǒng)中的數(shù)據(jù)進行修改,維護該系統(tǒng)的系統(tǒng)管理員也不希望有任何麻煩,所以對系統(tǒng)進行安全保護顯的很重要,無論對于誰,系統(tǒng)的安全問題是首要的9。為了解決這個問題,有一個簡單、實用,但是老套的方法,就是口令加密。在該小型超市收
40、銀系統(tǒng)中對口令的加密采取的是常用的MD5加密算法。在新增或修改用戶信息時,存入數(shù)據(jù)庫的是用戶密碼的MD5哈希值,在登錄驗證時根據(jù)用戶輸入的密碼計算相應的MD5哈希值進行比較。加密方法: public static string EncryptMD5(string oldData) /將字符串轉(zhuǎn)化為字節(jié)序列 Byte clearBytes = new UnicodeEncoding().GetBytes(oldData); /計算字節(jié)序列對應的Hash值 Byte hashedBytes = (HashAlgorithm)CryptoConfig.CreateFromName("MD5
41、").ComputeHash(clearBytes); /返回經(jīng)MD5加密后的字符串 return BitConverter.ToString(hashedBytes); 在用戶登錄系統(tǒng)時,用戶只需要輸入分配的用戶ID,只要ID號正確就可以自動顯示出相應的用戶名。為了防止他人獲知用戶的密碼,增強系統(tǒng)的安全性,我們將待輸入密碼的文本框的PasswordChar設為*,當用戶輸入密碼后,系統(tǒng)將對所輸入的密碼進行檢查,只有當密碼正確才可進入到系統(tǒng)主界面,否則系統(tǒng)會提示錯誤。登錄界面如圖4-1所示。圖4-1 登錄界面圖用戶登錄成功后,會記下登錄該系統(tǒng)的用戶的權(quán)限,權(quán)限的不同,進入主界面后可進
42、行的操作而異,體現(xiàn)在控件的可響應用戶的鼠標點擊事件與否。主界面如圖4-2所示。由于該用戶屬商品銷售中的收銀員,可以看到他只具有商品銷售的權(quán)限。圖4-2 系統(tǒng)主界面圖4.2 商品信息模塊商品基本信息管理模塊,用戶可以對商品信息加以管理,界面可交互性強,運行時的界面圖如下圖4-3。其中紅色顯示為低于庫存值,需要進貨的商品。圖4-3 商品基本信息管理界面圖4.3 商品入庫模塊具有庫存管理權(quán)限的用戶進行商品入庫操作時,需要輸入商品編號,至于供應商可以從下拉列表中選擇,如果供應商記錄未添加至數(shù)據(jù)庫,可先單擊右側(cè)的“添加供應商”按鈕。依次輸入進貨價、進貨數(shù)量,當進貨數(shù)量為負數(shù)時進行就是退貨操作。確認進貨時
43、若發(fā)現(xiàn)為新商品則提示先新增商品,進貨記錄成功添加出現(xiàn)對話框提醒。進貨運行界面如下圖4-4所示。圖4-4 商品入庫運行圖在入庫查詢中,可以根據(jù)各種條件組合查詢,在輸入商品名稱時可實現(xiàn)模糊查詢匹配,滿足條件的入庫記錄將出現(xiàn)在網(wǎng)格中10。如圖4-5。圖4-5 入庫查詢界面圖4.4 商品銷售模塊商品銷售模塊能處理商品銷售業(yè)務過程,輸入商品編號后回車確認后單擊“確認”按鈕就可將商品添加至待售商品列表。根據(jù)快捷鍵操作,修改數(shù)量。當顧客對購買的商品不滿意時,在未使用商品的情況下,可以對商品進行退貨。這時只需將商品數(shù)量的修改置為負數(shù)即可。另外可以在備注框中輸入退貨原因信息,方便了解退貨原因,反饋給商品廠家。商
44、品銷售運行界面圖如下圖4-6所示。圖4-6 商品銷售運行界面圖開發(fā)商品銷售模塊過程中,對輸入的數(shù)據(jù)要進行嚴格控制。此時,用到較多的是TextBox控件的KeyPress事件和TextChange事件,下面對這兩個事件進行詳細說明。(1) 實收金額文本框中控制金額的輸入合理,只能是數(shù)字鍵、BackSpace鍵、小數(shù)點鍵被按下時才接受所按下的鍵,實現(xiàn)的代碼如下11:private void txtGetMoney_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar != 8 && !char.IsDigit(e.Ke
45、yChar)&&e.KeyChar!='.'&&e.KeyChar!='-') MessageBox.Show("輸入數(shù)字"); /彈出提示 e.Handled = true; (2) 找零金額由系統(tǒng)自動計算出并顯示在文本框中,實現(xiàn)代碼如下:private void txtGetMoney_TextChanged(object sender, EventArgs e)/當所收付款改變時,所找零錢數(shù)目也跟著改變 if (txtGetMoney.Text != "") if (txtGetMon
46、ey.Text != "-") float fltMoney = Convert.ToSingle(txtGetMoney.Text.ToString(); float fltNeedPay = Convert.ToSingle(lblNeedM.Text.ToString(); txtChange.Text = (fltMoney - fltNeedPay).ToString("0.0"); else txtChange.Text = "" 應該所收的錢數(shù)及商品的數(shù)量也由系統(tǒng)自動計算出,當網(wǎng)格中待售商品的信息有所改變時就自動計算。相
47、應的系統(tǒng)運行界面如下圖4-7所示。實現(xiàn)代碼如下:private void SetCount() /并修改標簽中的值,即售出總件數(shù)及售價 int intGoodsNum = 0; float fltMoney = 0.0f; for (int i = 0; i < dataGridView1.Rows.Count; i+) intGoodsNum += Convert.ToInt32(dataGridView1.Rowsi.Cells4.Value); fltMoney += (Convert.ToSingle(dataGridView1.Rowsi.Cells3.Value) * Con
48、vert.ToInt32(dataGridView1.Rowsi.Cells4.Value); intGoodsNum = Math.Abs(intGoodsNum); lblCount.Text = intGoodsNum.ToString(); lblNeedM.Text = fltMoney.ToString(); 圖4-7 商品銷售結(jié)算結(jié)果圖手動輸入商品編號時,當已輸入前七位后系統(tǒng)將自動檢索前部相同的商品編號信息。實現(xiàn)代碼如下:private void txtID_TextChanged(object sender, EventArgs e) /自動補充功能,如果文本框中已輸入字符總長
49、度不小于則允許自動補充 if (txtID.Text.ToString().Length >= 7) AutoCompleteStringCollection myString = new AutoCompleteStringCollection(); string strID = txtID.Text.ToString(); DataTable myTable = new DataTable(); string strSql = "select GoodsID from GoodsInfo where GoodsID like '" strSql += st
50、rID; strSql += "%'" myTable = mySql.SelectDataBase(strSql); if (myTable.Rows.Count >0) for (int i = 0; i < myTable.Rows.Count; i+) myString.Add(myTable.Rowsi0.ToString(); txtID.AutoCompleteCustomSource = myString; txtID.AutoCompleteSource = AutoCompleteSource.CustomSource; txtID.
51、AutoCompleteMode = AutoCompleteMode.Suggest; else txtID.AutoCompleteSource = AutoCompleteSource.None; txtID.AutoCompleteMode = AutoCompleteMode.None; 商品銷售的過程中要與數(shù)據(jù)庫交涉,與數(shù)據(jù)庫頻繁傳輸數(shù)據(jù),采用ADO.NET數(shù)據(jù)庫訪問技術。為了提高效率,對插入商品銷售記錄實現(xiàn)時借助于存儲過程來提高速度。4.5 營業(yè)統(tǒng)計模塊用戶可以根據(jù)時間段的輸入查看營業(yè)情況,本系統(tǒng)對營業(yè)情況的分類,有依具體明細,有按商品分類,也有按收銀員統(tǒng)計。運行界面圖如下圖4-8所示:圖4-8 營業(yè)統(tǒng)計運行結(jié)果4.6 供應商模塊對供應商信息的管理,增刪改查都在該界面完成,工具欄中的增刪改按鈕對應相應的操作。初進入到該窗體時所有的供應商信息都會出現(xiàn)在窗體中的網(wǎng)格,用戶可以輸入查詢條件定位出某供應商,對其進行修改刪除操作。雙擊網(wǎng)格中某供應商的記
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工地鋼管租賃合同樣式
- 空調(diào)安裝的承包合同2024年
- 工程設計合同補充協(xié)議
- 工程建設貸款合同簽訂范本
- 足浴店承包權(quán)轉(zhuǎn)讓用于還債
- 專業(yè)建筑工程總承包合同案例
- 2024年勞動合同及聲明書
- 教師集體聘用合同書范本
- 合同增加補充協(xié)議范本
- 2024年公益服務協(xié)議書范本
- 2024年資格考試-注冊質(zhì)量經(jīng)理考試近5年真題附答案
- 人教版三年級語文上冊第三、四單元試卷(含答案)
- 歷史丨四川省南充市高2025屆高考適應性考試(南充一診)高三10月聯(lián)考歷史試卷及答案
- 浙江省溫州市2023-2024學年高一上學期期中考試物理試題(含答案)
- 湖北省武漢市洪山區(qū)2023-2024學年八年級上學期期中英語試題(無答案)
- 人教版七年級上冊數(shù)學期中測試卷(含答案)
- 2024年汽車操作系統(tǒng)趨勢及TOP10分析報告
- 浙江省紹興市諸暨市浣東中學2022-2023學年八年級上學期期中英語試卷
- 2023-2024學年滬科版數(shù)學八年級上冊期中測試題附答案(共2套)
- 漢語拼音2《i u ü 》(分層作業(yè))一年級語文上冊同步高效課堂系列(統(tǒng)編版2024秋)
- Unit 4 Autumn (教學設計)-2024-2025學年譯林版(一起)英語二年級上冊
評論
0/150
提交評論