• 移动无线点餐客户端的研究与实现(Java+Android)


    目录
    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<JSONObject> {
    	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;
    	}
    
    	@Override
    	public void setDropDownViewResource(int resource) {
    		this.dropDownResource = resource;
    	}
    
    	@Override
    	public 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;
    	}
    
    	@Override
    	public View getView(int position, View convertView, ViewGroup parent) {
    		return createViewFromRes(position, convertView, parent, resource);
    
    	}
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106

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

  • 相关阅读:
    校园报修抢修小程序系统开发 物业小区报修预约上门维修工单系统
    电商收付通,多服务商模式
    电脑桌面便签工具选择哪一款?
    A-level化学知识点(二):一般原则——General Properties
    JavaEE之CSSⅠ(前端)
    VScode 关闭新建文件的语言选择提示后如何再开启
    Windows安全日志分析
    RK3588算法盒子maskrom模式下系统烧录
    Kafka -- 架构、分区、副本
    各位 vnc viewer软件睡眠如何关闭
  • 原文地址:https://blog.csdn.net/newlw/article/details/128062561