2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p>  基于Android的ESL管理系統(tǒng)的設(shè)計(jì)與開發(fā)</p><p><b>  摘要</b></p><p>  本文是闡述電子標(biāo)簽管理系統(tǒng)是如何在安卓操作系

2、統(tǒng)上實(shí)現(xiàn)的。首先是介紹本系統(tǒng)用到的相關(guān)技術(shù):Java、Android、ORMLite框架等;接著是介紹本系統(tǒng)是如何設(shè)計(jì)的,系統(tǒng)的需求分析、系統(tǒng)的功能模塊、系統(tǒng)的流程、數(shù)據(jù)表的設(shè)計(jì);最后是介紹系統(tǒng)關(guān)鍵模塊的實(shí)現(xiàn)。</p><p>  本系統(tǒng)存儲(chǔ)數(shù)據(jù)主要是安卓系統(tǒng)自帶的數(shù)據(jù)庫(kù)SQLite,SQLite是一款安卓系統(tǒng)自帶的輕量級(jí)數(shù)據(jù)庫(kù),而用到的Java對(duì)象關(guān)系映射持久層框架是ORMLite框架。</p>

3、<p>  對(duì)于本Android電子貨架標(biāo)簽系統(tǒng),能夠非常有效地提高超市管理人員的工作效率,解決大量的商品標(biāo)簽難以管理的問題,再之,由于本系統(tǒng)是基于移動(dòng)設(shè)備的,利用其優(yōu)勢(shì),使用戶操作更加簡(jiǎn)單,更人性化。</p><p>  關(guān)鍵詞:安卓,SQLite,電子貨架標(biāo)簽</p><p><b>  Abstract</b></p><p>

4、  This is said that how the ESL(electronic shelf label) system implemented on the android operating system. Is first introduced related technologies of this system used: Java, Android, ORMLite framework, etc.Then is intr

5、oduced this system is how to design, system requirement analysis, system function module, system process, the design of the data table.The last is the realization of the system key module.</p><p>  The syste

6、m storage data is mainly the database system at android SQLite, SQLite is a lightweight database system at the android, and use a Java object relational mapping is ORMLite persistence layer framework.</p><p>

7、;  For this ESL(electronic shelf label) system based on Android, can be effectively improved the supermarket management personnel's work efficiency and solve the problem of a large number of labels that are difficult

8、 to manage, again, because this system is based on mobile devices, use of its advantages, the user operation more simple, more human.</p><p>  Keyword: Android,SQLite,ESL</p><p><b>  目

9、錄</b></p><p><b>  1緒論1</b></p><p>  1.1關(guān)于ESL(電子貨架標(biāo)簽)1</p><p>  1.2傳統(tǒng)紙價(jià)簽與電子貨架標(biāo)簽1</p><p><b>  2相關(guān)技術(shù)2</b></p><p>  2.1J

10、ava技術(shù)與JavaBean2</p><p>  2.2Android2</p><p>  2.3ORMLite框架4</p><p>  2.4開發(fā)工具4</p><p><b>  3系統(tǒng)設(shè)計(jì)5</b></p><p>  3.1需求分析5</p>&l

11、t;p>  3.2系統(tǒng)功能模塊5</p><p>  3.3系統(tǒng)流程7</p><p>  3.4數(shù)據(jù)表設(shè)計(jì)8</p><p>  4系統(tǒng)關(guān)鍵模塊實(shí)現(xiàn)16</p><p>  4.1數(shù)據(jù)庫(kù)工具類的實(shí)現(xiàn)16</p><p>  4.2登錄模塊的實(shí)現(xiàn)18</p><p>

12、;  4.3標(biāo)簽管理模塊的實(shí)現(xiàn)18</p><p>  4.3.1標(biāo)簽列表模塊18</p><p>  4.3.2模板列表模塊23</p><p>  4.3.3型號(hào)列表模塊24</p><p>  4.4商品管理模塊的實(shí)現(xiàn)25</p><p>  4.4.1商品列表模塊25</p>

13、<p>  4.4.2快速綁定模塊28</p><p>  4.4.3商品替換模塊29</p><p>  4.5銷售管理模塊的實(shí)現(xiàn)30</p><p><b>  總結(jié)32</b></p><p><b>  參考文獻(xiàn)33</b></p><p&g

14、t;<b>  致謝34</b></p><p><b>  緒論</b></p><p>  關(guān)于ESL(電子貨架標(biāo)簽)</p><p>  ESL(Electronic Shelf Label)電子貨架標(biāo)簽[1]是一種放在商品貨架上可替代傳統(tǒng)紙質(zhì)價(jià)格標(biāo)簽的電子顯示裝置,電子貨架標(biāo)簽通過網(wǎng)絡(luò)與商場(chǎng)計(jì)算機(jī)相連,并將商品名

15、稱及最新的商品價(jià)格等信息通過電子貨架標(biāo)簽上的屏顯示出來。電子貨架標(biāo)簽擺脫了手動(dòng)更換價(jià)格標(biāo)簽的狀況,實(shí)現(xiàn)了收銀臺(tái)與貨架之間的價(jià)格一致性。</p><p>  一套完整的電子貨架標(biāo)簽系統(tǒng)包括主計(jì)算機(jī)、電子貨架標(biāo)簽和智能手持終端設(shè)備幾部分組成。首先數(shù)據(jù)庫(kù)里的商品信息由主計(jì)算機(jī)通過電子貨架標(biāo)簽系統(tǒng)應(yīng)用軟件作編碼處理,然后將需要更新的價(jià)格等信息通過無線信號(hào)發(fā)送至整個(gè)賣場(chǎng);電子貨架標(biāo)簽是一個(gè)個(gè)帶身份識(shí)別碼的無線數(shù)據(jù)接收器,它

16、們能夠?qū)⒔邮盏降男畔@示出來,電子貨架標(biāo)簽系統(tǒng)具有點(diǎn)對(duì)點(diǎn)和群發(fā)兩種通訊功能,即:主計(jì)算機(jī)既可以對(duì)某個(gè)指定標(biāo)簽進(jìn)行傳送數(shù)據(jù),也可以一次性地對(duì)所有標(biāo)簽進(jìn)行控制。每個(gè)電子貨架標(biāo)簽內(nèi)部都存儲(chǔ)有對(duì)應(yīng)商品的多條信息,營(yíng)業(yè)員可以借助智能手持終端設(shè)備方便地查詢核對(duì)。</p><p>  貨架標(biāo)簽放置在特制的PVC導(dǎo)軌內(nèi)(導(dǎo)軌固定在貨架上),也可以設(shè)置為懸掛式或者致力式多種結(jié)構(gòu)。電子貨架標(biāo)簽系統(tǒng)還支持遠(yuǎn)程控制,總部可以通過網(wǎng)絡(luò)對(duì)其

17、連鎖分部的商品統(tǒng)一標(biāo)價(jià)管理。</p><p>  傳統(tǒng)紙價(jià)簽與電子貨架標(biāo)簽</p><p>  傳統(tǒng)紙價(jià)簽:1頻繁的商品信息更改,消耗大量人工且錯(cuò)出錯(cuò)率高(人工更換一個(gè)價(jià)簽至少兩分鐘);2更換錯(cuò)誤率為6%,標(biāo)簽丟失率為2%;3變價(jià)效率導(dǎo)致商品價(jià)簽和收銀系統(tǒng)價(jià)格不統(tǒng)一造成的價(jià)格“欺詐”;4紙質(zhì)價(jià)簽涉及的紙張、油墨、打印等人工成本;5國(guó)內(nèi)人工成本的提高迫使零售業(yè)尋找新的銷售增長(zhǎng)點(diǎn)。</p

18、><p>  電子貨架標(biāo)簽:1變價(jià)快速及時(shí):可以在很短的時(shí)間內(nèi)完成幾萬(wàn)個(gè)價(jià)簽的變價(jià),同時(shí)完成與收銀系統(tǒng)的對(duì)接電子貨架標(biāo)簽優(yōu)勢(shì);2可增加變價(jià)促銷頻率;3變價(jià)錯(cuò)誤率為0.00001%;4單個(gè)電子價(jià)簽可一次使用6年左右;5提升店面形象及客戶滿意度;6降低人力成本、管理成本及或有成本。[11]</p><p><b>  相關(guān)技術(shù)</b></p><p>

19、  Java技術(shù)與JavaBean</p><p>  1、JAVA[2-4]是由SUN公司推出的一種優(yōu)秀的程序設(shè)計(jì)語(yǔ)言。它最大的特點(diǎn)是一次編寫即可以在不同的系統(tǒng)上運(yùn)行(Write once run anywhere),與操作系統(tǒng)無關(guān),在Microsoft Windows、UNIX、Linux以及MacOS等多種操作系統(tǒng)上,都可以使用相同的代碼。JAVA有以下基本特點(diǎn):簡(jiǎn)單、面向?qū)ο?、分布式、解釋型、健壯性、安?/p>

20、性、可移植性、多線程、動(dòng)態(tài)等。由于JAVA的跨平臺(tái)特性而且適合網(wǎng)絡(luò)環(huán)境,因此,被視為開發(fā)服務(wù)器端應(yīng)用程序的最理想的程序語(yǔ)言。</p><p>  2、JavaBean[2,3] 是一種基于JAVA語(yǔ)言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBean 通過提供符合一致性設(shè)計(jì)模式的公共方法將內(nèi)部域暴露成員屬性。眾所周知,屬性名稱符合這種模式,其他Java 類可

21、以通過自身機(jī)制發(fā)現(xiàn)和操作這些JavaBean 的屬性。</p><p><b>  Android</b></p><p>  Android[5-7]是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。</p><p>  1、Android 系統(tǒng)架構(gòu)<

22、/p><p>  Android 大致可以分為四層架構(gòu),五塊區(qū)域。</p><p>  (1)Linux 內(nèi)核層:Android 系統(tǒng)是基于Linux 2.6 內(nèi)核的,這一層為Android 設(shè)備的各種硬件提供了底層的驅(qū)動(dòng),如顯示驅(qū)動(dòng)、音頻驅(qū)動(dòng)、照相機(jī)驅(qū)動(dòng)、藍(lán)牙驅(qū)動(dòng)、Wi-Fi 驅(qū)動(dòng)、電源管理等。</p><p>  (2)系統(tǒng)運(yùn)行庫(kù)層:這一層通過一些C/C++庫(kù)來為A

23、ndroid 系統(tǒng)提供了主要的特性支持。如SQLite 庫(kù)提供了數(shù)據(jù)庫(kù)的支持,OpenGL|ES 庫(kù)提供了3D 繪圖的支持,Webkit 庫(kù)提供了瀏覽器內(nèi)核的支持等。同樣在這一層還有Android 運(yùn)行時(shí)庫(kù),它主要提供了一些核心庫(kù),能夠允許開發(fā)者使用Java 語(yǔ)言來編寫Android 應(yīng)用。另外Android 運(yùn)行時(shí)庫(kù)中還包含了Dalvik 虛擬機(jī),它使得每一個(gè)Android 應(yīng)用都能運(yùn)行在獨(dú)立的進(jìn)程當(dāng)中,并且擁有一個(gè)自己的Dalvik

24、 虛擬機(jī)實(shí)例。相較于Java 虛擬機(jī),Dalvik 是專門為移動(dòng)設(shè)備定制的,它針對(duì)手機(jī)內(nèi)存、CPU 性能有限等情況做了優(yōu)化處理。</p><p>  (3)應(yīng)用框架層:這一層主要提供了構(gòu)建應(yīng)用程序時(shí)可能用到的各種API,Android 自帶的一些核心應(yīng)用就是使用這些API完成的,開發(fā)者也可以通過使用這些API來構(gòu)建自己的應(yīng)用程序。</p><p>  (4) 應(yīng)用層:所有安裝在手機(jī)上的應(yīng)用

25、程序都是屬于這一層的,比如系統(tǒng)自帶的聯(lián)系人、短信等程序,或者是你從Google Play 上下載的小游戲,當(dāng)然還包括你自己開發(fā)的程序。</p><p>  2、Android 應(yīng)用開發(fā)特色</p><p>  (1)四大組件:Android 系統(tǒng)四大組件分別是活動(dòng)(Activity)、服務(wù)(Service)、廣播接收器(BroadcastReceiver)和內(nèi)容提供器(Content Pr

26、ovider)。其中活動(dòng)是所有Android 應(yīng)用程序的門面,凡是在應(yīng)用中你看得到的東西,都是放在活動(dòng)中的。而服務(wù)就比較低調(diào)了,你無法看到它,但它會(huì)一直在后臺(tái)默默地運(yùn)行,即使用戶退出了應(yīng)用,服務(wù)仍然是可以繼續(xù)運(yùn)行的。廣播接收器可以允許你的應(yīng)用接收來自各處的廣播消息,比如電話、短信等,當(dāng)然你的應(yīng)用同樣也可以向外發(fā)出廣播消息。內(nèi)容提供器則為應(yīng)用程序之間共享數(shù)據(jù)提供了可能,比如你想要讀取系統(tǒng)電話簿中的聯(lián)系人,就需要通過內(nèi)容提供器來實(shí)現(xiàn)。<

27、;/p><p>  (2)豐富的系統(tǒng)控件:Android 系統(tǒng)為開發(fā)者提供了豐富的系統(tǒng)控件,使得我們可以很輕松地編寫出漂亮的界面。當(dāng)然如果你品味比較高,不滿足于系統(tǒng)自帶的控件效果,也完全可以定制屬于自己的控件。</p><p>  (3)SQLite 數(shù)據(jù)庫(kù):Android 系統(tǒng)還自帶了這種輕量級(jí)、運(yùn)算速度極快的嵌入式關(guān)系型數(shù)據(jù)庫(kù)。它不僅支持標(biāo)準(zhǔn)的SQL 語(yǔ)法,還可以通過Android 封裝好

28、的API 進(jìn)行操作,讓存儲(chǔ)和讀取數(shù)據(jù)變得非常方便。</p><p>  (4)地理位置定位:移動(dòng)設(shè)備和PC 相比起來,地理位置定位功能應(yīng)該可以算是很大的一個(gè)亮點(diǎn)?,F(xiàn)在的Android 手機(jī)都內(nèi)置有GPS,走到哪兒都可以定位到自己的位置,發(fā)揮你的想象就可以做出創(chuàng)意十足的應(yīng)用,如果再結(jié)合上功能強(qiáng)大的地圖功能,LBS 這一領(lǐng)域潛力無限。</p><p>  (5) 強(qiáng)大的多媒體:Android

29、系統(tǒng)還提供了豐富的多媒體服務(wù),如音樂、視頻、錄音、拍照、鬧鈴等等,這一切你都可以在程序中通過代碼進(jìn)行控制,讓你的應(yīng)用變得更加豐富多彩。</p><p>  (6) 傳感器:Android 手機(jī)中都會(huì)內(nèi)置多種傳感器,如加速度傳感器、方向傳感器等,這也算是移動(dòng)設(shè)備的一大特點(diǎn)。通過靈活地使用這些傳感器,你可以做出很多在PC 上根本無法實(shí)現(xiàn)的應(yīng)用。</p><p><b>  ORMLi

30、te框架</b></p><p>  ORMLite[8]是一個(gè)輕量級(jí)的Java對(duì)象關(guān)系映射持久層框架。支持包括 MySQL、Postgres、Microsoft SQL Server、H2、Derby、HSQLDB和Sqlite等在內(nèi)的數(shù)據(jù)庫(kù)。提供靈活的QueryBuilder來構(gòu)建復(fù)雜的數(shù)據(jù)查詢。強(qiáng)大的抽象 DAO類,只需5行代碼便能夠自動(dòng)生成SQL來創(chuàng)建和刪除數(shù)據(jù)庫(kù)表格。</p>

31、<p><b>  開發(fā)工具</b></p><p><b>  1.Eclipse</b></p><p>  相信所有Java 開發(fā)者都一定會(huì)對(duì)這個(gè)工具非常地熟悉,它是Java 開發(fā)神器,最好用的IDE 工具之一。Eclipse 是開源的,這使得有很多基于Eclipse 制作的優(yōu)秀IDE 得以問世,如MyEclipse、Aptana

32、 等。但我覺得它最吸引人的地方并不在這兒,而是它超強(qiáng)的插件功能。Eclipse 支持極多的插件工具,使得它不僅僅可以用來開發(fā)Java,還可以很輕松地支持幾乎所有主流語(yǔ)言的開發(fā),當(dāng)然也非常適合Android 開發(fā)。</p><p>  除了Eclipse 外,同樣適合開發(fā)Android 程序的IDE 還有IntelliJ IDEA、Android Studio等。其中Android Studio 是谷歌官方近期推出

33、的新IDE,由于是專門為開發(fā)Android 程序定制的,在Android 領(lǐng)域大有要取代Eclipse 的勢(shì)頭。不過本書中還是決定暫時(shí)繼續(xù)使用Eclipse,因?yàn)锳ndroid Studio 才推出不久,恐怕還不夠穩(wěn)定。另外你將來的同事大多數(shù)應(yīng)該還是用的Eclipse,如果跟他們選擇不同的IDE,在工作效率上可能要打點(diǎn)折扣了。</p><p><b>  2.ADT</b></p>

34、;<p>  ADT 全稱Android Development Tools,是谷歌提供的一個(gè)Eclipse 插件,用于在Eclipse 中提供一個(gè)強(qiáng)大的、高度集成的Android 開發(fā)環(huán)境。安裝了ADT,你不僅可以聯(lián)機(jī)調(diào)試,而且還能夠模擬各種手機(jī)事件、分析你的程序性能等等。</p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p><b>

35、;  需求分析</b></p><p>  電子貨架標(biāo)簽是為了更好地顯示商品名稱和價(jià)格,而電子貨架標(biāo)簽系統(tǒng)是為了更好地管理這些標(biāo)簽。而這個(gè)基于Android的ESL管理系統(tǒng)是為小型超市而設(shè)計(jì),小超市可以選擇移動(dòng)APP的管理系統(tǒng)原因是,一個(gè)小型超市商品的數(shù)量相對(duì)是比較少,種類也是比較少的,所以所需要的電子貨架標(biāo)簽的數(shù)量相對(duì)于大型的超市就少了很多,這是一個(gè)優(yōu)勢(shì);再之,由于現(xiàn)在目前移動(dòng)互聯(lián)網(wǎng)的火熱,移動(dòng)互聯(lián)

36、網(wǎng)相對(duì)于傳統(tǒng)互聯(lián)網(wǎng)的優(yōu)勢(shì)在于它的移動(dòng)便捷性——用戶可以隨時(shí)隨地接入互聯(lián)網(wǎng),個(gè)性化——通過手機(jī)號(hào)碼或其它方式,可以唯一辨識(shí)用戶,便于為用戶提供特有的個(gè)性化服務(wù)。因此可以知道這個(gè)電子貨架標(biāo)簽管理系統(tǒng)的APP與PC端的管理系統(tǒng)的優(yōu)勢(shì)在于,能夠更加方便地管理商場(chǎng)的商品,管理商品的標(biāo)簽;更加及時(shí)地處理各種問題,最終使商場(chǎng)工作人員的工作效率大大地提高。</p><p>  對(duì)于一個(gè)完善的電子貨架標(biāo)簽系統(tǒng)需要提供的主要功能有:

37、標(biāo)簽管理功能:包括標(biāo)簽的定義、更新、刪除、查看等功能,商品管理功能:包括商品的定義、更新、刪除、查看等功能,購(gòu)買功能:商品的購(gòu)買、購(gòu)物車的查看以及結(jié)賬等功能。</p><p><b>  系統(tǒng)功能模塊</b></p><p>  系統(tǒng)功能主要有這幾大模塊:用戶登錄模塊、系統(tǒng)設(shè)置模塊、標(biāo)簽管理模塊、商品管理模塊、銷售管理模塊、監(jiān)控管理模塊。</p><

38、;p>  圖3.1系統(tǒng)功能模塊圖</p><p><b>  1、用戶登錄模塊</b></p><p>  用戶登錄模塊為用戶登錄系統(tǒng)所設(shè)計(jì)的,用戶的賬號(hào)存在以及該賬號(hào)所對(duì)應(yīng)密碼輸入正確時(shí),用戶才可以登錄系統(tǒng)。</p><p><b>  2、系統(tǒng)設(shè)置模塊</b></p><p>  系統(tǒng)設(shè)置

39、模塊主要有用戶定義、參數(shù)配置兩個(gè)小的模塊。用戶定義功能是用于用戶的添加、修改、刪除、查看;參數(shù)配置主要是用于一些系統(tǒng)參數(shù)的配置管理。</p><p><b>  3、標(biāo)簽管理模塊</b></p><p>  標(biāo)簽管理模塊主要有標(biāo)簽列表、模板列表、型號(hào)列表三個(gè)小的模塊。標(biāo)簽列表主要是用于標(biāo)簽的管理、模板列表主要是用于標(biāo)簽的模板的管理、型號(hào)列表主要是用于標(biāo)簽型號(hào)的管理。&

40、lt;/p><p><b>  4、商品管理模塊</b></p><p>  商品管理模塊主要有商品列表、類別管理、快速綁定、商品替換四個(gè)小的模塊。商品列表模塊主要是用于商品的管理、類別管理主要是用于商品類別的管理、快速綁定主要用于標(biāo)簽和商品還有要顯示的模板的快速綁定、商品替換主要是用于新舊商品之間的快速替換。</p><p>  5、銷售管理主要

41、有商品銷售、訂單管理兩個(gè)小的功能模塊。</p><p>  商品銷售主要功能是實(shí)現(xiàn)商品的查找選擇,可以輸入購(gòu)買的數(shù)量,并且添加到購(gòu)物車?yán)锩?,?gòu)物車功能實(shí)現(xiàn)購(gòu)物的結(jié)賬,找回零錢等功能。訂單管理主要是對(duì)客戶購(gòu)買商品所產(chǎn)生的訂單的簡(jiǎn)單管理。</p><p>  6、監(jiān)控管理主要有成功顯示的標(biāo)簽、商品修改歷史兩個(gè)小的功能模塊。</p><p>  成功顯示的標(biāo)簽?zāi)K主要是用

42、于管理成功顯示的標(biāo)簽、商品修改歷史主要是用于商品修改歷史的查看管理等。</p><p><b>  系統(tǒng)流程</b></p><p>  系統(tǒng)總流程如圖3.2,系統(tǒng)流程同樣可以按照系統(tǒng)功能模塊中所述的六個(gè)大模塊來作圖的。 </p><p><b>  圖3.2系統(tǒng)流程圖</b></p><p>&l

43、t;b>  數(shù)據(jù)表設(shè)計(jì)</b></p><p>  本系統(tǒng)共設(shè)計(jì)了10個(gè)表,先將各表參數(shù)列出如下</p><p>  esl信息表(esls_esl)本表主要用于記錄電子標(biāo)簽的信息表:</p><p>  表 1 esl信息表</p><p>  esl型號(hào)信息表(sls_esl_model),用于記錄電子貨架標(biāo)簽型號(hào)信息:

44、</p><p>  表 3.2 esl型號(hào)信息表</p><p>  模板信息表(esls_patterns),用于記錄電子標(biāo)簽?zāi)0逍畔ⅲ?lt;/p><p>  表 3.3模板信息表</p><p>  商品信息表(esls_goods),用于記錄商品的信息:</p><p><b>  表3.4商品信息表&

45、lt;/b></p><p>  商品信息修改記錄表(esls_goods_update),用于記錄商品信息修改記錄的信息表結(jié)構(gòu)如下:</p><p>  表3.5商品信息修改記錄表</p><p>  商品類別表(esls_kinds),用于記錄商品類別的信息,表結(jié)構(gòu)如下:</p><p>  表 3.6商品類別表</p>

46、<p>  用戶信息表(esls_users),用于記錄用戶的信息,表結(jié)構(gòu)如下:</p><p><b>  表3.7用戶信息表</b></p><p>  系統(tǒng)配置表(esls_sys_config),記錄系統(tǒng)配置的信息,表結(jié)構(gòu)如下:</p><p>  表3.8系統(tǒng)配置表</p><p>  esl顯

47、示內(nèi)容歷史表(esls_esl_disp_his),記錄esl顯示內(nèi)容歷史的信息,表結(jié)構(gòu)如下:</p><p>  表3.9 esl顯示內(nèi)容歷史表</p><p>  商品訂單表(esls_order),記錄用戶購(gòu)買的訂單信息,表結(jié)構(gòu)如下:</p><p>  表3.10 商品訂單表</p><p><b>  系統(tǒng)關(guān)鍵模塊實(shí)現(xiàn)&l

48、t;/b></p><p><b>  數(shù)據(jù)庫(kù)工具類的實(shí)現(xiàn)</b></p><p>  Android 系統(tǒng)內(nèi)置了數(shù)據(jù)庫(kù)SQlite,SQLite 是一款輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù),它的運(yùn)算速度非常快,占用資源很少,通常只需要幾百K 的內(nèi)存就足夠了,因而特別適合在移動(dòng)設(shè)備上使用。SQLite不僅支持標(biāo)準(zhǔn)的SQL 語(yǔ)法,還遵循了數(shù)據(jù)庫(kù)的ACID 事務(wù)。</p>

49、;<p>  雖然SQlite數(shù)據(jù)庫(kù)為開發(fā)者的開發(fā)提供很大的便利,加之Android 為了讓開發(fā)者能夠更加方便地管理數(shù)據(jù)庫(kù),專門提供了一個(gè)SQLiteOpenHelper 幫助類,借助這個(gè)類就可以非常簡(jiǎn)單地對(duì)數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建和升級(jí);但是這對(duì)開發(fā)者更方便地操作數(shù)據(jù)庫(kù)還是有點(diǎn)難度的,因?yàn)楸仨殞慡QL語(yǔ)句,系統(tǒng)中共有10張表而且有的表的字段多達(dá)20個(gè),這對(duì)編寫SQL語(yǔ)句帶來了很大的麻煩,所以借助了ORMLite這個(gè)輕量級(jí)的ORM(

50、對(duì)象關(guān)系映射)框架,它使編碼量大大地減少,并且更方便地操作數(shù)據(jù)庫(kù)。</p><p>  本系統(tǒng)封裝一個(gè)繼承OrmLiteSqliteOpenHelper的數(shù)據(jù)類工具類ESLDatebaseHelper,這個(gè)工具類中開發(fā)者能夠非常方便地對(duì)數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建和升級(jí)。這個(gè)工具類還提供操作實(shí)體的Dao工具類。</p><p><b>  創(chuàng)建數(shù)據(jù)庫(kù):</b></p>

51、<p>  private ESLDatebaseHelper(Context context) {</p><p>  super(context, DATABASE_NAME, null, DATABASE_VERSION);</p><p><b>  }</b></p><p>  取得工具類對(duì)象(這是一個(gè)單例方法)<

52、/p><p>  public static synchronized ESLDatebaseHelper getHelper(Context context) {</p><p>  if (helper == null) {</p><p>  helper = new ESLDatebaseHelper(context);</p><p>

53、<b>  }</b></p><p>  usageCounter.incrementAndGet();</p><p>  return helper;}</p><p>  創(chuàng)建表:其中Label類對(duì)應(yīng)的是esls_esl表,用注解定義表,以及表的字段,如:</p><p>  注解類名:@DatabaseTab

54、le(tableName = "esls_esl")public class Label implements Serializable</p><p>  注解字段:@DatabaseField(columnName = "esl_id", generatedId = true, canBeNull = false)private int eslId; // EID<

55、;/p><p>  建立表:TableUtils.createTable(connectionSource, Label.class);</p><p><b>  創(chuàng)建Dao對(duì)象:</b></p><p>  public Dao<Label, Integer> getLabelDao() throws SQLException {&

56、lt;/p><p>  if (labelDao == null) {</p><p>  labelDao = getDao(Label.class);</p><p><b>  }</b></p><p>  return labelDao;</p><p><b>  }</b

57、></p><p>  Dao類對(duì)數(shù)據(jù)庫(kù)的操作,這里把不同的Dao類的增刪查改封裝了一下:</p><p>  public LabelDao(Dao<Label, Integer> labelDao) {</p><p>  this.labelDao = labelDao;</p><p><b>  }<

58、;/b></p><p>  public List<Label> queryAll() throws SQLException{</p><p>  return labelDao.queryForAll();</p><p><b>  }</b></p><p>  public void del

59、ete(Label label) throws SQLException{</p><p>  labelDao.delete(label);</p><p><b>  }</b></p><p>  public void insert(Label label) throws SQLException{</p><p&g

60、t;  labelDao.create(label);</p><p><b>  }</b></p><p>  public void update(Label label) throws SQLException{</p><p>  labelDao.update(label);}</p><p><b&

61、gt;  登錄模塊的實(shí)現(xiàn)</b></p><p>  為了保證一個(gè)電子貨架標(biāo)簽系統(tǒng)的安全,本系統(tǒng)必須設(shè)計(jì)一個(gè)登錄的界面來讓用戶有條件的地對(duì)系統(tǒng)進(jìn)行訪問。本系統(tǒng)的做法先在數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)系統(tǒng)管理員,這樣第一次進(jìn)入就可以根據(jù)系統(tǒng)管理員的賬戶密碼進(jìn)行登錄。當(dāng)輸入的賬戶錯(cuò)誤時(shí),就會(huì)提示賬戶不存在的字樣,當(dāng)密碼錯(cuò)誤就會(huì)提示密碼錯(cuò)誤的字樣。當(dāng)賬戶密碼都正確時(shí)就會(huì)進(jìn)入系統(tǒng)的主界面,這樣就能夠?qū)ο到y(tǒng)進(jìn)行操作。</

62、p><p>  圖4.1 登錄與系統(tǒng)主界面</p><p>  這個(gè)功能的實(shí)現(xiàn)主要是數(shù)據(jù)庫(kù)查詢,分為兩步查詢:</p><p>  首先取得用戶輸入的賬戶去數(shù)據(jù)庫(kù)查看是否有這個(gè)賬戶,沒有的話提示賬戶不存在字樣,有的話進(jìn)行下一步——賬戶和密碼的一起查詢。</p><p>  取得用戶的賬戶和密碼去數(shù)據(jù)庫(kù)進(jìn)行查詢,如果賬戶和密碼都匹配的話就跳轉(zhuǎn)到系統(tǒng)

63、的主頁(yè)面,不匹配的話就提示密碼錯(cuò)誤的字樣。</p><p><b>  標(biāo)簽管理模塊的實(shí)現(xiàn)</b></p><p>  標(biāo)簽管理模塊主要分為標(biāo)簽列表,模板列表,型號(hào)列表三個(gè)模塊。</p><p><b>  標(biāo)簽列表模塊</b></p><p>  在這個(gè)模塊中,可以看到標(biāo)簽列表布局有一個(gè)標(biāo)簽編號(hào)的

64、輸入框和一個(gè)工作狀態(tài)的下拉框和三個(gè)按鈕分別是:查詢、重置、添加標(biāo)簽,下面是一個(gè)Listview控件,用來顯示所有的標(biāo)簽列表。</p><p>  圖4.2 標(biāo)簽管理界面</p><p>  1.查詢模塊的實(shí)現(xiàn)是根據(jù)用戶輸入的標(biāo)簽編號(hào)和工作狀態(tài)去數(shù)據(jù)庫(kù)查詢對(duì)應(yīng)的標(biāo)簽,然后展示在標(biāo)簽列表上面,對(duì)應(yīng)的數(shù)據(jù)操作如下:</p><p>  public List<Lab

65、el> queryByEslIdOrWorkStatus(int eslId, int workStatus) throws SQLException{</p><p>  Map<String, Object> map = new HashMap<String, Object>();</p><p>  if(eslId != -1){</p>

66、<p>  map.put("esl_id", eslId);</p><p><b>  }</b></p><p>  if(workStatus != -2){</p><p>  map.put("work_status", workStatus);</p><p&

67、gt;<b>  }</b></p><p>  List<Label> list = labelDao.queryForFieldValues(map);</p><p>  for(Label l : list){</p><p>  l.setGood(this.getGood(l.getGoodsId()));</p&

68、gt;<p>  l.setPattern(this.getPattern(l.getPatternId()));</p><p>  l.setModel(this.getModel(l.getModelId()));</p><p><b>  }</b></p><p>  return list;</p>&

69、lt;p><b>  }</b></p><p>  2.添加標(biāo)簽,當(dāng)點(diǎn)擊添加標(biāo)簽按鈕是,就會(huì)跳到下一個(gè)Activity,然后輸入合法的數(shù)據(jù),就可以對(duì)添加想對(duì)應(yīng)的標(biāo)簽。</p><p>  圖4.3 標(biāo)簽添加界面</p><p>  其中下拉框(Spinner)的實(shí)現(xiàn)比較復(fù)雜,所以介紹一下下拉框的實(shí)現(xiàn)原理:每一個(gè)下拉框都有其對(duì)應(yīng)的設(shè)配器(

70、Adapter),設(shè)配器能為Spinner提供數(shù)據(jù)。本系統(tǒng)封裝了Android自帶的設(shè)配器,把需要的數(shù)據(jù)傳給設(shè)配器,讓設(shè)配器把數(shù)據(jù)展示在Spinner上面。最后我們需要給Spinner添加監(jiān)聽器,用于監(jiān)聽用戶的選擇,這是一個(gè)匿名類,當(dāng)用戶選擇時(shí),本系統(tǒng)就能通過選擇的位置,拿到對(duì)應(yīng)的對(duì)象。</p><p>  spinGoods.setAdapter(new GoodArrayAdapter(this, goodL

71、ist));</p><p>  spinGoods.setOnItemSelectedListener(new OnItemSelectedListener() {</p><p><b>  @Override</b></p><p>  public void onItemSelected(AdapterView<?> par

72、ent, View view,</p><p>  int position, long id) {</p><p>  good = goodList.get(position);</p><p><b>  }</b></p><p><b>  .......</b></p>&

73、lt;p><b>  });</b></p><p>  其他輸入框比較簡(jiǎn)單,就不做解釋,當(dāng)用戶輸入正確時(shí),即可將輸入的內(nèi)容插入到數(shù)據(jù)庫(kù)中。輸入不合法時(shí),就會(huì)提示用戶修改。</p><p>  3.標(biāo)簽列表的實(shí)現(xiàn)的原理是先從數(shù)據(jù)庫(kù)拿出標(biāo)簽列表,然后通過listview展示出來的。我們首先在布局文件中添加listview控件:</p><p&g

74、t;<b>  <ListView</b></p><p>  android:id="@+id/label_list"</p><p>  android:layout_width="match_parent"</p><p>  android:layout_height="match

75、_parent" ></p><p>  </ListView></p><p>  每一個(gè)item需要展示數(shù)據(jù)的布局如下:</p><p><b>  圖4.4 標(biāo)簽布局</b></p><p>  要把數(shù)據(jù)展示在listview上面,需要借助適配器來完成。Android 中提供了很多適配器

76、的實(shí)現(xiàn)類,其中最好用的就是ArrayAdapter。它可以通過泛型來指定要適配的數(shù)據(jù)類型,然后在構(gòu)造函數(shù)中把要適配的數(shù)據(jù)傳入即可。這里本系統(tǒng)封裝了一個(gè)ArrayAdapter(LabelAdapter是繼承了ArrayAdapter,并且重寫了getView方法):</p><p>  public LabelAdapter(Context context, int textViewResourceId,Lis

77、t<Label> objects) {</p><p>  super(context, textViewResourceId, objects);</p><p>  resourceId = textViewResourceId;</p><p><b>  }</b></p><p>  其中g(shù)etVi

78、ew方法:</p><p>  public View getView(int position, View convertView, ViewGroup parent) {</p><p>  Label label = getItem(position);</p><p>  View view;</p><p>  ViewHolder

79、 viewHolder;</p><p>  if (convertView == null) {</p><p>  view = LayoutInflater.from(getContext()).inflate(resourceId, null);</p><p>  viewHolder = new ViewHolder();</p><

80、p>  viewHolder.eslId = (TextView) view.findViewById(R.id.esl_id);</p><p><b>  ......</b></p><p>  view.setTag(viewHolder);</p><p><b>  } else {</b></p&

81、gt;<p>  view = convertView;</p><p>  viewHolder = (ViewHolder) view.getTag();</p><p><b>  }</b></p><p>  viewHolder.eslId.setText(STR_ESL_ID + label.getEslId());

82、</p><p><b>  ......</b></p><p>  return view;</p><p><b>  }</b></p><p>  在getView 方法中,首先通過getItem()方法得到當(dāng)前項(xiàng)的Label 實(shí)例,然后使用LayoutInflater 來為這個(gè)子項(xiàng)加載我

83、們傳入的布局,接著調(diào)用View 的findViewById()方法獲取到不同的View 實(shí)例,并分別調(diào)用它們的set...... ()方法來設(shè)置顯示的內(nèi)容,最后將布局返回。</p><p>  ViewHolder:</p><p>  class ViewHolder {</p><p>  TextView eslId;</p><p>

84、  TextView goodsName;</p><p>  TextView patternName;</p><p>  TextView workStatus;</p><p>  TextView mycode;</p><p>  TextView modelName;</p><p><b> 

85、 }</b></p><p>  為了提高listview的運(yùn)行效率,因?yàn)間etView()方法中每次都將布局重新加載了一遍,當(dāng)ListView 快速滾動(dòng)的時(shí)候這就會(huì)成為性能的瓶頸。所以我提供了一個(gè)內(nèi)部類ViewHolder來緩存加載過的listview每一個(gè)item??梢钥吹?,我們?cè)趃etView()方法中進(jìn)行了判斷,如果convertView 為空,則使用LayoutInflater 去加載布局,

86、如果不為空則直接對(duì)convertView 進(jìn)行重用。這樣就大大提高了ListView 的運(yùn)行效率,在快速滾動(dòng)的時(shí)候也可以表現(xiàn)出更好的性能。</p><p>  3.最后我們對(duì)這一個(gè)listview設(shè)置一個(gè)監(jiān)聽器用于設(shè)置每一個(gè)item被按下產(chǎn)生的的事件。</p><p><b>  圖4.5 標(biāo)簽操作</b></p><p>  每次按下list

87、view的一個(gè)item時(shí)就會(huì)彈出一個(gè)選擇框,可以分別對(duì)該item(也就是一個(gè)標(biāo)簽對(duì)象)進(jìn)行不同的操作。</p><p>  其中查看標(biāo)簽是彈出一個(gè)頁(yè)面顯示該標(biāo)簽的所有詳細(xì)信息。刪除標(biāo)簽是指在數(shù)據(jù)庫(kù)刪除該標(biāo)簽對(duì)應(yīng)的記錄,然后重新刷新標(biāo)簽列表。編輯標(biāo)簽和添加標(biāo)簽的原理類似,只是編輯標(biāo)簽時(shí)需要將原來該標(biāo)簽的數(shù)據(jù)先顯示到布局上面,方便用戶對(duì)其進(jìn)行更新。</p><p><b>  模板列

88、表模塊</b></p><p>  圖4.6 模板管理界面</p><p>  模板列表模塊的實(shí)現(xiàn)與標(biāo)簽列表模塊的實(shí)現(xiàn)非常類似,具體的增刪查改都是類似的原理,這里不做解釋。</p><p>  模板查看是將模板的代碼(html)通過webview展示的,這樣非常方便地看到用戶輸入的代碼展示的效果。如:</p><p><b&

89、gt;  圖4.7 模板查看</b></p><p>  實(shí)現(xiàn)的原理就是通過webview加載用戶輸入的HTML代碼,然后顯示在網(wǎng)頁(yè)上,具體的的代碼如下:</p><p>  setContentView(R.layout.pattern_webview);</p><p>  Intent intent = getIntent();</p>

90、<p>  pattern = (Pattern) intent.getSerializableExtra("pattern");</p><p>  StringstrHtml="<html><head><metahttp-equiv='content-type' content='text/html;charse

91、t=UTF-8'></head><body>"+pattern.getCode()+"</body></html>";</p><p>  WebView webView = (WebView)findViewById(R.id.webview_pattern);</p><p>  webVie

92、w.loadDataWithBaseURL("", strHtml, "text/html", "UTF-8", null);</p><p><b>  型號(hào)列表模塊</b></p><p>  模板列表模塊的實(shí)現(xiàn)與標(biāo)簽列表模塊的實(shí)現(xiàn)非常類似,具體的增刪查改都是類似的原理,這里我不做解釋。</p&g

93、t;<p>  圖4.8 型號(hào)管理界面</p><p><b>  商品管理模塊的實(shí)現(xiàn)</b></p><p>  商品管理模塊主要分為商品列表,類別管理,快速綁定,商品替換四個(gè)小模塊。下面主要闡述商品列表、快速綁定、商品替換三個(gè)小模塊。</p><p><b>  商品列表模塊</b></p>

94、<p>  圖4.9 商品管理界面</p><p>  在這個(gè)小模塊中我們可以知道該模塊可以根據(jù)商品條碼、商品名稱、商品狀態(tài)、商品類別來對(duì)商品進(jìn)行查詢;可以添加商品;商品listview是顯示商品的圖片還有商品的名稱以及商品的原價(jià)和現(xiàn)價(jià)。</p><p>  每個(gè)item的布局如下圖:</p><p>  圖4.10 商品顯示布局</p>

95、<p>  而添加商品的界面如下</p><p>  圖4.11 添加商品界面</p><p>  這個(gè)界面雖然輸入框雖然很多,但是類似于其他模塊的實(shí)現(xiàn),只是里面有一個(gè)文件的文件的選擇的實(shí)現(xiàn)比較復(fù)雜,下面我對(duì)其進(jìn)行簡(jiǎn)單的解釋。</p><p>  圖4.12 文件選擇器</p><p>  用戶點(diǎn)擊選擇圖片是就會(huì)彈出一個(gè)文件選擇的對(duì)

96、話框,這樣我們就可以選擇我們事先準(zhǔn)備好的圖片文件,選擇完成后,就把對(duì)應(yīng)的絕對(duì)路徑顯示在輸入框上面。具體實(shí)現(xiàn)的代碼如下:</p><p>  protected Dialog onCreateDialog(int id) {</p><p>  if (id == openfileDialogId) {</p><p>  Map<String, Integer

97、> images = new HashMap<String, Integer>();</p><p>  // 下面幾句設(shè)置各文件類型的圖標(biāo), 需要你先把圖標(biāo)添加到資源文件夾</p><p>  images.put(OpenFileDialog.sRoot, R.drawable.filedialog_root); // 根目錄圖標(biāo)</p><p&g

98、t;  images.put(OpenFileDialog.sParent, R.drawable.filedialog_folder_up); // 返回上一層的圖標(biāo)</p><p>  images.put(OpenFileDialog.sFolder, R.drawable.filedialog_folder); // 文件夾圖標(biāo)</p><p>  images.put("

99、;png", R.drawable.filedialog_img); // 圖片文件圖標(biāo)</p><p>  images.put("jpg", R.drawable.filedialog_img); // 圖片文件圖標(biāo)</p><p>  images.put("jpeg", R.drawable.filedialog_img); //

100、圖片文件圖標(biāo)</p><p>  images.put(OpenFileDialog.sEmpty, R.drawable.filedialog_root);</p><p>  Dialog dialog = OpenFileDialog.createDialog(id, this, "打開文件",</p><p>  new Callback

101、Bundle() {</p><p><b>  @Override</b></p><p>  public void callback(Bundle bundle) {</p><p>  String filepath = bundle.getString("path");</p><p>  

102、etImgSrc.setText(filepath); // 把文件路徑顯示在標(biāo)題上</p><p><b>  }</b></p><p>  }, ".png;.jpg;.jpeg;", images);</p><p>  return dialog;</p><p><b>  }&

103、lt;/b></p><p>  return null;}</p><p>  另外一個(gè)比較復(fù)雜的就是日期時(shí)間選擇器的實(shí)現(xiàn),當(dāng)用戶點(diǎn)擊日期時(shí)間對(duì)話框時(shí),就會(huì)彈出一個(gè)時(shí)間日期選擇器時(shí),用戶可以選擇自己想要的日期和時(shí)間,然后顯示在輸入框上面。</p><p>  圖4.13 日期時(shí)間選擇器</p><p><b>  快速綁定

104、模塊</b></p><p>  快速綁定模塊是用于ESL標(biāo)簽和商品以及顯示的模板之間進(jìn)行快速的綁定,其界面如下圖:</p><p>  圖4.14 快速綁定界面</p><p>  實(shí)現(xiàn)的原理是根據(jù)三個(gè)下拉框的選擇來進(jìn)行快速的綁定,分別有三個(gè)下拉框:標(biāo)簽的下拉框、商品的下拉框、模板的下拉框。每個(gè)下拉框都有自己對(duì)應(yīng)的設(shè)配器(Adapter),用于設(shè)置里面

105、的對(duì)象,每個(gè)下拉框有對(duì)應(yīng)的監(jiān)聽器,監(jiān)聽用戶的選擇,當(dāng)用戶選擇某一項(xiàng)時(shí),就會(huì)取得那個(gè)項(xiàng)對(duì)應(yīng)的對(duì)象。</p><p>  當(dāng)用戶三個(gè)下拉框都選擇完成后,點(diǎn)擊確定按鈕是就會(huì)更新該標(biāo)簽綁定的商品以及模板。關(guān)鍵代碼如下:</p><p>  public void onClick(View v) {</p><p>  if(label != null){</p>

106、<p>  if(good != null)</p><p>  label.setGoodsId(good.getGoodsId());</p><p>  if(pattern != null)</p><p>  label.setPatternId(pattern.getPatternId());</p><p><

107、;b>  try {</b></p><p>  labelDao.update(label);</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><

108、p><b>  }</b></p><p><b>  商品替換模塊</b></p><p>  商品替換模塊是對(duì)新舊不同商品進(jìn)行快速的替換。替換時(shí)能夠?qū)⒃撋唐方壎ǖ乃袠?biāo)簽也一并替換掉。</p><p>  圖4.15 商品替換界面</p><p>  public void onClick

109、(View v) {</p><p>  List<Label> labelList = null;</p><p><b>  try {</b></p><p>  labelList = labelDao.findLabelByGoodId(good1.getGoodsId());</p><p>  

110、for(Label l : labelList){</p><p>  l.setGoodsId(good2.getGoodsId());</p><p>  labelDao.update(l);</p><p><b>  }</b></p><p>  } catch (SQLException e) {</

111、p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  Toast.makeText(GoodReplaceActivity.this, "商品替換成功",</p><p>  Toast.LENGTH_SHORT).show();</p

112、><p><b>  }</b></p><p><b>  銷售管理模塊的實(shí)現(xiàn)</b></p><p>  銷售管理模塊主要有兩個(gè)小的模塊:商品銷售以及訂單管理兩個(gè)小的模塊,商品銷售模塊比較復(fù)雜,下面做詳細(xì)的解釋說明,訂單管理比較簡(jiǎn)單不做說明。</p><p>  商品銷售是用于商品的銷售,有商品的搜

113、索,商品加入購(gòu)物車,購(gòu)物車的查看,購(gòu)買結(jié)賬等功能。</p><p>  圖4.16 商品銷售界面</p><p>  上面是商品銷售的主界面,我們可以看到我們能夠根據(jù)商品條碼、商品的名稱、片劑對(duì)商品進(jìn)行搜索。</p><p>  當(dāng)用戶點(diǎn)擊商品時(shí),會(huì)彈出一個(gè)對(duì)話框,要求輸入購(gòu)買的數(shù)量,這樣就能將商品添加到購(gòu)物車?yán)锩?。?gòu)物車其實(shí)就是維持一個(gè)購(gòu)買項(xiàng)(SaleItem)的

114、列表。購(gòu)買項(xiàng)(SaleItem)封裝了商品和該商品購(gòu)買的數(shù)量的一個(gè)類。</p><p>  當(dāng)我們點(diǎn)擊查看購(gòu)物車時(shí)就跳轉(zhuǎn)到購(gòu)物車的界面,其實(shí)就將我們的購(gòu)物項(xiàng)列表傳遞到下一個(gè)界面由下一個(gè)界面進(jìn)行處理。購(gòu)物車界面如下:</p><p>  圖4.17 購(gòu)物車界面</p><p>  點(diǎn)擊結(jié)賬時(shí),就根據(jù)用戶購(gòu)買的商品的現(xiàn)價(jià)以及商品的數(shù)量進(jìn)行價(jià)格的計(jì)算,然后算出一個(gè)總價(jià),接

115、著根據(jù)用輸入的支付金額進(jìn)行結(jié)賬,算出需要找回給用戶的零錢以及生成幾個(gè)訂單插入到數(shù)據(jù)庫(kù)里面。</p><p><b>  總結(jié)</b></p><p>  本次畢業(yè)設(shè)計(jì)是自己第一次使用Android作為開發(fā)工具,也是自己開發(fā)的第一個(gè)移動(dòng)App。大學(xué)以來,本人都是學(xué)Java后臺(tái)為主,沒有接觸過Android的開發(fā),雖然說Android開發(fā)也是使用Java語(yǔ)言,但是對(duì)于第一

116、次接觸的人來說,難免還是遇到很多的問題,一開始的界面怎么設(shè)計(jì)都是非常地頭疼,但是通過自己不斷地找資料不斷地學(xué)習(xí),在老師的幫助,最終把ESL管理系統(tǒng)給完成了。</p><p>  本系統(tǒng)基本實(shí)現(xiàn)一個(gè)電子貨架標(biāo)簽管理系統(tǒng)的基本功能,并且還加入商品銷售的功能,使我的系統(tǒng)更加具有實(shí)用性。</p><p>  在實(shí)現(xiàn)方面,本人引入了數(shù)據(jù)庫(kù)ORM框架,使代碼量大大地減少,并且代碼看起來更加清晰。對(duì)于大

117、量用到的listview,我很好地利用了緩存的原理,大大地提高系統(tǒng)的性能。</p><p>  在實(shí)用方面,本系統(tǒng)的模塊分配清晰合理,用戶操作簡(jiǎn)單,用戶體驗(yàn)性相對(duì)良好。</p><p>  當(dāng)然本系統(tǒng)還是存在一些問題,比如數(shù)據(jù)都存在于本機(jī),沒有做更好的容災(zāi)處理,如果移動(dòng)設(shè)備丟失,或者該APP被惡意刪除將帶來無法挽回的結(jié)果,所以更好的做法就是有一個(gè)服務(wù)端,然后客戶端的數(shù)據(jù)都是從服務(wù)端拿過來的

118、,這樣我們就可以方便地對(duì)數(shù)據(jù)進(jìn)行備份,以防萬(wàn)一。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]電子貨架標(biāo)簽系統(tǒng)[M]. http://baike.baidu.com/view/8204512.htm.</p><p>  [2] Cay S. Horstmann,Cray Cornell. Java核心技術(shù)(原書第9

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)僅提供信息存儲(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)論