周洪艷,林 超,丁 頌
(1.長(zhǎng)春師范大學(xué)工程學(xué)院,吉林長(zhǎng)春 130032;2.福州機(jī)電工程職業(yè)技術(shù)學(xué)校,福建福州 350011)
?
基于A(yíng)ndroid的點(diǎn)餐系統(tǒng)APP設(shè)計(jì)
周洪艷1,林 超2,丁 頌1
(1.長(zhǎng)春師范大學(xué)工程學(xué)院,吉林長(zhǎng)春 130032;2.福州機(jī)電工程職業(yè)技術(shù)學(xué)校,福建福州 350011)
本文主要介紹了基于A(yíng)ndroid的點(diǎn)餐系統(tǒng)APP設(shè)計(jì)部分。在系統(tǒng)總體層面,結(jié)合APP、網(wǎng)絡(luò)、通信、數(shù)據(jù)庫(kù)和服務(wù)器的設(shè)計(jì)與架構(gòu),實(shí)現(xiàn)手機(jī)點(diǎn)餐功能;在功能層面,基于面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,使得不同使用角色進(jìn)入不同的功能界面,進(jìn)行相應(yīng)操作;在技術(shù)層面,基于A(yíng)ndroid平臺(tái),以Java語(yǔ)言為開(kāi)發(fā)語(yǔ)言,Eclipse 4.2.2作為開(kāi)發(fā)工具,SQLServer2008R2作為數(shù)據(jù)庫(kù),Windows Server 2008 IIS7.0作為服務(wù)器;本系統(tǒng)APP設(shè)計(jì)包括界面設(shè)計(jì)、功能實(shí)現(xiàn)、投入使用方面,符合點(diǎn)餐系統(tǒng)主題、風(fēng)格,能夠?qū)崿F(xiàn)餐廳人員和顧客的點(diǎn)餐需求。
Android;點(diǎn)餐系統(tǒng);APP設(shè)計(jì)
隨著社會(huì)信息化的發(fā)展,我國(guó)餐飲業(yè),尤其是快餐行業(yè)迅猛發(fā)展。傳統(tǒng)餐飲業(yè)管理成本高、管理水平低、人力資源浪費(fèi)、服務(wù)員工作量大、工作效率低、點(diǎn)菜周期長(zhǎng)、跑單漏單嚴(yán)重、紙張等消耗大,嚴(yán)重影響到餐飲業(yè)服務(wù)品質(zhì)和形象[1]。手機(jī)點(diǎn)餐系統(tǒng),切實(shí)實(shí)現(xiàn)了餐廳服務(wù)員通過(guò)手持設(shè)備為顧客點(diǎn)菜、加菜,并即時(shí)把數(shù)據(jù)傳到后臺(tái)并發(fā)送到廚房與前臺(tái)的打印機(jī)上,打印機(jī)立刻打印所點(diǎn)的菜單,而且所有的操作數(shù)據(jù)都儲(chǔ)存在后臺(tái)的數(shù)據(jù)庫(kù)中,以備查詢(xún)。手機(jī)點(diǎn)餐節(jié)省時(shí)間、安全方便,大大提升了餐飲業(yè)的形象和工作效率,滿(mǎn)足社會(huì)信息化發(fā)展的需求。
1.1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)主要有APP模塊、無(wú)線(xiàn)通信傳輸模塊、數(shù)據(jù)庫(kù)設(shè)計(jì)模塊、服務(wù)器模塊、顯示模塊五部分。利用星型ZigBee無(wú)線(xiàn)傳感器網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)傳輸,傳送至服務(wù)器。簡(jiǎn)單硬件、軟件設(shè)計(jì),實(shí)現(xiàn)手機(jī)點(diǎn)餐功能。系統(tǒng)總體框圖如圖1所示。

圖1 系統(tǒng)總體框圖
1.2 系統(tǒng)總體功能
基于A(yíng)ndroid的手機(jī)點(diǎn)餐系統(tǒng),可以通過(guò)APP、PC機(jī)、ZigBee技術(shù)、打印機(jī)以及網(wǎng)絡(luò)實(shí)現(xiàn)顧客、服務(wù)員、廚師、收銀員及管理員一體化的餐飲點(diǎn)餐功能。顧客可以通過(guò)手機(jī)下載APP,實(shí)現(xiàn)預(yù)定、點(diǎn)餐、外賣(mài)、結(jié)賬服務(wù);服務(wù)員可以通過(guò)APP進(jìn)行查詢(xún)桌臺(tái)、菜品、開(kāi)桌、點(diǎn)菜、退菜操作;廚師可以通過(guò)LED顯示器實(shí)時(shí)接收到點(diǎn)餐信息并打印,每收到點(diǎn)餐信息廚房會(huì)通過(guò)報(bào)警器進(jìn)行提示;收銀員可以通過(guò)APP查看所有的訂單,選擇相應(yīng)的訂單進(jìn)行結(jié)賬操作,并進(jìn)行營(yíng)收統(tǒng)計(jì);管理員可以通過(guò)APP實(shí)現(xiàn)臺(tái)桌、菜譜、人員數(shù)據(jù)的增刪、改查操作。
2.1 Android簡(jiǎn)介
Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng)。開(kāi)放性是Android的最大優(yōu)勢(shì)。Android應(yīng)用程序的基本組件:Activity(活動(dòng))、Service(服務(wù))、Broadcast Receiver(廣播接收器)、Content Provide(內(nèi)容),在這些組件之間的通訊主要是由Intent(意圖)協(xié)助完成的。Activity是構(gòu)成Application的基本組件,一般帶有UI和消息處理過(guò)程,Android通過(guò)Activity Stack來(lái)管理。Android系統(tǒng)會(huì)判斷應(yīng)用程序的Activity是屬于哪一個(gè)類(lèi),給予不同的Activity生命周期。Activity間的切換是靠Intent實(shí)現(xiàn)。
2.2 Java語(yǔ)言簡(jiǎn)介
Java語(yǔ)言是完全面向?qū)ο蟮木幊陶Z(yǔ)言。面向?qū)ο蟪绦蛟O(shè)計(jì)思想是現(xiàn)在程序設(shè)計(jì)的主流思想,它通過(guò)給程序中加入擴(kuò)展語(yǔ)句,把函數(shù)“封裝”進(jìn)編程所必需的“對(duì)象”中,使得復(fù)雜的工作條理清晰,編寫(xiě)容易[2]。Java語(yǔ)言中萬(wàn)事萬(wàn)物都是對(duì)象。作為面向?qū)ο蟮目缙脚_(tái)程序設(shè)計(jì)語(yǔ)言,Java已被越來(lái)越多的程序開(kāi)發(fā)人員使用。在Java中所有的數(shù)據(jù)對(duì)象都依賴(lài)于類(lèi),主要包括基本數(shù)據(jù)類(lèi)型對(duì)應(yīng)的封裝類(lèi)、字符串String類(lèi)、JDK包提供的類(lèi)及開(kāi)發(fā)人員自定義的類(lèi)[3]。Java具有簡(jiǎn)單、面向?qū)ο蟆⒎植际健⒔忉屝浴⒍嗑€(xiàn)程、動(dòng)態(tài)性、封裝性、繼承性等特點(diǎn)。
2.3 開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具
本系統(tǒng)基于A(yíng)ndroid平臺(tái),采用Thread、I/O流、UI開(kāi)發(fā)、數(shù)據(jù)存儲(chǔ)等技術(shù)開(kāi)發(fā),開(kāi)發(fā)包為JDK1.6、SDK22.0.5,開(kāi)發(fā)工具采用Eclipse 4.2.2,數(shù)據(jù)庫(kù)為SQLServer2008R2,服務(wù)器為Windows Server 2008 IIS7.0。
2.4 Android環(huán)境安裝和配置
(1)安裝JDK和配置Java開(kāi)發(fā)環(huán)境;(2)Android SDK的安裝與配置;(3)Eclipse安裝和配置;(4)Sqlite數(shù)據(jù)庫(kù)工具安裝。
2.5 測(cè)試環(huán)境和新建項(xiàng)目
雙擊eclipse目錄下的eclipse.exe,打開(kāi)eclipse開(kāi)發(fā)開(kāi)具。打開(kāi)菜單“File”,選擇“NEW”→“Project…”菜單命令,出現(xiàn)“Android Project”選項(xiàng),則表示安裝配置成功。在“New Android Project”對(duì)話(huà)框中依次輸入相應(yīng)Project Name,Select Build Target選擇Android 2.2,輸入相應(yīng)Application Name(程序名稱(chēng))和Package Name(程序包名稱(chēng)),并勾選Create Activity。點(diǎn)擊完成,實(shí)現(xiàn)新建一個(gè)Android項(xiàng)目。
APP是英文Application的簡(jiǎn)稱(chēng),指運(yùn)行在手機(jī)、平板電腦等移動(dòng)終端設(shè)備上的第三方應(yīng)用程序。App設(shè)計(jì)就是為這些移動(dòng)終端設(shè)計(jì)第三方應(yīng)用程序。
3.1 界面設(shè)計(jì)
3.1.1 設(shè)計(jì)要求
界面包括背景和控件。背景選擇要符合系統(tǒng)主題,控件要滿(mǎn)足功能需求,布局要合理,界面要美觀(guān),整體設(shè)計(jì)要符合操作邏輯。
3.1.2 設(shè)計(jì)結(jié)果
登錄是系統(tǒng)的入口。如果未注冊(cè)可注冊(cè)賬號(hào),進(jìn)入注冊(cè)界面。如果已注冊(cè)填寫(xiě)用戶(hù)名和密碼進(jìn)行登錄,登錄之后就可以進(jìn)行開(kāi)桌,點(diǎn)餐是系統(tǒng)的核心。可選餐的類(lèi)別和咖啡師,當(dāng)客人入桌后服務(wù)員啟動(dòng)點(diǎn)菜功能記錄當(dāng)前桌客戶(hù)所選擇的菜。登錄界面如圖2所示,點(diǎn)餐界面如圖3所示。

圖2 登錄界面

圖3 點(diǎn)餐界面
3.2 功能實(shí)現(xiàn)
3.2.1 Android項(xiàng)目資源管理
(1)src:存放所有的Java源程序;(2)res:資源庫(kù),drawable是放圖片文件的;layout是放布局文件的;(3)gen自動(dòng)生成R.java文件,R.java將保存所有的資源ID;(4)bin:生成apk的文件夾;(5)AndroidManifest.xml:是每個(gè)Android程序中必須的文件。它位于整個(gè)項(xiàng)目的根目錄,描述了package中暴露的組件(activities,services等),它們各自的實(shí)現(xiàn)類(lèi),各種能被處理的數(shù)據(jù)和啟動(dòng)位置。
3.2.2 登錄界面程序設(shè)計(jì)
(1)控件:文本框TextView、編輯框EditText和按鈕Button;(2)文件AndroidManifest.xml:配置APP應(yīng)用,設(shè)置icon圖標(biāo),注冊(cè)Activity;(3)線(xiàn)性布局LinearLayout:按行或按列方向逐個(gè)排列控件,設(shè)置背景、各控件id等屬性,使界面布局合理;(4)功能實(shí)現(xiàn):以登錄按鈕為例實(shí)現(xiàn)登錄功能,布局文件中定義登錄按鈕控件,設(shè)置其id為btn_login,為了讓btn_login控件點(diǎn)擊的時(shí)候有處理方法、有邏輯,設(shè)置一個(gè)單擊事件監(jiān)聽(tīng)類(lèi)。新建Java類(lèi),實(shí)現(xiàn)接口。在A(yíng)ctivity中初始化btn_login控件,為btn_login控件注冊(cè)事件監(jiān)聽(tīng)。用戶(hù)點(diǎn)擊“登錄”按鈕跳轉(zhuǎn)到相應(yīng)界面。
3.2.3 點(diǎn)餐界面程序設(shè)計(jì)
(1)控件:按鈕Button、編輯框EditText、列表ListView;(2)文件AndroidManifest.xml:注冊(cè)Activity;(3)布局方式:以1個(gè)LinearLayout線(xiàn)性布局嵌套2個(gè)LinearLayout布局,設(shè)置背景、各控件id等屬性,做到界面合理布局;(4)功能實(shí)現(xiàn):以蛋糕類(lèi)按鈕為例實(shí)現(xiàn)點(diǎn)餐功能,設(shè)置其id為btn_cake。列表ListView索引了一個(gè)xml文件,讓btn_cake控件點(diǎn)擊的時(shí)候有處理方法、有邏輯,設(shè)置一個(gè)單擊事件監(jiān)聽(tīng)類(lèi)。新建Java類(lèi),實(shí)現(xiàn)接口。在A(yíng)ctivity中初始化btn_cake控件,為btn_cake控件注冊(cè)事件監(jiān)聽(tīng)。用戶(hù)點(diǎn)擊“完成”按鈕后APP需向服務(wù)器發(fā)送訂單數(shù)據(jù)表示訂單完成。點(diǎn)餐界面設(shè)計(jì)流程圖如圖4所示。

圖4 點(diǎn)餐界面設(shè)計(jì)流程圖
根據(jù)流程圖關(guān)鍵代碼如下:
(1)初始化控件
//在OnCreate函數(shù)中調(diào)用初始化函數(shù)
initView();//初始化函數(shù)
private void initView()
{ btn_coffee=(Button)findViewById(R.id.btn_coffee); btn_cake=(Button)findViewById(R.id.btn_cake); btn_drink=(Button)findViewById(R.id.btn_drink); btn_finish=(Button)findViewById(R.id.btn_finish); btn_exit1=(Button)findViewById(R.id.btn_orderexit); lv_one=(ListView)findViewById(R.id.lv_one); }
(2)設(shè)置按鈕事件監(jiān)聽(tīng)
//在OnCreate函數(shù)中調(diào)用初始化監(jiān)聽(tīng)事件函數(shù)
initListener();//初始化監(jiān)聽(tīng)事件函數(shù)
private void initListener()
{ OrderdishOnclickListener_click=new OrderdishOnclickListener(this,0); btn_cake.setOnClickListener(_click); btn_finish.setOnClickListener(new OnClickListener() { @Override public void onClick(View v){ finish();//完成關(guān)閉窗體}}); btn_orderexit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v){ finish();//退出關(guān)閉窗體}}); btn_coffee.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ lv_one.setAdapter(ad);//索引適配器 } });
}
(3)生成適配器
SimpleAdapter sad0=new SimpleAdapter(
MyOrderDishFoodActivity.this,
_arr0,
R.layout.orderdishinfocakeinfo_item,
new String[]{"name","image","info"},
new int[]{R.id.txt_cakename,R.id.img_cake,R.id.txt_cakeinfo});
lv_one.setAdapter(sad0);
(4)頁(yè)面跳轉(zhuǎn)
Intent intent=new Intent(_act.getApplicationContext(),MyOrderActivity.class);
_act.startActivity(intent);
3.3 測(cè)試結(jié)果
正確地導(dǎo)出點(diǎn)餐系統(tǒng)APK文件,手機(jī)端APP如圖5所示。實(shí)驗(yàn)室點(diǎn)餐系統(tǒng)架構(gòu):手機(jī)、LED顯示器、報(bào)警器、ZigBee協(xié)調(diào)器、路由器、PC服務(wù)器。系統(tǒng)投入使用情形如圖6所示。

圖5 手機(jī)端APP

圖6 系統(tǒng)投入使用示意圖
顧客通過(guò)手機(jī)端APP點(diǎn)餐后,廚師通過(guò)LED顯示器實(shí)時(shí)接收到點(diǎn)餐信息,每收到點(diǎn)餐信息時(shí)會(huì)通過(guò)報(bào)警器進(jìn)行提示。本系統(tǒng)APP設(shè)計(jì)符合點(diǎn)餐系統(tǒng)主題、風(fēng)格,能夠?qū)崿F(xiàn)餐廳人員和顧客的點(diǎn)餐需求。
[1]邵葉紅,張學(xué)敏.基于ZigBee技術(shù)的無(wú)線(xiàn)點(diǎn)菜系統(tǒng)[J].電子技術(shù)設(shè)計(jì)與運(yùn)用,2010(10):68-70.
[2]況旭,劉波.XML的面向?qū)ο笳Z(yǔ)言特性[J].智能、算法、系統(tǒng)工程,2010(1):54-57.
[3]張勇.Java類(lèi)對(duì)象比較分析[J].技術(shù).詞匯,2011(24):34,44.
APP Design of Restaurant Order System Based on Android
ZHOU Hong - yan1, LIN Chao2, DING Song1
(1.School of Engineering, Changchun Normal University,Changchun Jilin 130032,China; 2. Fujian Vocational College of Mechanical and Electrical Engineering, Fuzhou Fujian 350011,China)
The article focuses on APP design to restaurant order system based on Android .On system level, it combines the design and structure of APP, internet, communication, data base and server to achieve mobile ordering function, while on function level, based on the programming ideas of facing object, it can log in different interface for corresponding operation by using different account, on technology level, it selects Android as operation platform, Java as development language, Eclipse 4.2.2 as tool, SQLServer 2008R2 as database, Windows Server 2008 IIS7.0 as server. The corresponding APP design is composed of interface design, function achievement and application, it accords with the subject and style of order system and can achieve the order requirement from waiter and customer.
Android; order system;APP design
2016-09-01
周洪艷(1980- ),女,講師,從事計(jì)算機(jī)與電工電子技術(shù)研究。
TP311.1
A
2095-7602(2016)12-0034-05