




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.超市收銀系統(tǒng)設(shè)計(jì)分析一、 系統(tǒng)整體架構(gòu)圖1從圖1可以看出,系統(tǒng)框架很清晰,用戶登錄,根據(jù)用戶權(quán)限的不同,對(duì)應(yīng)不同的操作方法,操作對(duì)象為商品。但本系統(tǒng)要求使用C/S框架結(jié)構(gòu)來(lái)設(shè)計(jì)。C/S框架介紹:C/S 結(jié)構(gòu),即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。C/S 結(jié)構(gòu)的基本原則是將計(jì)算機(jī)應(yīng)用任務(wù)分解成多個(gè)子任務(wù),由多臺(tái)計(jì)算機(jī)分工完成,即采用“功能分布”原則??蛻舳送瓿蓴?shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;服務(wù)器端完成DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))的核心功能。這種客戶請(qǐng)求服務(wù)、服務(wù)器提供服務(wù)的處理方式是一種新型的計(jì)算機(jī)應(yīng)用模式。Client和Server常常分別處在相距很遠(yuǎn)的兩臺(tái)計(jì)算機(jī)上,Client程序的任務(wù)是將
2、用戶的要求提交給Server程序,再將Server程序返回的結(jié)果以特定的形式顯示給用戶;Server程序的任務(wù)是接收客戶程序提出的服務(wù)請(qǐng)求,進(jìn)行相應(yīng)的處理,再將結(jié)果返回給客戶程序。鑒于超市收銀系統(tǒng)的特性,本系統(tǒng)不牽扯多個(gè)客戶端,不需要線程同步。二、 代碼設(shè)計(jì)框架因?yàn)槭褂肅/S框架設(shè)計(jì)程序,因此有固定的設(shè)計(jì)步驟:1. 項(xiàng)目包的設(shè)計(jì):圖2client包:主要由客戶端操作界面類和客戶端業(yè)務(wù)類組成,客戶端操作類也就是客戶端main方法類,主要負(fù)責(zé)引導(dǎo)用戶操作,提供系統(tǒng)界面信息提示操作,包括:初始化登錄視圖、商品庫(kù)存管理視圖和收銀管理視圖;客戶端業(yè)務(wù)類主要包括處理客戶端請(qǐng)求并將客戶端請(qǐng)求打包發(fā)送給服務(wù)器
3、的方法和一些輔助操作方法。處理庫(kù)存管理員請(qǐng)求方法為:商品入庫(kù)、商品出庫(kù)、新增商品、查詢?nèi)可唐泛桶淳幪?hào)查詢商品;處理收銀員請(qǐng)求方法為:掃描商品、修改購(gòu)買數(shù)量商品和結(jié)賬。entity包:主要由系統(tǒng)所涉及的實(shí)體類組成,根據(jù)操作視圖可以確定為用戶類和商品類。圖3 用戶信息圖4 商品信息server包:主要由服務(wù)器主流程類(線程類)和服務(wù)器(數(shù)據(jù)處理)業(yè)務(wù)類組成,服務(wù)器主流程類也即main方法類,主要負(fù)責(zé)接收客戶端請(qǐng)求,并根據(jù)請(qǐng)求標(biāo)志信息分配相應(yīng)操作,最后再將處理數(shù)據(jù)發(fā)送給客戶端;服務(wù)器數(shù)據(jù)處理業(yè)務(wù)類主要由處理客戶端請(qǐng)求的方法和商品信息庫(kù)組成。util包:util包為實(shí)用工具包,主要包括項(xiàng)目中一些工具
4、類,主要包括數(shù)據(jù)處理類(加密、解密、數(shù)據(jù)轉(zhuǎn)換、特殊文件操作和數(shù)據(jù)打包)和常量類。本項(xiàng)目主要包括數(shù)據(jù)打包類、常量類和proprties文件操作類。perties文件:Properties文件是一個(gè)文本文件;properties文件的語(yǔ)法有兩種,一種是注釋,一種是屬性配置;注釋:前面加上#號(hào);屬性配置:以“鍵=值”的方式書寫一個(gè)屬性的配置信息。Properties類本身表示了對(duì)一種Map結(jié)構(gòu)的操作,properties文件本身就表示一個(gè)“鍵值對(duì)”的集合,因此,Properties類屬于集合容器的家族,在使用前應(yīng)該創(chuàng)建一個(gè)Properties的容器,實(shí)際上就是創(chuàng)建一個(gè)默認(rèn)不帶參數(shù)的Pr
5、operties對(duì)象,通過別的方式給里面添加“鍵值對(duì)”。perties在本項(xiàng)目的作用主要用來(lái)配置服務(wù)器信息:主機(jī)名和端口號(hào)。2、項(xiàng)目設(shè)計(jì)知識(shí)點(diǎn)本項(xiàng)目主要設(shè)計(jì)關(guān)鍵知識(shí)點(diǎn):類和對(duì)象,封裝,繼承,異常,集合和泛型,輸入/輸出,多線程和網(wǎng)絡(luò)編程。3、代碼編寫思路1) 創(chuàng)建項(xiàng)目2) 創(chuàng)建Java包:客戶端包,服務(wù)器包,實(shí)體包,實(shí)用工具包。3) 創(chuàng)建配置文件:.properties文件或 .xml文件。4) 創(chuàng)建各Java包中的類文件:客戶端包:客戶端操作界面類和客戶端業(yè)務(wù)類;服務(wù)器包:服務(wù)器主流程類(線程類)和服務(wù)器業(yè)務(wù)類(數(shù)據(jù)處理);實(shí)體包:根據(jù)具體項(xiàng)目情況創(chuàng)建;實(shí)用工具包:ü
6、 數(shù)據(jù)包類:主要儲(chǔ)存客戶端和服務(wù)器之間交互的關(guān)鍵數(shù)據(jù),包括實(shí)體對(duì)象和邏輯判斷標(biāo)志等;ü 常量類:客戶端和服務(wù)器之間需要共同使用的狀態(tài)常量,一般為業(yè)務(wù)操作標(biāo)識(shí)符和系統(tǒng)信息常量(正確、錯(cuò)誤狀態(tài)常量,配置信息常量)。ü 工具類:一般為配置文件的操作類。5) 編寫個(gè)項(xiàng)目文件(由簡(jiǎn)入繁:?jiǎn)蝹€(gè)功能實(shí)現(xiàn)到全部功能拓展)。6) 項(xiàng)目調(diào)試。三、 具體代碼分析1. perties文件編寫該文件主要用戶配置socket套接字屬性:主機(jī)名和端口號(hào),在此配置信息為:圖5 sys信息2. 實(shí)體類編寫根據(jù)entity包分析可知:Goods類和Users類。Goods類:圖6 Goods類U
7、sers類:圖7 Users類注:因?yàn)樯婕暗絪ocket編程,因此兩實(shí)體類均需要序列化。3. 實(shí)用工具包類編寫1) 數(shù)據(jù)包類(Datas類):因?yàn)樵擁?xiàng)目為超市收銀系統(tǒng),根據(jù)項(xiàng)目效果圖可知,主要設(shè)計(jì)對(duì)象為:商品對(duì)象(goods),用戶對(duì)象(user);為便于商品信息操作,創(chuàng)建商品集合,又因?yàn)闋砍兜綆?kù)存管理和收銀兩個(gè)類,進(jìn)而創(chuàng)建庫(kù)存商品集合和購(gòu)買商品集合;又因?yàn)闋砍兜娇蛻舳撕头?wù)器端業(yè)務(wù)請(qǐng)求操作,因此創(chuàng)建業(yè)務(wù)操作標(biāo)識(shí)變量:flag。具體內(nèi)容如下:圖8 Datas類圖9 庫(kù)存商品集合應(yīng)用需求圖10 購(gòu)買商品集合應(yīng)用需求注:因?yàn)樯婕暗絪ocket編程,Datas類需要序列化。2) 工具類(Tools類
8、文件):Tools文件主要用于操作perties文件,對(duì)perties文件操作之前,首先需要加載源文件(鑒于加載操作特殊性(提前操作),使用static塊來(lái)封裝),然后才能讀取perties文件中鍵對(duì)應(yīng)的值。該類主要是用于讀取socket參數(shù)信息(host,port)。圖11Propertis方法:void load(InputStream inStream) 從輸入流中讀取屬性列表(鍵和元素對(duì))。ClassLoader類:類加載器是負(fù)責(zé)加載類的對(duì)象。InputStream getResourceAsStream(String name):返回讀取指定
9、資源的輸入流。3) 常量類:由代碼編寫思路分析可知:常量類列表主要由以下幾個(gè)部門組成:系統(tǒng)配置常量,系統(tǒng)信息反饋常量,系統(tǒng)操作常量,管理員操作常量,收銀員操作常量。圖12 常量列表注:具體常量參數(shù)可以在具體編程中增加或刪減。4. 客戶端類編寫1) 客戶端操作界面類:客戶端操作界面類主要完成如下工作:(1)用戶登錄(2)用戶操作用戶登錄有兩個(gè)選項(xiàng):管理員和收銀員;用戶操作也分別按照管理員和收銀員來(lái)展開。圖13 管理員登錄成功視圖圖14 收銀員登錄成功視圖鑒于登錄操作只有兩個(gè)選項(xiàng),采用if-else編寫較為快捷。具體代碼截圖如下:圖15登錄操作代碼管理員操作和業(yè)務(wù)員操作選擇較多,因此采用switc
10、h來(lái)實(shí)現(xiàn)較為合適,具體代碼截圖如下:圖16 管理員操作代碼圖17 收銀員操作代碼main()方法:原則上main()越簡(jiǎn)單越好,具體代碼截圖如下:圖18 main()方法代碼注:代碼編寫按如上模塊來(lái)進(jìn)行編寫(登錄方法,管理員操作方法,收銀員方法),具體方法的實(shí)現(xiàn)依靠客戶端業(yè)務(wù)類,本類中主要負(fù)責(zé)視圖的引導(dǎo)和顯示,可以分模塊來(lái)進(jìn)行編寫和調(diào)試,遵循由簡(jiǎn)入繁原則。2) 客戶端業(yè)務(wù)類:客戶端類的方法編寫主要為滿足客戶端操作界面類的需求且需要實(shí)現(xiàn)與服務(wù)器端的信息交互(通過socket編程實(shí)現(xiàn)),因此具體代碼包括登錄信息的處理(方法),管理員視圖下的業(yè)務(wù)操作處理(方法),收銀員視圖下的業(yè)務(wù)操作處理(方法),
11、以及業(yè)務(wù)操作過程需要的邏輯操作方法的編寫。具體代碼截圖如下:圖19 客戶端業(yè)務(wù)方法因?yàn)樾枰褂胹ocket編程來(lái)實(shí)現(xiàn)客戶端與服務(wù)器的數(shù)據(jù)通信,因此需要socket的初始化和socket的關(guān)閉操作。具體代碼如下:圖20 socket的初始化和關(guān)閉操作注:客戶端業(yè)務(wù)類的調(diào)試應(yīng)該在服務(wù)器類的框架搭好之后進(jìn)行(可以完成基本的通信應(yīng)答操作)。客戶端編程關(guān)鍵點(diǎn):客戶端發(fā)送數(shù)據(jù)編寫原則,通過Datas類中的屬性參數(shù)作為載體,即對(duì)客戶信息,商品信息和業(yè)務(wù)操作常量標(biāo)識(shí)符進(jìn)行數(shù)據(jù)打包,統(tǒng)統(tǒng)將需要發(fā)送的關(guān)鍵信息封裝到Datas對(duì)象內(nèi),然后將這個(gè)對(duì)象發(fā)送給服務(wù)器,具體代碼截圖如下:圖21 商品入庫(kù)關(guān)鍵信息Datas打
12、包發(fā)送代碼同時(shí)讀取服務(wù)器端返回的Datas數(shù)據(jù),提取需要的信息進(jìn)行處理和判斷,其中包括狀態(tài)常量信息(success或error),具體代碼截圖如下:圖22 讀取服務(wù)器返回?cái)?shù)據(jù)并處理5. 服務(wù)器類編寫1) 服務(wù)器主流程類:服務(wù)器主流程類也即線程類,本線程類采用繼承Thread父類來(lái)實(shí)現(xiàn)。run()方法主要負(fù)責(zé)讀取客戶端發(fā)送過來(lái)的數(shù)據(jù),提取業(yè)務(wù)操作常量標(biāo)識(shí),然后分別進(jìn)行相應(yīng)的操作,具體的數(shù)據(jù)處理依靠服務(wù)器業(yè)務(wù)類來(lái)實(shí)現(xiàn),然后在將處理好的數(shù)據(jù)打包(Datas)發(fā)送給客戶端,具體代碼截圖如下:圖23 讀取客戶端數(shù)據(jù)并進(jìn)行相應(yīng)的操作代碼圖24 將處理好的數(shù)據(jù)打包發(fā)送給客戶端操作代碼2) 服務(wù)器業(yè)務(wù)類:服務(wù)器業(yè)務(wù)類主要包括兩部分:基礎(chǔ)數(shù)據(jù):用戶信息(管理員和收銀員的賬號(hào)、密碼-ROM型),庫(kù)存商品信息(ROM型),購(gòu)買商品信息(RAM型);處理客戶端請(qǐng)求的數(shù)據(jù)處理方法?;A(chǔ)數(shù)據(jù)以后可用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)生體像認(rèn)知與醫(yī)學(xué)美容態(tài)度的關(guān)系調(diào)查
- 山東省濟(jì)南市2024-2025學(xué)年高三上學(xué)期期末學(xué)習(xí)質(zhì)量檢測(cè)英語(yǔ)試題【含答案】
- 室內(nèi)廚房設(shè)計(jì)施工方案
- 挖碴裝車施工方案
- 地坪施工訂做方案范本
- 5年級(jí)學(xué)霸數(shù)學(xué)筆記
- 2025年規(guī)劃數(shù)學(xué)試題及答案
- 等邊三角形電荷電場(chǎng)線
- c.d級(jí)危房安全風(fēng)險(xiǎn)隱患問題及短板
- 接口處防水施工方案
- 2025年蛇年年度營(yíng)銷日歷營(yíng)銷建議【2025營(yíng)銷日歷】
- 2024年黑龍江哈爾濱“丁香人才周”(秋季)事業(yè)單位引才招聘2074人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- ISO22301新版標(biāo)準(zhǔn)翻譯(中英對(duì)照)
- 學(xué)術(shù)論文的撰寫方法與規(guī)范
- 建設(shè)工程施工合同農(nóng)民工工資補(bǔ)充協(xié)議
- 智研咨詢發(fā)布:汽車雨刮器總成產(chǎn)業(yè)百科(附行業(yè)現(xiàn)狀、相關(guān)政策及發(fā)展驅(qū)動(dòng)因素分析)
- DL∕T 2577-2022 軸流轉(zhuǎn)漿式水輪發(fā)電機(jī)組檢修規(guī)程
- 2023年四川省綿陽(yáng)市中考數(shù)學(xué)試卷
- 《統(tǒng)編教材背景下小學(xué)語(yǔ)文整本書閱讀策略的研究》中期報(bào)告
- (正式版)JBT 2930-2024 低壓電器產(chǎn)品型號(hào)編制方法
- 【課件】2024屆新高考英語(yǔ)語(yǔ)法填空專項(xiàng).解題技巧課件
評(píng)論
0/150
提交評(píng)論