超市管理系統(tǒng)02551_第1頁
超市管理系統(tǒng)02551_第2頁
超市管理系統(tǒng)02551_第3頁
超市管理系統(tǒng)02551_第4頁
超市管理系統(tǒng)02551_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件工程課程設(shè)計(jì)報(bào)告( 2014 - 2015 年度第 一 學(xué)期)課程名稱: 軟件工程課程設(shè)計(jì) 題 目: 小型超市管理系統(tǒng) 院 系:計(jì)算機(jī)與信息技術(shù)學(xué)院班 級(jí): 軟件工程 組 號(hào): 組 長(zhǎng): 洛佳琪 組 員:劉雅、劉一清、王雪瑤指導(dǎo)教師: 楊陟卓 設(shè)計(jì)周數(shù): 4周 小組成績(jī): 日期:2014 年 8月26日軟件工程課程設(shè)計(jì)任務(wù)書一、目的、要求通過軟件開發(fā)的實(shí)踐訓(xùn)練,進(jìn)一步掌握軟件工程的方法和技術(shù),提高軟件開發(fā)的實(shí)際能力,培養(yǎng)工程設(shè)計(jì)能力和綜合分析、解決問題的能力。具體如下:l 學(xué)習(xí)和實(shí)踐在分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng)所需要的知識(shí),包括面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì),編碼和測(cè)試方面的知識(shí);l 熟悉自動(dòng)化的

2、軟件開發(fā)工具Rational Rose 2003等,并將其運(yùn)用于軟件開發(fā)的全過程;l 進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫能力;l 培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。二、任務(wù)分配任務(wù)負(fù)責(zé)人參與人備注需求分析洛佳琪洛佳琪總體設(shè)計(jì)劉一清洛佳琪,劉雅,劉一清詳細(xì)設(shè)計(jì)劉雅洛佳琪,劉雅系統(tǒng)實(shí)現(xiàn)與測(cè)試王雪瑤洛佳琪,王雪瑤三、設(shè)計(jì)成果要求l 建立系統(tǒng)分析與設(shè)計(jì)模型;l 初步建立系統(tǒng)原型,實(shí)現(xiàn)關(guān)鍵的功能;l 編寫課程設(shè)計(jì)報(bào)告。指導(dǎo)教師:楊陟卓 日 期: 2014 年 8 月 26 日軟件工程課程設(shè)計(jì)成績(jī)?cè)u(píng)定一、 指導(dǎo)教師評(píng)語二、 成績(jī)學(xué)號(hào)姓名成績(jī)備注2012242058洛佳琪2012242054劉雅2012242055劉

3、一清2012242082王雪瑤 指導(dǎo)教師: 楊陟卓 日 期:2014 年 8 月 26 日摘要:本系統(tǒng)實(shí)現(xiàn)一個(gè)超市管理系統(tǒng)的基本功能,包括營(yíng)業(yè)員進(jìn)行商品錄入和收銀業(yè)務(wù);超市經(jīng)理對(duì)商品銷售進(jìn)行控制,管理進(jìn)貨事項(xiàng)和商品庫(kù)存;管理員對(duì)員工信息進(jìn)行增、刪、改、查,管理員工操作權(quán)限,管理客戶銷售權(quán)限;顧客可以在銷售系統(tǒng)里查詢商品信息和會(huì)員積分。系統(tǒng)利用Java平臺(tái)技術(shù)進(jìn)行開發(fā),實(shí)現(xiàn)超市管理系統(tǒng)的動(dòng)態(tài)管理,使得對(duì)信息的管理更加及時(shí)、高效,提高了效率。同時(shí)還對(duì)系統(tǒng)的開發(fā)原理、功能特點(diǎn)和設(shè)計(jì)方案進(jìn)行了介紹。關(guān)鍵詞:超市管理 數(shù)據(jù)庫(kù) 管理 Java1 課程設(shè)計(jì)的目的與要求通過軟件開發(fā)的實(shí)踐訓(xùn)練,進(jìn)一步掌握軟件工

4、程的方法和技術(shù),提高軟件開發(fā)的實(shí)際能力,培養(yǎng)工程設(shè)計(jì)能力和綜合分析、解決問題的能力。具體如下:(1) 學(xué)習(xí)和實(shí)踐在分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng)所需要的知識(shí),包括面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì),編碼和測(cè)試方面的知識(shí);(2) 熟悉自動(dòng)化的軟件開發(fā)工具Rational Rose 2003,并將其運(yùn)用于軟件開發(fā)的全過程;(3) 進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫能力;(4) 培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。2 設(shè)計(jì)正文2.1 概述2. 1.1 課題題目:小型超市管理系統(tǒng)2. 1.2 系統(tǒng)的主要目標(biāo)本系統(tǒng)目標(biāo)是實(shí)現(xiàn)小型超市管理系統(tǒng)所需的各種基本功能,包括營(yíng)業(yè)員商品錄入和收銀業(yè)務(wù);超市經(jīng)理商品銷售控制、管理進(jìn)貨和商品庫(kù)存;

5、管理員對(duì)員工信息進(jìn)行增、刪、改、查,管理員工操作權(quán)限,管理客戶銷售權(quán)限;顧客可以在銷售系統(tǒng)里查詢商品信息和會(huì)員積分等功能。2. 1.3 系統(tǒng)的開發(fā)環(huán)境及運(yùn)行環(huán)境:操作系統(tǒng): Windows XP Pro SP2建模工具: Rational Rose 2003數(shù)據(jù)庫(kù)系統(tǒng):SQL Server2005開發(fā)工具: Eclipse2.2 系統(tǒng)需求分析小型超市管理系統(tǒng)主要滿足來自四方面的需求,這四個(gè)方面分別是營(yíng)業(yè)員、超市經(jīng)理、顧客和管理員,也即是四個(gè)對(duì)象。(1)營(yíng)業(yè)員主要有商品錄入和收銀業(yè)務(wù)兩部分功能。商品錄入:根據(jù)超巿業(yè)務(wù)特點(diǎn)制定相關(guān)功能,可以通過輸入唯一編號(hào)、掃描條形碼、商品名稱等來實(shí)現(xiàn)精確或模糊的

6、商品掃描錄入。該掃描錄入方法可以充分保證各種電腦操作水平層次的人員均能準(zhǔn)確快速地進(jìn)行商品掃描錄入。收銀業(yè)務(wù):通過掃描條形碼或者直接輸入商品名稱(對(duì)于同類多件商品采用一次錄入加數(shù)量的方式)自動(dòng)計(jì)算本次交易的總金額。在顧客付款后,自動(dòng)計(jì)算找零,同時(shí)打印交易清單(包括交易的流水賬號(hào)、每類商品的商品名、數(shù)量、該類商品的總金額、交易的時(shí)間、負(fù)責(zé)本次收銀的員工號(hào))。如果顧客是本店會(huì)員并持有本人會(huì)員卡,則在交易前先掃描會(huì)員卡,并對(duì)所購(gòu)物品全部實(shí)行95折優(yōu)惠,并將所購(gòu)物品的總金額累計(jì)到該會(huì)員的總消費(fèi)金額中。 會(huì)員卡的有效期限為一年,滿一年未續(xù)卡者,該會(huì)員卡將被注銷。(2)超市經(jīng)理主要有商品銷售控制,進(jìn)貨管理和

7、庫(kù)存管理三部分功能。銷售管理: 商品正常銷售、促銷與限量、限期及禁止銷售控制。 綜合查詢各種銷售明細(xì)記錄、各地收銀員收銀記錄以及交結(jié)賬情況等。 按多種方式統(tǒng)計(jì)生成銷售排行榜,靈活察看和打印商品銷售日、月、年報(bào)表。進(jìn)貨管理: 根據(jù)銷售情況及庫(kù)存情況,自動(dòng)制定進(jìn)貨計(jì)劃(亦可手工制定修改),可以避免盲目進(jìn)貨造成商品積壓。 按計(jì)劃單有選擇性地進(jìn)行自動(dòng)入庫(kù)登記。 綜合查詢打印計(jì)劃進(jìn)貨與入庫(kù)記錄及金額。庫(kù)存管理: 綜合查詢庫(kù)存明細(xì)記錄。 庫(kù)存狀態(tài)自動(dòng)告警提示。如庫(kù)存過剩、少貨、缺貨等。軟件為您預(yù)警,避免庫(kù)存商品積壓損失和缺貨。 庫(kù)存自動(dòng)盤點(diǎn)計(jì)算。(3)管理員主要有基本信息管理和員工操作權(quán)限管理三部分。基本

8、信息管理:對(duì)員工、會(huì)員信息進(jìn)行增、刪、改、查。員工操作權(quán)限管理:一般員工只能登陸系統(tǒng)查看個(gè)人信息及簽到,其余權(quán)限受限制;營(yíng)業(yè)員還可以登陸收銀系統(tǒng)。(4)會(huì)員主要有會(huì)員積分查詢。會(huì)員積分查詢:是會(huì)員的顧客查詢自己積分?jǐn)?shù)并兌換相應(yīng)禮品。2.1.1 用例圖 圖2-1 小型超市管理系統(tǒng)用例圖用例圖說明:(1) 系統(tǒng)的外部角色有:會(huì)員用戶、營(yíng)業(yè)員用戶、員工用戶、超市經(jīng)理和管理員。(2)系統(tǒng)主要用例的文檔描述:收銀業(yè)務(wù)用例:營(yíng)業(yè)員用戶和顧客用戶可見的功能,包含了會(huì)員業(yè)務(wù)和結(jié)賬兩個(gè)用例功能。 員工操作權(quán)限管理用例:管理員用戶和員工用戶可見的功能,這個(gè)用例進(jìn)一步分為三個(gè)用例:簽到權(quán)限用例、查詢個(gè)人信息權(quán)限用例

9、和登陸收銀系統(tǒng)權(quán)限用例。基本信息管理用例:管理員用戶可見的功能,實(shí)現(xiàn)員工、會(huì)員信息的管理功能,包含了員工基本信息管理和會(huì)員基本信息管理兩個(gè)用例。商品銷售控制用例:超市經(jīng)理用戶可見的功能,實(shí)現(xiàn)商品銷售的控制功能,包含了正常銷售控制、促銷與限量、限期銷售控制、禁止銷售控制和查詢明細(xì)五個(gè)用例。進(jìn)貨管理用例:超市經(jīng)理用戶可見的功能,包含了自動(dòng)制定進(jìn)貨計(jì)劃、自動(dòng)入庫(kù)登記、查詢計(jì)劃進(jìn)貨和查詢?nèi)霂?kù)記錄及金額四個(gè)用例。庫(kù)存管理用例:超市經(jīng)理用戶可見的功能,包含了自動(dòng)盤點(diǎn)計(jì)算、查詢庫(kù)存明細(xì)、庫(kù)存狀態(tài)自動(dòng)報(bào)警三個(gè)用例。(3)系統(tǒng)用例之間的關(guān)系:收銀業(yè)務(wù)用例與會(huì)員業(yè)務(wù)、結(jié)賬兩用例之間是包含關(guān)系。員工操作權(quán)限管理用例

10、與簽到權(quán)限、查詢個(gè)人信息權(quán)限和登陸收銀系統(tǒng)權(quán)限三用例之間是包含關(guān)系。基本信息管理用例與員工基本信息管理、會(huì)員基本信息管理兩個(gè)用例之間是包含關(guān)系。商品銷售控制用例與正常銷售控制、促銷與限量、限期銷售控制、禁止銷售控制和查詢明細(xì)五個(gè)用例之間是包含關(guān)系。進(jìn)貨管理用例與自動(dòng)制定進(jìn)貨計(jì)劃、自動(dòng)入庫(kù)登記、查詢計(jì)劃進(jìn)貨和查詢?nèi)霂?kù)記錄及金額四個(gè)用例之間是包含關(guān)系。庫(kù)存管理用例與自動(dòng)盤點(diǎn)計(jì)算、查詢庫(kù)存明細(xì)、庫(kù)存狀態(tài)自動(dòng)報(bào)警三個(gè)用例之間是包含關(guān)系。(4) 系統(tǒng)關(guān)鍵用例的正常事件流圖和異常事件流圖 表2-1 結(jié)賬用例的正常事件流圖和異常事件流圖用例名稱結(jié)賬參與者營(yíng)業(yè)員、顧客描述營(yíng)業(yè)員、顧客結(jié)賬啟動(dòng)點(diǎn)擊“結(jié)賬”按鈕前

11、置條件商品錄入完成主事件流用戶系統(tǒng)1.系統(tǒng)自動(dòng)計(jì)算出商品價(jià)格2.顧客付款3.系統(tǒng)將價(jià)款和貨款比對(duì)后找零4.系統(tǒng)將實(shí)際收到價(jià)款打入超市賬戶中異常流異常流貨款無法進(jìn)入超市賬戶系統(tǒng)貨款無法成功轉(zhuǎn)入超市賬戶,系統(tǒng)給出提示,要求重新進(jìn)行轉(zhuǎn)入或要求管理員維修系統(tǒng)異常網(wǎng)絡(luò)連接超時(shí)或系統(tǒng)功能損壞 表2-2 進(jìn)貨管理用例的正常事件流圖和異常事件流圖用例名稱進(jìn)貨管理用例參與者超市經(jīng)理用戶描述超市經(jīng)理管理進(jìn)貨事項(xiàng)啟動(dòng)進(jìn)入進(jìn)貨管理界面前置條件用戶成功登錄后置條件如果該用例成功,數(shù)據(jù)庫(kù)中將增加商品信息。否則,系統(tǒng)維持現(xiàn)狀主事件流用戶系統(tǒng)1.用戶進(jìn)入界面,登陸成功2.根據(jù)銷售情況單及庫(kù)存情況單,自動(dòng)制定進(jìn)貨計(jì)劃3.按計(jì)劃

12、有選擇性地進(jìn)行自動(dòng)入庫(kù)登記4.系統(tǒng)綜合查詢打印計(jì)劃進(jìn)貨與入庫(kù)記錄及金額異常流異常流制定進(jìn)貨計(jì)劃失敗系統(tǒng)銷售情況單及庫(kù)存情況單錯(cuò)誤,系統(tǒng)給出錯(cuò)誤提示,并要求進(jìn)行修改后重新給出 2.2.2 類圖圖2-2 小型超市管理系統(tǒng)類圖類圖說明:(1)BaseUser類是一個(gè)系統(tǒng)角色用戶的基類,主要方法有兩個(gè):modifyPWD() 用于修改用戶的密碼;loginCheck() 用于用戶登錄驗(yàn)證。(2)Admin類繼承自BaseUser類。(3)Staff類繼承自BaseUser類,主要方法有:STAdd() 用于添加員工;STDel() 用于刪除員工;STUpdate() 用于更新員工信息;STSel()

13、用于查詢員工信息。(4)manager類繼承自BaseUser類,主要方法有:MAAdd() 用于添加經(jīng)理;MADel() 用于刪除經(jīng)理;MAUpdate() 用于更新經(jīng)理信息;MASel() 用于查詢經(jīng)理信息。(5)VIP Member類繼承自BaseUser類,主要方法有:VIPAdd() 用于添加經(jīng)理;VIPDel() 用于刪除經(jīng)理;VIPUpdate() 用于更新經(jīng)理信息;VIPSel() 用于查詢經(jīng)理信息。(6)Good類是一個(gè)商品類,主要方法有:GOAdd() 用于增加商品;GODel() 用于刪除商品。(7) Sell類是一個(gè)銷售類,主要方法有:GODel() 用于刪除商品。 (

14、8)Replenish類是一個(gè)進(jìn)貨類,主要方法有: GOAdd() 用于增加商品。 (9)Stock類是一個(gè)庫(kù)存類,主要方法有: StockAdd()用于增加庫(kù)存量; StockDel()用于減少庫(kù)存量; StockSel()用于查詢庫(kù)存量; StockUpdate()用于更新庫(kù)存量。 2.2.3 時(shí)序圖 (1) 營(yíng)業(yè)員管理會(huì)員時(shí)序圖 圖2-3 營(yíng)業(yè)員管理會(huì)員時(shí)序圖(2)超市經(jīng)理管理員工時(shí)序圖 圖2-4 超市經(jīng)理管理員工的時(shí)序圖2.2.3 協(xié)作圖 (1) 營(yíng)業(yè)員管理會(huì)員協(xié)作圖 圖2-5 營(yíng)業(yè)員管理會(huì)員協(xié)作圖(2)超市經(jīng)理管理員工協(xié)作圖 圖2-6 超市經(jīng)理管理員工協(xié)作圖2.3 系統(tǒng)總體設(shè)計(jì)2.3

15、.1 設(shè)計(jì)問題域子系統(tǒng)本系統(tǒng)目標(biāo)是實(shí)現(xiàn)小型超市管理系統(tǒng)所需的各種基本功能,分為前臺(tái)和后臺(tái),共有五大模塊,分別為:營(yíng)業(yè)員模塊,顧客模塊,超市經(jīng)理模塊,管理員模塊和公有模塊。這五個(gè)模塊包含了營(yíng)業(yè)員進(jìn)行商品錄入和收銀業(yè)務(wù);超市經(jīng)理對(duì)商品銷售進(jìn)行控制,管理進(jìn)貨事項(xiàng)和商品庫(kù)存;管理員對(duì)員工信息進(jìn)行增、刪、改、查,管理員工操作權(quán)限,管理客戶銷售權(quán)限;顧客可以在銷售系統(tǒng)里查詢商品信息和會(huì)員積分等基本功能。(1) 總體設(shè)計(jì)圖小型超市管理系統(tǒng)總體設(shè)計(jì)圖(2)各模塊功能功能模塊包含子功能模塊功能管理員模塊客戶管理子模塊刪除,添加,更改用戶及用戶信息員工管理子模塊刪除,添加,更改員工及員工信息超市經(jīng)理模塊商品價(jià)格更

16、改,管理進(jìn)貨事項(xiàng)和商品庫(kù)存營(yíng)業(yè)員模塊商品錄入和收銀業(yè)務(wù)會(huì)員模塊查詢會(huì)員積分,管理個(gè)人信息公共模塊登陸界面,企業(yè)介紹及超市活動(dòng)信息2.3.2 設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)(1)數(shù)據(jù)庫(kù)表序號(hào)數(shù)據(jù)庫(kù)表數(shù)據(jù)表存儲(chǔ)的內(nèi)容1staff存儲(chǔ)員工信息2member存儲(chǔ)會(huì)員信息3commodity存儲(chǔ)商品信息4supplier存儲(chǔ)供應(yīng)商信息5storage存儲(chǔ)倉(cāng)庫(kù)信息6manufacturer存儲(chǔ)廠商信息7product存儲(chǔ)生產(chǎn)信息8supply存儲(chǔ)供應(yīng)信息9procure存儲(chǔ)采購(gòu)信息10store存儲(chǔ)存儲(chǔ)信息11purchase存儲(chǔ)購(gòu)買信息(2) 數(shù)據(jù)表之間的關(guān)系 數(shù)據(jù)表之間的關(guān)系圖(3) 數(shù)據(jù)庫(kù)表結(jié)構(gòu) 1)員工表St

17、aff的詳細(xì)數(shù)據(jù)字段:Staff員工信息表序號(hào)字段名字段類型說明備注1sta.noChar員工編號(hào)關(guān)鍵字2Char員工姓名3sta.sexChar員工性別4sta.addChar員工住址5sta.telChar員工電話6sta.wagChar員工工資7sta.IDChar員工身份證號(hào) 2)會(huì)員表member的詳細(xì)數(shù)據(jù)字段:Member會(huì)員信息表序號(hào)字段名字段類型說明備注1mem.noChar會(huì)員卡號(hào)關(guān)鍵字2Char會(huì)員姓名3mem.sexChar會(huì)員性別4mem.IDChar會(huì)員身份證號(hào)5mem.addDate會(huì)員地址6mem.telDate會(huì)員電話 3)商品表

18、commodity的詳細(xì)數(shù)據(jù)字段 commodity 商品員信息表序號(hào)字段名字段類型說明備注1com.noChar商品編號(hào)關(guān)鍵字2Char商品名稱3com.numChar商品單位4com.priChar商品價(jià)格com.typeChar商品種類 4)供應(yīng)商supplier的詳細(xì)數(shù)據(jù)字段supplier供應(yīng)商信息表序號(hào)字段名字段類型說明備注1sup.noChar供應(yīng)商編號(hào)關(guān)鍵字2Char供應(yīng)商名稱3sup.telChar供應(yīng)商電話4sup.addChar供應(yīng)商地址5sup.posChar供應(yīng)商郵編6sup.manChar供應(yīng)商聯(lián)系人 5)倉(cāng)庫(kù)storage的詳細(xì)數(shù)據(jù)

19、字段Storage倉(cāng)庫(kù)信息表序號(hào)字段名字段類型說明備注1sto.noChar倉(cāng)庫(kù)編號(hào)關(guān)鍵字2sto.areaChar倉(cāng)庫(kù)面積3sto.typeChar倉(cāng)庫(kù)類別4sto.addChar倉(cāng)庫(kù)地址 6)廠商manufacturer的詳細(xì)字段manufacturer廠商信息表序號(hào)字段名字段類型說明備注1man.noChar廠商編號(hào)關(guān)鍵字2Char廠商名稱3man.telChar廠商電話4man.posChar廠商郵編5man.addChar廠商地址6man.manChar廠商聯(lián)系人 2.3.3 設(shè)計(jì)人機(jī)交互子系統(tǒng)(1)用戶分類本系統(tǒng)的用戶可分為四類:1)管理員用戶;2)會(huì)員用戶;3)員

20、工用戶;4)超市經(jīng)理用戶。(2)用戶描述1)管理員用戶的描述:管理員用戶在整個(gè)小型超市管理系統(tǒng)中起到管理和維護(hù)的作用,對(duì)會(huì)員和員工的信息進(jìn)行管理和維護(hù)等職責(zé)。2)會(huì)員用戶的描述:會(huì)員用戶在本系統(tǒng)中具有管理自己信息的權(quán)限,查看自己積分情況及超市會(huì)員優(yōu)惠的權(quán)限。3)員工用戶的描述:?jiǎn)T工在本系統(tǒng)中具有修改自己的信息,查看商品價(jià)格及庫(kù)存情況的權(quán)限。 4)超市經(jīng)理用戶的描述: 超市經(jīng)理有商品銷售控制,進(jìn)貨管理和庫(kù)存管理的權(quán)限,他可以管理庫(kù) 存,控制進(jìn)貨,更改商品價(jià)格等。(3)設(shè)計(jì)命令層次1)系統(tǒng)的人機(jī)交互子系統(tǒng)的內(nèi)容和準(zhǔn)則:本小型超市管理系統(tǒng)的人機(jī)交互子系統(tǒng)在根據(jù)不同的用戶身份登陸到不同的頁面,然后按照

21、不同的用戶只能進(jìn)行用戶權(quán)限內(nèi)的操作,其結(jié)構(gòu)圖如下:2)通過采用樹形結(jié)構(gòu),細(xì)化命令的組織方式,如下:2.4 詳細(xì)設(shè)計(jì)小型超市管理系統(tǒng)是實(shí)現(xiàn)管理員管理員工與會(huì)員基本信息、員工登陸系統(tǒng)以及超市經(jīng)理管理進(jìn)貨、庫(kù)存、商品銷售的一個(gè)平臺(tái),整個(gè)學(xué)生選課系統(tǒng)共分為5個(gè)大模塊:管理員模塊,會(huì)員模塊,員工模塊,超市經(jīng)理模塊和公有模塊,其中復(fù)雜的方法和模塊的詳細(xì)設(shè)計(jì)流程圖如下。 (1) 系統(tǒng)用戶登錄流程圖 圖4-1 系統(tǒng)用戶登錄流程圖(2)營(yíng)業(yè)員收銀業(yè)務(wù)流程圖 圖4-2 營(yíng)業(yè)員收銀業(yè)務(wù)流程圖(3)管理員添加員工流程圖 圖4-3管理員添加員工流程圖(4)超市經(jīng)理控制限量銷售流程圖 圖4-4 超市經(jīng)理控制限量銷售流程圖

22、(5)超市經(jīng)理管理進(jìn)貨流程圖 圖4-5 超市經(jīng)理管理進(jìn)貨流程圖(6)超市經(jīng)理管理庫(kù)存流程圖 圖4-6 超市經(jīng)理管理庫(kù)存流程圖2.5 系統(tǒng)實(shí)現(xiàn)本系統(tǒng)采用了三層架構(gòu)來實(shí)現(xiàn),即分為用戶界面層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL),用戶界面層是展示給用戶的界面,方便用戶與系統(tǒng)進(jìn)行交互;業(yè)務(wù)邏輯層是對(duì)系統(tǒng)業(yè)務(wù)實(shí)體的封裝,完成系統(tǒng)業(yè)務(wù)功能;數(shù)據(jù)訪問層直接與數(shù)據(jù)庫(kù)打交道,為業(yè)務(wù)邏輯層提供底層的數(shù)據(jù)庫(kù)操作。 登錄功能實(shí)現(xiàn)登錄界面是使用者在使用此軟件時(shí)需要輸入自已的賬號(hào)和密碼,從而使用自已的權(quán)限來管理超市的運(yùn)行。小超市登錄界面如4-1所示。 圖4-1 小超市管理系統(tǒng)登錄界面模塊核心代碼:publi

23、c class Login extends Frame implements ActionListener,WindowListener /登陸界面 public int screanWidth,screanHeight; String idin=null; String keyin=null; String passwordD=null; public static String persontyD=null; MenuBar menubar; Menu menu; MenuItem quet,help; Label id,key; TextField idtf,keytf; Box box

24、V1,boxV2,boxV3,baseBox,boxx; Button enterB; Login() setTitle("超市管理系統(tǒng)登陸界面"); Toolkit tool=getToolkit(); Dimension dim=tool.getScreenSize(); screanWidth=dim.width; screanHeight=dim.height; setBounds(dim.width/3,dim.height/3,320,215); menubar=new MenuBar(); menu=new Menu("功能"); help

25、=new MenuItem("幫助"); quet=new MenuItem("退出"); quet.setShortcut(new MenuShortcut(KeyEvent.VK_E); quet.addActionListener(new ActionListener() /匿名類實(shí)例控制public void actionPerformed(ActionEvent p)System.exit(0); ); menu.add(help); menu.add(quet); menubar.add(menu); setMenuBar(menubar);

26、 id=new Label("請(qǐng)輸入帳號(hào):",Label.RIGHT); key=new Label("請(qǐng)輸入密碼:",Label.RIGHT); idtf=new TextField(10); keytf=new TextField(10); keytf.setEchoChar('*'); enterB=new Button("登陸"); boxV1=Box.createVerticalBox(); boxV1.add(Box.createVerticalStrut(35); boxV1.add(id); boxV1

27、.add(Box.createVerticalStrut(15); boxV1.add(key); boxV1.add(Box.createVerticalStrut(15); boxV2=Box.createVerticalBox(); boxV2.add(Box.createVerticalStrut(35); boxV2.add(idtf); boxV2.add(Box.createVerticalStrut(15); boxV2.add(keytf); boxV2.add(Box.createVerticalStrut(15); baseBox=Box.createHorizontal

28、Box(); baseBox.add(Box.createHorizontalStrut(25); baseBox.add(boxV1); baseBox.add(Box.createHorizontalStrut(5); baseBox.add(boxV2); baseBox.add(Box.createHorizontalStrut(70); boxV3=Box.createHorizontalBox(); boxV3.add(Box.createHorizontalStrut(125); boxV3.add(enterB); boxV3.add(Box.createHorizontalS

29、trut(125); boxx=Box.createVerticalBox(); boxx.add(baseBox); boxx.add(Box.createVerticalStrut(15); boxx.add(boxV3); boxx.add(Box.createVerticalStrut(70); add(boxx); enterB.addActionListener(this); addWindowListener(this); setResizable(false); setVisible(true);public void actionPerformed(ActionEvent e

30、)Connection con;Statement sql;ResultSet rs;if (e.getSource()=enterB)idin=idtf.getText();keyin=keytf.getText(); try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException f) System.out.println(""+f); trycon=DriverManager.getConnection("jdbc:odbc:q",

31、"","");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM password where ID='"+idin+"'");while(rs.next()passwordD=rs.getString(2);persontyD=rs.getString(3);con.close();catch (SQLException g)System.out.println(g); if (keyin.equals(passwordD) V

32、iew2 frame=new View2(); this.setVisible(false); else JOptionPane.showMessageDialog(this," 帳戶或密碼錯(cuò)誤n 請(qǐng)重新輸入","提示",JOptionPane.WARNING_MESSAGE); public void windowActivated(WindowEvent o)validate();public void windowDeactivated(WindowEvent o)setBounds(screanWidth/3,screanHeight/3,320

33、,215);validate();public void windowClosing(WindowEvent o)dispose();public void windowClosed(WindowEvent o)System.exit(0);public void windowIconified(WindowEvent o)public void windowDeiconified(WindowEvent o)setBounds(screanWidth/3,screanHeight/3,320,215); validate();public void windowOpened(WindowEv

34、ent o)4.2 銷售界面功能介紹該功能是此系統(tǒng)的最關(guān)鍵的模塊,是消費(fèi)者直接使用的功能。消費(fèi)者可以根據(jù)已看到的商,在搜索欄中打入商品的編號(hào),進(jìn)行查詢商品的信息,然后可以依椐自已的需要購(gòu)買。最后單擊提交,購(gòu)買的商品就記錄到系統(tǒng)的數(shù)據(jù)庫(kù)中。銷售的主界面如圖4-2所示:圖 4-2 銷售的主界面4.2.1 搜索商品的信息 消費(fèi)者可根據(jù)自已所需要的商品編號(hào),在銷售功能中搜索,查看商品的信息無誤后,確定是否購(gòu)買。如搜索001號(hào)商品,查看它的信息,如圖4-3所示。圖4-3 搜索001號(hào)商品的信息4.2.2 購(gòu)買商品在確定自已需要的商品后,然后就是購(gòu)買商品,消費(fèi)者可以按“購(gòu)買”鍵進(jìn)行購(gòu)買物品,購(gòu)買一份就單擊

35、一次“購(gòu)買”鍵,購(gòu)買物品的信息顯示在購(gòu)物信息框中,最后單擊“提交”,消費(fèi)者所購(gòu)買的物品就作為一個(gè)賬單號(hào)存儲(chǔ)在數(shù)據(jù)庫(kù)中。如購(gòu)買004、005、006、008、010和011號(hào)商品時(shí),購(gòu)買信息如圖4-4下: 圖4-4 購(gòu)買信息當(dāng)購(gòu)買人不想購(gòu)買這些商品時(shí),可以點(diǎn)擊窗口左下角的清除按鈕,來清除剛才購(gòu)買的商品,數(shù)據(jù)庫(kù)中也不會(huì)有此記錄。此外,本系統(tǒng)是每購(gòu)買一件商品向數(shù)據(jù)庫(kù)提交一次記錄,當(dāng)未點(diǎn)擊提交按鈕之前,若要結(jié)束此窗口進(jìn)程,我們?cè)诖a中嵌入了一段刪除當(dāng)前帳單的數(shù)據(jù)庫(kù)記錄代碼,以達(dá)到?jīng)]有誤提交的操作。4.2.3 模塊的核心代碼 銷售界面的實(shí)現(xiàn)public class View2 extends JFram

36、e implements ActionListener /銷售界面String num=null,name=null,time=null,add=null,t1=null,t2=null,t3=null;int price=0;int n1,n2,ap,n3; private JPanel sM=new JPanel(); /supermarket面板private JButton pS=new JButton("銷售界面"),new JButton("銷售管理"), new JButton("商品管理"),new JButton(&

37、quot;權(quán)限管理");/personty 按鈕 private JTextArea goodsShow=new JTextArea(), searchShow=new JTextArea(); /文本區(qū) private JScrollPane jsp=new JScrollPane(goodsShow); /滾動(dòng)區(qū)域 設(shè)定內(nèi)容為 商品顯示的文本區(qū)private JTextField numSearch=new JTextField(),showGoods=new JTextField(); /商品查詢/顯示商品 private JButton searchGoods=new JBu

38、tton("搜索"),buyGoods=new JButton("購(gòu)買"), clean=new JButton("清空"), ok=new JButton("提交"),print=new JButton("打印并提交"); /查詢按鈕private JLabel goodsInformation=new JLabel("商品編碼",JLabel.CENTER),new JLabel("商品名稱",JLabel.CENTER), new JLabel(&q

39、uot;商品價(jià)格",JLabel.CENTER),new JLabel("生產(chǎn)日期",JLabel.CENTER),new JLabel("生產(chǎn)地",JLabel.CENTER) ;private JLabel goodsI=new JLabel("商品編碼",JLabel.CENTER),new JLabel("商品名稱",JLabel.CENTER), new JLabel("商品價(jià)格",JLabel.CENTER),new JLabel("生產(chǎn)日期",JLab

40、el.CENTER),new JLabel("生產(chǎn)地",JLabel.CENTER) ; private JLabel allPrice=new JLabel("商品總價(jià):n ",JLabel.LEFT),label1=new JLabel("商品信息 ",JLabel.RIGHT),label2=new JLabel("購(gòu)物信息 ",JLabel.RIGHT); public View2()sM.setLayout(null);for(int i=0;i<4;i+)pSi.setBounds(550+i*1

41、10,50,100,22);sM.add(pSi);pSi.addActionListener(this); jsp.setBounds(100,180,800,500); goodsShow.setLineWrap(true) numSearch.setBounds(100,50,150,22); searchGoods.setBounds(260,50,60,22); searchGoods.addActionListener(this); buyGoods.setBounds(330,50,60,22); buyGoods.addActionListener(this); showGoo

42、ds.setBounds(100,120,800,22); for (int b=0;b<5 ;b+ ) goodsInformationb.setBounds(100+160*b,87,160,30); sM.add(goodsInformationb); for (int b=0;b<5 ;b+ ) goodsIb.setBounds(100+160*b,150,160,30); sM.add(goodsIb); clean.setBounds(100,690,100,22); clean.addActionListener(this); ok.setBounds(690,69

43、0,100,22); ok.addActionListener(this); print.setBounds(800,690,100,22); print.addActionListener(this); allPrice.setBounds(900,480,100,50); label1.setBounds(20,120,80,22); label2.setBounds(20,180,80,22); sM.add(label1); sM.add(label2); sM.add(allPrice); sM.add(print); sM.add(ok); sM.add(showGoods); s

44、M.add(clean); sM.add(numSearch); sM.add(searchGoods); sM.add(buyGoods); sM.add(jsp); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) Connection con;Statement sql;ResultSet rs;try if (n3!=0) int a1=0; con=DriverManager.getConnection("jdbc:odbc:q","",

45、""); sql=con.createStatement(); rs=sql.executeQuery("SELECT MAX(編號(hào)) from information"); while(rs.next() a1=rs.getInt(1); for (int i=0;i<n3 ;i+ ) sql.executeUpdate("delete from information where 編號(hào)="+(a1-i); con.close(); ap=0; num=null;name=null;price=0;time=null;add=

46、null;n3=0; goodsShow.setText(null); catch (SQLException g)System.out.println(g); System.exit(0); ); this.add(sM); this.setTitle("銷售窗口"); this.setResizable(false); this.setBounds(0,0,1024,768); this.setVisible(true); validate(); 購(gòu)買商品功能的代碼if(p.getSource()=buyGoods) /購(gòu)買按鍵 tryif (num!=null)con

47、=DriverManager.getConnection("jdbc:odbc:q","","");sql=con.createStatement();sql.executeUpdate("insert into information(listnum,goodsnum) values('"+n2+"','"+num+"')");rs=sql.executeQuery("SELECT * FROM information where

48、listnum="+n2);n3+;/記錄購(gòu)買商品個(gè)數(shù)con.close();goodsShow.append(" "+num+" "+name+" "+price+" "+time+" "+add+"n"); elseJOptionPane.showMessageDialog(this,"請(qǐng)選擇商品","提示",JOptionPane.WARNING_MESSAGE);ap=ap+price;/總價(jià)allPrice.setT

49、ext("商品總價(jià):n"+ap);catch (SQLException g)System.out.println(g); if(p.getSource()=ok) try if (n3!=0) con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); sql.executeUpdate("insert into information(listnum,allprice) values('"+n2+"','"+ap+&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論