《毕业设计(论文)基于Android手机的酒店点菜系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Android手机的酒店点菜系统的设计与实现.doc(56页珍藏版)》请在三一办公上搜索。
1、毕业论文题 目:基于Android手机的酒店点菜系统 的设计与实现 姓 名: 学 号:指导教师(职称): 专 业: 班 级:所 在 学 院:计算机科学与工程学院 2015年6月目 录摘 要IIIAbstractV第一章 绪 论11.1 课题背景11.2 目的11.3 目前发展状况21.4 主要工作31.5 平台技术分析3第二章 系统分析112.1 可行性分析112.2 需求分析112.3系统功能12第三章 系统设计153.1 总体设计153.2 各模块设计163.3 数据库的设计24第四章 详细设计294.1 登录的实现294.2 主界面的实现314.3 菜单的显示324.4 点菜的实现344
2、.5 我的点餐354.6 结算37第五章 系统测试395.1 测试环境395.2 功能性测试395.3 本章总结42总 结43致 谢45参考文献47摘 要 随着现在网络迅速的发展,餐饮行业需要进入信息化的管理来提高酒店的管理效率。因此,开发了一个基于Android手机的无线点菜系统。旨在方便管理酒店的业务,同时给顾客带来良好的体验,提升酒店的档次。Android手机的点菜系统分为客户端和服务器端两大部分,数据存储在MySQL数据库中。前期学习了Android平台的开发知识,后来通过带有ADT、Android SDK等插件的Eclipse开发工具开发客户端用来与客户进行交互,实现了登录系统、点菜
3、、管理菜谱等功能。用Java语言编写了服务器端来响应客户端点菜的请求,客户端和服务器端通过HTTP协议进行交互。整个系统按照软件工程开发的基本环节一步一步地进行。Android系统给开发者提供了丰富的控件以及灵活的开发方法,在xml文件中编写布局的定义,在Activity中对其对应的布局的控件进行实例化和应用。Android技术目前已经非常成熟,它已经在移动平台的开发中占据了不可缺少的重要地位。关键词:Android;电子点菜;SQLite;JavaAbstract With the rapid development of the network, catering industry nee
4、d to enter the information management to improve the hotel management efficiency.Therefore, a wireless ordering system based on Android is developed. Is designed to facilitate the management of the hotel business, while giving customers a good experience, improve the grade of the hotel.Android mobil
5、e phone ordering system is divided into the client and server two most of the data stored in the MySQL database.Early learning the knowledge of the Android platform development of, and later through with ADT, the Android SDK and other plug-ins eclipse development tool to develop client to communicat
6、e with customers, the realization of the system login, a la carte menu management etc. function.Java language with the server to respond to the client to order a request, the client and server through the HTTP protocol.The whole system according to the basic step of the software engineering developm
7、ent step by step.The Android system to the developer provides rich control and flexible development method, layout is written in XML file definition, in activity in the layout of the corresponding controls are instantiated and application.Android technology is now very mature, it has been in the dev
8、elopment of mobile platform to occupy an important position.Keywords:Android;Electronic ordering;SQLite;Java第一章 绪 论1.1 课题背景随着科学技术的发展,二十一世纪几经迈入了一个集数字化,网络化,信息化的时代,以网络为核心的社会1。Android手机的无线点菜系统是通过网络进行服务的,旨在方便管理酒店的业务,同时给顾客带来良好的体验,提升酒店的档次。应用此软件,用户可以轻松便捷地实现自己的点菜要求2。 市场经济得到了蓬勃的发展,信息化的发展力度也越来越强,酒店、餐饮行业也越来越注重信
9、息化管理。经济环境得到不断的改善,与此同时,餐饮行业的竞争力度也越来越强。如何加强酒店管理、提高工作效率和改善服务质量成为了餐饮业管理者们关注的重要的问题。无线点菜系统就是在这种环境下产生的,它为企业创造了新的发展空间3。面对激烈的竞争环境,餐饮管理需要更加的规范化和科学化。餐饮行业在开业之前就要将电脑管理系统摆在重要的位置上。无线点菜系统需要从客户的实际情况出发,针对不同的客户来进行不同的设计,这样才更加满足客户的需要。有些企业有多家分店,管理者需要对多家分店实行有效管理,来不断提高它的服务质量。实行系统化的信息管理势在必行,它在这种管理中具有无可比拟的优越性。在实现全面的电脑化管理之前可以
10、选择某些企业来作为试点,这样可以更好地熟悉新的管理模式并发现其中的不足。传统的餐饮行业,点餐过程基本上都是由餐厅的服务员人工记账的方式完成的。通常的过程是这样的,当顾客进入餐厅后,选择一个桌位开始点餐,服务人员招待客人并且等待客人点餐完成,然后把客人的点餐内容送到厨房,厨师根据点餐内容做菜4。这一过程对于一个很小的餐馆来说没有问题,但是如果对于一个大些的餐馆,生意好的时候客人的等待时间就会比较长,会影响到餐馆的生意。为了解决这个问题,前几年出现的无线点餐系统,该系统一般由无线端(一般是一个PDA),无线路由器和后台服务组成。这种技术架构很成熟,但是存在一个弊端就是PDA 的价格较高。并且PDA
11、 只能作为点餐使用,这无形中增加了系统成本,也造成了资源的浪费。而现如今,各种Android点菜系统随着市场的需要应运而生,必然会成为社会的发展趋势。1.2 目的 基于Android手机的点菜系统是无线的,它与传统服务形式相区别,无线点菜系统的应用解决的不仅仅是员工的服务意识,在更大程度上实质发挥了服务员自身的长期主动的服务意识,因为点菜系统让复杂的流程变得简洁,让忙乱变得轻松,这自然而然的与传统点菜的服务方式不同。点菜系统的实现不仅使服务员的工作量变得少了,对管理者而言更是如此:他们可以在想要了解公司运作的时候清晰了解内部的各种服务状况,包括销售状况、收支状况、库存采购状况、实时就餐人数、实
12、时餐桌利用率、某类菜品销售状况、节假日进销存状况等等,这些数据的存储和管理为管理者的决策提供了强大依据,管理者可根据数据的支持及时调整各方面管理来提升酒店营业额。 无线点菜系统的主体设备是一个无线点菜机,我们俗称点菜机、无线点菜宝、点菜宝、无线点菜器、点菜器、无线点菜通、点菜通等,它是一个面对用户的服务终端。所有服务的内容都可以通过用户使用服务终端进行确认并传送。无线点菜机即可由服务员使用也可由客人本身自助应用。界面比较简洁,易学易用,几乎无需任何专业知识,认识汉字即可胜任。Android点菜系统是基于Android手机的一款无线点菜的应用软件。其中涉及到的方面很多,需要做的工作也很多。借助于
13、现代的移动互联网络,提出一个移动网络点菜系统的解决方案,并且把它实现。以酒店餐饮的日常业务为中心,以客户为服务目标人群,将查询菜单、点菜、结账等功能集成到 Android 手机的点菜系统中,实现无线点菜的功能,因此它不需要传统的服务员来记单,这样就可以提升了酒店的档次,方便了顾客,能够使得餐厅的管理者根据数据及时了解客户需求,同时也提高了服务员工作的效率5。Android 手机的其他功能(如打电话、发短信)照常使用。1.3 目前发展状况中国的餐饮行业不断地发展着,现在各种品牌的餐饮店铺相继出现,走入了人们的生活中,人们的消费水平也在不断地提高。很多时候,为了庆祝节日活着好友聚会,人们大多数会选
14、择在外面的餐饮进行,不仅是因为外面的餐厅饮食比较方便,而且外面的服务和环境相对以前变得越来越好了,这对餐饮行业本身来说是一个好消息。不过,在中国这个人口大国,还没有一家酒店能够占据整个市场的主要份额,因此可以说餐饮行业是一个完全竞争的行业。这个行业的资源集中度相当低,未来发展的趋势将会是行业集中度的大幅提高,企业的管理效率有待通过信息化来提高6。与国外的同行业相比,国内餐饮企业管理起步较晚。在我们国内大部分的餐饮企业还在用传统的手工方式处理消费数据的时候,国外的同行业企业已经使用上了先进的计算机系统管理企业信息数据,点餐模式采用网络化,相比于国内,企业的管理效率有了极大的提高。中国餐饮行业现状
15、:(1)餐饮品牌发展速度加快,竞争更激烈以前,餐饮行业的竞争多数是在餐饮的价格和餐饮的质量上的竞争。但是在如今的社会上,经济发展迅速,食物的价格和食物的质量已经不是顾客们考虑的唯一指标了。人们慢慢地追求心里上的需求,在外面用餐不仅要吃得好,还想要吃得舒心。这几年各种品牌的餐饮企业相继出现,人们的选择范围更加的广阔,餐饮行业之间的竞争也更加得激烈。餐饮行业的管理者需要提高自己店面的服务档次,信息化的管理系统随着需要进入到餐饮行业,这也是将来发展的必然方向。(2)低碳餐饮成为餐饮发展的主方向低碳餐饮就是无纸化服务的一种。如今的社会讲究的是低碳环保,在传统的手工服务方式中,菜单是写在纸上面的,这种方
16、式逐渐地被现在社会的环保观念所淘汰。而信息化的餐饮行业服务,即利用点菜软件服务方式符合低碳餐饮,它是一种低碳环保的服务方式,所有的服务通过网络进行,减少了纸张的使用,不仅提升了酒店的形象,提高了管理的效率,还符合社会发展的主潮流。(3)随着信息化的发展餐饮营销新模式将得到发展,餐厅信息化程度加快在国内餐饮行业的信息化发展的大趋势下,餐厅管理的信息化水平将得到了比较迅速的发展,电子菜单,电子点餐相继出现在餐厅里,从点餐到菜单,数据统计,分析,网上营销等电子商务如今也成为大、中餐饮业很流行一种趋势,这种信息化的系统不仅有效解决了成本问题,同时大大的提高了企业效率和带来了良好的用户体验,中小餐厅也慢
17、慢地在引入信息化,打造信息化餐厅,提高自己餐厅的服务质量。总的来说,国内餐饮行业信息化的发展才刚刚开始,企业管理者对这方面的知识还有待学习,对国外酒店经营的模式还需借鉴和学习。餐饮行业相对其他行业的信息化比较缓慢。但是,我们可以看到餐饮行业正在朝着信息化的方向发展,现在的餐饮信息系统慢慢的多了起来,我们需要给这个行业信息化的进程一些时间。1.4 主要工作通过在Android手机平台上开发出一个适用于普通餐饮酒店、餐厅的无线点餐系统。首先是在搭建好的平台上设计良好的数据库,尽量减少数据库的冗余,减少了数据库的冗余,可以有效的节省资源和空间,避免资源和空间的浪费,使得数据库更加的稳定。其次,在现有
18、的Android平台和MySQL数据库的支持下,在需求分析的基础上,对系统进行了总体的功能设计,并且对各个功能模块进行详细的分析与设计,使用了UML建模的方式对系统的重要模块进行建模,包括系统的用例图、时序图、类图、活动图。然后对各个模块进行代码的编写、调试以实现各自的功能。最后,能够实现一个界面友好、功能较全、稳定性强的Android点餐系统。1.5 平台技术分析1.5.1 什么是AndroidAndroid是一个基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机操作系统。Google在2005年并购了成立仅仅22个月的高科技企业Android,展开了短信
19、、手机检索、定位等业务,同时也进入了基于Linux的通用平台的开发7。2008 Patrick Brady于Google I/O 演讲“Anatomy & Physiology of an Android”,并提出的 Android HAL 架构图。HAL 是以 .so 档的形式存在,它可以把 Android framework 与 Linux kernel 隔开。Google的东南亚销售兼营运常务董事Richard Kimber曾经说过:At this point in time, we are very focused on the software, not the phone.(目前我
20、们完全专注于软件而非电话)8。可是Google并未正式否认正在制作电话的传闻,Google可能与一家硬件生产商进行一起创作 Google Phone。传言指出Google Phone将提供完全免费的服务,Google会通过广告获取收益。Google Phone的发布日期预期为2009年。LG宣布将于2007年第二季开始在其手提电话产品中安装Google的软件。Android版本升级Android系统今后将继续每半年一次的升级步伐,分别定在每年的夏天和年终。每代Android系统都将以食物命名,比如1.5版叫做 Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),然后是Eclair(法式
21、奶油夹心甜点)和Flan(水果馅饼)。Donut将升级的重点放在社交网络功能上,在“手机的各种体验中”都想要增加社交网络的元素。对手机行业的影响Android已经与Sony Ericsson、HTC、NTT DoCoMo、KDDI、Motorola等世界移动领域34家公司于免费提供达成一致。今后对于移动通讯的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。发布1.5 (Cupcake)基于Linux Kernel 2.6.27 2009年4月30日,官方1.5版本(Cupcake)的Android发布。主要的更新如下: 拍摄/回放视频,并支持上传到yout
22、ube 支持立体声蓝牙耳机,同时改善自动配对性能 最新的采用WebKit技术的浏览器,支持拷贝/粘帖和页面中搜索 GPS性能大大提高 屏幕虚拟键盘 主屏幕增加音乐播放器和相框widgets 应用程序自动随着手机旋转 短信,浏览器,日历,Gmail的用户界面大幅改善,比如说Gmail现在可以批量删除邮件了 相机启动速度加快,拍摄图片可以直接上传到picasa 来电照片显示1.6 (Donut)基于Linux Kernel 2.6.29 2009年9月15日, 1.6(Donut)版本SDK发布。主要的更新如下: 完全重新设计的Android Market 手势支持 支持CDMA网络 文字转语音系
23、统(TXT-2-speech) 快速搜索框 全新的拍照界面 应用程序耗电查看 支持VPN 支持更多的屏幕分辨率 支持OpenCore2媒体引擎 新增面向视觉或听觉困难人群的易用性插件2.0/2.0.1/2.1(Eclair)基于Linux Kernel 2.6.29 2009年10月26日, 2.0(Eclair)版本SDK发布。主要的更新如下: 优化硬件速度 Car Home程序 支持更多的屏幕分辨率 重整界面 新的浏览器的用户界面和支持HTML5 新的联系人名单 更好的白色/黑色背景比率 改进Google Maps 3.1.2 支持Microsoft Exchange 支持内置相机闪光灯
24、数字变焦 改进的虚拟键盘 蓝牙2.1Android的代号序列会按甜点名字中首个英文字母(C、D、E、F)的排列顺序。下一个版本的Android将会命名为Froyo(冻酸奶,基于Linux Kernel 2.6.32)。Froyo 之后的版本的Android将会命名为Gingerbread(姜饼,基于Linux Kernel 2.6.33/34)。版本/发布时间m5-rc14/2008年2月13日m5-rc15/2008年3月3日0.9,Release 1/2008年8月18日1.0,Release 1/2008年9月23日1.1,Release 21.5,Release 1/2009年4月13
25、日1.5,Release 21.5,Release 31.6,Release 1/2009年9月15日1.6,Release 2/2009年12月3日2.0,Release 1/2009年10月26日2.0.1,Release 1/2009年1213日2.1,Release 1/2010年1月5日应用程序以Java为编程语言,使Android从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责建立视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service
26、,两者之间通过由ServiceConnection和AIDL链接,达到复数程序同时运行的效果9。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。Bionic是 Android 改良libc的版本。Android 里包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Google自制的Bionic Libc是Android使用工具链(Toolchain)。Android采用OpenCORE作为
27、基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、 PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX10。Android的多媒体数据库采用SQLite3数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类 (Column)取得共用数据库。Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalv
28、ik虚拟机是一种“寄存器型态”(Register Based)的Java虚拟机,变量皆存放于寄存器中,虚拟机的指令相对减少11。1.5.2 Android平台架构Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上12。Android主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体系结构的机器上同样可以运行。图1.1 Android结构Android分为四个层,从高层到低层分
29、别是应用程序层、应用程序框架层、系统运行库层和linux核心层13。蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C+语言编写的程序库,红色的代码内核(linux内核+driver)。在Application Framework之下,由C/C+的程序库组成,通过JNI完成从JAVA到C的调用。数据存储是每一个应用所必须一种方式,通过数据存储可以使用户和互联网,程序与数据库进行交互。还可以在不同应用程序之间进行数据交换以及共享。安卓应用程序框架中提供了很多的方式进行存储,其中SharedPreferences可以实现不同应用程序之间数据的共享,主要的工作机制在
30、将用户自己定义的XML文件保存到手机存储中,需要的时候进行调用。嵌入式关系型数据库SQLite,它主要用于存放本地的数据,不能进行网络的通信并且存储的数据量很小。相对在网络通信中使用的就是网络存储方式,通过网络存储方式的选择则可进行服务器与客户端或者是浏览器与客户端的数据交互。其他的数据存储方式还有内容提供者和文件等其他方式。1) 应用程序框架应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。帮助程序员快速的开发程序,并且该应用程序重用机制也使用户可以方便的替换程序组件14。隐藏在每个应用后面
31、的是一系列的服务和系统, 其中包括;a.丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。b.内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据15。c.资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layout files)。d.通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的
32、提示信息16。e.活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。2) 系统运行库 a)程序库Android包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务17。 以下是一些核心库:1.Bionic系统C库。2.媒体库,基于PacketVideo OpenCORE。3.Surface Manager 顾名思义,用于管理Surface。4.Webkit,LibWebCore 浏览器,基于Webkit引擎。5.SGL 底层的2D图形引擎6.3D libraries 基于OpenGL
33、ES 1.0 APIs实现7.FreeType 位图(bitmap)和矢量(vector)字体显示。8.SQLite 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎18。另外这里还有一个硬件抽象层。其实Android并非所有的设备驱动都放在linux内核里面,有一部分实现在用户空间,这么做的主要原因是可以避开Linux所遵循的GPL协议,一般情况下如果要将Android移植到其他硬件去运行,只需要实现这部分代码即可。包括:显示器驱动,声音,相机,GPS,GSM等等。 3) Linux 内核Android 的核心系统服务依赖于 Linux 2.6 内核 ,如安全性,内存管理,进程管理,
34、 网络协议栈和驱动模型19。 Linux 内核也同时作为硬件和软件栈之间的抽象层。其外还对其做了部分修改,主要涉及两部分修改:a)Binder (IPC):提供有效的进程间通信,虽然linux内核本身已经提供了这些功能,但Android系统很多服务都需要用到该功能,为了某种原因其实现了自己的一套。b)电源管理:为手持设备节省能耗。最后在谈谈Android所采用的语言,其应用开发采用java语言,我们所说的java一般包含三个部分:a) java语言:即其语法,其写代码的程式b) java虚拟机:为了实现一次编译到处可以运行的原则,java在编译连接以后并没有产生目标机器语言,而是采用了Java
35、 bytecode20。 这种Java共用指令,这时就需要一个虚拟机来执行改指令。c) 库:跟我们常用的C语言一样提供一些常用的库后两者结合就是Java Runtime Environment。1.5.3 Java简介 追求简单性是Java设计者的设计目标之一,Java语言简单的特点是建立在C+基础之上的。虽说Java与C+在许多地方都非常相似,但终究它们是两种不同的语言,它们各有自己独特的优势。Java摒弃了C+中的指针运算、操作符重载、虚基类以及自动的强制类型转换等机制。与C+相比,Java语言最显著的变化莫过于不再使用指针,而是以一种更容易理解和操作的方式“引用”来实现。另外,Java提
36、供的自动的废料收集机制,有了这个机制程序员就不再需要为内存管理而担忧了。相较于其它编程语言而言,Java更适用于网络/分布式系统,除了上面所介绍的原因之外,还有一个重要的原因就是网络环境中使用Java开发更安全。Java创建了一种安全机制,这种安全机制能够专门用来防止恶意代码的攻击。除此之外,Java还专门针对网络下载的类设置了一种安全防范机制。例如Java会通过分配不同的名字空间用来防止本地的同名类被替换,并且Java会对字节代码进行检查。除此之外,Java还提供安全管理机制,有了安全管理机制程序员就能让为每个Java应用设置自己的安全卫士。Java的目标是要协助开发人员建立各方面可靠的程序
37、,Java语言提供的强类型机制、异常处理和废料的自动收集机制,通过这些机制开发人员能在设计初期既可以提前检测出可能存在的问题。另外,Java的安全检查机制也使它更具健壮性。在Java平台上,Java程序会被编译为体系结构中立的字节码格式,编译后的字节码格式代码就可以成功运行在实现这个Java平台的任何系统中。显然,这种途径非常适合于软件的分发和异构的网络环境。同那些解释型的高级脚本语言相比较,Java的性能还是较优的。多线程可以带来更好的交互响应和实时交互。Java语言一般有两种方法来创建线程:一是通过扩展Thread类来创建多线程;二是通过实现Runnable接口来创建多线程。1.5.4 M
38、ySQL简介MySQL是一个关系型数据库,类似于SQLserver。它是开源的,这也就意味着许多中小型企业可以根据MySQL来设计自己的数据库。其最早的开发商为瑞典的MySQLAB公司。他有许多优良的特点,例如体积较小、速度较快、成本花费较低。这些特点都受到许多公司企业的青睐。MySQL使用标准化的SQL语句来查询数据库信息。由于数据库的数据是保存在不同的表单中,这样查询起来就显得非常方便和灵活。当然,自从Oracle公司收购MySQL之后,商业版的MySQL就要开始付费了,社区版不收费,仍然可以免费的使用。第二章 系统分析2.1 可行性分析2.1.1 技术可行性Android开发是基于Jav
39、a语言的开发,Java语言作为现在一种非常流行的语言,有其强大的库和开发工具作为支持,能够很好地实行系统的功能。Android操作系统为我们提供了开发平台的支持,给了我们很好地发挥的自由空间,它有着丰富的控件,能够为我们提供各式各样的开发样式。Android应用程序的开发灵活,比较容易上手,这就使对Android有一定基础的人开发起来比较便捷。同时,对于一个小型的Android应用程序的开发来说,开发周期较短,能够节省不少时间。2.1.2 市场可行性中国的餐饮行业的发展异常迅速的同时,网络的发展也极为迅速,现在网络基本已经覆盖到了大部分的乡镇,而在城市了,网络更是遍布每个角落。网络的迅速发展为
40、餐饮行业带了了新机遇,现在餐饮行业竞争激烈,人们的生活节奏越来越快,各种节假日里甚至是周末,许多的酒店、餐厅里是满。如果没有无线点餐系统来作为支持,还是采用传统的方式进行手工记账、点菜,那么餐饮行业的发展将会受到极大的阻碍。有很多的酒店、餐厅已经有类似的系统,但还有许多餐厅并没有这样的管理模式,还是选择的是比较传统的方式经营。中国的餐饮行业正在面临转型,向信息化、规范化、统一化转型。有了无线点餐系统,这样的要求便可以实现,不仅为顾客带来了良好的体验,也使得酒店、餐厅的管理方便、高效。2.1.3 经济可行性Android点餐系统的开发是在Android手机进行的,由于这几年智能手机的普及,使得A
41、ndroid智能手机很便宜,大部分人都拥有自己的智能手机,我自己用的手机也是Android操作系统的,除了Android手机,开发的硬件还需一台普通的计算机。总的来说,开发成本低,开发可行。2.2 需求分析2.2.1 系统功能需求作为顾客,去酒店吃饭的流程通常是这样的。顾客走进酒店,有服务员过来招待,顾客找了个位置坐下,然后服务员拿出菜谱,顾客点完菜后,服务员把点菜单拿给厨师,厨师照着菜谱做菜,吃完饭后,顾客到吧台结账。而作为无线点餐系统要实现的功能就是使这个过程智能化。当顾客走进酒店后,找到位置坐下了,拿出Android手机,打开软件,找到菜谱,根据自己的口味选好自己想吃的菜品,然后提交给酒
42、店的服务器,吧台打印顾客的点菜单,交给厨师,厨师照着点菜单上的菜品进行制作,顾客吃完饭后,在吧台进行结账。经理可以在软件里对菜单进行管理,可以增加和删除菜品,以达到更新菜单的目的。对于这个系统来说,系统需要达到及时响应性、健壮性、正确性、安全性、可扩展性等。及时响应性:顾客点完菜品后,提交给服务器的信息需要及时,而服务器对于收到的信息也需要及时的响应,这样才能保证每位顾客的利益,让顾客有一个良好的体验。健壮性:作为一个应用程序,必须要满足对于各种意想不到的情况,能够正常运行,不随意崩溃,不导致数据丢失。正确性:对于顾客和经理的输入,在应用程序里能够得到正确的响应,完成用户进行的相应的功能。安全
43、性:应用程序能够保障客户的客人资料不泄露,顾客的财产安全等。可扩展性:应用程序应该预留一定的接口,方便进行升级和二次开发。2.2.2 系统非功能需求现在是一个信息爆炸的时代,这几年智能手机的发展极为迅速,随之对应的手机app也非常多,在众多手机app要想占到市场份额,让顾客买你的单的话,必须把用户界面做的非常好。用户并不是专业编程人员,所以应用程序做出来必须要方便使用,界面美观,给用户带来良好的体验,这样应用程序才会得到推广,才会有更多人用。另一个很重要的方面就是应用程序小,占用资源少。智能手机的耗电量本来就大,如果一个应用程序占用手机的内存过大,那么会很消耗手机的电量,这样也不会得到用户的青
44、睐。所以要保证应用程序占用资源少,耗电量小,运行流畅。2.3系统功能根据系统的需求分析,系统应该有的主要功能应该有:(1)系统的登录功能为了增强系统的安全性,同时给不同的用户赋予不同的权限,使用系统前需要登录系统。登陆系统是客户端与服务器端以及服务器端与数据库的交互过程,最后结果显示在客户端的界面。(2)点餐功能点餐功能模块是无线点餐系统中一个很重要的功能模块。这个模块的主要功能是,顾客登陆到系统后,根据自己的需求进行点餐,选取各种菜品、酒水等食物。选择过程中,顾客可以增加菜品的种类,或者可以选择把已经选择的菜品从订单中删除。选择完毕后,顾客提交菜单。(3)菜谱的管理菜谱的管理功能实现的是对已
45、有菜谱的增加、修改、查询、删除功能。当菜谱需要做一定的改变时,经理可以通过系统对菜谱进行相应的操作。(4) 订单管理订单管理功能是顾客通过系统选择菜品完成后,系统可以显示出用户所点的菜品,用户可以对自己点的菜品进行管理,可以删除其中的菜品或是全部的菜品。(5) 结账顾客用完餐后,向系统提交结账的信息,最终系统给出相应的响应。图2.1 系统功能结构图第三章 系统设计3.1 总体设计整个系统主要分为客户端部分和服务端部分,客户端的部分的功能是顾客能够对自己想享用的菜品进行点餐,再确认点餐之后,服务端能够看到客户所点的菜品,打印出菜单和账单,厨师根据打印出的菜单进行做菜。客户在吃完饭后,到吧台根据账
46、单进行结账。总体流程如图图3.1所示:顾客进店顾客选好座位点菜确认已点菜单查询已点菜单打印菜单上传至服务器厨师做菜服务员上菜打印账单结账图3.1总体流程3.2 各模块设计3.2.1 点餐的用例设计用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用。参与者是通过系统边界与系统进行交互的任何事物。在无线点餐系统中,有顾客、经理、服务员、厨师等外部用户,这些用户可以作为参与者,他们利用该系统完成点餐、查询菜谱、更新菜谱、做菜、传菜等用例。点餐系统的用例图如下图所示: 图3.2 点餐用例图点餐功能主要是顾客与系统的交互过程
47、,顾客通过系统点到自己想要的菜品,具体的过程如表3-1的用例文档所示:表3-1 点餐用例文档用例名点餐简要描述顾客通过该用例选择所想要的菜品参与者顾客涉众顾客:简单快速地选择菜品相关用例无前置条件顾客正确地登录到系统后置条件如果订餐成功,则系统记录本次订餐信息,相应的信息将生产基本事件流(1) 用例起始于顾客现场需要点餐(2) 系统显示顾客按条件选择的菜品种类(A-1)(D-1)(3) 用户通过系统进行选择菜品(D-2)(4) 系统计算所需的费用,通过用户界面展示给用户(5) 系统保存客户的点餐信息到数据库中(6) 用户查询自己所选的所有菜品(7) 用户确认提交点餐信息后(B-1),用例结束备选事件流A-1 没有找到满足顾客需求的菜