基于android手机终端点菜系统.docx

上传人:b****2 文档编号:17585499 上传时间:2023-07-26 格式:DOCX 页数:33 大小:1.46MB
下载 相关 举报
基于android手机终端点菜系统.docx_第1页
第1页 / 共33页
基于android手机终端点菜系统.docx_第2页
第2页 / 共33页
基于android手机终端点菜系统.docx_第3页
第3页 / 共33页
基于android手机终端点菜系统.docx_第4页
第4页 / 共33页
基于android手机终端点菜系统.docx_第5页
第5页 / 共33页
基于android手机终端点菜系统.docx_第6页
第6页 / 共33页
基于android手机终端点菜系统.docx_第7页
第7页 / 共33页
基于android手机终端点菜系统.docx_第8页
第8页 / 共33页
基于android手机终端点菜系统.docx_第9页
第9页 / 共33页
基于android手机终端点菜系统.docx_第10页
第10页 / 共33页
基于android手机终端点菜系统.docx_第11页
第11页 / 共33页
基于android手机终端点菜系统.docx_第12页
第12页 / 共33页
基于android手机终端点菜系统.docx_第13页
第13页 / 共33页
基于android手机终端点菜系统.docx_第14页
第14页 / 共33页
基于android手机终端点菜系统.docx_第15页
第15页 / 共33页
基于android手机终端点菜系统.docx_第16页
第16页 / 共33页
基于android手机终端点菜系统.docx_第17页
第17页 / 共33页
基于android手机终端点菜系统.docx_第18页
第18页 / 共33页
基于android手机终端点菜系统.docx_第19页
第19页 / 共33页
基于android手机终端点菜系统.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于android手机终端点菜系统.docx

《基于android手机终端点菜系统.docx》由会员分享,可在线阅读,更多相关《基于android手机终端点菜系统.docx(33页珍藏版)》请在冰点文库上搜索。

基于android手机终端点菜系统.docx

基于android手机终端点菜系统

****

2014届本科毕业论文(设计)

论文(设计)题目:

Android手机终端点菜系统

 

学生姓名:

***

所在院系:

信息工程学院

所学专业:

计算机科学与技术

导师姓名:

***

完成时间:

2014-05-10

 

摘要

本课题所实现的电子点菜系统改变了传统的服务员和菜单的点菜模式,采用新颖的电子终端点菜系统,这种新式的方式使得餐馆更有档次和特色,对于其在同行业的竞争有着明显的帮助。

本课题采用c/s开发模式,分为服务器端和Android客户端的一些操作。

在服务器端主要采用Jsp动态网页技术,实现了后台餐馆一方对菜谱信息的管理和对顾客订单的处理。

在客户端主要采用Android技术实现了顾客对菜品的查找、分类查看、顾客对自己订单的选择和查看,顾客在确定订单之后可以提交给餐馆一方,使得餐馆一方得以查看并通知厨房做出菜品。

关键词Android,MySQL,Jsp,Java

 

ABSTRACT

Electronicorderingsystemtherealizationofthisprojecthaschangedthetraditionalserviceandmenumenumode,thenovelelectronicterminalordersystem,thenewmethodmakestherestaurantmoregradesandcharacteristics,thisisveryhelpfulforthesameindustrycompetition.

Thistopicusesc/sdevelopmentmode,dividedintosomeoperationserverandAndroidclient.OntheserversideJspdynamicWebpagetechnologymainlyuses,thishasrealizedthebackstagerestaurantmanagementsideofthemenuinformationandcustomerorderprocessing.TheclientusestheAndroidtechnologytorealizethecustomeronthefoodsearch,classificationandviewview,oftheircustomersthechoiceoforders,customersintherestaurantaftertheorderisconfirmedcanbesubmittedtoaparty.Thismakestherestaurantsidetoseeandnoticethekitchentomakedishes.

KeywordsAndroid,MySQL,Jsp,Java

 

1.绪论1

1.1项目背景及意义1

1.2Android系统概述1

2.系统理论和技术路线3

2.1Android四大组件3

2.2c/s体系3

2.3Jsp和Servlet4

2.4系统主要路线4

2.5运行环境要求5

2.5.1硬件环境5

2.5.2软件环境5

3.系统需求分析5

3.1各模块关系图5

3.2数据库设计6

3.2.1数据库列表6

3.2.2数据库连接的实现7

3.3功能需求描述11

3.4主要开发工具13

3.4.1MyEclipse13

3.4.2ADT14

4.软件系统设计15

4.1后台功能模块15

4.1.1后台登陆模块15

4.1.2后台菜品模块17

4.1.3后台订单模块19

4.2客户端功能模块20

4.2.1首页面模块20

4.2.2主功能模块21

4.2.3订单模块23

4.2.4游戏模块25

5.结论26

谢词27

参考文献28

 

1.绪论

1.1项目背景及意义

由于互联网的高速发展,而电子技术由于在外国比如说美国最先得到了发展并被用于生活的各个领域,而餐饮作为我们生活中的一个重要环节,它的发展也是非常迅猛的,以美国举例,从1999年的餐饮业的营业额3500多亿美元到2010年的6000多亿,由于人们对餐饮业的关注,所以电子技术对餐饮的影响非常大,所以像手机点菜系统的发展在美国已经逐渐得得到了普及。

在我们国家,餐饮是人民非常关心的一个方向,但是点菜系统在餐饮业的普及还只是刚刚开始,现在仅仅是在一部分比较高档的餐厅出现,但是我们从餐饮业的发展不难看出,点菜系统的普及是肯定的。

近几年,随着Android和ios技术的发展,智能手机和平板不仅仅被广大的青年、青少年甚至儿童和老年人接受并使用,电子产品正在影响着我们生活的方方面面,而餐饮作为我们都必不可少的一部分也不可避免的和电子产品结合到了一起。

手机、平板的点菜系统替代人工服务员的点菜方式不仅仅节省了大量的劳动力,降低了成本,而且还方便收银员对账单支出的管理,使得餐厅的财政能得到高效透明的管理,当然现代化的电子点菜方式相比较于传统的点菜员会得到广大消费者尤其是青年人的喜爱。

根据科技的发展对社会带来的影响,电子点菜系统必将取代传统的点菜模式,如今电子点菜系统已经在比较高档的餐厅中开始出现并被使用,电子点菜系统必将得到发展。

1.2Android系统概述

Android最初是Android公司创办,后由Google公司收购,Google希望将Android创造成一个标准化的、可移动的移动电话平台,进而在移动互联网形成一个开放性的操作平台。

2007年谷歌发布第一个Android1.1版本,但并未得到市场的广泛支持,但是到2009年,Android1.5版本的面世,Android凭借“豪华”的界面和蓝牙支持,获得了大量的开发者支持。

到目前为止,Android已经超过ios在市场的占有量,国内大量的手机厂商开始生产Android操作系统的手机,Android已经成为世界上最主流的手机操作系统。

图1-1Android系统的体系结构

Android系统的底层是建立在Linux系统之上,总共包括Linux内核、Android运行时、函数库、应用程序框架、应用程序层。

Linux层为Android提供了内存管理、网络协议栈、驱动模型、进程管理等核心系统服务。

Android运行时则是由两部分组成:

Android虚拟机和Android核心库集,Android核心库集提供了Java语言核心库所能使用的绝大多数功能,而虚拟机则负责运行Android应用程序。

在这里要区分的是Android和JVM是完全不同的,JVM永兴的是Java字节码,也就是.class文件,而Android虚拟机则运行的是专有的dex文件。

函数库包含了一整套能被Android应用程序框架所调用的库的集合,像Android专有的轻量级数据库SQLite等,需要注意的是Android应用程序并不

能直接调用这些库,需要经过应用程序框架来调用。

Android应用程序框架最主要的功能是提供了大量的API供开发者使用,不管是系统的应用程序还是开发者自己开发的应用程序都可以公平的调用它。

应用程序层就是我们平时在手机上所见的包括系统提供的时钟浏览器、联系人等等还是自己下载的由开发者自己开发的Android所有的应用程序。

2.系统理论和技术路线

2.1Android四大组件

Activity要实现的功能是用户交互的组件,它是用户可以看到的,一个Activity可以包含多个UI组件并显示,例如TextView、Button、ImageView、AdapaterView等组件。

Service在地位上和Activity是并列的,但是它和Activity不同处在于Service对于用户是不可见的,所以它不能和用户进行交互,因此Service有自己的生命周期,并不依赖于一个Activity,他的主要功能是为其他组件提供后台服务和监控其他组件的运行状态。

BroadcastReceiver从名字上说可以把其当做一个信息广播的接收组件,开发者通过集成父类BroadcastReceiver来实现自己的功能。

其它组件通过sendBroadcast()等方法来发送广播,子类BroadcastReceiver通过onReceiver(Contextcontext,IntentIntent)方法来监听接收消息。

ContentProvider和其它三个组件最大不同在于其可以从其它App程序接口中取得其它App中的信息,最常见例子是:

好多App需要读取我们手机联系人中的数据,而ContentProvider就能提供这个需求。

2.2c/s体系

c/s即客户端/服务器端结构,如果说c/s就最好和b/s作比较,那具体的项目举例就是需要下载的qq客户端就属于c/s模式,而网页版的qq就属于b/s结构的项目。

c/s结构中需要用户下载专有的客户端软件,而b/s模式,客户端不需要下载任何用户界面,从这一方面来说节约了开发成本,但是从安全性来说,

c/s模式对于每个用户都有一个客户端,而b/s模式的客户端是被所有用户公用,而且不固定,所以来说,c/s比较b/s来说安全性相对较高。

2.3Jsp和Servlet

Servlet是作用在服务器端,其本质就是一个Java类,它可以响应客户端的请求,并作出处理。

Servlet有它自己的生命周期,包括服务器对一个Servlet的首次加载、对Servlet的初始化、初始化后对客户端请求的响应、最后的销毁。

对于Servlet的初始化我们只能调用其里面的init()方法一次,以后再用都不会在调用这个方法,而当Servlet销毁时,会调用destroy()这个方法。

需要注意的是在后台项目里面,如果用到了Servlet,对于每一个Servlet我们需要在WEB-INF目录中的web.xml对其进行配置。

问号位置放置此Servlet的名字

一般和其name放置内容一致。

/?

里面,一定要放置此Servlet在项目中的位置路径。

Jsp作为Java的脚本语言,他其实也可以被当做是Servlet,因为对于Jsp语法,Jsp引擎是先将其转换成Servlet代码,然后才带入执行,Jsp有自己的标签语言,像c标签库、s标签库等,Jsp还有自己的内置对象,像request、response、session等。

对于Jsp的声明格式为<%!

声明部分%>,对于Jsp的注释的格式为<%--注释部分--%>。

在本系统中我们主要是用到Jsp中requset、response、session内置对象像Servlet请求数据,Servlet通过doGet、doPost方法获取请求信息,并做处理,将处理后的信息传送给需要的Jsp页面,Jsp页面获取Servlet传送过来的信息后将其输入在网页上。

2.4系统主要路线

在数据库方面,我所设计的电子点菜系统用到的是MySQL数据库,大致包括菜品表、菜品顺序表、优惠券表、用户表、管理员表、销售量表、意见反馈表;对于数据库的存储管理我们借助于navicatforMySQL工具软件来实现。

对于服务器端的设计,主要用HTML、CSS来实现,其中对于数据库的请求和获取数据库的信息并显示,主要会用到Jsp语言来实现,,如用Jsp中JDBC技术来实现和数据库的连接,用Jsp中一些内置对象request、response来处理HTTP请求中各种参数的处理。

通过Servlet中doGet()、doPost()方法来对Jsp页面的请求信息进行处理,并反馈给相对应的Jsp页面。

对于Android客户端应用程序的设计主要分三个功能。

首先是应用程序的界面设计,我们会用到UI中的一些组件,像一些布局管理器、View、Button按钮等。

其次是界面间的内部通信,我们会用到Intent、IntentFilter来实现。

最后是Android和后台的通信我们会用到Android的网络应用技术来实现,如用URL来读取网络资源、RELConnection来提交请求。

2.5运行环境要求

2.5.1硬件环境

服务端:

IE浏览器

Pad客户端:

无特殊要求,因为Android项目在设计时是按照建议七寸分辨率的屏幕来做,因此最好是选用这个尺寸大小的屏幕,在cpu主频上最好选用1.5MHZ以上,如果主频太低,影响程序运行速度。

2.5.2软件环境

服务端:

MySQL数据库、MyEclipse、AndroidADT

Pad客户端:

Android4.1及以上,如果版本太低,那么一些在4.1以后新增的一些功能,因为App中用到,但是老版本不能识别,造成程序运行不了,所以尽量选用新版本的平板。

3.系统需求分析

3.1各模块关系图

此系统设计主要由以下各功能组成,分别包括后台服务器端和客户端的一些功能,在服务器端主要包括管理员的登陆、管理员对菜品信息的管理、管理员对订单信息的管理。

在客户端所要实现的模块中,此App中所要实现的功能包括首页面的今日特色推荐、按照不同分类来进行菜品(包括荤菜、素材、价钱、酒品)显示、已点的菜品、登陆注册、个人信息和小游戏模块,系统所包含的模块如下图所示:

图2-1系统模块

3.2数据库设计

3.2.1数据库列表

数据库我们采用MySQL数据库,所需要建立的表有:

(1)菜品表(dish)是为了可以在客户端可以实现对菜品按照不同类型的排序和查找。

其中包括主键菜名(ID)、菜名(DishName)、菜图(DishImage)、菜价(DishPrice)、菜品所属类别(DishCategory)、菜品是否被推荐(IsRecommend)、菜品的拼音拼写(Spell)、菜品的拼音简拼(SimpleSpell)。

(2)菜单顺序表(Dish_order)是主功能,是为了餐馆能正确有序的让厨房做出每道菜,并且可以使每道菜能正确送到每个餐桌。

其中包括主键菜品所属上菜顺序(MenuNumber)、桌名(TableID)、菜品ID(DishID)、菜名(DishName)、此类菜所点数量(DishCount)。

(3)菜品的销售量表(dish_salevolume)主要是方便餐馆一方可以对每道菜进行统计,并可对此进行各方面的调整。

其中包括主键为菜品ID(DishID)此菜品的销售量(RealSale)。

(4)意见反馈表(feedback)主要是方便客户对菜的味道和餐馆的服务等提出意见。

其中包括主键用户ID(ID)、此用户所提得意见(Information)。

(5)管理员表(manager)主要是为了餐馆一方在pc端登陆所用。

其中包括主键管理员ID(ID)、登录名(UserName)、登录密码(UserPassword)。

(6)用户表(user)主要是为了实现对用户信息的存储。

其中包括主键用户ID(ID)、登录名(UserName)、登录密码(Password)。

(7)优惠券表(user_coupon)主要是为了实现对优惠券信息的的管理。

其中包括主键优惠券ID(ID)、优惠券所属用户的用户的ID(UserID)、优惠券有效开始日期(CouponStartTime)、优惠券的份额(CouponValue)优惠券有效截止日期(CouponEndTime)。

3.2.2数据库连接的实现

对于数据库的连接,本系统用到的是Java中的JDBC技术,JDBC为开发者提供很多核心的类库,并规范了连接数库的要求,包括对数据库的连接、对数据库的查询和各种操作、从数据库中获取数据。

JDBC中有很多接口和常用类,我们主要用到的是DriverManager、Connection、Statement、ResultSet。

当然我们通过JDBC技术和数据库进行连接时,对不同的数据库我们需要加载不同的驱动程序类,本系统我们用到的是MySQL数据库,所以我们将MySQL-connector-Java的包导入程序即可保证与数据库的连接。

此系统采取MySQL数据库,数据库的连接程序在后台PadOeder_Service程序src目录的util包中,首先我们现在src目录中建立一个名字为DBConfig.properties的配置文件,里面存放数据库连接需要的连接名、url、数据库的用户名和密码。

对于配置文件的使用可以方便其他使用者在不同的地方进行使用,其他使用者只需要在配置文件中重新改写不同的信息而不需要在代码中更改。

DriverManager可以自动寻找相应的数据库驱动程序,并可以与之连接,DriverManager可以识别MySQL数据库、SQLServer等数据库的驱动,DriverManager通过调用Class.ForName(””),接着我们通过DriverManager中的getConnection(Stringurl,Stringuser,Stringpassword)方法与数据库即可取得连接,在getConnection方法中的三个参数中,url对于不同的数据库有不同的url,url的组成包括协议、子协议、子名组成,由于本系统用的是MySQL数据库,因此我们就用连接MySQL数据库的url做例子,对于连接MySQL的url为:

jdbc:

MySQL:

//127.0.0.1:

4417,在这里需要注意的是常用的数据库端口是3306,因为本人设置的是4417,因此在我们这里我的url中的端口号为4417。

getConnection中的user和password分别为自己数据库对应的账号和密码,对于数据库的连接代码如下:

publicclassDBUtil{

publicConnectionopenConnection(){

Propertiesprop=newProperties();

Stringdriver=null;

Stringurl=null;

Stringusername=null;

Stringpassword=null;

Stringyhc_url=null;

try{

prop.load(this.getClass().getClassLoader().getResourceAsStream(

"DBConfig.properties"));

driver=prop.getProperty("driver");

url=prop.getProperty("url");

username=prop.getProperty("username");

password=prop.getProperty("password");

yhc_url=prop.getProperty("YHC_url");

Class.forName(driver);

returnDriverManager.getConnection(url,username,password);

}catch(Exceptione){

e.printStackTrace();

}

returnnull;

}

publicStringgetUrl(){

Propertiesprop=newProperties();

Stringyhc_url=null;

try{

prop.load(this.getClass().getClassLoader().getResourceAsStream(

"DBConfig.properties"));

yhc_url=prop.getProperty("YHC_url");

returnyhc_url;

}catch(Exceptione){

e.printStackTrace();

}

returnnull;

}

}

配置文件DBConfig.properties中所存放的信息如下:

Driver=com.MySQL.jdbc.Driver

url=jdbc:

MySQL:

//127.0.0.1:

4417/e-menu?

useUnicode=true&characterEncoding=utf-8

username=root

password=123456

JDBC中的另外一个常用接口Connection代表与数据库驱动程序代表的连接,一个应用程序中可以与数据库有一个或者多个数据连接,Connection可以向数据库输入数据库查询语句,数据库因此而能执行其输入的查询语句。

Statement作为JDBC的另外一个常用接口,他的出现主要是因为对数据库操作的语句,是封装在其中,它分为Statement、PreparedStatement、CallableStatement三种对象,对于如果查询中没有参数,那么我们就可以使用Statement对象中的executeQuery、executeUpdate等方法对数据库进行查询、更新、增删等操作而如果查询的语句中如果限制条件中需要输入参数,那么我们就需要通过PreparedStatement来对数据库进行操作,我们可以通过PreparedStatement可以通过里面setString(?

,?

)、setInt(?

,?

)、setBoolean(?

,?

)来对查询语句中的参数赋值,举例如下:

Stringsql="selectID,DishName,DishImage,DishPrice,DishCategory,

IsRecommend,Spell,SimpleSpell,RealSalefromdish,dish_salevolumewhereDishID=IDlimit?

?

";

ps=conn.prepareStatement(sql);

ps.setInt(1,pagenow);

ps.setInt(2,pageSize);

CallableStatement因为在本系统中并不常用,在这里就不做概述。

ResultSet作为JDBC中另外一个重要的接口,他的主要功能是存储从数据库中查询获取的数据,ResultSet中常用的方法包括next()用来使光标移动到数据库记录的下一条,因为其这功能,我们可以在代码中判断数据库查询结果中的数据我们是否都取得完毕,如果取完,那么next()方法返回一个false,因此循环就可以截止了。

举例如下:

Stringsql="selectID,DishName,DishImage,DishPrice,DishCategory,

IsRecommend,Spell,SimpleSpell,RealSalefromdish,dish_salevolumewhereDishID=IDlimit?

?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2