目 录
摘 要 i
Aabstract ii
1 系统开发概述 1
1.1 开发背景 1
1.2 课题的研究内容 1
1.3 课题目标 2
2 开发环境介绍 3
2.1 Android技术 3
2.1.1 Android技术简介 3
2.1.2 Android技术的不足 3
2.1.3 Android体系结构概述 4
2.2 Java技术介绍 5
2.3系统开发环境 5
2.4 Android系统四大核心组件 6
2.5 Mysql数据库 7
2.5.1 MySQL特点特性 9
2.5.2 MySQL数据库应用环境 9
3 需求分析 10
3.1设计目标 10
3.2系统可行性分析 10
3.2.1操作的可行性分析 10
3.2.2发展可行性分析 11
3.2.3技术可行性分析 11
3.3系统结构设计 11
3.4功能需求 12
3.4.1业务流程分析 13
3.4.2数据流程分析 14
3.4.3 功能流程图分析 16
4 系统设计与实现 19
4.1 总体设计重要性 19
4.2 系统数据库设计 19
4.3 服务器登陆界面设计 23
4.4 服务器主界面 26
4.4.1 订餐信息管理 26
4.4.2 用户信息管理 27
4.4.3 菜品信息管理 27
4.5 客户端登录 28
4.6 客户端主界面 34
4.6.1 用户点餐 36
4.6.2 订单查询 36
5 系统测试 37
5.1 软件测试的概念、目标、意义 37
5.2 功能测试 38
5.3 可用性测试 38
5.4 性能测试 39
5.5 测试的主要内容 39
5.6 测试结果分析 40
结 语 41
参考文献 43
致 谢 44
3.4功能需求
网络点餐系统的客户端系统主要是面向用户使用的最终界面,用户可以在这里浏览菜品信息、选择订餐。用户进入系统的所有操作都是通过安卓客户端系统实现的。用户观看的菜品信息是通过浏览客户端得到的,而客户端的设计是系统的关键。
网络点餐系统功能的实现都离不开后台各项数据的录入和设置,可以说,整个系统的执行是从后台开始的。管理员在后台要进行菜品管理、用户管理、订餐信息、销售信息、物流管理、客户数据汇总、营业额分析、菜品销售等多个功能模块。
(1)微信客户端
主要为顾客提供整个餐厅点餐业务流程所需要的操作:点菜、查台、转台、结账和注销。其中只有点菜功能是可以为顾客自行使用,服务员在使用本软件时首先要对软件进行登陆操作。
登录:启动客户端首先进入登录界面,登陆过程可分为两种情况:登陆并记住密码。 服务员输入正确的用户名和密码后,点击登陆进入功能主页前。 如果输入帐号密码不匹配,则需要提示服务员,重新输入帐号密码。 “记住密码”功能可以使退出注销软件在下次登陆后无需重新输入用户名密码,点击登录即可。
点菜:选择完想要的菜品,如果顾客想要退订,需要实现相关功能。提交订单后,系统会将此次订单的详细信息传送至服务器。
结账:即结算功能。完成结算订餐成功
(2)网站服务器端
管理员可通过已结算订单进行查看网页后端,里面包含了对餐厅营业情况的管理,可以管理餐厅订单以及外卖订单;餐厅服务人员也可以在服务端管理客户的外卖订单。
分类管理:管理员可以查看菜单类别并添加类别。
菜单管理:管理员可以根据分类添加新菜,还可以对现有菜肴的价格,图片,描述变化,删除操作等。
订单管理:管理员既可了解所有订单信息,也可根据年、月的时间限制来查看相应时间段内的所有订单信息。
物流管理:管理员分配订单,安排物流进行订单配送。
客户数据汇总:对客户端注册用户进行统计分析。
营业额分析:对每天、每月的订餐营业额进行分析。
3.4.1业务流程分析
调查管理业务流程应顺着原系统信息流动的过程逐步地进行,内容包括各环节的业务处理、信息来源、处理方法、计算方法、信息流经去向、信息提供的时间和形态(报告、单据、屏幕显示等)。
业务流程图可用来描述系统内部各单位和人员之间的无关系、作业顺序和管理信息流向的图表。利用它可以帮助我们分析人员找出业务流程的不合理的流向。
图中表示的是浏览者可以选择不登录进行浏览订餐平台,如果用户还没有注册,可以选择注册信息,在注册的时候进行检查用户名,如果用户名 数据库里面已经存在了,那么返回给用户,注册信息失败。

<!DOCTYPE html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><html>
<head id="Head1"><%@ include file="/web/common/common.jsp" %><script type="text/javascript">$(function () {$('#grid1').datagrid({title: '管理员列表',nowrap: false,striped: true,fit: true,url: "<%=__APP__%>/User!getList",idField: 'uuid',pagination: true,rownumbers: true,pageSize: 10,pageNumber: 1,singleSelect: true,fitColumns: true,sortName: 'id',sortOrder: 'desc',columns: [[{title: 'id', field: 'id', width: 100, hidden: false},{title: '用户名', field: 'username', width: 100, sortable: true},{title: '密码', width: 100, field: 'passwd'},{title:'用户权限',width:100,field:'roletype'}]],toolbar: [{text: '新增',iconCls: 'icon-add',handler: function () {$("#action").val("add");$("#managerDialog").dialog('open');$('.validatebox-tip').hide();}},'-',{text: '修改',id: 'commit',iconCls: 'icon-edit',handler: function () {$("#action").val("edit");var selected = $('#grid1').datagrid('getSelected');if (selected) {edit(selected);var index = $('#grid1').datagrid('getRowIndex', selected);} else {$.messager.alert("提示", "请选择一条记录进行操作");}}},'-',{text: '删除',id: 'commit',iconCls: 'icon-remove',handler: function () {var rows = $('#grid1').datagrid('getSelected');if (rows) {var rowId = rows.id;$.messager.confirm('提示', '确定要删除吗?', function (r) {if (r) {deleteItem(rowId);}});} else {$.messager.alert("提示", "请选择一条记录进行操作");}}}]});});function save() {$('#managForm').form('submit', {url: "<%=__APP__%>/User!add",onSubmit: function () {return inputCheck();},success: function (data) {closeBackGround();$.messager.alert("提示", data, "info", function () {closeFlush();});}});}function edit(obj) {//$.post("controller/userController.php?action=getOne",{id:uuid},function(data){var username = obj.username;var password = obj.passwd;var roletype = obj.roletype;$("#username").val(username);$("#passwd").val(password);$("#roletype").combobox('setValue', roletype);$("#id").val(obj.id);$("#managerDialog").dialog('open');//});}function deleteItem(uuid) {$.post("<%=__APP__%>/User!deleteItem", {id: uuid}, function (data) {closeFlush();});}function cancel() {$.messager.confirm('提示', '是否要关闭?', function (r) {if (r) {$("#managerDialog").dialog('close');}});}function query() {/*var username = $("#username").val();var creatTime = $("#creatTm").datebox("getValue");var obj = new Object();obj.username = username;obj.createTime = creatTime$('#grid1').datagrid('options').queryParams = obj;$('#grid1').datagrid("reload");*///$('#grid1').datagrid('loadData',{total:0,rows:[]});$('#grid1').datagrid('options').queryParams = serializeObject($('#searchForm'));$('#grid1').datagrid("reload");//$('#grid1').datagrid('loadData',{total:0,rows:[]});//$('#grid1').datagrid('load', serializeObject($('#searchForm')));}function reset() {searchForm.reset();}function closeFlush() {managForm.reset();$("#managerDialog").dialog('close');$("#grid1").datagrid("reload");}function inputCheck() {if ($("#passwd").val() != $("#password2").val()) {$.messager.alert("提示", "两次输入密码不一致!");return false;} else if (!($("#managForm").form("validate"))) {return false;}openBackGround();return true;}</script>
</head>
<body class="easyui-layout">
<div region="north" border="false" style="height:3px;overflow: hidden"></div>
<div region="west" border="false" style="width:3px;"></div>
<div region="east" border="false" style="width:3px;"></div>
<div region="south" border="false" style="height:3px;overflow: hidden"></div>
<div region="center" border="false"><div id="main" class="easyui-layout" fit="true" style="width:100%;height:100%;"><div region="north" id="" style="height:80%;" class="" title="查询条件"><form action="" id="searchForm" name="searchForm" method="post"><table cellpadding="1" cellspacing="0" class="tb_search"><tr><td width="10%"><label for="susername">用户名:</label><input type="text" id="susername" name="susername" width="100%" maxlength="32"/></td><td width="10%"><a href="#" onclick="query();" class="easyui-linkbutton" iconCls="icon-search">查询</a><a href="#" onclick="reset();" class="easyui-linkbutton" iconCls="icon-redo">重置</a></td></tr></table></form></div><div region="center" border="false" style="padding:3px 0px 0px 0px;overflow:hidden"><table id="grid1"></table></div></div>
</div><div id="managerDialog" class="easyui-dialog" title="用户管理" style="width:500px;height:290px;" toolbar="#dlg-toolbar"buttons="#dlg-buttons2" resizable="true" modal="true" closed='true'><form id="managForm" name="managForm" method="post"><input type="hidden" id="action" name="action"/><input type="hidden" id="id" name="id"/><table cellpadding="1" cellspacing="1" class="tb_custom1"><tr><th width="10%" align="right"><label>用户名:</label></th><td width="30%"><input id="username" name="user.username" class="easyui-validatebox"style="width:300px;word-wrap: break-word;word-break:break-all;" type="text" required="true"validType="length[0,32]"/><font color='red'>*</font></td></tr><tr><th width="10%" align="right"><label>权限:</label></th><td width="30%"><select id="roletype" name="user.roletype" class="easyui-combobox" panelHeight="auto"style="width:300px;word-wrap: break-word;word-break:break-all;" type="text" required="true"validType="length[0,32]"><option value="1" selected="selected">管理员</option><option value="2">普通用户</option></select></td></tr><tr><th width="10%" align="right"><label>密码:</label></th><td width="10%"><input id="passwd" name="user.passwd" class="easyui-validatebox" required="true" validType="length[0,32]"style="width:300px"/></td></tr><tr><th width="10%" align="right"><label>密码确认:</label></th><td width="10%"><input id="password2" name="" class="easyui-validatebox" style="width:300px" required="true"validType="length[0,32]"/></td></tr></table></form><div id="dlg-buttons2"><a href="#" class="easyui-linkbutton" onclick="save();">保存</a><a href="#" class="easyui-linkbutton" onclick="cancel();">取消</a></div>
</div></body>
</html>














基于Android的O2O点餐系统相关推荐

  1. 基于android餐馆点餐系统报告感想,基于Android的餐厅点餐系统的设计与实现

    摘要: 民以食为天,在日常的生活中,我们经常需要与家人,朋友,同事在一起就餐以便促进相互之间的感情.但是现在多数的餐厅企业基本上还是手工点餐操作,无法更好地适应新时期下人们对餐饮业服务的人性化和高效率 ...

  2. 大学项目总结(一)——基于Android的智能点餐系统

    Github地址: 自助点餐系统代码,大概率跑不起来,如果对你有帮助请star一下 这个项目是在我大一下学期开始进行制作,并一直到大一暑假结束完成. 一共由我和另一个同学两个人完成,我主要负责前端功能 ...

  3. 基于Android餐厅智能点餐系统多商家

    商家: (1)登陆功能:商家通过自己的账号密码登陆系统进行店铺管理 (2)菜品信息发布:商家可以发布菜品相关信息供顾客选择 (3)查询功能:商家通过订单号查询到该笔订单所有信息 (4)修改功能:商家可 ...

  4. ssm基于jsp的在线点餐系统 毕业设计源码111016

    基于SSM的在线点餐系统 摘要 当前高速发展的经济模式下,人们工作和生活都处于高压下,没时间做饭,在哪做饭成了人们的难题,传统下班回家做饭的生活习俗渐渐地变得难以实现.在社会驱动下,我国在餐饮方面的收 ...

  5. (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016

    基于SSM的在线点餐系统 摘要 当前高速发展的经济模式下,人们工作和生活都处于高压下,没时间做饭,在哪做饭成了人们的难题,传统下班回家做饭的生活习俗渐渐地变得难以实现.在社会驱动下,我国在餐饮方面的收 ...

  6. 基于android的网上点餐系统设计,基于Android的点餐系统设计与实现

    摘要: 随着社会的信息化,人类的物质世界被网络与科技改变着.2008年在美国,Android手机系统一经诞生,全球手机系统的半壁江山便被其势不可挡的气势占据了,各种基于Android平台的应用系统也不 ...

  7. 开题报告-基于Android的外卖点餐APP的设计与实现

    目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 (内容格式要求:字体为5号宋体,行距为固 ...

  8. 基于 Android 平台的手机订餐系统的设计与实现

    1. 国内外有关的研究动态 随着计算机. 互联网和移动终端及其应用的快速发展, 不断的改变着人们的工作方式. 交流方式. 学习方式以及生活的各个方面, 尤其是电子商务的突飞猛进, 例如支付宝. 余额宝 ...

  9. 平板点餐linux系统下载,基于Linux的智能点餐系统.pdf

    软件应用与设计◆----一 SoftwareApplicationandDesign 基于Linux的智能点餐系统 周怡浩 (湖南科技学院,湖南永州 425007) 摘 要 :当今这个快节奏的社会,效 ...

最新文章

  1. JZOJ 5048. 【GDOI2017模拟一试4.11】IQ测试
  2. 用 Ruby 买卖Bitcoin: 闪兑交易所 Exincore
  3. ob服务器维修视频,【转】科普贴骗经验~,可ob全球各服务器玩家比赛的网站
  4. css+html弄出哆啦a梦,祝儿童节快乐(DIV+CSS绘制哆啦A梦)
  5. 大数据分析实战-信用卡欺诈检测(四)-正则化惩罚
  6. oracle物理索引结构,oracle学习笔记(6)oracle物理结构--索引
  7. 原价399,限时1元!7天人工智能入门训练营:带你从0掌握机器学习算法!
  8. 升级ssl后ssh登录失效_centos7升级openssl、openssh常见问题及解决方法
  9. 公众号开发 单独 给某个用户 推送消息_校区学生会微信公众平台征稿启事
  10. maven-聚合与继承
  11. 【Leetcode 136】Single Number
  12. 怎么找网页源文件位置_win7系统查看网页源文件的三种方法
  13. 模拟电子技术之运算放大器
  14. 怎么把视频复制到IPAD
  15. 商标注册中的字体也会侵权?这是真事
  16. 老年人计算机培训信息,老年人学习电脑基础知识
  17. 综合布线包括计算机网络,综合布线试题
  18. 柠檬浏览器 for linux,柠檬浏览器-柠檬浏览器下载 v1.1.0.8官方版--pc6下载站
  19. 牛顿-拉普森法求解线性方程组原理及matlab程序
  20. Docker——阿里云搭建Docker Swarm集群

热门文章

  1. 二代测序技术相匹配的de novo组装工具
  2. nyoj55懒省事的小明
  3. 别让甲醛检测仪继续“野蛮生长”
  4. 南大男生课堂表白牵走女生 老师送上祝福(图)
  5. rxjavamap和flatmap区别,Flutter全方位深入探索,看完这篇彻底明白了
  6. 以管理员身份运行java_java – 在Windows中以管理员身份执行jar文件
  7. 肠炎造模小课堂|DSS如何诱导非啮齿类动物肠炎模型
  8. word文档保存后闪退
  9. 【SSH网上商城项目实战21】从Demo中看易宝支付的流程
  10. 华为手机能隐藏蓝牙吗_华为手机隐藏的十个功能,华为手机实用小技巧