版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 學(xué)位論文</b></p><p> 超市收費系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 論文作者姓名:</p><p> 申請學(xué)位專業(yè):</p><p> 申請學(xué)位類別:</p><p> 指導(dǎo)教師姓名(職稱):</p><p> 論文提交日期:20
2、14年 2月 10 日</p><p> 超市收費系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展,計算機技術(shù)已滲透到各個領(lǐng)域,成為各行業(yè)必不可少的工具。在當今激烈的市場競爭中,讓顧客享受既實惠又快捷的購物服務(wù)是商戰(zhàn)中制勝的一大要素。改革開放的今天,各種大型超市林立,超市已成為
3、消費者日常活動的主要場所。而超市商品也非常之多,建立一套方便快捷的超市收費系統(tǒng)是企業(yè)必然要解決的一個問題。系統(tǒng)采用的編程工具是Delphi 7.0版本與Access作為數(shù)據(jù)庫。系統(tǒng)分為前臺系統(tǒng)和后臺系統(tǒng),其中,前臺系統(tǒng)提供了很方便的商品銷售收費功能,這其中包括會員卡用戶可享受八折優(yōu)惠。而后臺系統(tǒng)則提供了一些商品管理功能,如采購入庫,庫存盤點,出庫明細等模塊。</p><p> 本文主要介紹超市收費系統(tǒng)的運行環(huán)境
4、、功能作用、設(shè)計的方案等各方面的內(nèi)容。論文共分為五大部分。第一部分簡要敘述了系統(tǒng)的基本概況。第二,三部分分別從軟件工程的要求出發(fā),首先進行問題的定義,其次進行可行性研究,分別從技術(shù)可行性,經(jīng)濟可行性和操作可行性進行分析,然后進行總體設(shè)計和詳細設(shè)計,并闡述了如何實現(xiàn)具體功能。第四部分為系統(tǒng)調(diào)試,其中包括子模塊測試和總體測試。</p><p> 關(guān)鍵詞 : 收費;銷售;超市 </p><
5、;p> The Design and Realization of Supermarket Charging System</p><p><b> Abstract</b></p><p> With the rapid development of modern science and technology, computer technology w
6、hich has penetrated into all fields becomes indispensable for every industry. Beneficial and effective services for customers are a key point to win in commercial trade in market competition. Under the policy of reform a
7、nd opening-up, different kinds of supermarket loom so large, which make the supermarkets, be the main place to active in daily life. But due to various and numerous goods, how to build a convenient </p><p>
8、 This thesis mainly introduces the environment, function and design plan of the supermarket charge system. It is totally divided into five parts. The first part synopsis described the basic general situation of this syst
9、em. To begin with the software engineering requirements, I first make a definition of the question in the second and third part, then do some practicable research, analysis from technical, economic and operational feasib
10、ility, and design for the totality and detailed, with expound</p><p> Key words: charging; sale; supermarket</p><p><b> 目 錄</b></p><p><b> 論文總頁數(shù):27頁</b>
11、</p><p><b> 1引 言1</b></p><p> 1.1課題背景及意義1</p><p> 1.2課題研究內(nèi)容1</p><p> 2項目特色及方案選擇1</p><p><b> 2.1項目特色1</b></p><
12、p><b> 2.2方案選擇2</b></p><p><b> 3系統(tǒng)需求分析2</b></p><p> 3.1系統(tǒng)模塊構(gòu)建2</p><p> 3.1.1系統(tǒng)整體結(jié)構(gòu)功能模塊2</p><p> 3.1.2前,后臺功能模塊3</p><p>&
13、lt;b> 3.2數(shù)據(jù)流圖3</b></p><p><b> 4 數(shù)據(jù)庫設(shè)計4</b></p><p> 4.1數(shù)據(jù)庫選擇方案論證4</p><p> 4.2 E-R圖和關(guān)系圖5</p><p> 4.3數(shù)據(jù)庫表設(shè)計5</p><p><b>
14、5系統(tǒng)實現(xiàn)9</b></p><p> 5.1系統(tǒng)對軟硬件配置的要求9</p><p> 5.2開發(fā)語言介紹9</p><p> 5.3 系統(tǒng)模塊10</p><p> 5.3.1 前臺模塊10</p><p> 5.3.2后臺模塊16</p><p> 6
15、結(jié)果測試,性能分析23</p><p> 6.1模塊測試23</p><p> 6.1.1前臺模塊的測試23</p><p> 6.1.2后臺模塊的測試24</p><p> 6.2整體測試24</p><p><b> 結(jié) 論24</b></p><p
16、><b> 參考文獻25</b></p><p><b> 致 謝26</b></p><p><b> 聲 明27</b></p><p><b> 1引 言</b></p><p> 1.1課題背景及意義</p
17、><p> 隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。</p><p> 超市形式在我國于20世紀90年代初期起步,現(xiàn)已成為我國零售業(yè)的一種重要形態(tài)。隨著超市的高速發(fā)展,其經(jīng)營管理也變的愈加復(fù)雜,早期的售貨員站柜臺的形式早已不能滿足現(xiàn)有銷售業(yè)的發(fā)展,這樣就迫切地需要引入新的思想技術(shù)和管理技術(shù)進入到超市管理之
18、中。</p><p> 超市形態(tài)具有種種優(yōu)點,但在目前狀況下,它仍存在零售業(yè)商業(yè)企業(yè)所共有的落后的一面。如:收款結(jié)算速度慢,容易出現(xiàn)營業(yè)差錯,不宜進行商品調(diào)價,盤點效率底等。而且,在超市日常管理中,隨著超市形態(tài)的高速發(fā)展,其經(jīng)營管理也變的愈加復(fù)雜,競爭也日益激烈,擁有一套快捷,方便,實用的超市收費系統(tǒng)是必須的。為此,在本次設(shè)計之中選擇了超市收費系統(tǒng)的設(shè)計與實現(xiàn)這個題目。依靠現(xiàn)代化的計算機信息處理技術(shù)來對超市銷售
19、進行收費,從而節(jié)省了大量的人力、減輕了勞動強度,并且能夠快速反映出商品的各種反饋信息。 </p><p><b> 1.2課題研究內(nèi)容</b></p><p> 綜合運用以前所學(xué)的專業(yè)知識,設(shè)計開發(fā)一個超市收費系統(tǒng)軟件,本設(shè)計要求實現(xiàn)功能——采購入庫,條形碼數(shù)據(jù)的輸入,會員卡號的輸入,進行貨品銷售。 </p><p><b>
20、具體包括以下內(nèi)容:</b></p><p> ?。?)在設(shè)計與開發(fā)中,重點放在簡單地進行貨品銷售,會員卡打折。</p><p> ?。?)在設(shè)計與開發(fā)中,既探討前臺的銷售,又能實現(xiàn)后臺的采購入庫,會員卡設(shè)置等功能。(其中前臺只負責輸入條碼,輸入會員卡號,實現(xiàn)收費。其他的所有功能和設(shè)置均放在后臺進行)</p><p> 實現(xiàn)超市貨品的入庫,會員卡用戶資料
21、的錄入,以及進行貨品銷售的收費,而前臺的收費分為會員卡用戶和非會員卡用戶兩種收費,對于有卡用戶,在輸入卡號后,可實現(xiàn)商品價格按八折價格進行收費,若要取消銷售某商品,則直接點刪除,總價格也會相應(yīng)的扣除.</p><p> 2項目特色及方案選擇</p><p><b> 2.1項目特色</b></p><p> 本項目的特色在于,它的操作能基
22、本實現(xiàn)智能化,減少了人操作人員的大量工作,節(jié)約了時間和空間、人力和財力。此外,本系統(tǒng)清晰的功能模塊的劃分也使得它的應(yīng)用性和移植性將會更加廣泛,再加上前后臺的分別管理,使得整個系統(tǒng)的設(shè)計也更為人性化和安全化。</p><p><b> 2.2方案選擇</b></p><p> 本系統(tǒng)之所以使用Delphi 7.0 ,主要是因為Delphi的方便性
23、和靈活性。我們幾乎可以用Delphi作任何事情,還可以撰寫種各種類型的應(yīng)用程序,動態(tài)鏈接庫(DLL)、CON、或CORBA對象,CGI/ISAPI程序,Microsoft Back Office應(yīng)用程序。程序的規(guī)模,小到簡單的個人數(shù)據(jù)庫應(yīng)用,大到復(fù)雜的企業(yè)的多層次分布式系統(tǒng),都可以使用Delphi進行開發(fā),其友好的集成開發(fā)界面,可視化的雙向開發(fā)模式,良好的數(shù)據(jù)庫應(yīng)用支持高效的程序開發(fā)和程序運行,備受廣大程序開發(fā)人員的
24、好評。尤其是Delphi對數(shù)據(jù)庫應(yīng)用的強大支持,大大提高了數(shù)據(jù)庫應(yīng)用軟件開發(fā)的效率,縮短了開發(fā)周期。并且Delphi為數(shù)據(jù)庫應(yīng)用開發(fā)人員提供了豐富的數(shù)據(jù)庫開發(fā)組件,使數(shù)據(jù)庫應(yīng)用開發(fā)功能更強大,控制更靈活,編譯后的程序運行速度更快。 </p><p><b> 3系統(tǒng)需求分析</b></p><p> 數(shù)據(jù)庫應(yīng)用系統(tǒng)是以數(shù)據(jù)庫為基礎(chǔ)的信息管理系統(tǒng),它一般包含兩個方面
25、內(nèi)容,一個數(shù)據(jù)庫設(shè)計,二是程序設(shè)計。數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)是一個軟件工程,應(yīng)按照軟件工程的開發(fā)方法進行分析,設(shè)計,編程和調(diào)試。在建立數(shù)據(jù)庫應(yīng)用系統(tǒng)之前,一般應(yīng)先進行系統(tǒng)的需求分析,了解用戶對系統(tǒng)的要求,然后進行系統(tǒng)的總體設(shè)計,最后編寫程序代碼和調(diào)試程序。數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)過程,需求分析包括了對數(shù)據(jù)本身的需求分析和對功能的需求分析。兩個分析的結(jié)果將分別作為數(shù)據(jù)庫設(shè)計和程序設(shè)計的依據(jù)。實際上在設(shè)計數(shù)據(jù)庫應(yīng)用系統(tǒng)時,這兩個需求分析是緊密相關(guān)的
26、,不論是數(shù)據(jù)庫設(shè)計,還是程序設(shè)計都需要考慮這兩個方面的因素。</p><p><b> 3.1系統(tǒng)模塊構(gòu)建</b></p><p> 3.1.1系統(tǒng)整體結(jié)構(gòu)功能模塊</p><p> 系統(tǒng)整體結(jié)構(gòu)功能模塊圖如圖3-1:</p><p> 根據(jù)系統(tǒng)整體結(jié)構(gòu)功能模塊分析,系統(tǒng)分為前臺和后臺兩部分;前臺主要提供給收銀員
27、使用,進行銷售收費;后臺提供給管理員使用,主要執(zhí)行系統(tǒng)維護、商品管理、廠家管理和銷售數(shù)據(jù)管理以及會員卡用戶管理等工作。</p><p> 3.1.2前,后臺功能模塊</p><p> 本系統(tǒng)是多用戶系統(tǒng),用戶可分為管理員和收銀員兩類,登錄或者未登錄情況下判斷當前使用人員的權(quán)限,避免安全性問題。</p><p> 收銀員登錄系統(tǒng),系統(tǒng)自動清空銷售臨時數(shù)據(jù),進入系
28、統(tǒng),對于非會員用戶收銀員首先錄入商品編碼,然后輸入數(shù)量,而對于會員卡用戶,收銀員選擇會員類型,輸入會員卡號,系統(tǒng)自動將折扣轉(zhuǎn)為80%,然后系統(tǒng)自動匯總金額,同時列表顯示銷售商品的流水數(shù)據(jù),收銀員可以刪除需要退掉的商品,然后點擊結(jié)賬,完成交易過程。前臺功能模塊圖如圖3-2:</p><p> 圖3-2 前臺功能模塊圖</p><p> 后臺管理員登錄系統(tǒng)以后,可以對供貨商資料進行添加、刪
29、除、修改、查詢操作,可以對商品單位進行添加、刪除、修改、查詢操作,可以對會員資料進行添加、刪除、修改、查詢操作,可以進行采購入庫操作,進行庫存盤點操作,進行進貨統(tǒng)計操作,進行出庫明細查詢操作,和退出系統(tǒng)操作。后臺功能模塊如圖3-3所示:</p><p><b> 3.2數(shù)據(jù)流圖 </b></p><p> 數(shù)據(jù)流圖如圖3-4:</p><p&g
30、t;<b> 圖3-4 數(shù)據(jù)流圖</b></p><p><b> 4 數(shù)據(jù)庫設(shè)計</b></p><p> 4.1數(shù)據(jù)庫選擇方案論證</p><p> 建立一個數(shù)據(jù)庫我們有多種選擇,現(xiàn)在市場上有各種各樣的數(shù)據(jù)庫,而且每一種數(shù)據(jù)庫都有其自身的特點,不能說哪一種更好,只是在其中尋找一種能更好地適應(yīng)系統(tǒng)需求、更好地滿足
31、用戶的要求以及適應(yīng)開發(fā)人員的習(xí)慣。在本系統(tǒng)中,作為小型超市的收費系統(tǒng)是一個比較小的應(yīng)用系統(tǒng),它所產(chǎn)生和處理的數(shù)據(jù)量也比較小。因此,沒有必要使用像SQL Server和Oracle這樣的大型數(shù)據(jù)庫。我首先想到的數(shù)據(jù)庫是Microsoft Office中的Access數(shù)據(jù)庫,因為它在計算機上的應(yīng)用比較普及,是開發(fā)小型數(shù)據(jù)庫系統(tǒng)的比較理想的選擇,所以,在本系統(tǒng)中我選擇了Access數(shù)據(jù)庫。</p><p
32、> Access作為一個數(shù)據(jù)庫管理系統(tǒng),它被集成在Microsoft Office中。Access數(shù)據(jù)庫處理的基本結(jié)構(gòu),采取關(guān)系型數(shù)據(jù)庫模式。與其他的數(shù)據(jù)庫系統(tǒng)相比,Access更加簡單易學(xué),一個普通的計算機用戶可以很快地掌握它。Access 的功能十分強大,利用它可以方便地實現(xiàn)對信息保存、維護、查詢、統(tǒng)計、打印、交流、發(fā)布,而且它可以十分方便地與Office其他組件交流數(shù)據(jù),這些功能對一個一般用戶而言已經(jīng)足
33、夠了。</p><p> 4.2 E-R圖和關(guān)系圖</p><p> 供應(yīng)商,商品關(guān)系模型E-R圖如圖4-1所示:</p><p> 圖4-1 供應(yīng)商,商品關(guān)系模型E-R圖</p><p> 各個表之間的關(guān)系圖如圖4-2:</p><p> 圖4-2 各個表之間的關(guān)系圖</p><p&
34、gt;<b> 4.3數(shù)據(jù)庫表設(shè)計</b></p><p> 由數(shù)據(jù)模型利用Access進行數(shù)據(jù)庫的詳細設(shè)計,其基本表的設(shè)計如下:</p><p><b> 供應(yīng)商表</b></p><p> 供應(yīng)商信息表:存儲供應(yīng)商信息.如表4-1:</p><p> 表4-1 供應(yīng)商信息表</
35、p><p><b> 操作用戶表</b></p><p> 操作用戶表:存儲操作系統(tǒng)的管理員信息.如表4-2:</p><p> 表4-2 操作用戶表</p><p><b> 3.商品進貨表</b></p><p> 商品進貨表:存儲商品進貨信息.如表4-3:<
36、;/p><p> 表4-3 商品進貨表</p><p><b> 4.銷售主表</b></p><p> 銷售主表:存儲銷售情況的大體清單(即總金額等).如表4-4:</p><p> 表4-4 銷售主表</p><p><b> 5.銷售從表</b></p&
37、gt;<p> 銷售從表:存儲銷售的詳細情況.如表4-5:</p><p> 表4-5 銷售從表</p><p><b> 6.庫存表</b></p><p> 庫存表:存儲庫存情況.如表4-6:</p><p><b> 表4-6 庫存表</b></p>&
38、lt;p><b> 7.計量單位表</b></p><p> 計量單位表:存儲計量單位資料,方便入庫等操作時的使用.如表7:</p><p> 表4-7 計量單位表</p><p><b> 8.會員資料表</b></p><p> 會員資料表,存儲有卡會員的資料,以便結(jié)賬時給予折
39、扣.如表4-8:</p><p> 表4-8 會員資料表</p><p><b> 9.會員銷售單據(jù)表</b></p><p> 會員銷售單據(jù)表:存儲會員的銷售單據(jù)。如表4-9:</p><p> 表4-9 會員銷售單據(jù)表</p><p><b> 5系統(tǒng)實現(xiàn)</
40、b></p><p> 5.1系統(tǒng)對軟硬件配置的要求</p><p> 建議用戶的計算機使用以下配置(或更高):</p><p> CPU:Intel 或兼容機Pentium Pentium4 或更高</p><p> 硬盤:7200轉(zhuǎn)/分,剩余空間>100M</p><p> 內(nèi)存:建議 512
41、MB 或更多</p><p><b> 鼠標:3D光電鼠</b></p><p><b> 鍵盤:標準104鍵</b></p><p><b> 5.2開發(fā)語言介紹</b></p><p> Delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出
42、現(xiàn)在組件面板上,當用戶從組件面板上點取一個類的圖標后,在程序中就自動生成了該類的對象(非可視組件除外);另一部分是功能類,這此功能類的對象通常出現(xiàn)在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。</p><p> 組件在Delphi程序的開發(fā)中是最顯眼的角色。ADO數(shù)據(jù)訪問組件就是本系統(tǒng)所采用的方式,下面對此概述一下。 </p><p> ADO數(shù)據(jù)對象(Act
43、ive Data Objects)實際是一種提供訪問各種數(shù)據(jù)類型的鏈接機制。ADO設(shè)計為一種極簡單的格式,通過ODBC的方法同數(shù)據(jù)庫接口中,可以使用任何一種ODBC數(shù)據(jù)源,即不止適合于SQL Server、Oracle、Access等數(shù)據(jù)庫應(yīng)用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)文件。ADO是基于OLE-DB之上的技術(shù),因此ADO通過其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。A
44、DO使您的客戶端應(yīng)用程序能夠通過OLE DB提供訪問和操作在數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。ADO支持用于建立C/S和Web的應(yīng)用程序的主要功能。其主要優(yōu)點是易于使用、高速度、低內(nèi)存支出和占用磁盤空間較少。ADO同時具有遠程數(shù)據(jù)服務(wù)(RDS)功能,通過RDS可以在一次往返過程中實現(xiàn)將數(shù)據(jù)從服務(wù)器移動到客戶端應(yīng)用程序和Web頁、在客戶端對數(shù)據(jù)進行處然后將更新結(jié)果返回服務(wù)器的操作。利用ADO數(shù)據(jù)訪問組件,在系統(tǒng)中我主要使用的是ADOTabl
45、et和ADOQuery兩個組件。</p><p><b> 5.3 系統(tǒng)模塊</b></p><p> 5.3.1 前臺模塊</p><p> 前臺程序流程圖如圖5-1</p><p> 圖5-1 前臺程序流程圖</p><p><b> 登錄模塊:</b><
46、/p><p> 功能:本模塊的主要功能是對用戶身份進行驗證,只有系統(tǒng)的合法用戶才能進入系統(tǒng)。其窗體如圖5-2:</p><p> 圖5-2 用戶登錄界面</p><p> 在進行系統(tǒng)登錄過程中,登錄模塊將調(diào)用數(shù)據(jù)庫里的用戶數(shù)據(jù)表,并對用戶名和密碼進行驗證,只有輸入了正確的用戶名和密碼后,系統(tǒng)登錄才會成功。并在輸入了錯誤的或者是不存在的用戶名和密碼時,系統(tǒng)會給出出錯
47、信息提示,指明登錄過程中的錯誤輸入或錯誤操作,以便用戶進行正確的登錄。</p><p> 其提示錯誤輸入或錯誤操作如圖5-3所示: </p><p> 圖5-3 登錄錯誤界面</p><p> 輸入項、輸出項:輸入項為用戶名和密碼。用戶名和密碼均為字符串,最大長度為16個字符,密碼以“*”號顯示(英文和數(shù)字算一個字符,漢字算兩個字符)。</p>
48、<p> 接口:本模塊為頂級模塊,按確定按鈕時,如果輸入的用戶名和密碼正確,將調(diào)用系統(tǒng)主窗體模塊,進入系統(tǒng)主窗體。</p><p> 存儲分配:在用戶按下確定按鈕時,將讀取存儲用戶名和密碼的數(shù)據(jù)表,以對用戶名和密碼進行驗證。</p><p> 測試要點:本模塊有如下幾個測試要點,按下確定按鈕時,是否能正確讀取存儲用戶名和密碼的數(shù)據(jù)表;如果用戶名和密碼正確,是否能進入系統(tǒng)主
49、窗體;當輸入用戶名或密碼錯誤時,是否能彈出信息框,給用戶提示。</p><p><b> 主要代碼:</b></p><p> vIniFile:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'Config.Ini');</p><p><b> //聯(lián)接數(shù)據(jù)庫<
50、;/b></p><p> Data:='Provider='+vIniFile.Readstring('System','Provider','')+';</p><p> Data:=Data+'Data Source='+vIniFile.Readstring('System
51、39;,'Data Source','')+';';</p><p> Data:=Data+'Persist Security Info=False';</p><p> ADOQuery1.ConnectionString:=Data;</p><p> ADOQuery1.Close;<
52、;/p><p> ADOQuery1.SQL.Clear;</p><p> ADOQuery1.SQL.Add('Select * from Manager');</p><p> ADOQuery1.Active:=True;</p><p> 創(chuàng)建了一個TIniFile類型的對象實例,來連接操作連接數(shù)據(jù)庫的ini配置
53、文件。</p><p><b> 銷售模塊:</b></p><p><b> 功能:</b></p><p> 本模塊的主要功能是把銷售信息寫入銷售清單,同時對庫存數(shù)據(jù)進行更新,以備用戶將來對銷售信息和庫存信息進行查詢。</p><p><b> 商品銷售:</b>&
54、lt;/p><p> 將銷售信息錄入數(shù)據(jù)庫銷售表中,進行銷售查詢和統(tǒng)計。</p><p><b> 輸入項、輸出項:</b></p><p> 本模塊的數(shù)據(jù)輸入項主要為銷售清單,其中包括單據(jù)編號、商品條碼、計量單位、單價、數(shù)量、金額、銷售日期、操作員等相關(guān)信息。</p><p><b> 存儲分配:<
55、/b></p><p> 商品銷售模塊主要的是進行商品銷售情況統(tǒng)計并登記入庫,當商品銷售業(yè)務(wù)發(fā)生后,營業(yè)員將打開銷售管理模塊對商品銷售情況進行登記入庫,調(diào)用數(shù)據(jù)庫中的銷售表,等待數(shù)據(jù)錄入,等營業(yè)員將相應(yīng)數(shù)據(jù)輸入后,點提交按扭,即可完成數(shù)據(jù)的存儲。取消按扭,將取消此次操作,不進行數(shù)據(jù)存儲。</p><p><b> 測試要點:</b></p>&
56、lt;p> 對銷售管理模塊進行測試,利用測試用例填入表單,對其進行數(shù)據(jù)庫數(shù)據(jù)存儲測試,看看所填數(shù)據(jù)能否存入數(shù)據(jù)表中。</p><p><b> 銷售查詢:</b></p><p> 對各查詢要求分別進行測試,查看測試結(jié)果。</p><p> 銷售模塊分為非會員用戶和會員用戶兩類,若消費者為非會員則進入銷售頁面后直接錄入商品條碼和數(shù)
57、量點擊添加,然后系統(tǒng)自動匯總金額,同時列表顯示銷售商品的流水數(shù)據(jù),對于非會員的銷售界面如圖5-4:</p><p> 圖5-4 前臺非會員銷售界面</p><p><b> 主要代碼如下:</b></p><p><b> //計算合計數(shù)</b></p><p> ADOQuery1.Ed
58、it;</p><p> //單條記錄求合:小計=售價*數(shù)量*折扣/100</p><p> ADOQuery1.FieldByName('Subtotal').AsCurrency :=(ADOQuery1.FieldByName('SellPrice').AsCurrency*ADOQuery1.FieldByName('SellScalar
59、').AsCurrency*ADOQuery1.FieldByName('Agio').AsCurrency/100);</p><p> ADOQuery1.Post;</p><p> label5.Caption:=currtostr(strtocurr(label5.Caption)+ ADOQuery1.FieldByName('Subtota
60、l').AsCurrency);</p><p> edit5.Text:=label5.caption;</p><p> Edit1.Text:='';</p><p> Edit1.SetFocus;</p><p> 對于會員用戶,選中會員結(jié)賬,輸入會員卡號,點擊查找,若有該會員,則彈出對話框歡迎你:X
61、X,點擊OK,折扣自動變?yōu)?0,商品價格按80%計算.如圖5-5,5-6:</p><p> 如圖5-5 輸入會員卡號彈出對話框界面</p><p> 如圖 5-6 折扣自動變?yōu)?0的界面</p><p><b> 主要代碼如下:</b></p><p> //在會員資料中查找會員</p>&l
62、t;p> ADOQuery4.SQL.Clear;</p><p> ADOQuery4.SQL.Add('Select * from vip Where username="'+edit4.Text+'"');</p><p> ADOQuery4.Open;</p><p> if ADOQuer
63、y4.RecordCount<>0 then begin</p><p> s:='歡迎你:'+adoquery4.FieldByName('name').AsString;</p><p> showmessage(s);</p><p> edit3.Text:='80';</p>
64、<p><b> end</b></p><p><b> else</b></p><p><b> begin</b></p><p> showmessage('無此會員號');</p><p> edit3.Text:='10
65、0';</p><p><b> end;</b></p><p><b> //查找商品</b></p><p> ADOQuery2.SQL.Clear;</p><p> ADOQuery2.SQL.Add('Select * from Stock Where BarC
66、ode="'+ADOQuery1.FieldByName('BarCode').AsString+'"');</p><p> ADOQuery2.Open;</p><p><b> //減少庫存</b></p><p> ADOQuery2.Edit;</p>
67、<p> ADOQuery2.FieldByName('StockScalar').AsCurrency:=ADOQuery2.FieldByName('StockScalar').AsCurrency-ADOQuery1.FieldByName('SellScalar').AsCurrency;</p><p> ADOQuery2.Post;<
68、;/p><p> ADOQuery1.Next;</p><p><b> 刪除商品模塊:</b></p><p> 若要取消某一商品的銷售,可點擊該商品,然后點擊刪除,彈出詢問對話框,點YES,即可撤消購買該商品,同時應(yīng)收金額也會相應(yīng)扣除.如圖5-7,5-8:</p><p> 如圖 5-7 詢問是否刪除的界面&
69、lt;/p><p> 如圖5-8 刪除后自動扣除應(yīng)收金額的界面</p><p><b> 主要代碼:</b></p><p> if ADOQuery1.RecordCount>0 then begin</p><p> if messagedlg('確認刪除"'+ADOQuery1
70、.FieldByName('GoodsName').</p><p> AsString+'"嗎?',mtconfirmation,[mbyes,mbno],0)=mryes then begin</p><p> ADOQuery1.Delete;</p><p> adoquery5.Close;</p>
71、;<p> adoquery5.SQL.Clear;</p><p> adoquery5.SQL.Add('Select sum(subtotal) as total from Sell_Minor Where InvoiceID="'+label6.Caption+'"');</p><p> adoquery5.
72、Open;</p><p> if(adoquery5.fieldbyname('total').AsString<>'')then begin</p><p> label5.Caption:=adoquery5.fieldbyname('total').AsString;</p><p> edi
73、t5.Text:=label5.Caption;</p><p><b> end</b></p><p> else begin</p><p> label5.caption:='0.00';</p><p> edit5.Text:='0.00';</p>&l
74、t;p><b> end;</b></p><p><b> end;</b></p><p> end else begin</p><p> ShowMessage('沒有商品記錄~~!');</p><p><b> end;</b><
75、;/p><p><b> 結(jié)賬模塊:</b></p><p> 輸入實收金額,點擊結(jié)賬,系統(tǒng)自動彈出對話框,點擊OK,銷售界面所有信息將自動清空.如圖5-9:</p><p> 如圖5-9 完成結(jié)賬彈出對話框界面</p><p><b> 主要代碼:</b></p><p&
76、gt; ADOQuery2.SQL.Add('Select SUM(Subtotal) from Sell_Minor Where InvoiceID="'+Label6.Caption+'"');</p><p> ADOQuery2.Open;</p><p> j:=strtocurr(edit5.text)-strtocur
77、r(label5.Caption);</p><p> jiezhang:= '結(jié)賬成功,應(yīng)收金額:'+label5.Caption+'元'+' 實收金額:'+edit5.Text+'元'+' 找補'+currtostr(j)+' 歡迎你下次光臨!';</p><p> showme
78、ssage(jiezhang);</p><p> Label5.Caption := FormatFloat('0.00',ADOQuery2.Fields[0].AsCurrency);</p><p> edit5.text:='0.00';</p><p> adoquery1.Active:=false;</p&
79、gt;<p><b> 5.3.2后臺模塊</b></p><p> 后臺程序流程圖如圖5-10:</p><p> 圖5-10 后臺程序流程圖</p><p><b> 主頁面模塊:</b></p><p> 管理員登錄后進入主該頁面.如圖5-11:</p>
80、<p> 如圖5-11 主頁面界面</p><p> 基本資料模塊:包括供應(yīng)商資料模塊,計量單位模塊,會員資料模塊.</p><p> 三個模塊均可實現(xiàn)對資料的添加,刪除.運用DELPHI自帶的導(dǎo)航鍵實現(xiàn)操作..如圖5-12,圖5-13,圖5-14:</p><p> 圖5-12 供應(yīng)商資料模塊</p><p> 圖5
81、-13 計量單位模塊</p><p> 圖5-14 會員資料模塊</p><p><b> 進銷存模塊:</b></p><p> 包括采購入庫,庫存盤點,進貨統(tǒng)計,出庫明細.</p><p><b> 采購入庫模塊:</b></p><p> 在用戶按
82、下確定按鈕時,將讀取存儲入庫數(shù)據(jù)表,以添加該登記入數(shù)據(jù)庫,如果點取消,該表單的輸入將被取消,不會將數(shù)據(jù)存儲到數(shù)據(jù)庫。</p><p> 輸入商品條碼,點ENTER,自動從數(shù)據(jù)庫調(diào)出數(shù)據(jù),輸入數(shù)量,點確定,即可實現(xiàn)商品的入庫。如圖5-15,5-16:</p><p> 圖5-15 錄入入庫信息界面</p><p> 圖5-16 成功入庫界面</p>
83、<p><b> 主要代碼:</b></p><p> i:=strtoint(dbedit4.Text);</p><p> j:=i+strtoint(edit2.Text);</p><p> if(edit1.text<>'')and (edit2.Text<>'
84、39;) then</p><p><b> begin</b></p><p> adoquery1.SQL.clear;</p><p> adoquery1.SQL.Add('update stock');</p><p> adoquery1.SQL.add('set stocks
85、calar=:a where barcode=:b');</p><p> adoquery1.Parameters.ParamByName('a').Value :=j;</p><p> adoquery1.Parameters.ParamByName('b').value:=edit1.Text;</p><p>&
86、lt;b> try</b></p><p> //adoquery1.Active:=true;</p><p> adoquery1.ExecSQL;</p><p> showmessage('成功入庫,點確定繼續(xù)');</p><p><b> except</b><
87、;/p><p> showmessage('成功入庫,點確定繼續(xù)');</p><p> edit1.Clear;</p><p> edit2.Clear;</p><p> edit1.SetFocus;</p><p> 以上為入庫代碼,庫存數(shù)量增加的代碼</p><p&
88、gt; procedure Tfrm_login.Edit2KeyPress(Sender: TObject; var Key: Char);</p><p><b> begin</b></p><p> if key=#13 then</p><p><b> begin</b></p><
89、p> bitbtn1.Click;</p><p><b> end;</b></p><p><b> end;</b></p><p> 這段代碼從實際上來說,可以是可有可無的,但是在提供用戶的可操作性上,這段代碼處理了用戶敲回車鍵的默認處理動作,所以可以說是系統(tǒng)一個比較好的亮點。</p>
90、<p> 庫存盤點,進貨統(tǒng)計,出庫明細模塊均是可按條碼和名稱查詢,并使用DELPHI自帶的導(dǎo)航鍵實現(xiàn)添加,刪除等操作,分別如圖5-17,5-18,5-19:</p><p> 圖5-17 庫存盤點模塊</p><p><b> 主要代碼:</b></p><p> if(radiobutton1.Checked=true)
91、and (edit1.text<>'')then</p><p><b> begin</b></p><p> adoquery1.SQL.Clear;</p><p> adoquery1.SQL.Add('select * from stock');</p><p>
92、; adoquery1.SQL.add('where barcode="'+edit1.Text+'"');</p><p> adoquery1.Active:=true;</p><p><b> end;</b></p><p> if(radiobutton2.Checked
93、=true) and (edit1.text<>'')then</p><p><b> begin</b></p><p> adoquery1.SQL.Clear;</p><p> adoquery1.SQL.Add('select * from stock');</p>&
94、lt;p> adoquery1.SQL.add('where goodsname="'+edit1.Text+'"');</p><p> adoquery1.Active:=true;</p><p><b> end;</b></p><p> 圖5-18 進貨統(tǒng)計模塊&
95、lt;/p><p> 功能:該模塊主要是實現(xiàn)進行進貨查詢和管理</p><p> 進貨查詢:該模塊為企業(yè)提供整個企業(yè)的進貨情況查詢,也可以進行進貨的明細查詢. </p><p> 圖5-19 出庫明細模塊</p><p><b> 主要代碼:</b></p><p> if(radiobu
96、tton1.Checked=true) and (edit1.text<>'')then</p><p><b> begin</b></p><p> adoquery1.SQL.Clear;</p><p> adoquery1.SQL.Add('select * from purchase'
97、;);</p><p> adoquery1.SQL.add('where barcode="'+edit1.Text+'"');</p><p> adoquery1.Active:=true;</p><p><b> end;</b></p><p>
98、if(radiobutton2.Checked=true) and (edit1.text<>'')then</p><p><b> begin</b></p><p> adoquery1.SQL.Clear;</p><p> adoquery1.SQL.Add('select * from pu
99、rchase');</p><p> adoquery1.SQL.add('where goodsname="'+edit1.Text+'"');</p><p> adoquery1.Active:=true;</p><p><b> end;</b></p>
100、<p> 系統(tǒng)管理模塊:包括修改密碼和退出系統(tǒng)</p><p> 退出系統(tǒng):選擇退出系統(tǒng),將關(guān)閉整個系統(tǒng),結(jié)束本次使用。</p><p> 修改密碼模塊如圖5-20:</p><p> 圖5-20 修改密碼界面</p><p><b> 主要代碼:</b></p><p>
101、 if(edit1.Text<>'') then</p><p><b> begin</b></p><p> adoquery1.SQL.Clear;</p><p> adoquery1.SQL.Add('select * from manager where username="
102、39;+frm_login.Label3.Caption+'"');</p><p> adoquery1.SQL.add(' and userpass="'+edit1.Text+'"');</p><p> adoquery1.Open;</p><p> if(adoquery
103、1.RecordCount<>0) then</p><p><b> begin</b></p><p> if(edit2.Text=edit3.Text) then</p><p><b> begin</b></p><p> adoquery1.Close;</p
104、><p> adoquery1.SQL.Clear;</p><p> adoquery1.SQL.add('update manager set userpass="'+edit2.Text+'"');</p><p> adoquery1.ExecSQL;</p><p> show
105、message('用戶密碼修改成功');</p><p><b> close;</b></p><p><b> end</b></p><p><b> else</b></p><p> showmessage('新密碼和驗證密碼不一致!&
106、#39;);</p><p><b> end</b></p><p><b> else</b></p><p> showmessage('原始密碼錯誤');</p><p><b> 測試要點</b></p><p> 對
107、商品編碼入庫程序進行測試,利用測試用例填入表單,對其進行數(shù)據(jù)庫數(shù)據(jù)存儲測試,看看所填數(shù)據(jù)能否存入數(shù)據(jù)表中。</p><p> 庫存信息維護,對數(shù)據(jù)庫中的數(shù)據(jù)進行修改,刪除,更新操作,查看維護功能能否實現(xiàn)。</p><p> 跟測試用例是否相符,相符則功能能夠?qū)崿F(xiàn),測試成功。</p><p> 6 結(jié)果測試,性能分析</p><p>
108、完成對流程的編碼后最重要的事情就是對系統(tǒng)的測試工作了,測試在系統(tǒng)設(shè)計階段有兩個時期,通常在編寫每個模塊后做單元測試,另一個時期是對系統(tǒng)的綜合測試。</p><p><b> 6.1模塊測試</b></p><p> 在模塊測試時我們主要從以下幾個方面考慮:</p><p><b> 1. 模塊接口</b></p
109、><p><b> 2. 局部數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 3. 重要執(zhí)行通道</b></p><p><b> 4. 出錯處理通道</b></p><p> 5. 影響上述方面的邊界條件</p><p> 測試時進行代碼審查,從數(shù)據(jù)
110、類型,變量聲明,數(shù)據(jù)結(jié)構(gòu)進行審查,然后進行功能測試,從輸入一些簡單的數(shù)據(jù)開始執(zhí)行一遍,觀測運行期間變量的變化,運行中值的變化范圍。改變測試方案來變換另一個角度進行測試,發(fā)現(xiàn)錯誤并記錄,修改代碼,測試條件使程序通過多層分支,判別運行結(jié)果從而完成模塊測試。</p><p> 6.1.1前臺模塊的測試</p><p><b> 用戶登錄的測試:</b></p>
111、;<p> 管理員輸入正確的用戶名和密碼,如輸入測試用例用戶名001,密碼00,則可自動跳轉(zhuǎn)到銷售界面。若輸入錯誤密碼,或不存在的用戶名,則彈出錯誤提示框。 (功能運行正常)</p><p><b> 銷售主頁面的測試:</b></p><p> 輸入正確的,存在的商品條碼,和數(shù)量,系統(tǒng)將從數(shù)據(jù)庫調(diào)出數(shù)據(jù),顯示相應(yīng)信息在下方導(dǎo)航框內(nèi),并在應(yīng)收金額出
112、現(xiàn)相應(yīng)價格計算總和.若輸入錯誤的條碼,則會彈出錯誤提示框。 (功能運行正常)</p><p> 若選中會員結(jié)賬輸入存在的會員卡號,則會彈出歡迎的對話框,點OK后,折扣處變?yōu)?0,若輸入錯誤的卡號,則會彈出錯誤的提示框。 (功能運行正常)</p><p> 6.1.2后臺模塊的測試</p><p><b> 采購入庫的測試:</b><
113、/p><p> 若輸入存在的條碼,點ENTER,則會自動調(diào)出相應(yīng)商品信息,輸入數(shù)量后點確定,則成功入庫,若輸入錯誤條碼,或不存在的條碼,則會彈出錯誤提示框。(功能運行正常)</p><p><b> 出庫明細的測試:</b></p><p> 選中按條形碼查詢,輸入正確條形碼則會顯示所輸入條形碼的出庫情況,若輸入字符,則無查詢信息出現(xiàn).選中按
114、名稱查詢,輸入正確商品名稱則會顯示所輸入商品名稱對應(yīng)的出庫情況,若輸入數(shù)字或非正確商品名稱則無查詢信息出現(xiàn)。(功能運行正常)</p><p><b> 修改密碼的測試:</b></p><p> 用戶成功進入自己的角色,就可以進行密碼的修改了(功能運行正常)</p><p><b> 6.2整體測試</b></
115、p><p> 總體測試是組裝軟件的系統(tǒng)技術(shù),本系統(tǒng)測試采用漸增集成測試,即測試單一模塊,將測試完的模塊加入系統(tǒng)中,進行一次系統(tǒng)測試,依次類推將所有模塊加入系統(tǒng)中,在具體測試時,采用自頂向下的結(jié)合方式,從主控模塊開始,沿各控制層向下移動,把所有模塊結(jié)合了。 </p><p> 在測試過程中使用到調(diào)試技術(shù)</p><p> 1. 采用調(diào)試語句,跟蹤數(shù)據(jù)</p&
116、gt;<p> 2. 嵌入對話框語句,輸出中間結(jié)果</p><p> 3. 設(shè)置斷點,觀察程序在斷點附近的狀況</p><p><b> 結(jié) 論</b></p><p> 在學(xué)習(xí)了Delphi和數(shù)據(jù)庫,對其有一定了解的情況下,完成了超市收費系統(tǒng)的設(shè)計與實現(xiàn)。在這次編程的過程中,我查閱了大量的書籍,在網(wǎng)上也查了不少資料
117、,使我的編程水平有了大幅度的提高。本文主要討論了各模塊功能設(shè)計,工作原理,程序?qū)崿F(xiàn)等問題。使用Delphi提供的ADO數(shù)據(jù)庫操作組件實現(xiàn)了對數(shù)據(jù)庫的各項操作,也熟悉了Delphi的開發(fā)應(yīng)用環(huán)境和軟件開發(fā)的一般流程。由于這次設(shè)計涉及到數(shù)據(jù)庫,也學(xué)到了不少編程工具和數(shù)據(jù)庫連接的知識,對數(shù)據(jù)庫的操作有了進一步的了解。總之,這次的畢業(yè)設(shè)計使我的軟件設(shè)計水平有了巨大的提高。</p><p><b> 參考文獻&
118、lt;/b></p><p> 伊文敏.Delphi + SQL Server數(shù)據(jù)庫應(yīng)用實例完全解析[M].北京:人民郵電出版社。</p><p> Macro Cantu.Delphi 2005從入門到精通[M].北京:電子工業(yè)出版社 </p><p> 啟明工作室.Delphi + SQL Server數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)與實例[M].北京:人民郵
119、電出版社。</p><p> 巴克納爾.Delphi算法與數(shù)據(jù)結(jié)構(gòu)[M].北京:中國電力出版社。</p><p> 宋坤,鄒天思.Delphi數(shù)據(jù)庫系統(tǒng)開發(fā)完全手冊[M].北京:人民郵電出版社。</p><p><b> 致 謝</b></p><p> 經(jīng)過三個月的艱苦努力,我終于完成了超市收費系統(tǒng)的全部
120、設(shè)計過程,并使該系統(tǒng)達到可實際應(yīng)用的階段。在此,感謝游洪躍老師和盛志偉老師的精心指導(dǎo)。</p><p> 這次實習(xí),無論是從技術(shù)上還是對環(huán)境的適應(yīng)能力上講,對我今后步入社會都打下了一個良好的基礎(chǔ)。在實習(xí)過程中,我也遇到了一些困難,主要表現(xiàn)了技術(shù)和經(jīng)驗的欠缺,但通過努力和老師的指導(dǎo),終于一一克服了。</p><p> 在整個實習(xí)期間,還得到了同學(xué)的大力支持和幫助,在此表示衷心的感謝!&l
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文--超市收費系統(tǒng)的設(shè)計與實現(xiàn)
- 通用超市管理系統(tǒng)的設(shè)計與實現(xiàn)【畢業(yè)論文】
- 畢業(yè)論文——超市信息管理系統(tǒng)設(shè)計與實現(xiàn)
- 畢業(yè)論文—小型超市信息管理系統(tǒng)的設(shè)計與實現(xiàn)
- 超市收銀系統(tǒng)自動化測試的設(shè)計與實現(xiàn)畢業(yè)論文
- 軟件工程畢業(yè)論文-超市收銀管理系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計----超市收費系統(tǒng)
- 超市管理系統(tǒng)設(shè)計畢業(yè)論文
- 畢業(yè)論文---高校超市管理系統(tǒng)的設(shè)計與實現(xiàn)(含外文翻譯)
- 停車場收費管理管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 畢業(yè)論文---基于web的超市管理系統(tǒng)的設(shè)計和實現(xiàn)
- 畢業(yè)論文---基于web的超市管理系統(tǒng)的設(shè)計和實現(xiàn)
- 畢業(yè)論文---基于web的超市管理系統(tǒng)的設(shè)計和實現(xiàn)
- 中小型超市商品管理系統(tǒng)設(shè)計與實現(xiàn) 【畢業(yè)論文】
- 畢業(yè)論文——網(wǎng)絡(luò)房產(chǎn)信息超市的設(shè)計與實現(xiàn)
- 畢業(yè)論文——網(wǎng)絡(luò)房產(chǎn)信息超市的設(shè)計與實現(xiàn)
- 超市管理信息系統(tǒng)設(shè)計與實現(xiàn)-本科畢業(yè)論文設(shè)計
- 畢業(yè)設(shè)計(論文)超市銷售管理系統(tǒng)的設(shè)計與實現(xiàn)
- 超市管理系統(tǒng)畢業(yè)論文
- 超市管理系統(tǒng)畢業(yè)論文
評論
0/150
提交評論