移动无线点餐客户端的研究与实现(Java+Android)
创始人
2024-02-22 00:39:32
0

目录
1 绪 论 2
1.1 研究的背景及意义 2
1.2 本文主要内容 2
2.1 系统架构 3
2.2 关键技术 3
2.2.1 JDBC 3
2.2.2 Jquery 4
2.2.3 Ajax 4
2.3 开发环境及平台 5
2.3.1 Eclipse 5
2.3.2 MyEclipse 6
2.3.3 Tomcat服务器 6
2.3.4 应用平台Android 7
3 订餐系统分析与设计 9
3.1需求分析 9
3.1.1 系统目标和要求 9
3.1.2 可行性分析 9
3.2 订餐系统概要设计 10
3.2.1 模块的划分 10
3.2.2 功能模块的设计 10
3.3 数据库设计 11
3.3.1 数据库需求分析 11
3.3.2 数据库E-R图设计 12
3.3.3 数据表设计 13
3.3.4 连接数据库实现 14
4.1安卓平台系统实现 15
4.1.1 功能描述 15
4.1.2 界面展示 15
4.1.3 关键代码 21
} 24
4.1.4 服务器端的实现 24
4.2 网页系统实现 25
4.2.1 界面展示 25
4.2.2 关键代码 28
结 论 32
致 谢 33
参 考 文 献 34
1.2 本文主要内容
本文介绍了无线点餐系统的开发过程。论文详尽论述了从需求分析、系统分析、概要设计、详细设计以及测试与调试的整个开发过程。首先系统地研究了无线点餐系统的背景和意义,分析了当今点餐系统的特点和共性,从而得出设计本系统的思路和方法。接着介绍了实现系统开发的Android平台环境,数据库用MySQL实现。同时简要介绍了以上工具的功能和方法。
概要设计分成后台数据库管理操作设计和客户端操作设计,同时介绍了数据库的建立和维护。详细设计主要阐述了点菜管理、并台管理、查台管理,转台管理,注销等实现,并给出了系统的部分设计代码。
3 订餐系统分析与设计
3.1需求分析
3.1.1 系统目标和要求
首先,我们得确定使用这个系统的用户应该有顾客、服务员、收银员。顾客和服务员应该是系统数据的起点,由他们做出相应的操作,然后系统进行处理;收银员则为系统数据的终点。
该系统在性能功能上应达到如下要求:
1.操作简单、界面友好:完全控件式的页面布局,使得菜品,资讯,座位等信息的
录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式;
2.即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在另一应用端及服务器的对应栏目显示出来,达到“即时点击、即时见效”的功能;
3.系统运行应该快速、稳定、高效和可靠;
4.在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。
3.1.2 可行性分析
随着经济的快速发展,B2C电子商务越来越受到人们的关注。无线订餐系统,已经如雨后春笋般的出现在了许多城市的大酒店中。特别在大型餐饮集团使用已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且对酒店服务也越来越挑刺,正因为如此无线订餐系统的出现,正好满足了大众的需要,不仅让宾客享受到精美可口的美食,更让他们感受到服务管理的贴心与完善。无线订餐业务在中国有着极大的发展空间以及良好的背景。随着酒店管理的完善,使用这种智能的无线点餐系统必然成为追究卓越的餐饮公司的最爱,也更能够体现信息技术发展之猛烈。
此次毕业设计基于Android平台开发无线订餐系统。Android平台给我们提供了巨大的自由空间,再运用Java面向对象语言,是系统功能更加强大。MySQL 是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于中小型联机事务处理、数据仓库及电子商务等。
3.2 订餐系统概要设计
系统的概要设计主要对系统的总体功能如何设计,如何划分模块,系统的数据库如何设计进行研究。它为系统的详细设计做铺垫。在系统的设计过程中起着非常重要的作用。
3.2.1 模块的划分
本系统主要分两部分:
1.Web点餐系统与后台
Web系统主要是给客户点菜;客户只能点菜、拿号。
2.终端设备与后台
终端设备指的是基于安卓平台的一个设备。主要给服务员、收银员等工作人员使用;能更新菜谱,结账,点菜、查看等功能。
3.2.2 功能模块的设计
1.Web点餐系统
1)登录——若没有用户账号,提供注册
2)查看菜单
3)查看菜单详情
4)加入购物车(点菜)
5)下单(提交预定菜单)
6)拿号
在这里插入图片描述

图3-1功能描述图

package com.amaker.adapters;import java.util.List;import org.json.JSONException;
import org.json.JSONObject;import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;public class JsonArrayAdapter extends ArrayAdapter {int resource;Context context;int textFieldId;String textKey;int dropDownResource;String[] from;int[] to;public JsonArrayAdapter(Context context, int resource,int textViewResourceId, List objects, String textKey) {super(context, resource, textViewResourceId, objects);this.resource = dropDownResource = resource;this.context = context;this.textFieldId = textViewResourceId;this.textKey = textKey;}public JsonArrayAdapter(Context context, int resource, List objects,String[] from, int[] to) {super(context, resource, 0, objects);this.resource = dropDownResource = resource;this.context = context;this.from = from;this.to = to;}@Overridepublic void setDropDownViewResource(int resource) {this.dropDownResource = resource;}@Overridepublic View getDropDownView(int position, View convertView, ViewGroup parent) {return createViewFromRes(position, convertView, parent,dropDownResource);}private View createViewFromRes(int position, View convertView,ViewGroup parent, int resource) {JSONObject obj = getItem(position);View itemView;TextView text = null;if (convertView == null) {LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);itemView = vi.inflate(resource, parent, false);} else {itemView = convertView;}try {if (textFieldId == 0) {if (itemView instanceof TextView) {text = (TextView) itemView;} else {if (to != null && to.length > 0) {for (int i = 0; i < to.length; i++) {TextView itemtext = (TextView) itemView.findViewById(to[i]);itemtext.setText(obj.getString(from[i]));}}}} else {text = (TextView) itemView.findViewById(textFieldId);}if (text != null) {text.setText(obj.getString(textKey == null ? from[0]: textKey));}} catch (ClassCastException e) {Log.e("amaker", "布局中的元素不是TextView类型");} catch (JSONException e) {Log.e("amaker", "从Json中读取数据出错,textKey:" + textKey, e);}return itemView;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {return createViewFromRes(position, convertView, parent, resource);}}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...