隋唐演义

隋唐演义

基于javaweb校园订餐系统毕业论文 java网上订餐系统毕业论文

双十一 0

淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】

基于javaweb校园订餐系统开题报告,基于java的校园网站设计,基于java的校园二手,基于java web

毕业论文中文摘要

基于Android平台的手机网上订餐系统的研究与实现摘要: ANDROID手机网上点餐系统是基于ANDROID手机的一款网络应用软件,目的在于为注册用户和餐馆提供极大的便利。应用此软件,用户可以轻松便捷地实现自己的点菜要求。此系统基于C/S结构,采用PHP和MYSQL编程来实现对数据的存储和操作。手机客户端主要应用ANDROID开发技术,使用ACTIVITY组件,并遵照MVC模式进行开发。网络数据交互则遵照HTTP协议来实现与服务器端的通信。本文第一章引言部分对整个系统和开发的背景作了简要的分析。第二章简要介绍开发环境与开发工具与相关技术。第三章是系统的需求分析和数据库的设计,客户端程序的整体结构及【【微信】】服务的设计。第四章是主体功能的编码实现,介绍本系统各个功能模块的具体实现。最后则是对开发过程的总结。关键词: Android Json数据 HttpClient SOAP协议 【【微信】】服务

1 绪论

何谓“网上订餐”?简言之,就是由网站担任消费者与餐饮商家之间的“媒介”,消费者直接通过网络来预订餐厅座位或房间。订餐者根据菜系、位置、价位等找到中意的餐馆酒店后,只需鼠标点击并输入就餐时间、人数等信息即可,订餐网会在完成预订后通过e-mail或短信告知预订情况。网上订餐不仅对消费者完全免费,还可提供不同程度的折扣,使人们在没有就餐烦恼的情况下享受物美价廉的可口饭菜。

1.1 研究背景

随着计算机、互联网和移动终端及其应用的快速发展,不断的改变着人们的工作方式、交流方式、学习方式以及生活的各个方面,尤其是电子商务的突飞猛进正使人们的购物方式、支付方式发生着翻天覆地的变化。

如今快节奏的生活方式让人们困扰不已,而就餐与交通问题首当其冲。餐厅太过拥挤、客流高峰期就餐困难、点餐等待等问题层出不穷。如果能有一个为广大民众所接受的系统应用解决这些问题,对于解决生活中的困扰及提升人们的生活质量都有极大的帮助。

1.2 目前形势

国内也有不少网上订餐的服务形式,其中包括线上订购、在线支付等等。其实,想法都很不错,但想实现网上订购,这些网上订餐的形式应该很难,个中原因主要就是餐饮行业普遍存在的信息化意识薄弱,这让网上订餐成为实在的瓶颈,短时期内这是很难突破的,这也是为什么现在真正能实现网上订餐、并能被广泛接纳的网上订餐行为,依然离不开电话直接订购的主要原因。

据不完全统计,2008年新上线订餐类网站近千家,大多数集中在经济较发达的大都市和一级城市,如北京、上海、广州、深圳、重庆、福州、厦门等。 网上订餐,想真正实现“网上订,网上付”的正规化,还需要很长的一段时日。

1.3 选题方向及意义

据了解,目前国内较为成熟的、成体系的餐饮预定类网站为数不多,“行业巨头”主要集中在京、沪、粤三地DD请客800、饭统网雄踞京城;订餐小秘书、大众点评网坐镇上海滩、八界网独守羊城。处于餐饮产业链中的新生产业DD网络订餐业,正受到越来越多投资人的偏爱。记者调查发现,当下众多此类网站,如大众点评网、订餐小秘书、紫页114、请客800等,都有一个共同的盈利模式,即通过互联网帮客人订餐、提供一定的折扣,从而获得店方给予的返点,这样的运营模式实际就是餐饮行业的携程网。这些网站不仅可以给网民提供海量的餐厅信息、交流美食心得的平台,而且可以给订餐者实实在在的折扣。

2 开发环境及相关技术简介

2.1 开发环境简介

本系统是基于Android平台的网上订餐系统,因此Android平台是首要搭建的平台,鉴于目前主流的Android系统基本上都在Android2.1版本以上,因此就选择Android SDK 2.1版本作为开发本系统Android手机客户端的基础。

此外,本系统使用Apache+PHP+MySQL作为Web端的开发基础。

下面就是本系统开发所需的各种软件的名称及版本等级。

1、JDK 1.6及其以上版本。该版本为较高的版本,具有很多低版本所不具备的新特性。

2、Web应用服务器,Apache 2.2.6版本。

3、数据库,MySQL5.1及其以上版本。MySQL功能强大且安装方便,并且支持事物后更增添了数据的完整性及安全性。

4、开发环境,【【微信】】 Ja【【微信】】ers 3.5 及其以上版本,该版本支持EE系统的开发。

5、Android SDK 2.1及其【【微信】】 开发插件ADT。

2.2 Web Service技术简介

【【微信】】平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,【【微信】】平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有:XML和XSD、SOAP、WSDL、UDDI及调用RPC与消息传递。而本系统所用的协议则是:SOAP和WSDL。

SOAP即简单对象访问协议(Simple Object Access Protocal),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。【【微信】】打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。

WSDL就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述【【微信】】及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。

3 系统功能设计及概述

3.1 系统开发背景

随着计算机技术的发展,越来越多的人依赖计算机。而智能手机的诞生及其相关应用的发展、电信技术的进步,又为移动终端及其应用的普及提供了可能。

Google公司2005年推出的Google地图,2008年推出的第一款Android智能手机,极大地促进了手机应用的大发展。本系统将主要基于Google Map及Android应用软件来实现一个美食订购、分享的平台,通过Web端以及Android手机端的实现使用户可以实时与他人分享自己喜欢的美食,并且可以通过Google Map精确快速的找到饭店所在的位置。

3.2 功能概述

现在对该系统的基本功能进行简单介绍。

1、Web会员端:

用户可以通过注册模块注册会员账号,通过登录系统实现美食信息的查询、收藏和分享,实现美食的订购,管理个人信息。

2、Web商户端:

商户也可以通过注册模块注册成为系统商户,商户被审核通过后即可登录系统设置餐厅信息,包括利用google地图上传餐厅具体的经纬度;管理餐厅所提供的美食信息,包括添加、删除、修改;查询和管理会员订单,包括是否接受订单、所订餐品是否发出等。

3、Web管理端

当管理员登陆系统后,可以对整个系统进行管理,包括审核商户、文章、广告信息;添加、修改和删除美食种类及美食信息;改变站长推荐、今日特价等信息;对数据库进行维护。

4、Android客户端

会员除了通过电脑访问该系统之外,还可以通过在手机中安装相应的程序来访问该系统。在手机端,用户同样可以注册成为会员或登录系统,登陆成功后可以查看美食信息、搜索美食信息、上传美食信息、查询个人信息、查看个人的订单、及个人收藏的美食信息。

3.3 MySQL数据库设计

本系统中的信息表主要有11张数据表:网站文章表、会员信息表、商户信息表、美食种类表、餐品信息表、餐厅信息表、评论表、广告表、订单表、订单详情表、用户推荐美食信息表(详见附录一)。

3.4 Android客户端的设计

本系统的Android客户端是基于Android 2.1 开发出来的,下面是对Android应用程序的构成进行介绍。先看项目的目录结构(如下图一):

(图1)

在该程序中,包含如下一些主要的文件,接下来就详细解释一下。

1、src目录

src目录中存放的是该项目的源代码,其内部结构会根据用户所声明的包自行组织,例如本系统中所用的三个基本包,它们包含了程序所用到的Activity和各种类及各种方法。

2、gen目录

该目录下的文件是ADT自动生成的,并不需要人为地修改。它就是项目的字典,项目中用户界面、字符串、图片、声音等资源都会在该类中创建它们唯一的ID,当项目中使用这些资源时,会通过该类得到资源的引用。

3、Android 2.1

该目录中存放的是该项目支持的JAR包,同时还包含项目打包时需要的META-INF目录。

4、res目录

该目录用于存放应用城中经常使用的资源文件,包括图片、声音布局文件及参数描述文件等,包括多个目录,以drawable开头的三个文件是用来保存不同格式的图片的资源。Layout文件夹则是存放所有的布局文件的。Values是用来存放程序所用到的字符串、颜色及样式描述文件的。

5、AndroidManifest.xml文件

该文件时应用程序的系统控制文件,是应用程序的全局性描述文件,让外界知道该应用程序包含哪些组件、资源、何时运行及应用程序自身应该拥有的权限的声明。例如,本程序应用到的权限有:

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-permission android:name="android.permission.CAMERA"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

第一个是访问网络的权限,第二个是精确定位的权限,第三个是应用照相权限,第四个是往存储卡中写入数据的权限。

3.5 Web Service服务端的设计

Android应用通常都是运行在手机平台上,手机系统的硬件资源是有限的,不管是存储能力还是计算能力都很有限,在Android系统上开发、运行一些单用户、小型应用还是可能的,但是对于需要进行大量的数据处理、复杂计算的应用,还是只能不是爱远程服务器上,而Android应用将只是充当这些应用的客户端。

【【微信】】用于消除不同平台、不同语言之间的差异,将现有的应用程序发布成开放式的服务,从而允许互联网上任何地方、任何平台、任何语言的应用程序可以向全世界发布信息或提供某种服务。

本系统采用SOAP(Simple Object Access Protocol,简单对象访问协议),它是一种具有扩展性的XML消息协议。SOAP是一个应用程序向另一个应用程序发送XML消息。SOAP消息是从SOAP发送者传至SOAP接受者的单路消息,任何应用程序均可作为发送者或者接受者。SOAP仅定义消息结构和消息处理的协议,与底层的传输协议独立。因此,SOAP协议能通过HTTP,JMS或者SMTP协议传输。

使用PHP做服务端,要用Android去访问,用JSON和XML提供返回的数据,而Android端则可以用Apache的HttpClient去访问。

JSON(Ja【【微信】】on) 是一种轻量级的数据交换格式。它基于Ja【【微信】】(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, Ja【【微信】】, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本项目的Android客户端就是利用这个组件进行Web服务请求的。

4 系统实现及功能实例

4.1 Web会员端主要功能实现及示例

4.1.1 注册、登陆验证功能的实现

当进入网站首页时,会发现网站右侧的登陆标签,若你是会员,请点击登陆,就会跳转至登陆页面;若你不是会员,也点击登录。因为登陆页面注册按钮,用户就可以进入注册页面。在注册或登录的过程中,页面会提示不同程度的提示信息,比如登录或注册成功并自动跳转页面,会提示你的用户名或密码输入不正确等。

4.1.2 查询美食信息(包括餐厅地图信息)

(图2) (图3)

当用户在浏览美食信息时,点击进入餐厅查询餐厅所有美食信息,用户在餐厅详细信息页面可以看到美食的详细信息,包括美食信息及美食所在餐厅的位置信息,为用户提供全面细致的餐厅及美食信息。实现过程:

【【微信】】;

var map;

【【微信】】ray=[];

function initialize(lat,lng){

geocoder=new google.maps.Geocoder();

【【微信】】oogle.maps.LatLng(lat,lng);

【【微信】】={

zoom: 13,

center: latlng,

mapTypeId: google.maps.MapTypeId.ROADMAP }

map=new google.maps.Map(document.getElementById("map_canvas"), 【【微信】】);

【【微信】】(latlng); 【【微信】】(event.【【微信】】); }); }

  1. 购买、收藏美食功能的实现

(图4) (图5)

用户如果要点餐,那就必须进入美食的详细信息页面(如图4),这样就可以进行点餐和收藏了。用户只要点击订购按钮,就可以把美食添加进菜单,而且用户还可以改变订购的数量,为用户添加了便利(如图5)。

(图6) (图7)

用户在订购结束后即可进行结算,点击购物车页面的结算按钮,即可进入填写订单详细信息页面(如图6),在确认订单详细信息后,用户即可提交订单(如图7),完成订餐过程。

4.2 Web商户端功能实现及实例

4.2.1 注册、登陆验证功能的实现

当商户进入网站首页时,会发现网站底部有商务合作与餐厅管理两个标签,若你不是已注册商户,点击商务合作就会跳转至注册页面;若你已是注册商户,点击餐厅管理。商户在注册后会在经过网站管理员的审核之后才会通过;在登录的过程中,页面会提示不同程度的提示信息,比如登录或注册成功并自动跳转页面,会提示你的用户名或密码输入不正确等。

4.2.2 管理餐厅信息(上传、修改、删除)功能的实现

(图8) (图9)

当商户已经过审核可以登录至商户管理页面时(如图8),商家可以选择修改餐厅信息页面上传餐厅信息(如图9),系统设置当前的区域为保定火车站附近的区域。这里可以通过Google地图获取商家餐厅的具体位置(精确的经纬度)并在确认上传之后上传至数据库。获取地图并添加位置数组的map.js代码如下所示:

【【微信】】;

var map;

【【微信】】ray=[];

function initialize(){

geocoder=new google.maps.Geocoder();

【【微信】】oogle.maps.LatLng(38.86300,115.48003);//这里就是页面当前显示的地理位置的具体经纬度。

【【微信】】={

zoom: 13,

center: latlng,

mapTypeId: google.maps.MapTypeId.ROADMAP

}

map=new google.maps.Map(document.getElementById("map_canvas"), 【【微信】】);

google.maps.event.【【微信】】(map, 'click', function(event){

【【微信】】(event.【【微信】】);

});

}

function 【【微信】】(【【微信】】){<!--增加标记--!>

【【微信】】ew google.maps.LatLng(【【微信】】);

【【微信】】=new google.maps.Marker({

position: 【【微信】】,

map: map

});

document.getElementById("show_x").value=【【微信】】.lat();<!--获得标记的经度障允驹谖谋究蛑--!>

document.getElementById("show_y").value=【【微信】】.lng();<!--获得标记的纬度障允驹谖谋究蛑--!>

map.setCenter(【【微信】】);

markersArray.push(marker);

}

4.3 Android手机端功能实现及实例

4.3.1 登陆及验证功能的实现

(图10) (图11)

当用户安装Android客户端后即可运行。首先进入的是欢迎界面,然后会自动跳转进入登录界面。这里用户可以登录或注册,这里就点击登录按钮,如果你输入的用户名和密码不一致,系统就会提示你重新输入(如图10)。当你输入正确的用户名和密码后,系统就会自动跳转进入系统的主界面(如图11)。关键代码如下所示:

HttpPost httpPost=new HttpPost(url);

HttpClient client=new DefaultHttpClient();

StringBuilder str=new StringBuilder();

//获取用户名文本框内容

String editUid=uid.getText().toString();

//获取密码框内容

String editPwd=pwd.getText().toString();

ArrayList<Name【【微信】】> params=new ArrayList<Name【【微信】】>();

params.add(new BasicName【【微信】】("username",editUid));

params.add(new BasicName【【微信】】("password",editPwd));

BufferedReader buffer=null;

try{

httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));

HttpResponse httpRes=client.execute(httpPost);

if(httpRes.getStatusLine().getStatusCode()==200){

buffer=new BufferedReader(new InputStreamReader(httpRes.getEntity().getContent()));

for(String s=buffer.readLine();s !=null; s=buffer.readLine()){

str.append(s);

}

//String out=EntityUtils.toString(httpRes.getEntity().getContent();"UTF_8");

//StringBuilder sb=new StringBuilder();

Log.i(Tag,str.toString());

buffer.close();

JSONObject json=new JSONObject(str.toString());

String title=json.getString("title");

Log.i(Tag,title);

int id=json.getInt("id");

if(id==1){

Toast.makeText(this, id + title ,Toast.LENGTH_SHORT).show();

//跳转到主页面

Intent 【【微信】】=new Intent();

【【微信】】.setClass(FanyouClient.this,MainActivity.class);

【【微信】】=new Bundle();

bundle.putString("action","register");

【【微信】】.putExtras(bundle);

startActivity(【【微信】】);

FanyouClient.this.finish();

}

else

Toast.makeText(this,"对不起,请重新输入用户名或密码" ,Toast.LENGTH_SHORT).show();

4.3.2 订购美食功能的实现

(图12) (图13)

用户在进入系统主界面后,可以看到几个主要按钮,如果想要订餐,可以进入餐厅(如图12所示),这样就可以如同web端一样浏览餐厅信息,在选择某个餐厅后,就可以看到餐厅所有的美食信息,在浏览餐品详细信息时,用户就可以进行购买和收藏等操作了(如图13所示)。关键代码如下所示:


中媒网丨北京暂停堂食的日子:预制菜热卖,外卖不打烊假期订单增长约三成

暂停堂食是什么意思,北京餐厅停止营业,多地宣布暂停食堂,北京餐饮停业

本报华夏时报记者卢晓 北京报道

五一假期一直被看做是消费黄金周。其中餐饮更是撑起消费的半边天。

但今年的五一假期却有些特殊。5月4日,北京市新型冠状病毒肺炎疫情防控工作新闻发布会宣布,“五一”节后北京餐饮经营单位继续暂停堂食服务。此前在4月30日,北京市宣布为了进一步降低疫情传播风险,“五一”假期,全市餐饮经营单位暂停堂食,转为外卖和自提服务。

外卖成为衡量今年五一北京消费市场的一个风向标。5月4日,饿了么方面告诉《华夏时报》记者,北京市场的外卖订单“五一”期间增长了两至三成。美团外卖方面也告诉记者,5月1日-5月3日,北京市场餐饮外卖订单量稳中有升,与去年同期相比增长了超三成,其中全城送订单量环比上涨超过四成。

外卖不打烊

虽然五一假期餐饮门店堂食暂停,但《华夏时报》记者在北京街头走访发现,外卖服务却不打烊。不少餐厅在门口支起了长桌,桌上打包好的一份份外卖等待被骑手或者消费者领走。

有餐饮商家告诉《华夏时报》记者,五一期间明显感觉外卖订单量有所上涨,“特别是五一当天,不仅订单量多,而且单价也相对比较高,大多都是家庭聚餐。”

针对愿意自提的用户,外卖平台为商户提供了“到店自取”服务。用户可以提前在线上下单,按照约定时间到店内自取。数据显示,5月1日当天,美团外卖开通到店自取商户数量比4月30日增长近两成,目前该平台上已有约六成外卖商家开通了到店自取服务。

更多的人选择等待骑手送达。

5月4日下午将近三点,某外卖平台的骑手告诉《华夏时报》记者,当天他已经送了快四十单,“放假了,单子明显多。”他同时告诉记者,虽然订单多了,但由于没有堂食,派单也相对集中,等餐的时间比之前短,送餐速度相对也更快一些。

需要提及的是,除了在餐厅订外卖外,今年五一还鼓励市民多渠道订购原材料、半成品、预制菜等回家做饭。

《华夏时报》记者从盒马了解到,5月1日其预制菜销量环比涨500%。饿了么全能超市也紧急启动预制菜专项,与大润发、物美等商超合作,5月上线累计超过100个半成品菜和预制菜。

不仅预制菜在今年五一成为更多消费者的外卖选择,商超订单也大幅增加。

“4月28日以来,店内美团闪购订单量日均超500单以上。居民购置的物资主要集中在果蔬、肉类、粮油、熟食、鸡蛋等必需品上。”位于临时管控区的京客隆劲松商城店相关工作人员如此表示。美团外卖北京区域相关负责人也表示,目前临时管控区内的外卖订单主要以商超类订单为主。

增加骑手保供

面对增多的外卖需求,外卖平台一方面增加更多的外卖商户,另一方面则在统筹更多的配送运力。

为了稳住现金流,此前不少未开通外卖的商家,在今年五一尝试开通外卖业务。据记者了解,美团和饿了么都为餐饮商户开通上线外卖的绿色通道,最快1个小时就能完成资质审核,商家申请当日即可上线营业。据统计,5月1日当天,北京有473家餐饮商户通过美团的绿色通道申请上线外卖,比前一日增长338%。

此外,外卖平台也在增加更多的运力。

《华夏时报》记者从美团方面了解到,为满足北京市民的生活需求,美团配送已增加了三成骑手运力储备及600万-800万元骑手补贴,投入启动实时、灵活的“跨区调度配送”和“驻点配送”,并调配1.5倍运力集中保障商超订单,优先保障封控、管控区居民以及老弱病残孕群体的外卖配送需求。

饿了么方面则告诉《华夏时报》记者,堂食暂停后,外卖和超市的订单都会大幅上涨,其在大润发、物美、京客隆等重点保供商超驻点取送,并为朝阳区、丰台区部分商超门店增派10%-20%配送力量。

这其中,骑手的防疫保障颇为外界关注。上述外卖骑手对记者表示,现在没有48小时内的核酸报告,没法送外卖。饿了么方面还告诉记者,除了要求骑手持有效期内的核酸检测证明上岗外,五一假期期间其再次追加20万只N95/KN95口罩组织下发。

此外,外卖平台还纷纷推出举措,鼓励骑手参与保供工作的积极性。

记者从美团方面了解到,骑手遇到因疫情所产生的异常订单都可以向平台申诉免责。饿了么方面还告诉记者,考虑到特殊情况,会对疫情管控影响到的区域的订单给予“超时免赔”和更高单价。

责任编辑:黄兴利 主编:寒丰