基于Android 手機訂餐系統的研究與實現的論文
隨著智能手機的應用,GPS、wifi 技術的成熟,關于手機訂餐應用的需求也逐漸增——手機訂外賣、手機訂餐方便了客戶。例如,去餐廳用餐前客戶可以在手機APP 上查看當前餐廳是否有空位,可以預訂餐位,且在出發前就可在手機點餐,并注明到店時間,到店后無需等待就可享用美食。對于餐廳來說,也節省了人力,無需太多的點菜服務人員,節省了開店成本。以下為基于Android 手機訂餐系統的設計。
1 系統模塊設計
訂餐系統主要分為三個模塊。
1.1 訂餐客戶端程序
該程序安裝在用餐客戶的手機上,主要功能是用戶通過手機選擇餐廳,預訂餐位,并點菜下單。
1.2 餐廳管理客戶端程序
該程序可分為兩部分,一是可安裝在餐廳管理人員的手機上,主要功能是餐廳管理人員可通過手機查看訂單,上傳及修改餐廳菜品,上傳餐廳簡介及當前時段用餐情況等信息。
另一部分功能主要是為餐廳管理人員開發的訂餐管理系統,以網頁形式體現,餐廳管理人員可通過瀏覽器在網頁管理餐廳的訂單信息及菜品信息,也可以通過網頁來管理餐廳,對于較小的餐廳,餐廳管理人員可直接用手機客戶端管理餐廳,對于大、中型餐廳可用計算機通過網頁來實現餐廳訂餐信息的管理。
1.3 服務器端數據服務系統
服務器端程序用來接收手機客戶端用戶發來的消息并做處理,如訂餐信息,餐廳管理人員發來的菜品修改信息等,并對數據庫做相應的修改。
2 系統模塊詳細設計
2.1 訂餐客戶端程序。該程序安裝在用餐客戶的手機上,主要功能是用戶通過手機選擇餐廳,預訂餐位,并點菜下單。根據用戶當前所在位置,系統會推薦用戶周邊的`餐廳,用戶也可自己搜索、選擇,并查看餐廳就餐環境及當前就餐人數,是否有空位;選擇好餐廳后,可直接進入點餐界面,點餐界面將菜品分類,并顯示菜品圖片、品名、價格等,用戶可點擊選擇,并可對每一個菜品輸入特別要求,如少辣;選好菜品后,可輸入訂餐人姓名、電話、用餐人數等信息,并下單,就可直接傳送到服務器端的數據庫了。主要實現方法如下:(1)服務器端傳送給手機端的數據,如餐廳列表、菜品列表,可以將從數據庫中取得的數據轉換為JSONObject 或JSONArray 的格式,客戶端收到后可直接解析。(2)手機客戶端連接服務器端時,主要采用http 網絡連接方法,如http://192.168.199.115 /DC_server/t_cp。(3)手機客戶端數據采用分頁加載方法,即只下載并顯示用戶當前所查看的數據(如餐廳列表、菜品列表)這樣可節省網絡資源。
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
// 判斷是否滾動到底部
if (view.getLastVisiblePosition() == view.getCount() - 1) {
if (havedata) {page += 1;
conservice (MyGlobal.cp_url + "?sh_id = " +Bundle1.getStrin("sh_id"+"&page="+page+"&search_key="+search_data);
}}}
2.2 餐廳管理客戶端程序
該程序被安裝在餐廳管理人員的手機上,主要功能是餐廳管理人員可通過手機查看訂單,上傳及修改餐廳菜品,上傳餐廳簡介及當前時段用餐情況等信息。主要功能有:查看訂單、上傳菜品、修改菜品、修改餐廳信息、修改用戶密碼,該模塊的難點主要在上傳菜品圖片,即在手機中查找菜品圖片,選擇后上傳到服務器,并修改數據庫;主要方法:
(1)對手機上的圖片進行列表,供用戶選擇,通過Gridview+自定義adapter 實現圖片的顯示。
(2)以文件做為參數,傳送至服務器端,實現菜品圖片的上傳,代碼如下。
FileBody file=new FileBody(imageFile);
mpEntity.addPart("picPath",file);
mpEntity.addPart ("picName",new StringBody(file.getFilename
()));
httppost.setEntity(mpEntity);
HttpResponse httpResponse=httpclient.execute(httppost);
2.3 服務器端數據服務系統
該程序主要是接收手機上發來的信息,并修改數據庫,以及根據手機發來的信息,從數據庫中查詢相關數據并返回信息給手機客戶端;該程序被安裝在服務器端,服務器端程序為web 程序,可用tomcat+jsp+mysql 組合,主要分為兩個部分,一個是用于接收訂餐客戶手機上發來的信息;另一部分用于接收餐廳管理人員手機客戶端信息。主要方法如下:
(1)服務器端傳送給手機端的數據,如餐廳列表、菜品列表,可以將從數據庫中取得的數據轉換為JSONObject 或JSONArray 的格式,客戶端收到后可直接解析。
List data=new ArrayList();
try{ResultSet rs=sp.execQuery(sql,iPageSize,Integer.parseInt(i-Page));
if(sp.getPageCount()>=Integer.parseInt(iPage))
{int i=0;
do {Mapcell=new HashMap();
cell.put("cp_id",rs.getString("id"));
cell.put("cp_type_name",rs.getString("cp_type_name"));
cell.put("cp_type_id",rs.getString("cp_type_id"));
……
data.add(cell);
}while(++i
}
} catch (SQLException ex) {ex.printStackTrace();
}
JSONArray array=new JSONArray(data);
out.print(array.toString());
(2)接收餐廳管理人員上傳的圖片,將圖片存入服務器指定目錄,并修改數據庫中菜品圖片名稱。
OutputStream out =new FileOutputStream (new File(path,filename));
InputStream in=item.getInputStream();
int length=0;
byte[] buf=new byte[1024];
System.out.println("獲取文件總量的容量:"+ item.getSize());
while((length=in.read(buf))!=-1)
{out.write(buf,0,length);
}
String sql="t_cp set cp_img='"+filename +"' where id="+cp_id;
conn.doUpdate(sql);
參考文獻
[1]徐光俠,封雷,涂演,等.基于Android 和Google Maps 的生活輔助系統的設計與實現[J].重慶郵電大學學報(自然科學版),2012,2.
[2]王晉東;移動終端上傳網絡圖片的算法實現[J].電子技術與軟件工程,2013,17.
【基于Android 手機訂餐系統的研究與實現的論文】相關文章:
選課系統設計與實現開題報告11-18
關于學生信息管理系統的設計與實現開題報告03-15