摘 ?要:隨著生活節(jié)奏的加快,對(duì)于年輕白領(lǐng)而言,為了節(jié)約更多的時(shí)間,外賣成了最方便的飲食方式。外賣可以給用戶提供用戶所需要的餐飲及服務(wù),為用戶省去了準(zhǔn)備午飯或晚飯的麻煩,使其足不出戶便可以享受便利的服務(wù)。同時(shí),由于手機(jī)端網(wǎng)上外賣系統(tǒng)可以讓用戶隨時(shí)瀏覽菜品和下單,可以大大提高商家的銷售速度。本文簡(jiǎn)單地介紹了手機(jī)外賣系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程,可以同時(shí)為商家和用戶提供方便的服務(wù)。
關(guān)鍵詞:外賣系統(tǒng);Android;C/S結(jié)構(gòu)
中圖分類號(hào):TP311.52 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)18-0064-03
Abstract:With the acceleration of the pace of life,for young white-collar workers,in order to have more free time,takeaway has become the most convenient way to eat. Takeaway can provide customers with the best and most needed catering and services,save a lot of unnecessary time and trouble for customers,and enjoy the convenience of life without leaving home. Mobile terminal online takeout system allows customers to browse dishes and order at any time,greatly improving the sales speed of businesses. This paper briefly introduces the design and implementation process of mobile phone takeout system,which can provide convenient services for both businesses and users.
Keywords:takeaway system;Android;C/S structure
0 ?引 ?言
本文設(shè)計(jì)的是一個(gè)基于Android手機(jī)的網(wǎng)上外賣系統(tǒng),采用超文本傳輸協(xié)議使數(shù)據(jù)進(jìn)行傳輸。采用客戶端和服務(wù)器結(jié)構(gòu),基于Android操作系統(tǒng)平臺(tái)的智能手機(jī)作為客戶端,服務(wù)器端則是工作站。用戶通過(guò)手機(jī)端瀏覽菜品并進(jìn)行下單,后臺(tái)識(shí)別到訂單,準(zhǔn)備外賣并派送,操作方便快捷。本文從可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼等幾個(gè)方面介紹了整個(gè)軟件的開(kāi)發(fā)過(guò)程,在Android系統(tǒng)的基礎(chǔ)上,采用Java開(kāi)發(fā)語(yǔ)言和MySQL后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)完成。
1 ?Android簡(jiǎn)介
Android是基于Linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng),目前,中國(guó)大部分手機(jī)的操作系統(tǒng)都使用Android系統(tǒng)。該平臺(tái)的操作和計(jì)算機(jī)端是類似的,具有開(kāi)源的特點(diǎn),是方便學(xué)習(xí)和使用的系統(tǒng)。它是由三部分組成的軟件堆層的架構(gòu)。提供的基本功能主要以Linux內(nèi)核工作為基礎(chǔ)。
2 ?客戶端/服務(wù)器模式簡(jiǎn)介
在系統(tǒng)實(shí)現(xiàn)的過(guò)程中,作為網(wǎng)絡(luò)核心的服務(wù)器提供后臺(tái)管理和數(shù)據(jù)存儲(chǔ)功能,用戶可以打開(kāi)手機(jī)客戶端,客戶端的數(shù)據(jù)是向服務(wù)器發(fā)送請(qǐng)求,然后得到服務(wù)器的回復(fù),從而取得的,在此過(guò)程中,服務(wù)器隨時(shí)獲取信號(hào)并予以回應(yīng)。
客戶端/服務(wù)器屬于軟件系統(tǒng)體系結(jié)構(gòu),這種體系結(jié)構(gòu)利用硬件和衛(wèi)星信號(hào)進(jìn)行數(shù)據(jù)傳輸,服務(wù)器端主要用于計(jì)算和存儲(chǔ),目前很多用戶在開(kāi)發(fā)軟件時(shí)使用此模式,因?yàn)樗芽蛻舳撕头?wù)器端分開(kāi)來(lái),每一個(gè)客戶端軟件的實(shí)例都可以向一個(gè)服務(wù)器發(fā)出請(qǐng)求,服務(wù)器端則根據(jù)客戶端的要求,處理要求并傳回結(jié)果。
3 ?系統(tǒng)分析與設(shè)計(jì)
目前,手機(jī)的應(yīng)用已經(jīng)非常普遍。只要能上網(wǎng),打開(kāi)外賣系統(tǒng),用戶便可以看到自己喜歡的菜品,因此要求客戶端操作簡(jiǎn)便,但又功能齊全;所需資源少,可以為用戶節(jié)約流量。由此考慮本系統(tǒng)的主要功能設(shè)計(jì)需要包括客戶端和服務(wù)器端,例如登錄與注冊(cè)、用戶的添加、修改、刪除,菜單的添加、刪除、修改,以及訂單的管理等等。
3.1 ?功能模塊圖
系統(tǒng)的功能模塊圖如圖1所示。系統(tǒng)開(kāi)發(fā)的過(guò)程中,如果有需要增加或者刪除的功能,還可以繼續(xù)修改。
3.2 ?數(shù)據(jù)E-R圖
E-R圖即實(shí)體-聯(lián)系圖(Entity Relationship Dia-gram),它是一種概念模型??梢灾庇^地描述現(xiàn)實(shí)生活中的實(shí)體與實(shí)體之間的聯(lián)系,在本系統(tǒng)開(kāi)發(fā)的過(guò)程中需要繪制很多E-R圖,為了更加直觀地了解圖形,在此舉一個(gè)案例,如圖2所示。其中實(shí)體用矩形表示,實(shí)體的屬性用橢圓表示,實(shí)體之間的連接用無(wú)向邊實(shí)現(xiàn);用菱形表示實(shí)體之間的聯(lián)系。
3.3 ?部分?jǐn)?shù)據(jù)庫(kù)表及其結(jié)構(gòu)
管理員表(管理員id,管理員name,管理員limit)。
訂單表(訂單id,訂單describe,訂單num)。
菜單表(菜單id,菜品price,菜品static,菜單discount,菜品describe)。
用戶表(用戶id,用戶name,用戶sex,用戶telephone,用戶address,用戶points)。
Buyrecord表(訂單id,詳細(xì)id,菜品id,num)。
出售菜單表(菜單id,菜單name,菜單category,菜單price,菜單picture)。
3.4 ?客戶端數(shù)據(jù)庫(kù)的連接
ContentProvider是Android的內(nèi)容提供商,利用MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)設(shè)計(jì)完數(shù)據(jù)庫(kù)中的所有表之后,需要與前臺(tái)客戶端進(jìn)行連接,程序中數(shù)據(jù)庫(kù)類為IopenHelper extends SQLiteOpenHelper(繼承關(guān)系),在此列出連接數(shù)據(jù)庫(kù)的代碼:
public class IopenHelper extends SQLiteOpenHelper {注釋:生成用以記錄購(gòu)買過(guò)菜品的buyrecord表。
private static final String RECORD_TABLE = "create table Buyrecord (oid integer primary key, doidinteger,bidinteger,donum integer)";
注釋:生成表用以存儲(chǔ)上次購(gòu)買過(guò)的菜品showgoods表。
private static final String GOODS_TABLE = "create table ? showgoods (bid integer primary key , bnamevarchar,bstylevarchar,bpricefloat,bpicturevarchar)";
3.5 ?環(huán)境搭建
搭建Android的開(kāi)發(fā)環(huán)境:可以選擇Windows 7及以上系統(tǒng)或Linux系統(tǒng);必須有Android SDK(Software Development kit Java Development kit)、ADT(Android Development Tool)軟件包;Eclipse IDE+ADT Eclipse5以上的IDE環(huán)境;JDK:Java Runtime Environment虛擬機(jī)、(JDK)Java Development kit;要注意配置環(huán)境變量,這樣Android環(huán)境就已經(jīng)搭建成功了,路徑可以自己根據(jù)需要選擇。
4 ?系統(tǒng)實(shí)現(xiàn)
在設(shè)計(jì)完成以上過(guò)程后,便可以設(shè)置界面編寫(xiě)代碼進(jìn)行系統(tǒng)實(shí)現(xiàn)了。在此對(duì)如下的系統(tǒng)注冊(cè)和登錄進(jìn)行介紹。
注冊(cè)界面用于用戶第一次使用系統(tǒng),必須先進(jìn)行注冊(cè)才能下訂單,不注冊(cè)則只能瀏覽菜品。注冊(cè)完成后,用戶所提交的內(nèi)容會(huì)發(fā)給服務(wù)器,服務(wù)器經(jīng)過(guò)處理,會(huì)把數(shù)據(jù)插入到數(shù)據(jù)庫(kù)對(duì)應(yīng)的表中??蛻舳藢?shí)現(xiàn)注冊(cè)代碼如下:
BRegister.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(name.equals("")||password.equals ("") ||repassword.equals("")){
}else {
if (infoHashMap.get("password").equals(
infoHashMap.get("re password"))) {
data = "name " + infoHashMap.get("username") + ";"
+ "password " + infoHashMap.get("password") +";"
+ "sex " + infoHashMap.get ("sex") + ";" + "num"
+ infoHashMap.get("number") + ";" + "address "
+ infoHashMap.get("address");
Number=new Member(name,password,infoHashMap
.get("sex"),number,address);}
StocolHelper.setObject(member);
StocolHelper.setRequest(Ptocol Helper.REGISTER,
SrotocolHelper.INSERT, data);
response = StocolHelper.send Request();
if (response.equals("success")) }
}
登錄模塊界面是顯示一個(gè)登錄窗口,需要在界面上加入許多控件,如文本輸入框、文本顯示框、單選按鈕、復(fù)選按鈕等,然后用一系列的布局將其有條理地放在這個(gè)窗口中。部分代碼如下:
if (flag) {
注釋:用戶點(diǎn)擊登錄按鈕即可登錄到系統(tǒng)中。
Content intent = new Cotent(LoginActivity.this,
TSductListActivity.class);
startActivity(intent);
Cotent intent1 = new Intent(LoginActivity.this,
AlterdateService.class);
startService(intent1);
}
5 ?結(jié) ?論
在系統(tǒng)實(shí)現(xiàn)的過(guò)程中,會(huì)遇到多種多樣的問(wèn)題,特別是代碼的書(shū)寫(xiě)和調(diào)試過(guò)程,因?yàn)槿魏握Z(yǔ)言都有自己的語(yǔ)法規(guī)則,如果寫(xiě)錯(cuò)一個(gè)英文字符,則整個(gè)程序就會(huì)出錯(cuò),所以要注意語(yǔ)法規(guī)則。本系統(tǒng)的實(shí)現(xiàn),使人們通過(guò)手機(jī)網(wǎng)絡(luò)就可以完成生活中必要的飲食問(wèn)題,方便了人們的生活,提高了人們的生活效率。
參考文獻(xiàn):
[1] 姚尚朗,靳巖.Android開(kāi)發(fā)入門與實(shí)踐:第2版 [M].北京:人民郵電出版社,2013:59.
[2] 何光明,童愛(ài)紅,王國(guó)全.C語(yǔ)言實(shí)用培訓(xùn)教程 [M].北京:人民郵電出版社,2003:102.
[3] 東方人華.Visual C#.NET Web應(yīng)用程序設(shè)計(jì)入門與提高 [M].北京:清華大學(xué)出版社,2005:178.
作者簡(jiǎn)介:李艷杰(1978-),女,漢族,山東德州人,講師,碩士,研究方向:數(shù)據(jù)挖掘技術(shù)。