校园自助点餐APP数据管理系统的研究.docx
摘 要随着时代的高速发展,人类已经迈入了信息时代。计算机通讯发展飞快,移动互联网普及迅速,电子信息技术已经全面地改变了人类生活的各个方面,信息化,智能化已成为当今社会发展的趋势。伴随着科学技术和社会经济水平的不断进步提高,智能手机发展迅速,普及率越来越高,各种手机应用程序也越来越多,极大地影响人类的生活工作及娱乐等方面。现如今,人们对手机的快捷、便利性要求也更上一层,对智能手机上的应用软件也有了更多的需求。各行各业都在积极地向信息科技靠拢,餐饮业也不例外。基于校园内食堂的校园自助点餐APP层出不穷,给学生带来了极大的便利,深受这一年轻群体欢迎。本设计研究一个校园食堂网上订餐系统。本系统基于android平台,组成部分有学生用户端以及后台服务端,学生用户端主要实现了注册,登录,菜品类别查看,菜品下单和购物车及个人中心等功能。服务端主要实现了用户管理、菜品管理、订单管理等功能模块。该设计可解决校园食堂下课高峰期拥堵的问题,满足学生点餐需求,带来了便利。关键词:校园订餐系统;Android;Eclipse;Android SDK Research on APP Data Management System for Self-Service Ordering in CampusAbstractWith the rapid development of The Times, mankind has entered the information age. With the rapid development of computer communication and the rapid popularization of mobile Internet, electronic information technology has comprehensively changed all aspects of human life. Informatization and intelligence have become the trend of today's social development. With the continuous progress and improvement of science and technology and social and economic levels, smart phones are developing rapidly, with a higher and higher penetration rate and more and more mobile phone applications, which greatly affect people's life, work and entertainment. Nowadays, people have higher requirements for the speed and convenience of mobile phones and more demands for the application software on smart phones. All walks of life are actively moving towards information technology, catering industry is no exception. Campus self-service ordering apps based on campus canteens emerge in an endless flow, bringing great convenience to students and gaining popularity among this young group.This study USES Eclipse and Android SDK development environment to design an online ordering system based on campus canteen. This system is based on the android platform and consists of the student client and the background server. The student client mainly realizes the functions of registration, login, menu category view, menu ordering, shopping cart and personal center. The server mainly realizes user management, dish management, order management and other functional modules. This design can solve the problem of congestion in the campus canteen during the rush hour after class, meet students' demand for ordering food, and bring convenience.Keywords: Campus ordering system; Android; Eclipse; Android SDK 目 录1 绪论.1 1.1背景.1 1.2现状和问题.1 1.3 目的和意义.1 1.4 研究内容.22 相关技术和工具介绍.2 2.1 Android平台.2 2.2 Android层次架构.2 2.3 Android UI框架.3 2.4 Android终端与Web服务器端数据交互.3 2.5 相关开发工具介绍.4 2.5.1 Eclipse介绍.4 2.5.2 MyEclipse与Tomcat介绍.4 2.6 相关技术.4 2.6.1 Java编程语言.4 2.6.2数据库技术.53 系统分析 .5 3.1 系统可行性分析.5 3.1.1 技术可行性.5 3.1.2 操作可行性.5 3.1.3 经济可行性.6 3.1.4 法律可行性.6 3.2 功能需求分析.6 3.3 主要模块流程分析.6 3.4 数据字典.84 系统设计与实现.10 4.1 系统架构设计.10 4.2 系统整体架构.11 4.3 系统主要功能设计.12 4.4 系统实现.12 4.4.1 服务端连接设计实现.12 4.4.2 登陆功能实现.16 4.4.3 用户端各功能实现.16 4.4.4 管理端各功能实现.185 系统测试.20结论.21参考文献.22致谢.23校园自助点餐APP数据管理系统的研究1. 绪论1.1 背景随着时代的高速发展,人类已经迈入了信息时代。计算机通讯发展飞快,移动互联网普及迅速,电子信息技术已经全面地改变了人类生活的各个方面。现如今社会发展的趋势已经是全部趋向更加信息化,更加智能化的趋势去发展了。世界的不断发展,人才的不断涌现,使得现在科学技术已经达到一个很高的层次,一切东西都是趋向高科技,高智能化,各个国家的社会经济水平的也随着国家的发展进步而不断增长提高,这些变化一方面表现出来的就是使得智能手机发展的速度越来越快,普及率也越来越高,各种手机应用程序也越来越多,手机的发展极大地影响人类的生活工作及娱乐等方面。由于智能手机和手机软件愈加快速的发展和广泛的运用,目前“手机App”已成为广受社会关注的焦点,各种手机应用已经成为人们进行信息交流的主要工具。在当前各种系统手机争相斗艳的时期, Android操作系统借助其良好的优化程度和极高的开放性,获得了广大消费者的青睐,占有极大的消费市场。科技的突飞猛进使得人们的生活节奏也随之加快。发展至今,手机移动终端技术已趋向成熟,人们对于手机设备的功能和需求也不断变大,已逐渐从过往的技术需求逐渐转化为功能需求,伴随着的是人们对移动软件系统的需求也提高了很多。1.2 现状和问题随着互联网技术的飞快发展及手机应用的普及,各行各业都在积极地向信息科技靠拢,餐饮业也不例外。移动互联网终端的普及和应用为餐饮行业提升了效率,拓展了业务。目前国内外点餐APP发展迅速,前景可观,迎合着年轻消费群体的新时尚。实现人们在网络上选餐定餐邀约聚餐等多重服务功能,给消费群体带来了便捷,也提升了餐饮业的工作效率。同时,基于校园内食堂的校园自助点餐APP也层出不穷,各种点餐软件五花八门,争相斗艳,各有各的优势及特点。但是,目前仍有许多高校学校里面的食堂还是没有网上点餐系统,还是用传统方式进行点餐,即学生亲自到食堂窗口排队点餐。这种传统的排队点餐方式容易造成食堂下课高峰期拥堵的现象,使得学生在排队时浪费了大量的时间,进而影响到午休时间及其他方面的时间。另一方面,也有可能造成学生想避开食堂高峰期而选择延后饭点,进而导致吃到凉的饭菜和没按时吃饭导致的身体健康问题。1.3 目的和意义为了解决校园食堂下课高峰拥堵的问题,使学生点餐更加方便快捷,能按时按点吃到饭菜,减少没必要的排队浪费了的时间,本毕业设计着力研发一款校园网上的、提前订餐系统。本订餐系统的基础操作系统是Android操作系统,为了学生用户可以避免食堂的高峰期点餐慢的问题,方便学生用户提前点餐,在线查看菜品价格等信息,实现在线点餐,做成应用程序拓展到学生用户的终端设备上,并且提供一些辅助功能,方便学生用户使用,满足学生用户的需求。1.4 研究内容本设计是以Android操作系统为基础的“校园订餐App”软件的设计与实现。需要研究的内容包含系统的整体架构,功能设计,还有系统原理。还要对系统进行测试,调试。系统研究功能模块包括android学生客户端的登录注册,菜品查询查看,下单和购物车及个人中心。重点放在对后台数据管理系统的研究。实现对用户信息的管理,对食堂各菜品的分类和菜品的详情。学生订单的情况,包括下单学生用户的学号,下单时间,取餐时间,有无付款等。通过数据管理,后台可查询某学号用户在APP上的下单次数,达到一定次数,即可免单一次。在开发此系统的过程中,着重于系统操作的简单性,便捷性,并力争系统设计的全面,且具普遍性。通过不断测试和对系统理解深入,进而不断完善系统。研究方便学生用户提前点餐,节省时间,解决食堂高峰拥挤的问题,致力开发出一款基于Android手机平台的校园订餐系统。 2. 相关技术和工具介绍2.1 Android平台Android是一个当下极受程序员青睐,热度很高的移动操作系统,受欢迎的原因在于它的源代码具备开放性,使得Android操作系统非常的自由开放。Android系统的设计主要是在Linux平台上所进行的,Linux平台是一款免费的,并且可被任意修改源代码,使得它与其他操作系统区别了开来,受到许多程序员青睐。最初,Android系统的最初创始者是Andy Rubin,最原先其支持的主要是手机。但随后在被谷歌进行注入资和收购,几年后,谷歌又联合近百家相关企业,共同将Android系统进行了改造,使其变得更加完善良好。随后谷歌以发布Android源代码,号称是首个基于移动终端打造的完整且开放的移动软件。2.2 Android层次架构安卓系统架构的特点是分层,分层结构是该系统架构在具体设计过程中所遵循的一种思想,该结构使其拥有非常清晰的结构还有层次,实现了结构层次分工合作。总的来说,共有4层,主要是由如下几个部分共同组成,即由上到下分别为最上层的应用程序层:此层包含多种应用程序包,包含内容个数不一,且所使用语言皆为java。第二层是应用程序框架层:提供功能块,可供任何程序发布及使用。给开发人员带来便利且可提高开发速度。第三层的系统运行库层:包含多种类型库,可供程序员使用。还有最下面的一层Linux内核层:此层可以视为安卓的发动机,安卓的内部重要服务都得依靠Linux来完成。此外,其也作为软硬件之间的一层不具体的层。构建的方式是一种被称为Software Stack的构建方法。Android系统的这种特别的结构层次使其具有两个优点,即是使其的分工具有明确性,另外,也使它的系统分工也具备明确性。除此之外,系统间的每一层之间也具备了低耦合的性质。即当其他层内或者此层之下的层级发生某些改变时,与之对应的上层级不需要有作出任何响应或改变。如图2-1所示。 图2-1 安卓分层架构图2.2 Android UI界面结构与安卓系统架构一样,其APP UI架构也有分层的特点。在安卓系统中,View类的功能是吸收和消化信息,其性质不仅仅是图像,严谨的说,它是交互视图共存。View中包含了全部的界面组件。其中,ViewGroup是所有View中的一个极其关键的子类,其与View有很多一样的性质特点。但是比较重要的作用是作为View的“收纳盒”,对它的子类进行管理。“收纳盒”与其里面的各子类构成了一个层级架构。即处于布局最顶端的是ViewGroup,整个布局里面又包含了View及ViewGroup。如图2-2所示。 图2-2 Android UI框架结构2.3 Android终端与Web服务器端数据交互发布Android应用的方法:第一种途径是不安装任何附加程序,直接应用web标准制定并且通过web browsers进行访问。这种是以作为web应用程序的途径。第二种途径是靠Android SDK来进行并完成开发的。其过程是在设备的安装进程中。该系统有一特点,在两端创建程序时无需在相应的程序上进行另外设计。此外网站的体现无需再研发别的程序来让其得以体现。要成功连接web page还有安卓程序只需定义相对应的接口,想要对API进行调用只需通过网页的脚本。追本溯源,在此程序中,想要添加网页的内容或是增加JavaScript内容,只需通过webview或者在Android Api应用中增加即可。除此之外,屏幕的密度有提升的空间,通过提高来形成更高版本。WebKit的框架中的功能包括了可以对picture属性或者样式内容进行修改,此外,还支持web页面对视口属性进行指定。2.4 相关开发工具2.4.1 Eclipse平台Eclipse是个开发环境,通过加装各种不同的插件可以使其支持数种不同的语言。这使得其不只限于开发java。开放源代码,可扩展性,自由性,灵活性都是其特点。从Eclipse的本质上来看,Eclipse可以说只是一个框架平台或者是一组服务。它的实际意义是可以通过添加各种插件或者组件来建成比其他相对比较固定的开发软件更具有灵活性的开发环境。正是其以上种种特点使其受到人们广泛的关注和青睐。2.3.2 MyEclipse与Tomcat介绍MyEclipse是在eclipse 上加插件形成的开发环境,它的性能非常强大,属于插件集和,拥有多样化的功能,可以对多种需求进行满足,在开源产品支持过程中发挥着非常重要的作用。现阶段,常用的专属eclipse开发工具都存在其中,支持JavaServlet, AJAX, JSP, EJB3, JDBC数据库链接工具等多项功能。Tomcat的开发者包括Apache、Sun等等,是一个具备开放性的web应用服务器,属于Jakarta项目的重要组成部分之一。Tomcat具有轻型的特点,在具体实践过程中并不需要占用较多的资源,并且扩展能力非常理想,很多程序员在对JSP程序进行建设过程中,都优先选择使用这一服务器。Tomcat实际上是对JSP页面还有Servlet进行运行。Tomcat所具备的超高稳定性,免费性还有其本身技术方面的先进,使其成为当前很是流行的一款web应用服务器,深得各路软件开发商和非常多的程序员所认可跟喜爱。2.5 相关技术2.5.1 Java编程语言本软件采用Java作为开发语言。Java是一种吸收了某些语言中的特点,摒弃了某些语言中不好的缺点的强大的编程语言。Java语言具有如下特点1. 简单性:语言简洁,剔除少用特征,无主文件与预处理程序,节省时间。2. 对象性:中心为对象,驱动为消息。3. 分布性:分布式语言,程序只需编写一次即可处处运行。4. 编译和解释性:与普通机器码区别了开来,编译成byte-code。试验简单且支持快速原型。5. 稳健性:独特的存储模型,语言类型强,有异常处理功能。6. 安全性:存储分配模型。对存储安排决策不给予处理,程序实际存储地址是由java解释。7. 可移植性:可移植至新的平台与系统。8. 高性能:“及时”编译程序,可实现全编译。9. 多线索性:多线索执行功能,可处理不一样的任务。10. 动态性:能对各种不同环境适应其中。2.5.2 数据库技术数据库技术发明于上世纪六七十年代,是一个信息系统中极其重要的技术。其作用是对大量的数据进行获取,处理,组织并且加以储存。简而言之,就是对系统中的数据的研究和管理,最根本的目的是要让数据实现共享。设计采用的是一种能够实现多个用户进行数据访问的较多被使用的关系型数据库。其拥有包括参照,实体及用户定义完整性的完整约束性。安全性,可靠性是一个数据库系统应当具备的性质,本设计采用了现如今比较受程序员青睐的关系型数据系统MySQL数据管理系统为本应用设计的数据方面进行储存和管理,MySQL的特点是运行的速度非常快,体积也相对比较小,除此之外,还对外开放源代码,因而,这个数据管理系统对比其他数据管理系统显得格外卓越。MySQL中功能强大而又简单的API,这一功能特点为程序的设计构建提供了许多便利。不用去深入探讨各模型的构建机理便能运用预测模型,可使开发变轻松许多。 3. 系统分析3.1 系统可行性分析3.1.1 技术可行性Java语言的特性使可以在诸多环境中自由运行,不会因为受限于某种环境而无法正常运行。只要进行一次程序代码的编写,即能在各种环境下无限制运行,并且具有高安全性,高稳定性,还可使开发变得更加简便,节省时间。此外,相应指导资料甚多,可提供技术参考,且基于Android系统的各类发展时至今日,已经非常成熟。综合以上所说,可见系统的开发具有技术可行性。3.1.2 操作可行性本应用是一个基于安卓客户端的点餐应用,所以,只要拥有安卓手机,就能在手机上面安装下载本应用,下载完成后立刻就能进行注册,注册完成后使用账号密码登录,然后就能实现在线提前点餐。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。所使用的用户只要平时有在用Android手机,都能进行访问和操作。另外,据调查统计,安卓手机如今在市场的占有率高达85.9%。综上所述,本系统具备操作可行性。3.1.3 经济可行性本设计由本人独自完成,无需在人力上投入任何成本。另外,Linux平台,Eclipse平台,Tomca应用服务器以及Java语言的免费性,使得本系统设计具备经济可行性。3.1.4 法律可行性本设计为本人大学的毕业设计,过程由本人创作设计,严格按照自己想法进行,杜绝侵权的行为,数据采集方面,没对他人服务器造成任何损害。另一方面,本系统并无用于商业,且无涉及到任何商业机密或利益。综上可得,本系统具备法律可行性。3.2 功能需求本设计是一个基于Android平台的校园点餐系统,功能需求有两方面,一是用户端,实现学生用户可以通过注册得以登录系统,在首页可以查看菜品的分类,菜品的样式,图片,价格。可以通过系统提前下单,可在购物车查看下单内容。二是后台服务端,设计有效且容错的数据管理系统,明确数据管理系统的架构,实现该数据管理系统,做到能高效检索交易条目。实现对用户信息的查看及管理。对菜式的内容进行增删查改。能查询用户下单情况,包括下单用户的学号,下单时间,有无付款和有无取餐等。另外,实现每下单十次可免单一次。总体分布如图3-1所示:图3-1 总体功能需求图3.3 主要业务流程分析1、用户模块注册登录功能。如图3-2所示: 图3-2 用户模块2、管理模块登录编辑(添加,删除,更改)。如图3-3所示:图3-3 管理模块3.4 数据字典该系统采用MySQL数据库存储数据,系统中用到了多个数据表,这里列出部分数据表如下。表3-1 wct_bill表Field NameField TypeSizeNullidint11NOT NULLgidsvarchar100DEFAULT NULLpircevarchar100DEFAULT NULLuservarchar100DEFAULT NULLuidvarchar100DEFAULT NULLshopvarchar100DEFAULT NULLbillvarchar2000DEFAULT NULLopenidvarchar255DEFAULT NULLndatevarchar255DEFAULT NULLtotalvarchar255DEFAULT NULLwayvarchar50DEFAULT NULLgnamesvarchar500DEFAULT NULL表3-2 wct_good表Field NameField TypeSizeNullidint10NOT NULLgnamevarchar100DEFAULT NULLpricevarchar10DEFAULT NULLjifenvarchar10DEFAULT NULLnotevarchar500DEFAULT NULLtypevarchar50DEFAULT NULLimgvarchar500DEFAULT NULLcountvarchar10DEFAULT NULLtypeidvarchar10DEFAULT NULLxiaoliangint10DEFAULT NULL表3-3 wct_user表Field NameField TypeSizeNullidint10NOT NULLusernamevarchar50DEFAULT NULLpasswdvarchar50DEFAULT NULLroletypevarchar50DEFAULT NULLemailvarchar200DEFAULT NULLaddressvarchar200DEFAULT NULLtelvarchar50DEFAULT NULLqqvarchar20DEFAULT NULLwechatvarchar20DEFAULT NULLsexvarchar20DEFAULT NULL4. 系统设计与实现4.1 系统架构设计系统的架构是一个应用系统最重要,最核心的一个部分。在这其中,元件是一个应用系统中极其重要部分。当我们在设计一个系统的架构时,我们需要做到的很重要的一点就是我们应对在元件之间确定好它们的关系。在整个系统架构的构建设计中,当我们对我们所需的并且已确定的技术还有需求做好了规划以及实现了需要的架构之外,我们还需重视另一方面,即对系统架构的扩展性要提高重视的力度。此外,为保证系统架构的完整可行,我们还需着重注意系统的稳定以及安全性。本系统主要的架构模块有前端与后端,拥有相对的独立性是他们之间的所必须的。在对前端进行开发设计的时候,要对着重考虑用户的操作方面的问题,尽量实现用户操作性的简单高效。在后端方面,要着重思考各功能是否合乎逻辑,是否正确合理,要使其具备合理性与逻辑性。另外一方面,还要实现系统与数据库之间的数据在交互方面能正常运行。Spring MVC是本点餐系统的后台开发得以实现所运用的一种框架。此框架是一个基于mvc的一种web框架。mvc三个字母各有各的含义。m代表模块层,v代表显示层,c代表控制层。 Spring MVC是实现由服务者转换为工作者。视图管理是由View Resolver来进行管理的。而处理器是由Handler Mapping来加以管理的。而进行管理的Handler Mapping和View Resolver是由应用管理器拆分开来的。在本系统中,用Spring MVC开发框架来构建后台服务端,利用了其提供了基于Java的高效开发的特点,可以快速构建稳定、功能强大的后台应用服务。如图所示,本系统从Android端直接向由Spring MVC搭建的服务端获取请求,服务端接受请求过后或调用远程WEB接口获取数据,或调用本地数据库获取数据,然后返回JSON数据结构的返回数据给Android端。如此一来,就形成了一个运转良好的信息回路。不但把原有系统进行了整合,而且还加入了一些新功能。系统数据流向图如下图4-1。 图4-1 系统数据流向图4.2 系统整体架构整体架构如图4-3所示: 图4-3 系统结构图由上图可见系统是由三个部分组成,客户端、服务端和数据端,三个层次在系统中承担的角色各不相同。客户端就是指移动终端,用户通过4G或者WIFI利用移动设备进入系统,与系统建立通信。对于本系统来说,该层是基于安卓的应用程序搭建,其中包括应用程序的界面部分(Android View)和应用程序的逻辑控制(Android Controller)搭建。该层通过调用服务端接口获取信息。服务端是一个基于Java平台的WEB应用,与传统的网络应用程序不同的是,该层不包含界面的展示,只是为前台提供JSON数据接口。该层包括控制层和业务逻辑层,控制层负责提供外部接口以及对接口进行数据定义,业务逻辑类定义了访问获取数据库信息的逻辑和访问数据库的方式。数据层包含两个数据源,一部分是本地数据库的访问, 另一部分是对现有的基于Android平台的点餐管理系统数据库的访问。无论是数据的交互还是界面以及流程的设计,本系统都遵循了MVC设计原则,尽把系统的功能流程拆分成为具有单独功能的层次,这样一来,当未来需要对系统进行修改或者扩展的时候就会变得非常方便,简而言之,提升了系统的扩展性。同时,系统安全设计需要贯穿整个数据流程,为信息系统的存储、传递、利用提供安全性保障。4.3 系统主要功能设计通过设计开始前的调查研究,分析了目前各大高校里面的点餐平台,对于此设计的系统应该达到的需求有了解。整个系统是的基于Android平台的订餐系统,有前端的客户端以及后端的服务端。前端功能有登录,注册、菜品查询、购物车以及个人中心等。后台服务端实现了菜品,类别管理、用户点单时间,付款情况等的信息管理。如图4-4所示。图4-4 结构图4.4 系统实现 4.4.1服务端连接设计实现:在本系统我们是使用Http网络协议技术,它具有GET和POST两种请求方式,对于服务器交互的数据,我们使用JSON字符串,Gson框架对它进行解析和转换,这些方法都分别封装在HttpsUtil.java和JsonUtils.java两个工具类中。具体代码如下便于各个功能模块的实现调用。GET请求方式:/* * http Get请求 * param url 请求服务器的URL * return result 返回结果 * throws IOException * throws ClientProtocolException */public static String httpDoGet(String url) throws ClientProtocolException, IOExceptionString result = ""HttpGet request = new HttpGet(url);request.addHeader("Content-Type", "text/html"); request.addHeader("charset", "utf-8");/获取相应对象HttpResponse response = new DefaultHttpClient().execute(request);/ 当请求成功if(response.getStatusLine().getStatusCode()=200)/ 获得响应服务器返回的数据result = EntityUtils.toString(response.getEntity();return result;POST请求方式:/* * param postData 请求的参数 * param url 请求的url * throws UnsupportedEncodingException * throws IOException * throws KeyManagementException * throws NoSuchAlgorithmException */public static String doPost(String postData, String urlStr)throws UnsupportedEncodingException, IOException,KeyManag