基于Android的網(wǎng)上訂餐系統(tǒng)_第1頁
基于Android的網(wǎng)上訂餐系統(tǒng)_第2頁
免費預覽已結(jié)束,剩余27頁可下載查看

下載本文檔

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

文檔簡介

1、-. z歐亞學院信息工程學院專業(yè)綜合課程設計報告工程題目:基于安卓的網(wǎng)上訂餐系統(tǒng)專業(yè)班級:統(tǒng)本電信 1301 班 *:馬麗 192指導教師: 宏宇 有強 完成時間: 2021 年 12 月 30 日 設計報告成績評定表設計報告成績評定表: :備注:以上總分為該組的平均分,根據(jù)成員分工具體分數(shù)如下。評分容評分容成績成績系統(tǒng)方案思路合理性10%報告容的完整性(10%)硬件原理圖及說明(20%)程序流程圖(20%)程序清單(10%)調(diào)試及結(jié)果分析(10%)系統(tǒng)改進建議或者方案(10%)格式規(guī)(10%)總分總分小組成員分工分數(shù)馬麗 軟件調(diào)試-. z摘摘 要要隨著科技的開展,二十一世紀成為了以網(wǎng)絡化,信

2、息化為核心的社會。網(wǎng)絡商業(yè)化也成為了時下最熱門的詞匯。隨著信息技術(shù)的不斷更新,特別是 07 年谷歌公司推出了 Android 開放源碼,讓 Android 操作系統(tǒng)成為了移動平臺的寵兒,本系統(tǒng)主要分析了中小型餐飲店管理與開展的現(xiàn)狀所面臨的問題,發(fā)現(xiàn)傳統(tǒng)的效勞模式已經(jīng)不能適應市場開展的需求,方便、快捷、個性化的網(wǎng)上訂餐效勞正在進入人們的生活。針對這類問題,結(jié)合當代科技開展的新成果,本文構(gòu)思規(guī)劃了一套最貼切的效勞模式,為中小型餐飲店外送效勞提供了一套系統(tǒng)。本設計是一個基于 Android 手機的網(wǎng)上訂餐系統(tǒng),采用 C/S 模式,能為客戶提供網(wǎng)上選擇瀏覽菜品介紹,點菜訂餐效勞,并為管理員提供一個效勞

3、平臺實現(xiàn)用戶信息與顧客訂單的管理,從而提高了效勞的質(zhì)量,本文從系統(tǒng)需求、系統(tǒng)實際、代碼實現(xiàn)幾個方面介紹了整個軟件的開發(fā)過程,這個系統(tǒng)采用 JAVA、SQL Server 數(shù)據(jù)庫,并利用 MyEclipse、TOMCAT、Android SDK、ADT、AVD、DDMS 等開發(fā)環(huán)境或者開發(fā)工具。關鍵詞關鍵詞:Android;Java;MyEclipse;SQLite;SQL Server 2005-. zABSTRACTABSTRACTWith the development of science and technology,the 21st century has bee a society

4、 centred on information and network.Hence mercialization of network has bee one of the hottest topics in recent years. Android operating system is gradually going to be the darling of the mobile platform, which results from the constantly updating of information technology, especially the appearance

5、 of Android open source carried out by Google pany in 2007. The system mentioned in this article mainly focus on the problems faced by the middle and small reataurants in their management and development, and finds that the traditional service mode can not adapt to the needs of the development of th

6、e market any more.A more convenient, quicker,and personalized service enters peoples lifeonline reservations. In view of the e*isting problems and bining the latest achievements of the development of modern technology, I have conceived a set of the most appropriate pattern of dilivery service for th

7、e restaurant industry.This design is a online reservations system based on the Android mobile phones, which adopts C/S mode. It can provide services for clients to choose dishes introduction freely ,and to order meal actively.Besides, it can also offer a service platform for manager to regulate the

8、user informations and customer orders, so as to improve the quality of their services.In this article, Id like to introduce the whole development process of this software in details from the system requirements, system realization,code implementation and some other aspects.This system uses JAVA,SQL

9、Server database,in addition, MyEclipse、TOMCAT、Android SDK、ADT、AVD、DDMS and other development environments or development tools are also used in it.Keywords:Keywords:Android;Java;MyEclipse;SQLite;SQL Server 2005-. z目目 錄錄第一章第一章 引引 言言 1 11.1 工程背景 11.2 工程目的 11.3 主要容 2第二章第二章 系統(tǒng)理論與技術(shù)系統(tǒng)理論與技術(shù) 3 32.1 Android

10、32.1.1 Android 簡介 32.1.2 Android Features 特性 32.1.3 Android 根本框架Android Architecture42.1.4 Android 系統(tǒng)的四大組件 42.2 Java52.3 SQL Server 2005 和 SQLite 數(shù)據(jù)庫 52.4 C/S 模式 6第三章第三章 系統(tǒng)分析與設計系統(tǒng)分析與設計 8 83.1 功能需求 83.2 模塊構(gòu)造與流程 93.2.1 客戶端 93.2.2 效勞端 103.3 數(shù)據(jù)庫設計 113.3.1 數(shù)據(jù)庫表及其構(gòu)造 113.3.2 數(shù)據(jù) 123.3.3 客戶端數(shù)據(jù)庫的連接 133.3.4 效勞

11、器數(shù)據(jù)庫的連接 143.4 系統(tǒng)構(gòu)造 153.4.1 部署圖 153.4.2 類圖 153.5 執(zhí)行概念 16第第四四章章系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn) 18184.1 Android 環(huán)境搭建 184.2 客戶端 194.2.1 系統(tǒng)登錄 194.2.2 系統(tǒng)注冊 214.2.3 瀏覽菜品 23-. z4.2.4 搜索菜品 254.2.5 訂餐 264.2.6 結(jié)賬 284.3 效勞端 294.3.1 系統(tǒng)登錄 294.3.2 訂單管理 304.3.3 菜品管理 324.3.4 會員管理 35第第五五章章 完畢語完畢語 3737參參 考考 文文 獻獻 3838致致 3939-. z第一章第一章 引引 言言

12、1.11.1 工程背景工程背景伴隨著我國市場經(jīng)濟的高度開展,企業(yè)越來越依賴于市場和客戶,這種依賴關系已經(jīng)開場逐步提升到關乎企業(yè)生存的高度。如何獲得更多客流量,如何通過小的代價而使商家獲得更大的知名度,這是使企業(yè)得以生存、開展、壯大的關鍵。年銷售過億的眾多電子商務案例讓人們看到了更多的商機。與應用場景相當有限的 PC 個人電腦相比,生而具備便攜屬性的手機給了電商們更大的想象空間。移動電子商務由此產(chǎn)生了。移動電子商務就是利用手機、PDA 及掌上電腦等無線終端進展的 B2B、B2C 或 C2C的電子商務。它將因特網(wǎng)、移動通信技術(shù)、短距離通信技術(shù)及其它信息處理技術(shù)完美的結(jié)合,使人們可以在任何時間、任何

13、地點進展各種商貿(mào)活動,實現(xiàn)隨時隨地、線上線下的購物與交易、在線電子支付以及各種交易活動、商務活動、金融活動和相關的綜合效勞活動等。 而 Android 操作系統(tǒng)憑借著自己開放的平臺允許任何移動終端廠商參加到 Android聯(lián)盟中,從而使得越來越多的用戶傾向于選擇操作系統(tǒng)為 Android 的手機品牌。選擇設計基于 Android 平臺的軟件,毫無疑問能覆蓋更多的群眾, 餐飲業(yè)在電子商務中還處于形成的初期,傳統(tǒng)的餐飲業(yè)中,大都是以實際門面形式來進展宣傳和交流。作為網(wǎng)絡普及化的社會,這還缺少了一些更為現(xiàn)代化的元素。餐飲業(yè)是一個個性化、多樣化的效勞業(yè),而電子商務則最能表達個性化、多樣化效勞的方式。而

14、且現(xiàn)在大局部電子商務都表達為向大企業(yè)效勞,結(jié)合餐飲這個行業(yè)的特點,最終還開展為同小區(qū)小店效勞的模式。以最貼切的方式,最靈便的效勞進入個個網(wǎng)絡社區(qū),進入人們的生活。1.21.2 工程目的工程目的如今宅男宅女日益增加,很多餐飲店都提供外賣效勞,傳統(tǒng)的外賣效勞需要客戶給商家打并報出地址,商家那邊也需要記錄下客戶的信息,才能將外賣準確的送達,但在這之間都是人在操作,難免會出現(xiàn)偏差和遺漏為客戶或者商家?guī)頁p失。如今 3G網(wǎng)絡覆蓋圍越來越廣,Android 手機也占領了手機行業(yè)的大頭,則我們可以考慮做一個Android 的應用來方便商家和客戶,讓出錯率到達最低。用戶要點餐的時候只需手機上網(wǎng)點一下菜單就能吃

15、到自己喜歡吃的菜品,這里面蘊含了很大的商機,完全能夠有效的提高商家的營業(yè)額,基于以上因素,所以提出了這樣一個基于 Android 的網(wǎng)上訂餐系統(tǒng)。本工程的目的是開發(fā)一個可以讓用戶在手機上操作的客戶端,然后與效勞器連接進展數(shù)據(jù)交互,來實現(xiàn)網(wǎng)上訂餐的流程??蛻舳诵枰獙崿F(xiàn)瀏覽菜品,點菜,下訂單,搜索等功能。效勞器端需實現(xiàn)添加、刪除、修改菜品、對訂單的處理,以及對會員的管理等功能。-. z本工程是一款基于 Android 手機平臺的訂餐系統(tǒng),使擁有 Android 手機的用戶生活更加方便快捷,使得手機顯得更生動靈活化,與人們更為接近,讓手機主人隨時隨地都能吃到自己喜歡的菜品。使人們的生活更加多樣化。也

16、使設計者更加熟練 Android的技術(shù)和其他在市場上的特點。1.31.3 主要容主要容通過對實際情況的調(diào)研,本系統(tǒng)大致可分為三個局部,即手機客戶端、電腦效勞器端和圖形化界面工具。系統(tǒng)采用 HTTP 協(xié)議來進展數(shù)據(jù)傳輸。采用 C/S 構(gòu)造,客戶端為基于 Android 操作系統(tǒng)平臺的智能手機,主要的業(yè)務邏輯則效勞器端來實現(xiàn),數(shù)據(jù)存儲在數(shù)據(jù)庫效勞器??蛻舳酥饕獙崿F(xiàn)位置效勞,商品展示,會員注冊及登錄,購物車,商品搜索和個人信息等功能,效勞器端主要是完成數(shù)據(jù)交互和數(shù)據(jù)邏輯處理,而圖形界面化工具則是負責商品、訂單等的增刪改查。為了一步步實現(xiàn)確定的功能,本論文主要容安排如下:第一章:引言介紹課題研究的背景

17、和目的第二章:系統(tǒng)理論與技術(shù)在本工程中設計到的技術(shù)簡介第三章:系統(tǒng)分析與設計需求分析,數(shù)據(jù)庫的分析與設計以及系統(tǒng)構(gòu)造的設計第四章:系統(tǒng)實現(xiàn)根據(jù)需求分析來實現(xiàn)系統(tǒng)的各個模塊功能,使客戶端與效勞器,效勞器與數(shù)據(jù)庫能正常數(shù)據(jù)交互。這局部主要搭建開發(fā)環(huán)境,編寫代碼,測試,運行第五章:完畢語對本工程做一個工程總結(jié)第二章第二章 系統(tǒng)理論與技術(shù)系統(tǒng)理論與技術(shù)2 2.1.1 AndroidAndroid1.1 AndroidAndroid 簡介簡介Android 一詞的本義指“機器人,同時也是 Google 于 2007 年 11 月 5 日宣布的基于 Linu*平臺的開源手機操作系統(tǒng)的名稱,該

18、平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。Android 是基于 Linu*核的軟件平臺和操作系統(tǒng),早期由 Google 開發(fā)在華注冊商標名為“安致 ,后由開放手機聯(lián)盟Open Handset Alliance開發(fā)。它采用了軟件堆層software stack,又名以軟件疊層的架構(gòu),主要分為三局部。低層以Linu*核工作為根底,只提供根本功能;其他的應用軟件則由各公司自行開發(fā),以 Java作為編寫程序的一局部。另外,為了推廣此技術(shù),Google 和其它幾十個手機公司建立了開放手機聯(lián)盟。Android 在未公開之前常被傳聞為 Google

19、 或 gPhone。大多傳聞認為Google 開發(fā)的是自己的手機產(chǎn)品,而不是一套軟件平臺。到了 2021 年 1 月,Google-. z開場發(fā)表自家品牌手機的 Ne*us One,目前最新 SDK 版本為 Android 4.0.3。.2 AndroidAndroid FeaturesFeatures 特性特性Android 系統(tǒng)有如下的幾大特性1:應用程序框架 支持組件的重用與替換 Dalvik 虛擬機 專門為移動設備做了優(yōu)化 部集成瀏覽器 該瀏覽器基于開源的 WebKit 引擎 優(yōu)化的圖形庫 包括 2D 和 3D 圖形庫,3D 圖形庫基于 OpenGL ES SQLite

20、 用作構(gòu)造化的數(shù)據(jù)存儲 多媒體支持 包括常見的音頻、視頻和靜態(tài)印象文件格式如 MPEG4, MP3, AAC, AMR, JPG, PNGGSM依賴于硬件 藍牙 Bluetooth, EDGE, 3G, and WiFi 依賴于硬件 照相機,GPS,指南針,和加速度計 依賴于硬件 豐富的開發(fā)環(huán)境 包括設備模擬器,調(diào)試工具,存及性能分析圖表,和 Eclipse集成開發(fā)環(huán)境插件.3 AndroidAndroid 根本框架根本框架AndroidAndroid ArchitectureArchitecture圖圖 2 2.1.1 AndroidAndroid ArchitectureA

21、rchitecture.4 AndroidAndroid 系統(tǒng)的四大組件系統(tǒng)的四大組件在 Android 系統(tǒng)中,為我們提供了四大根本組件,每個組件是一個視圖,但是有些是可見的,有些是不可見的視圖,像 Activity,ContentProvider 是可見的視圖,Service 和 BroadcastReceiver 是不可見的,它們只在系統(tǒng)的后臺運行。下面分別介紹四大組件3:1Activity 簡介在 Android 系統(tǒng)中 Activity 提供可視化的用戶界面,一個 Android 應用通常由多個 Activity 組成。多個 Activity 組成了 Activity

22、 棧Stack ,當前活動的 Activity處于棧頂。Activity 有自己的生命周期,由 Android 系統(tǒng)來控制。2Service 簡介顧名思義 Service 就是運行在后臺的一種效勞程序,一般很少和用戶交互,因此沒有可視化界面定義一個 Service 類比較簡單,只要繼承 Service 類,實現(xiàn)其生命周期中的方法就可以了。一個定義好的 Service 必須在 AndroidManifest.*ml 配置文件注冊,通過元素聲明才能使用.Service 有自己的生命周期,我們可以調(diào)用startService()啟動一個 Service 或者 bindService()方法來綁定一個

23、存在的 Service 3Broadcast Receiver 簡介Broadcast Receiver 顧名思義播送接收器,它和事件處理機制類似,只不過事件-. z處理機制是程序組件級別的例如,*個按鈕的單擊事件 ,而播送事件處理機制是系統(tǒng)級別的。到目前為止我們可以使用 Intent 來啟動一個程序組件,我們還可以通過使用 sendBroadcast()方法來發(fā)起一個系統(tǒng)級別的事件播送來傳遞消息。我們可以在你的應用程序中實現(xiàn) Broadcast Receiver 來監(jiān)聽和響應這些播送的 Intent 4ContentProvider 簡介Content Provider 用來保存和檢索數(shù)據(jù),

24、并且使應用程序之間相互數(shù)據(jù)成為可能。它是跨應用程序共享數(shù)據(jù)的唯一方法。Android 為常用的數(shù)據(jù)類型如:音視頻、圖片和聯(lián)系方式等提供了大量的Content Provider。它們被定義在 vider 包下面。通過這樣定義好的ContentProvider 我們可以方便的進展數(shù)據(jù)操作。當然我們必須擁有適當?shù)臋?quán)限。我們也可以自己來定 ContentProvider 共享我們的數(shù)據(jù),方便用戶的。2.22.2 JavaJavaJava 是一種可以撰寫跨平臺應用軟件的面向?qū)ο蟮某绦蛟O計語言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序

25、設計語言和 Java 平臺即 JavaSE, JavaEE, JavaME的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和平安性,廣泛應用于個人 PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機、移動和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java 更具備了顯著優(yōu)勢和廣闊前景。Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組效勞,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具Java Development Kit,JDK 。 雖然大

26、多數(shù)用戶很樂于將 Eclipse 當作 Java 集成開發(fā)環(huán)境IDE來使用,但 Eclipse 的目標卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境Plug-in Development Environment,PDE ,這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣東西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。 這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語言開發(fā)的

27、,但它的用途并不限于 Java 語言;例如,支持諸如 C/C+ 和 COBOL 等編程語言的插件已經(jīng)可用,或預計將會推出。Eclipse 框架還可用來作為與軟件開發(fā)無關的其他應用程序類型的根底,比方容管理系統(tǒng)。 基于 Eclipse 的應用程序的一個突出例子是 IBM Rational Software Architect,它構(gòu)成了 IBM Java 開發(fā)工具系列的根底7。-. z2.32.3 SQLSQL ServerServer 20052005 和和 SQLiteSQLite 數(shù)據(jù)庫數(shù)據(jù)庫SQL Server 是一個關系數(shù)據(jù)庫管理系統(tǒng)。它最初是由 Microsoft Sybase 和As

28、hton-Tate 三家公司共同開發(fā)的,于 1988 年推出了第一個 OS/2 版本。在 Windows NT 推出后,Microsoft 與 Sybase 在 SQL Server 的開發(fā)上就分道揚鑣了,Microsoft 將 SQL Server 移植到 Windows NT 系統(tǒng)上,專注于開發(fā)推廣 SQL Server 的 Windows NT 版本。Sybase 則較專注于 SQL Server 在 UNI* 操作系統(tǒng)上的應 SQL Server 安裝界面用。 SQLite,是一款輕型的數(shù)據(jù)庫,是遵守 ACID 的關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)

29、品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百 K 的存就夠了。它能夠支持 Windows/Linu*/Uni*等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比方 Tcl、C*、PHP、Java 等,還有 ODBC 接口,同樣比起 Mysql、PostgreSQL 這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite 第一個 Alpha 版本誕生于 2000 年 5 月. 至今已經(jīng)有 10 個年頭,SQLite 也迎來了一個版本 SQLite 3 已經(jīng)發(fā)布。2.42.4 C/SC/S 模式模式在網(wǎng)絡連接模式中,除對等網(wǎng)外,還有另一種形式的網(wǎng)絡,即客

30、戶機/效勞器網(wǎng),Client/Server。在客戶機/效勞器網(wǎng)絡中,效勞器是網(wǎng)絡的核心,而客戶機是網(wǎng)絡的根底,客戶機依靠效勞器獲得所需要的網(wǎng)絡資源,而效勞器為客戶機提供網(wǎng)絡必須的資源。這里客戶和效勞器都是指通信中所涉及的兩個應用進程軟件 。使用計算機的人是計算機的“用戶user而不是“客戶client 。但在許多國外文獻中,也經(jīng)常把運行客戶程序的機器稱為 client這種情況下也可把 client 譯為“客戶機 ,把運行效勞器程序的機器稱為 server。所以有時要根據(jù)上下文判斷 client 與 server是指軟件還是硬件。它是軟件系統(tǒng)體系構(gòu)造,通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務

31、合理分配到 Client 端和 Server 端來實現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應用軟件系統(tǒng)都是 Client/Server 形式的兩層構(gòu)造,由于現(xiàn)在的軟件應用系統(tǒng)正在向分布式的Web 應用開展,Web 和 Client/Server 應用都可以進展同樣的業(yè)務處理,應用不同的模塊共享邏輯組件;因此,部的和外部的用戶都可以新的和現(xiàn)有的應用系統(tǒng),通過現(xiàn)有應用系統(tǒng)中的邏輯可以擴展出新的應用系統(tǒng)。這也就是目前應用系統(tǒng)的開展方向。C/S 架構(gòu)軟件的優(yōu)勢和劣勢9:應用效勞器運行數(shù)據(jù)負荷較輕。最簡單的 C/S 體系構(gòu)造的數(shù)據(jù)庫應用由兩局部組成,即客戶應用程序和數(shù)據(jù)庫效勞器程序。二者可分別稱為前臺程序

32、與后臺程序。運行數(shù)據(jù)庫效勞器程序的機器,也稱為應用效勞器。一旦效勞器程序被啟動,就隨時等-. z待響應客戶程序發(fā)來的請求;客戶應用程序運行在用戶自己的電腦上,對應于數(shù)據(jù)庫效勞器,可稱為客戶電腦,當需要對數(shù)據(jù)庫中的數(shù)據(jù)進展任何操作時,客戶程序就自動地尋找效勞器程序,并向其發(fā)出請求,效勞器程序根據(jù)預定的規(guī)則作出應答,送回結(jié)果,應用效勞器運行數(shù)據(jù)負荷較輕。數(shù)據(jù)的儲存管理功能較為透明。在數(shù)據(jù)庫應用中,數(shù)據(jù)的儲存管理功能,是由效勞器程序和客戶應用程序分別獨立進展的,前臺應用可以違反的規(guī)則,并且通常把那些不同的不管是還是未知的運行數(shù)據(jù),在效勞器程序中不集中實現(xiàn),例如者的權(quán)限,編號可以重復、必須有客戶才能建

33、立定單這樣的規(guī)則。所有這些,對于工作在前臺程序上的最終用戶,是“透明的,他們無須過問通常也無法干預背后的過程,就可以完成自己的一切工作。在客戶效勞器架構(gòu)的應用中,前臺程序不是非?!笆菪?,麻煩的事情都交給了效勞器和網(wǎng)絡。在 C/S 體系的下,數(shù)據(jù)庫不能真正成為公共、專業(yè)化的倉庫,它受到獨立的專門管理。C/S 架構(gòu)的劣勢是高昂的維護本錢且投資大。首先,采用 C/S 架構(gòu),要選擇適當?shù)臄?shù)據(jù)庫平臺來實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的真正“統(tǒng)一,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫系統(tǒng)去管理,但邏輯上兩地的操作者要直接同一個數(shù)據(jù)庫才能有效實現(xiàn),有這樣一些問題,如果需要建立“實時的數(shù)據(jù)同步,就必須在兩地間建立實時的通訊連接

34、,保持兩地的數(shù)據(jù)庫效勞器在線運行,網(wǎng)絡管理工作人員既要對效勞器維護管理,又要對客戶端維護和管理,這需要高昂的投資和復雜的技術(shù)支持,維護本錢很高,維護任務量大。4傳統(tǒng)的 C/S 構(gòu)造的軟件需要針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,由于產(chǎn)品的更新?lián)Q代十分快,代價高和低效率已經(jīng)不適應工作需要。在 JAVA 這樣的跨平臺語言出現(xiàn)之后,B/S 架構(gòu)更是猛烈沖擊 C/S,并對其形成威脅和挑戰(zhàn)。 第三章第三章 系統(tǒng)分析與設計系統(tǒng)分析與設計3.13.1 功能需求功能需求隨著 3G 時代的到來,手機應用越來越普遍,加之國民手機持有量更是爆炸式增長。為了方便 Android 手機用戶能隨時隨地點到自己喜歡的菜

35、品,提出一種操作簡便,功能齊全,占用資源少,能為用戶節(jié)約流量的的網(wǎng)上訂餐應用,于是提出本系統(tǒng)的主要功能。需求界面如下:客戶端:1、登陸、注冊界面2、顯示菜品界面3、搜索菜品界面按菜品名稱、種類、店鋪名稱進展搜索4、購物車界面-. z5、個人信息界面6、菜品詳情界面效勞器端:1、登陸界面2、訂單管理、菜品管理、會員管理界面需現(xiàn)功能如下:客戶端:1、實現(xiàn)客戶端與效勞器之間的連接2、實現(xiàn)登陸、注冊功能3、實現(xiàn)登陸后能瀏覽到效勞器數(shù)據(jù),并對數(shù)據(jù)進展一系列的操作4、能把菜品參加到購物車,并結(jié)算生成訂單5、把生成的訂單信息傳回效勞器端效勞器端:1、實現(xiàn)管理員登陸2、實現(xiàn)添加、刪除、修改菜品信息3、實現(xiàn)對客

36、戶端傳過來的訂單進展處理4、實現(xiàn)添加、刪除會員列表功能模塊圖如 3.1 所示:圖圖 3.13.1 系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖3.23.2 模塊構(gòu)造與流程模塊構(gòu)造與流程 客戶端客戶端表表 3.13.1 客戶端概要設計表客戶端概要設計表客戶端模塊客戶端模塊簡要說明簡要說明登陸模塊在連接上效勞器的前提下登陸成功注冊模塊在連接上效勞器的前提下注冊成功瀏覽菜品模塊從效勞器中讀取數(shù)據(jù),并把數(shù)據(jù)封裝顯示在菜品列表中菜品詳情模塊點擊菜品進入到菜品的詳細介紹和訂餐效勞頁面搜索模塊按照用戶選擇的條件從手機數(shù)據(jù)庫中搜索菜品購物車模塊當用戶定了菜品之后,所有訂單信息都顯示在這個模塊中,并且點擊結(jié)算按鈕生成訂單傳送回

37、效勞器個人信息模塊顯示用戶的個人信息圖圖 3.23.2 客戶端流程圖客戶端流程圖.2 效勞端效勞端表表 3.23.2 效勞器端概要設計表效勞器端概要設計表-. z效勞器端模塊效勞器端模塊簡要說明簡要說明登陸模塊提供管理員登陸訂單信息模塊顯示現(xiàn)有的訂單信息并給與處理按鈕菜品添加刪除修改模塊對要顯示在客戶端的菜品進展添加刪除修改操作會員管理模塊對會員進展添加和刪除以及查看信息圖圖 3.33.3 效勞器流程圖效勞器流程圖3.33.3 數(shù)據(jù)庫設計數(shù)據(jù)庫設計數(shù)據(jù)庫構(gòu)造組織和數(shù)據(jù)庫文件設計要根據(jù)不同用途,使用要求等,來決定數(shù)據(jù)庫的整體組織形式等一系列問題。數(shù)據(jù)庫,顧名思義,是存放數(shù)據(jù)的倉庫

38、,只不過這個倉庫是在計算機存儲設備上的,而且數(shù)據(jù)是按一定格式存放。數(shù)據(jù)庫中的數(shù)據(jù)按一定模型組織描述和存儲。具有較小的重復度,較高的數(shù)據(jù)獨立性和易擴性,并且可以被一定圍的各種用戶共享。在涉及數(shù)據(jù)庫的軟件開發(fā)中,需要根據(jù)有待解決的問題性質(zhì),規(guī)模,以及所采用的前端程序創(chuàng)立工具等。做出適宜的數(shù)據(jù)庫類型選擇。在該工程中建立了兩個數(shù)據(jù)庫,客戶端和效勞器各一個,用這種設計方式主要是為用戶減少許多不必要的流量浪費,如果只創(chuàng)立一個效勞器數(shù)據(jù)庫的話,用戶每次連接上效勞器時都會將效勞器的所有資源全部承受一遍,但是事實上該工程并不需要實時的更新數(shù)據(jù),因為有些菜品的信息可能很久都不會有變動,所以考慮在客戶端也創(chuàng)立一個數(shù)

39、據(jù)庫把效勞器端發(fā)送過來的數(shù)據(jù)存儲在本地數(shù)據(jù)庫中,當效勞器有更新時只需要傳遞改變的數(shù)據(jù)就可以實現(xiàn)更新。.1 數(shù)據(jù)庫表及其構(gòu)造數(shù)據(jù)庫表及其構(gòu)造效勞器數(shù)據(jù)庫SQL Server 2005Admin 表:管理員編號,用戶名,密碼,權(quán)限。BaseProducts 表:菜品編號,菜品名字,菜品種類,菜品價格,菜品圖片。DetailOrders 表:訂單編號,詳細編號,菜品編號,數(shù)量。DetailProducts 表:編號,菜品編號,菜品價格,菜品狀態(tài),折扣,菜品描述。Member 表:會員編號,會員名字,會員密碼,會員性別,會員,會員地址,會員積分,會員金錢。Orders 表:訂單編號,訂

40、單生成時間,會員編號,訂單狀態(tài)??蛻舳藬?shù)據(jù)庫SQLiteShoppingrecord 表:訂單編號,詳細編號,菜品編號,數(shù)量。Showedgoods 表:菜品編號,菜品名字,菜品種類,菜品價格,菜品圖片。-. z.2 數(shù)據(jù)數(shù)據(jù)系統(tǒng) E-R實體-聯(lián)系圖用來描述數(shù)據(jù)關系模型,可以用來建立數(shù)據(jù)模型。本系統(tǒng)共有 8 個實體,其關系如圖 3.4 所示。圖圖 3.43.4 全局全局 E-RE-R 圖圖下面列舉主要實體:管理員實體Admin包括管理員編號、管理員(登錄)、登錄密碼、管理員等級等屬性,如圖 3.5 所示。 圖圖 3.53.5 管理員實體屬性圖管理員實體屬性圖會員實體Member

41、包括會員編號、會員(登錄)、登錄密碼、管理員性別,聯(lián)系, ,會員積分等屬性。如圖 3.6 所示。 圖圖 3.63.6 會員實體屬性圖會員實體屬性圖.3 客戶端數(shù)據(jù)庫的連接客戶端數(shù)據(jù)庫的連接Andorid 數(shù)據(jù)庫存儲的位置在 data/data/databases/目錄下,Android 是利用 ContentProvider 作為容提供商,SQLiteOpenHelper 數(shù)據(jù)庫幫助類來進展對數(shù)據(jù)庫的創(chuàng)立和操作。程序中數(shù)據(jù)庫類為 MyopenHelper e*tends SQLiteOpenHelper繼承關系 ,在此列出連接數(shù)據(jù)庫的代碼:public class Myopen

42、Helper e*tends SQLiteOpenHelper / 生成表shoppingrecod,用以記錄購置過的商品private static final String RECORD_TABLE = create table shoppingrecord (oid integer primary key ,doid integer,bid integer,donum integer);/ 生成表showedgoods,用以存儲上次購置過的商品private static final String GOODS_TABLE = create table showedgoods (bid i

43、nteger primary key ,bname varchar,bstyle varchar,bprice float,bpicture varchar);/創(chuàng)立表public void onCreate(SQLiteDatabase db) db.e*ecSQL(RECORD_TABLE);db.e*ecSQL(GOODS_TABLE);/更新表public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) db.e*ecSQL(drop table if e*ists shoppingrecord);db

44、.e*ecSQL(drop table if e*ists showedgoods);-. zdb.e*ecSQL(RECORD_TABLE);db.e*ecSQL(GOODS_TABLE);.4 效勞器數(shù)據(jù)庫的連接效勞器數(shù)據(jù)庫的連接效勞器端采用 SQL Server 2005 來創(chuàng)立數(shù)據(jù)庫,首先得導入sql2000_2005jdbc.jar 庫文件,然后在數(shù)據(jù)庫的配置工具中開啟 SQL Server 效勞,接下來就要在 java 代碼中實現(xiàn)連接數(shù)據(jù)庫的功能了,代碼如下:public static Connection getCon() Connection con = nul

45、l;if (!isInitialized) return con;try Class.forName(prop.getProperty(className);/連接數(shù)據(jù)庫語句,url user pwd都在配置文件sql.ini中con = DriverManager.getConnection(prop.getProperty(url), prop.getProperty(user), prop.getProperty(pwd); catch (E*ception e) e.printStackTrace();return con;Sql.ini 配置文件容:url=jdbc:sqlserve

46、r:/localhost:1433;databaseName=Dinneruser=sapwd=1233.43.4 系統(tǒng)構(gòu)造系統(tǒng)構(gòu)造本系統(tǒng)采用 HTTP 協(xié)議來進展數(shù)據(jù)傳輸。采用 C/S 構(gòu)造,客戶端為基于 Android 操作系統(tǒng)平臺的智能手機,主要的業(yè)務邏輯則效勞器端來實現(xiàn),數(shù)據(jù)存儲在數(shù)據(jù)庫效勞器。3.3.4 4.1.1 部署圖部署圖系統(tǒng)部署如圖 3.7 所示,客戶端采用基于 Android 操作系統(tǒng)平臺的智能手機,效勞器端包括效勞器、圖形界面化工具和數(shù)據(jù)庫效勞器,主要處理業(yè)務邏輯和對數(shù)據(jù)的-. z增刪改查。圖圖 3.73.7 系統(tǒng)部署圖系統(tǒng)部署圖3.3.4 4.2.2 類圖類圖根據(jù)已建立

47、的用例圖確定要建立的對象類并確定屬性和操作。通過檢查類的定義,分析問題的需求和運用該領域知識來確定類的屬性。根據(jù)系統(tǒng)功能需求和系統(tǒng)設計需要確定類的操作,本系統(tǒng)有 6 個實體類,分別為管理員實體類Admin 、會員實體類Member 、訂單實體類Orders 、訂單詳情實體類DetailOrders 、商品實體類Products 、商品詳情實體類DetailProducts ,如圖 3.8 所示。 圖圖 3.83.8 實體類實體類3.53.5 執(zhí)行概念執(zhí)行概念本系統(tǒng)時序圖如圖 3.9 所示。圖圖 3.93.9 系統(tǒng)時序圖系統(tǒng)時序圖1、客戶端發(fā)送請求給效勞器,效勞器的后臺 Servlet 負責處理

48、數(shù)據(jù)。2、效勞器業(yè)務邏輯處理會調(diào)用 DAO,進展數(shù)據(jù)處理。3、調(diào)用實體類,把數(shù)據(jù)保存到數(shù)據(jù)庫 DB 中。4、DAO 返回結(jié)果給 Servlet。5、Servlet 把結(jié)果返回給客戶端。第第四四章章 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn)4.4.1 1 AndroidAndroid 環(huán)境搭建環(huán)境搭建任何事物要運行,都要有它的環(huán)境,Android 也有它的環(huán)境才能夠運行,下面介紹Android 的開發(fā)環(huán)境配置.搭建開發(fā)環(huán)境需要的軟件:1、操作系統(tǒng):Windows 7 或 Linu*2、軟件包:Android SDK(Software Development kit Java Development kit) 、ADT(

49、Android Develoopment Tool)3、IDE 環(huán)境:Eclipse IDE+ADT Eclipse3.3 以上4、JDK:Java Runtime Environment 虛擬機 、(JDK)Java Development kit安裝步驟如下:第一步:安裝 Java 虛擬機 sun-java6-jdk 版本第二步:安裝 Eclipse3.5 工具 官網(wǎng)./downloads/選擇版本圖 4.1:進展安裝-. z圖圖4.14.1 eclipseeclipse 下載下載第三步:安裝 Android SDK:首先要下載 SDK,可以在這個網(wǎng)址下載develo

50、per.android./sdk ,如圖 4.2,選擇相應的系統(tǒng)進展安裝圖圖4.24.2 SDKSDK 下載下載第四步:安裝 Android ADT 插件運行 Eclipse,選擇 help-install new software 選擇 add,將會彈出一個框,如圖 4.3 所示圖圖4.34.3 ADTADT 的安裝的安裝 點擊 OK,選擇要安裝的軟件,占 ne*t,然后選擇承受協(xié)議,直到安裝成功,重啟Eclipse 軟件,設置 Android SDK Home,Window-refrence圖圖4.44.4 設置設置 SDKSDK 路徑路徑在 SDK location 中輸入 SDK To

51、ols 路徑:D:androidandroid-sdk 點擊 OK這樣 Android 環(huán)境就已經(jīng)搭建成功了。4.24.2 客戶端客戶端.1 系統(tǒng)登錄系統(tǒng)登錄登陸模塊界面如圖4.5所示,顯示了一個登陸窗口,在其中參加許多控件,如文本輸入框EditTe*t ,文本顯示框Te*tView ,單項選擇按鈕RaidoButton ,復選按鈕CheckBo*等,然后用一系列的布局將其有條理的放在這個窗口中。圖圖4.54.5 登陸窗口登陸窗口當用戶點擊游客登陸時,將不會跟效勞器的數(shù)據(jù)庫進展匹配,直接進入主界面,代碼如下:if (flag) / 當用戶選擇游客登陸時點擊登陸按鈕直接進入主界面

52、Intent intent = new Intent(LoginActivity.this,ProductListActivity.class);startActivity(intent);Intent intent1 = new Intent(LoginActivity.this,UpdateService.class);startService(intent1);當用戶點擊會員登陸時,會把用戶輸入的數(shù)據(jù)跟效勞器端數(shù)據(jù)庫中的數(shù)據(jù)進展匹配,如果一樣則登陸成功,否則彈出登陸失敗的信息。如果用戶點擊了記住密碼選項,-. z則把用戶輸入的用戶名和密碼都保存到SharedPreferences中。代碼

53、如下:String name = etUsername.getTe*t().toString().trim();String password = etPassword.getTe*t().toString().trim();/ 包裝用戶發(fā)送的用戶數(shù)據(jù)Member member = new Member(name, password);protocolHelper.setObject(member);protocolHelper.setRequest(ProtocolHelper.REGISTER,ProtocolHelper.QUERY, member);result = protocolH

54、elper.sendRequestVO();/ 向效勞端發(fā)送數(shù)據(jù)if (result.size() 0) response = result.get(0);/ 根據(jù)效勞端的相應信息進展相應判斷if (response != null) / 將用戶名存在sharedPreferencesEditor namedata = sharedPreferences.edit();namedata.putString(name, etUsername.getTe*t().toString().trim();namedata.mit();/ 將密碼存在sharedPreferencesEditor pass

55、worddata = sharedPreferences.edit();passworddata.putString(password, etPassword.getTe*t().toString().trim();passworddata.mit();/ 登錄成功,進入主界面 else / 登錄失敗,彈出錯誤信息當用戶點擊注冊按鈕時,通過Android的Intent機制,就從登陸界面跳轉(zhuǎn)到注冊界面,接下來實現(xiàn)系統(tǒng)注冊的功能。.2 系統(tǒng)注冊系統(tǒng)注冊注冊界面如圖4.6,跟登陸界面一下,它也有一個屬于它的布局文件來擺放這些控件,在此模塊中必須要輸入正確這些注冊信息,才能正常的進展注

56、冊。圖圖4.64.6 注冊界面注冊界面當用戶點擊取消按鈕時,界面會跳轉(zhuǎn)回到登陸界面,當用戶點擊注冊按鈕時會跟效勞器端的數(shù)據(jù)庫進展連接,把用戶所填的信息拼接發(fā)給效勞器,效勞器處理過后將-. z數(shù)據(jù)插入到數(shù)據(jù)庫中對應的表中??蛻舳藢崿F(xiàn)注冊代碼如下:bRegister.setOnClickListener(new OnClickListener() public void onClick(View v) / 獲取用戶輸入數(shù)據(jù)if(name.equals()|password.equals()|repassword.equals()/如果用戶輸入用戶名或密碼為空,則給出提示,用戶名和密碼不能為空els

57、e /如果不為空則先放入HashMap中,再做密碼輸入是否一致的判斷/ 判斷輸入的密碼是否一致if (infoHashMap.get(password).equals(infoHashMap.get(repassword) / 拼湊數(shù)據(jù)data = name + infoHashMap.get(username) + ;+ password + infoHashMap.get(password) +;+ se* + infoHashMap.get(se*) + ; + num+ infoHashMap.get(number) + ; + address + infoHashMap.get(ad

58、dress);Member member=new Member(name,password,infoHashMap.get(se*),number,address);protocolHelper.setObject(member);/ 準備請求數(shù)據(jù)protocolHelper.setRequest(ProtocolHelper.REGISTER,ProtocolHelper.INSERT, data);/ 向效勞端發(fā)送請求response = protocolHelper.sendRequest();/ 判斷響應信息,根據(jù)信息觸發(fā)不同的事件if (response.equals(success

59、) / 跳轉(zhuǎn)到主界面 else / 以對話框的形式給出錯誤信息 else / 以對話框的形式給出錯誤信息:密碼必須一致.3 瀏覽菜品瀏覽菜品用戶登陸成功或者選擇游客登陸成功后,會直接進入到主界面,如圖4.7,主界面的布局采用的是TabHost分頁式布局,每一個Tab都對應一個Activity,通過addTab這個方法來添加Tab,這個控件讓Android手機多個Activity共享一個界面,而且操作方便,簡單,布局好看。-. z圖圖4.74.7 主界面主界面當用戶選擇菜單項選擇項時,在其下面將列出從效勞器端發(fā)送過來菜品簡要信息數(shù)據(jù),客戶端想要看到這些數(shù)據(jù)必須對它進展一系列的處理

60、,在此,本模塊采用了ListView來顯示菜品信息,ListView是以列表的形式來展示具體容,并且能夠根據(jù)數(shù)據(jù)的長度自適應的顯示,要想ListView顯示數(shù)據(jù)必須要為其添加適配器Adapter ,適配器分為很多種,有ArrayAdapter、SimpleAdapter、BaseAdapter等等,由于在該ListView中顯示的數(shù)據(jù)比較多,而且還有圖片信息等,所以在此采用BaseAdapter來構(gòu)建適配器。構(gòu)建BaseAdapter核心代碼:/ 菜單模塊的自定義適配器。class ProductAdapter e*tends BaseAdapter public View getView(i

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論