基于安卓系统的点餐系统毕业设计

时间:2020-05-10 09:00:51 浏览量:

 

 本科毕业论文(设计)

 题

 目:

  基于安卓系统的点餐系统

 专

 业:

 姓

 名:

 指导教师:

  职

 称:

 答辩日期:

 基于安卓系统的点餐系统

 摘

 要

 现如今我们生活在一个信息化的时代,信息数据随处可见。特别是无线数据传输技术的日益强大,经过运营商的大力推销,无线网络的应用已经开始充斥在我们生活的各个方面,并且进一步渗透到医疗、教育、交通、物流等行业中,慢慢的影响到人们生活的方方面面,使得移动生活变为可能。对于传统的餐饮业,要想在未来得到更好的发展,就得运用无线网络这项强大的工具,为顾客提供一个便捷的服务。

  在时代飞速前进的今天,社会发展的节奏催生了点餐系统的诞生,比较传统的点餐方式是顾客去餐厅首先浏览纸质的菜谱进行点餐,服务员手写菜单,这个过程就比较容易出错,尤其遇到就餐高峰期,效率更为低下,更容易出乱,进而造成顾客的不满,影响到餐厅的服务质量。随着移动互联网的进一步发展,一些规模比较大的餐厅已经开始考虑使用这种最先进的网络技术来建立一套方便简洁、快捷的餐厅管理系统,使餐厅的服务和管理得到进一步的提升,以此提高在行业中的竞争力。

  本论文主要讲述了点餐系统的基本功能和数据库的设计方法。设计最终达成了包括用户登录,点菜管理功能模块、结账管理功能模块、、更新管理功能模块、注销功能模块、设置功能模块等。

  系统基本能够正常运行,各个界面的交互性比较好。先后用E-R模型,系统功能结构图分析了系统所需的各种数据,详细的展示了系统的各个功能模块,并给出了主要功能运用界面图。

  关键词:Android;点餐;eclipse;

 Abstract

 Nowadays we live in an informationization time, the information data find at

  everywhere.Specially wireless data transmission technology day by day formidable, the process operation business great effort to increase sales, the wireless network application already started to flood each aspect which lived in us, and further seeped to professions in and so on medical service, education, transportation, physical distribution, lived the slowly influence the aspects which to the people, caused the motion life possibly to become.Regarding the traditional food and beverage industry, will need to want to obtain a better development in the future, utilization wireless network this item of powerful tool, will provide a convenient service for the customer. In time rapid advance today, the social development rhythm has expedited the meal system birth, is the customer goes to the dining room compared with the traditional spot meal way first to glance over the paper the cookbook to carry on meal, the service person writing by hand menu, this process quite is easy to make a mistake, meets especially goes to eat the peak, the efficiency is lower, is easier chaotically, then creates customer's disaffection, affects to the dining room grade of service.Along with the mobile interned further development, some scale quite big dining room already started to consider used this kind of most advanced networking to establish set of conveniences succinctly, the quick dining room management system management system, caused the dining room the service and the management obtains the further promotion, by this enhancement in profession competitive power. The present paper mainly narrated the meal system basic function and the database design method.The design finally achieved has registered including the user, orders food the management function module, pays up the management function module, the renewal management function module, cancels the function module, the establishment function module and so on. The system basic can the normal operation, each contact surface interactive quite is good.Uses the E-R model successively, the system function structure drawing has analyzed each kind of data which the system needs, the detailed demonstration system each function module, and has given the main function utilization contact surface chart.

 Keywords:

 Android; Wireless ordering; eclipse

 目

 录

 第一章 绪 论 1

 1.1 研究的背景及意义 1

 1.2 研究的目的 2

 1.3 国内外概况 2

 第二章 设计原理和方法 3

 2.1架构概述 3

 2.2关键技术简介 3

 2.3开发工具及环境 4

 2.5需求分析 6

 2.5.1点餐系统的背景分析和构建必要性 6

 2.5.2可行性分析 8

 第三章 系统概要设计 9

 3.1模块的划分与功能设计 9

 3.2功能模块的设计 9

 3.3数据库结构的设计 9

 第四章 系统实现 14

 4.1客户端设计思路 14

 4.2主菜单界面 14

 4.2.1功能描述 14

 4.2.2登录界面的设计 14

 4.2.3功能描述 15

 4.2.4界面设计 15

 4.2.5功能实现 15

 4.2.6 关键代码 17

 4.3 点菜界面 18

 4.3.1 功能描述 18

 4.3.2 界面设计 19

 4.3.3 关键代码 21

 4.4 更新界面 23

 4.4.1 功能描述 23

 4.4.2 界面设计 23

 4.4.3功能实现 23

 4.4.4关键代码 24

 4.5 结账界面 26

 4.5.1 功能描述 26

 4.5.2 界面设计 26

 4.5.3功能实现 27

 4.5.4 关键代码 27

 第五章 测试 29

 5.1 测试的作用和意义 29

 5.2 测试方法 29

 5.3 测试内容 29

 5.4 测试结果 31

 5.5 测试结论 31

 结 论 32

 谢 辞 33

 参考文献.............................................................................................................................................................34

 第一章 绪 论

 1.1 研究的背景及意义

 传统的点菜方式是餐厅的服务人员操作,由服务员手写记录顾客所点的菜,在具体操作中容易出现各种问题:不能及时更新菜谱,导致菜谱信息陈旧,点菜时经常出现某菜品已下架等情况;对服务员人数要求比较高,增加餐厅服务支出,在用餐高峰期,还会出现服务员人手不够的情况。随着平板电脑的普及,基于平板电脑的电子点餐系统成为未来饭店点菜的发展方向。若使用电子菜单,能够克服成本高、更新不变等弊端,还能给顾客带来更好的用户体验,让顾客体会到点餐的乐趣。产品无论从外观、尺寸、重量都比同类产品更具优势,能够让餐厅真正放心作为菜谱使用,而实时的菜品更新功能及海量的信息展示功能。传统纸质菜单字迹混乱从而导致上错菜、加菜和查账程序比较繁琐,处理特殊口味时难免有遗漏和偏差、客人催菜遗忘现象较频繁、导致结算账单易出错、浪费人力,时间和金钱,随着餐饮业规模的扩大,人工管理无论是在工作效率,人员成本方面都已经难以适应现代化经营管理的要求,制约了餐饮业的发展,因此种种缺点催生了无线点餐模式的诞生。它不仅可以有效地提高餐饮业的工作效率,更可以规范服务体系,提高整体服务质量和管理水平,并为规模化经营提供了坚实的技术基础。

  我们生活在一个充斥着数字技术的世界里,数字技术几乎侵入到我们生活的每个方面。现在的点菜方式在使用时已经没有网络点菜系统方便了:服务员使用手持终端为顾客点餐,当顾客点完自己想要的餐品后,服务员将已经输入在手持终端内的信息发送到前台,前台电脑会对收到的点菜内容进行分析,然后处理,再把处理好的信息发送给收银台和厨房,我坚信,基于安卓的点餐系统将会带给广大繁忙的人群很多的方便,节约大量的时间。

  1.2 研究的目的

 本文介绍了安卓无线点餐系统的开发过程。按照软件工程的方法,论文论述了从需求分析、系统分析、概要设计、详细设计、以及测试与调试的整个开发过程。首先系统地研究了无线点餐系统的背景和意义,分析了当今点餐系统的特点和共性,从而得出设计本系统的思路和方法。接着介绍了实现系统开发的Android平台环境,数据库用MySQL实现。同时简要的介绍了以上工具的功能和方法。

  概要设计分成后台数据库管理操作设计和客户端管理操作设计,同时介绍了数据库的建立和维护。详细设计主要阐述了点菜管理、送餐管理、查询管理,付款管理等以及后台管理功能的实现,并给出了系统的部分设计代码。

  最后,对每个功能模块和整个系统进行了测试,测试结果表明:系统基本具备了的功能以及快速的响应速度。

  1.3 国内外现状

 目前国内外的Android开发还是主要以应用类开发为主,主要分成3类:为企业开发应用、开发通用应用以及游戏开发。在餐饮方面,无线点餐已经在全国开始普及,越来越多的用户将会感受到Android带给我们的便利。有了Android系统,我们就可以开发一套客户端软件来完成点餐功能,而不会影响Android手机的其他功能。Android系统的功能强大,界面组建丰富,软件的功能自然会强大很多。用户操作更流畅,界面展现更完美.

 第二章 设计原理和方法

 2.1架构概述

 本设计主要讲述了点餐系统的基本功能和基于Android平台的软件开发、数据库的设计方法。设计最终达成了用户登录、点菜管理、送餐管理,收费管理,等点餐系统的基本功能。并且系统能够正常运行,各个页面交互性较好。在整个设计中基本运用基础的Android进行功能编程,也运用到了一些前端控件来控制输入信息,对输入信息进行验证,通过JDBC连接数据库。在系统规划中先后用数据流程图、系统功能结构图分析了系统所需的各种数据,详细的展现了系统的各个功能模块并给出了主要功能运行界面图。该点餐系统目前已有比较完善的管理与使用功能。开发点餐系统是为了满足酒店管理的需要,以现代化的创新思维模式去工作。

  该点餐系统主要用到的采用模型-视图-控制器MVC架构的设计模式。MVC架构是"Model-View-Controller",中文意思是"模型-视图-控制器"。MVC应用程序总是由这三个部分组成。

  MVC架构是一种架构,其实需要其他东西帮助它来完成操作。在J2EE模式目录中,通常采用service to worker模式实现,但是service to worker模式可以通过集中控制器模式,派遣器模式和Page Helper模式这三样结合而成。而Struts只是描述了MVC的View和Controller两个部分,Model部分需要我们这些开发的人们来自己操作,Struts提出了抽象类Action使开发者能将Model应用于Struts框架中。

 2.2关键技术简介

 移动终端界面设计

 用于移动终端技术领域,提供了一种移动终端界面显示方法、装置以及移动终端,所述方法包括以下步骤:接收用户的界面显示模式设置;将用户的界面显示模式设置进行存储;根据用户的需要控制移动终端界面进入用户设置的界面显示模式。本发明实施例通过将用户的界面显示模式设置进行存储,根据获取的移动终端运行指令控制界面进入用户设置的界面显示模式,使得移动终端的用户能够方便的根据自己的需要对显示界面进行设置,譬如设置字体的大小、设置某个应用程序的高亮状态等,拓展了移动终端的功能,方便了用户的使用。

  2.3开发工具及环境简介

 (1)Eclipse

 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。

 Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++开发工具。Eclipse的本身只是一个框架平台,Eclipse因为众多插件的支持比固定的IDE软件更加具有灵活性。许多软件开发商IDE都是以eclipse框架来开发的。

  Eclipse最出色的部分莫过于其插件框架,正因为有了其插件,Eclipse才以被不断扩充,越来越强大。

  Eclipse的安装首先需要安装JDK,JDK是针对Java开发人员提供的软件开发工具包,自从Java出现以来,JDK已经成为使用最广泛的Java SDK。安装JDK成功后,进行配置环境变量,一步一步,我截取了其中的一个步骤如图1所示:

  图1

 安装JDK步骤

 配置成功后,在DOS窗口输入相应的命令会出现如图2所示界面

 图2 DOS窗口中输入相应的命令会出现的界面

 (2)Tomcat服务器

 Tomcat 很受程序员们的欢迎,因为它运行时不怎么占用系统资源,并且具有良好的扩展性,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在努力完善中,只要程序员感兴趣就更改它或在其中加入新的功能。

 Tomcat 是一个小型的轻量级应用服务器,普遍使用在中小型系统和并发访问用户不是很多的场合,所以是开发和调试JSP 程序的第一选择。对于一个刚刚起步的人来说,可以这样认为,当机器上配置好Apache 服务器,它可以使HTML 页面的访问请求得到相应。实际上Tomcat 部分只是是Apache 服务器扩展的一部分,但它并不具有依赖性,因此当你运行tomcat,它实际上是单独运行的。

  (3)环境简介

  软件运行环境

 操作系统:Windows7操作系统

 数据库:SQL

 支持软件:MyEclipse tomcat JDK

 2.4应用平台

 (1)Android平台

 Android是一个平台,主要包括Linux微内核,中间件(SQLite等),一些关键应用,提供的Java框架,以及安卓中的JVM,它采用了软件堆的架构,主要分为三部分。底层是通过Linux内核工作的,只提供基本的一些功能;编写程序一般都是通过Java。由Linux内核,硬件抽象层,Android组件和上层应用程序组成,是为移动智能终端量身打造的,源代码开放,所以适合修改定制。

  (2)Android特性

  开放性

  挣脱运营商的束缚

  丰富的硬件选择

  不受任何限制的开发商

  无缝结合的Google应用

 2.5需求分析

 2.5.1点餐系统的背景分析和构建必要性

 在网络技术飞速发展的今天,原先普通的点餐模式已经不能满足顾客的需求,一款好的点餐系统能让用户及时看到餐饮商家及时更新的菜品信息,并提高服务质量以及他们对餐厅的满意度,点餐系统就恰当的出现了,本系统就是针对餐厅而设计开发的一个点餐管理系统,它带来的是方便,快捷,个性化,系统以安卓为开发工具,改变以往纯手工的点餐模式,从而节省了大量的人力劳动,可极大的提高餐厅的营运效率。

  一个完美的系统,必须要进行完善且全面的系统分析。只有系统分析规划好了,它才能够指导项目顺利的进行下去。系统分析需要以需求分析为基础。

  本项目中,我们之所以能够顺利地进行下去,也是基于一个良好的系统分析,如果不做该步骤直接进行编程,那将很吃力,以至于在编程过程中又不得不返过来进行系统分析,必然耽误了整个设计系统的时间,系统逻辑也被打乱。

  首先,我们得确定使用这个系统的用户应该有顾客、服务员收银员等。顾客和服务员员是开始系统数据的,他们做出开始的操作,厨师是接收数据的末端,因为最后是从厨师身上看到任务的分配情况。系统的核心任务就是确保厨师完成顾客所点的菜品,厨师能够准确的从系统中得到做菜的任务。

  该系统在性能功能上应达到如下需求:

  (1) 操作简单、界面友好:控件式的页面布局,使得菜品,资讯等信息的录入工作更简捷,许多选项包括餐厅信息,客人信息等等只需要动动手指就可以完成;另外,出现的提示信息也让用户随时清楚自己的操作情况。基本信息录入、浏览、删除、修改、搜索等方面都大体实现,以及顾客对菜品的预定及支付方式;

 (2) 即时可见:能够立即处理顾客预订的就餐信息然后达到即点即见的效果

 (3) 系统运行应该快速、稳定、高效和可靠;

 (4) 在结构上应具有很好的可扩展性,在后面的功能扩展和维护方面方便许多。

  表1

  主要 质量属性

  详细要求

 正确性

 按照要求正确执行任务,完成各个模块的功能。

  健壮性

 容错能力和回复能力比较好。

  性能效率

 软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。

  易用性

 易理解性:软件开发过程中的文字语言图片信息便于理解而且基本上不存在歧义。

  安全性

 为了防止软件受到意外破坏和泄密,软件的数据应该全部放置在总部数据库中,只能专门人士才能看到。

  可扩展性

 可以进行进一步的开发,充分满足对功能的提升还可以提高软件的安全性能方面的维护。

  兼容性

 不会和其他软件发生不必要的冲突。

 2.5.2可行性分析

 现在的社会节奏发展越来越快,进而催生了点餐系统的诞生,该管理系统在很多城市的餐厅中其实已经很常见了。足以体现移动互联网已经渗透到我们生活的方方面面的这种现象。同时,随着人们生活质量的提高,人们不仅要吃饱,还要吃好吃的开心,人们越来越追求实物本身以外的优势,服务就是其中的一种,点餐系统的出现,很好的满足了广大顾客的需求,节约了双方的时间,不仅让顾客享受到可口的菜肴,更能让他们感受到服务的完美与上菜的快捷。另一方面点餐系统对开发的需求以及软硬件要求都不太高,该业务在中国有着极大的市场发展前景,而且,本系统没有侵犯个人隐私和个人责任

 方面的问题,使用本系统不会引起法律方面的纠纷,所以,我认为开发本系统在经济,技术,法律,开发方案方面是可行的,并且,具有其实现的必要性。

  第三章 系统概要设计

 系统的概要设计主要针对系统的总体功能进行设计,如何划分模块,系统的数据库如何设计。它为系统的详细设计做铺垫。在系统的设计过程中起着非常重要的作用。

  3.1模块的划分与功能设计

 本系统主要分:登录,点菜,确认,结账等。

  3.2功能模块的设计

 登录:用户进行登录

 开始点菜:根据菜单显示信息进行点菜

 确认:确认点菜信息

 送餐:根据提供的信息把点的菜品送达目的地

 更新信息:获取最新变更信息

 设置:进行一般设置

 结账:是在顾客用餐完毕后,结算付费而设计的功能,使客人能够直观明了的看清消费明细,不用担心算错的问题

 3.3数据库结构的设计

 数据库设计 (Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。

 就是结构化数据库中的数据对象以及这些数据对象之间关系的过程。

 设计数据库的过程一般可以分为4个步骤:

 (1)需求分析

 首先要调查清楚客户的业务和使用数据的情况并且进行系统分析,将所用数据的范围、数量、种类以及在业务活动中的情况弄明白,完成用户对数据库系统使用过程中的要求。

 点餐系统的主体就是餐厅的服务系统,所以这个系统中要用一个表来保存菜单信息。所以主键就是编号。负责登录终端系统的服务人员应该具有保存服务人员信息的表,这个表中也是包括一些信息。所以主键为服务人员的编号。所有的顾客都可以通过自己的喜好,在餐厅选择喜欢的菜式。另外餐厅肯定要有一个订单表,这个表格中包含了订单号,点餐时间,用户编号,用户地址,结账等信息。这样还需要一个能够存储顾客所点菜品信息的

 订单详细表。

  数据库的概念设计,即利用数据模型进行概念数据库的模式设计。根据点餐系统的需求,设计出以下的实体-关系模型(E-R)图如图3和图4。

  送餐地址

 送餐电话

 ID编号

 送餐

 服务

 服务人员

 用户密码

 用户名称

 ID编号

 n

 1

 图3实体-关系模型(E-R)

 图片

 价格

 描述

 编号

 菜类类型

 菜名

 包含

 订单明细

 ID编号

 数量

 备注

 对应

 订单

 送餐电话

 ID编号

 下单的客户

 是否结账

 送餐地址

 n

 n

 1

 1

 图4实体-关系模型(E-R)

 (2)逻辑设计

 主要工作是将现实的数据变成数据库的逻辑模式。另一方面,可能还需要为各种数据处理应用领域产生相应的逻辑子模式。这个设计最后就会得到“逻辑数据库。

  数据库的逻辑设计,即把概念设计得到的概念数据库模式变为逻辑数据模式,它依赖于DBMS。

  根据点餐系统的需求分析及数据库的概念设计,得到以下的数据库表的相关说明如下:

  (1)菜单表

 菜单表的结构及相关说明如表2示。

  表2 菜单表的结构及相关说明

 序号

 字段名称

 字段含义

 类型

 宽度

 备注

 1

 Id

 编号

 Int

 11

 Primarykey

 2

 typeID

 种类ID

 Int

 11

 3

 name

 菜名

 varchar

 50

 4

 price

 价钱

 Int

 11

 5

 pic

 图片

 varchar

 100

 6

 remark

 备注

 varchar

 200

 (2)菜单类型表

 菜单类型表的结构及相关说明如下表3示。

  表3 菜单类型表的结构及相关说明

 序号

 字段名称

 字段含义

 类型

 宽度

 备注

 1

 Id

 菜单编号

 Int

 11

 Primarykey

 2

 name

 菜单名称

 varchar

 20

 (3)订单详细表

 订单详细表的结构及相关说明如下表4示。

 表4 订单详细表的结构及相关说明

 序号

 字段名称

 字段含义

 类型

 宽度

 备注

 1

 Id

 编号

 Int

 11

 Primarykey

 2

 orderId

 订单编号

 varchar

 11

 Foreign key

 3

 menuId

 菜单编号

 Int

 11

 Foreign key

 4

 num

 人数

 Int

 11

 5

 remark

 备注

 varchar

 200

 (4)订单表

 订单表的结构及相关说明如下表5示。

  表5 订单表的结构及相关说明

 序号

 字段名称

 字段含义

 类型

 宽度

 备注

 1

 Id

 编号

 Int

 11

 Primarykey

 2

 orderTime

 订单时间

 varchar

 11

 3

 userID

 用户编号

 Int

 11

 Foreign key

 4

 tableId

 餐桌编号

 Int

 11

 Foreign key

 5

 personNum

 人数

 Int

 11

 6

 isPay

 是否结账

 Int

 11

 7

 remark

 备注

 varchar

 200

 (5)用户表

 用户表的结构及相关说明如下表6示。

  表6 用户表的结构及相关说明

 序号

 字段名称

 字段含义

 类型

 宽度

 备注

 1

 Id

 编号

 Int

 11

 Primarykey

 2

 account

 桌号

 varchar

 20

 3

 password

 密码

 varchar

 20

 4

 name

 姓名

 varchar

 20

 5

 gender

 签署

 varchar

 20

 6

 permission

 权限

 Int

 11

 7

 remark

 备注

 varchar

 200

 第四章 系统实现

 4.1客户端设计思路

 移动终端是用户最基础最直接的东西,包括用户是否能够简单快捷的使用,操作的响应时间、图片信息质量、首页布局、首页信息类型等都要进行最优化的设计。

  一般来说,界面主要由以下三个因素组成:

  (1)文字:文字元素,传达信息最主要的工具。界面中主要包括文字的链接、标题等主要形式的文字。标题传达的信息主要是对内容的简要概述。文字是页面里最为重要的元素,而且是信息的重要载体,页面的整体设计就在于文字的字体、大小、颜色和布局。

  (2)图形:图形在界面中起着重要作用。合理的运用图形,可以使设计变得更加生动形象。网页中一般图片为jpg和gif的格式。

  (3)界面版式:界面设计最重要的部分就是版式,它组合配置文字、图形等元素,使得整个页面美观舒服,并且使阅读者浏览更加方便。

 设计终端系统的界面也是将文字,图形等元素结合在一起。使每一个功能的描述都配有相应的文字与图片,直观的显示所需要的信息,其最终的目的还是为了能让使用者能够快速使用,不至于因为操作的不当而放弃此系统。

  4.2主菜单界面

 4.2.1功能描述

 主菜单界面包含点菜,选择数量(默认一般是1),地址,设置,退出,结账等6个功能模块。每个功能模块提供一种服务,包含一组功能操作,良好的界面方便服务人员进行快速的操作。

  4.2.2登录界面的设计

 登录界面主要是由服务人员来操作的,所以要一目了然容易操作。利用数据库对用户的信息进行比对,比对正确后利用界面跳转到主菜单界面。每一位服务人员有其单独的一个账号密码用来登录,这样可以责任落实到人,否则出现错误都不知道是谁的问题。

  4.2.3功能描述

  服务人员可通过自己用户名和密码进入移动终端首页界面来为顾客进行点餐服务。而服务人员的账号密码是提前在服务器数据库中设置的,每个服务人员都有自己单独的唯一的一个账号密码用来登录,这样可以责任落实到人。

  4.2.4界面设计如图5

 图5界面设计

 4.2.5功能实现

 单独建立一个Activity用来控制用户的登录,当用户输入账号与密码时,系统先判断用户账号密码是否为空,为空则跳出一个对话框给予用户提示;如果不为空则再从EditView中取的账号密码与服务器中的账号密码进行匹配,如果匹配成功则利用Intent语句跳转到下一个主菜单界面如图6。

  图6 下一个主菜单界面

 4.2.6 关键代码

 String userName = userEditText.getText().toString();

 String userPwd = pwdEditText.getText().toString();

 if(userName.isEmpty() || userPwd.isEmpty())

 {

  Toast.makeText(getApplicationContext(), "帐号或密码为空", 1).show();

 }

 else

 {

  Declare declare = (Declare) getApplicationContext();

  declare.setId(Integer.parseInt("8"));

  declare.setUserName(userEditText.getText().toString());

  Toast.makeText(getApplicationContext(), "登入成功", 1).show();

  Intent intent = new Intent();

  intent.setClass(LoginActivity.this,MainMenuActivity.class);

  startActivity(intent);

 }

 在服务人员输入账号密码后点击登录后,终端会先判断是否帐号有效性,此方法是防止账号密码为空时的登录提示,如果为空会跳出一组对话框进行提示账号密码是必填项,如果不空,则再判断是否满足login()方法,login()方法是用来与数据库进行连接比对是否一致,一致则顺利登录成功后跳转到下一个Activity即主菜单界面,否则出现账号密码错误的提示,登录失败;

 private void saveUserMsg(String msg){

  // 将用户信息保存到配置文件

 String id = "";

  // 用户编号

 String name = "";

  // 用户名称

 String[] msgs = msg.split(";");

  // 获得信息数组

 int idx = msgs[0].indexOf("=");

 //以“=”为分隔符

 id = msgs[0].substring(idx+1);

  //获取id号

 idx = msgs[1].indexOf("=");

 name = msgs[1].substring(idx+1);

  //获取名称

  SharedPreferences pre = getSharedPreferences("user_msg",

  MODE_WORLD_WRITEABLE);

 // 共享信息,运用本地数据库SQLite

 SharedPreferences.Editor editor = pre.edit();

 editor.putString("id", id);

 editor.putString("name", name);

 editor.commit();

  }

 此方法是在login()方法中与后台数据库查询成功后调用的,同时也将登录用户信息保存在终端系统的本地数据库中,存储更加方便快捷。这也正是基于Android平台的优点,拥有自己独立的数据库SQLite,它是一套轻数据库引擎,可供其他应用程序调用。

  4.3 点菜界面

 4.3.1 功能描述

 此功能按键主要是为了让顾客能够更加方便的点菜,显示顾客的各种信息,然后把顾客所点的菜品配送到相应的地址,界面一目了然。

  4.3.2 界面设计

  图7点菜选菜图

 图8 选择菜品数量生成订单

 4.3.3 关键代码

  private void setViews() {

 lv = (ListView) findViewById(R.id.gwc_list_view);

 list= getDatas();

 adapter = new GwcSimpleAdapter(this,list,

 R.layout.message_list, new String[] { "icon", "name", "price",

 "count" }, new int[] { R.id.ml_icon, R.id.listName,

 R.id.listPrice, R.id.listCount });

 lv.setAdapter(adapter);

 // lv.setOnItemClickListener();

 lv.setOnItemClickListener(myListener1);

 // 添加长按点击

 lv.setOnCreateContextMenuListener(myListener2);

  }

  private OnCreateContextMenuListener myListener2 = new OnCreateContextMenuListener() {

 public void onCreateContextMenu(ContextMenu menu, View v,

 ContextMenuInfo menuInfo) {

  menu.add(0, 0, 0, "删除");

 }

  };

  // 长按菜单响应函数

  @Override

  public boolean onContextItemSelected(MenuItem item) {

 if (item.getItemId() == 0) {//删除

  ContextMenuInfo info = item.getMenuInfo();

  AdapterContextMenuInfo contextMenuInfo = (AdapterContextMenuInfo) info;

  // 获取选中行位置

  int position = contextMenuInfo.position;

  // 获取问题内容

  HashMap<String, Object> itemd = (HashMap<String, Object>) list.get(position);

  question = (String) itemd.get("name");

  dialog();

 }

  return super.onContextItemSelected(item);

  }

  4.4 结账界面

  4.4.1 功能描述

  结账界面:点击结账按钮后会跳转到下一个界面用来显示消费金额及详细款项,一目了然,方便顾客查账使用。

  4.4.2 界面设计

 图9 输入联系方式和送达地址以及选择支付的方式

  查看订单详细信息如图10.

 图10查看订单

 4.4.3功能实现

 结账实现的主要代码:从服务器获得订单编号,显示总计消费金额,再点击结算按钮后,通过payBtn.setEnabled(false)方法就会是结算按钮失效,不能再次点击生效,这也是为了结算能够更加简单明了,不易让顾客和服务员发生多次结账的错误。是比较人性化设计的一个方面。

  4.4.4 关键代码

  public void onCreate(Bundle savedInstanceState) {

 super.onCreate(savedInstanceState);

 setContentView(R.layout.dingdan);

 button1 = (Button) this.findViewById(R.id.Button21);

 button1.setOnClickListener(myListener1);

 button2 = (Button) this.findViewById(R.id.Button22);

 button2.setOnClickListener(myListener2);

 text1 = (EditText) findViewById(R.id.Text21);

 text2 = (EditText) findViewById(R.id.Text22);

 // -------------------------spinner1

 spinner1 = (Spinner) findViewById(R.id.Spinner21);

 // 将可选内容与ArrayAdapter连接起来

 adapter1 = new ArrayAdapter<String>(this,

 android.R.layout.simple_spinner_item, m1);

 // 设置下拉列表的风格

 adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

 // 将adapter 添加到spinner中

 spinner1.setAdapter(adapter1);

 // 添加事件Spinner事件监听

 spinner1.setOnItemSelectedListener(new SpinnerSelectedListener1());

 // 设置默认值

 spinner1.setVisibility(View.VISIBLE);

 Declare declare = (Declare) getApplicationContext();

 String username = declare.getUserName();

 if (username == null) {

  setTitle("当前位置---订单录入");

 } else {

  setTitle("您好:" + username + "

  当前位置---订单录入");

 }

  }

  // 使用数组形式操作

  class SpinnerSelectedListener1 implements OnItemSelectedListener {

 public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,

 long arg3) {

  value1 = m1[arg2];

  }

  } }

  第五章 测试

 5.1 测试的作用和意义

 系统测试在系统的开发周期中是除了维护以外的最后一个环节,也是最重要的一个环节。虽然系统开发周期的每个阶段时都十分严格,但仍然会出现难以避免错误,或者细小的瑕疵,如果投入运行前的系统测试阶段没有发现这些错误,这些错误也迟早会出现,到时候将会付出更大更多的人力、物力时间去纠正。系统测试要花费相当大的时间、人力、物力。经调查,对于较大规模的系统,整个软件开发工作量的40%-50%都会用来进行软件测试。而且如果开发的系统很大很重要,测试则要花费巨大工作量和成本去进行,不过,这么做都是有必要的。

  5.2 测试方法

 对软件进行测试的主要分为人工测试方法与机器测试方法。一般源程序通过编译后,首先人工要对其进行测试,然后再用机器进行测试。通过人工测试方法,能够相当有效的查找程序中的错误,在一个模块的测试过程中,应至少使用一种或多种人工测试方法是很有必要的。而用机器进行测试则是用之前设计好的例子,将运行的结果和预期的结果进行对比从而发现问题。

  人工测试又分为软件审查、代码审查与人工走查都是以召开评审会的方式进行。

  机器测试分为黑盒测试与白盒测试。

  对于这个基于Android的移动点餐系统来说,我在每写完一个功能模块时就要对这个功能模块进行测试,这样及时发现问题可以及时改正,比较有条理性,其实也可以每写好一段相对独立的程序时对它进行相应的功能测试或模块测试。而当我完成整个系统时我采用上面所说的人工测试方法,把整个软件的逻辑关系理一下,避免发生逻辑性的错误,然后是检查软件的功能是否实现,与需求里面的功能要求作对比,检查功能实现是否合理等。

  5.3 测试内容

 (1)登录模块测试如表6.

 表6 登录模块测试

 输入/操作

 期望的输出/响应

 实际情况

 登录检测

 输入正确的用户名和密码

 正常登陆

 输入错误的用户名和密码

 提示密码错误

 用户名或密码为空

 提示用户名或密码为空

 (2)点菜模块测试如表7.

 表7 点菜模块测试

 输入/操作

 期望的输出/响应

 实际情况

 点菜检测

 在屏幕上输出已选择的菜品

 在屏幕上输出正常

 (3)可选菜品信息模块如表8.

 表8 可选菜品信息模块测试

 输入/操作

 期望的输出/响应

 实际情况

 可选信息检测

 进入可选信息页面时,显示所有可菜品信息

 进入页面时显示所有的可选菜品信息

 (4)生成订单信息模块如表9.

 表9 生成订单信息模块测试

 输入/操作

 期望的输出/响应

 实际情况

 生成订单信息检测

 进入订单信息页面时,显示所点的菜品

 进入页面时显示所有的已定菜品信息

 (5)可选菜品信息模块如表10.

 表10 结账模块测试

 输入/操作

 期望的输出/响应

 实际情况

 结账信息检测

 进入结账信息页面时,显示所点菜品的价格

 进入页面时显示所点菜品的价格

 5.4 测试结果

 (1) 服务器正常启动后,用户能够成功的登录到点餐系统,当用户名、密码出错或为空时能够给出提示。当服务器没有启动时会给出“网络异常”的提示。

  (2) 用户在点菜时,系统会列出菜品供用户点餐。

  (3) 系统在显示所点菜品时,可以显示所点的数量及种类。

  (4) 系统在显示订单时,会给出所有的订单信息,包括顾客电话,地址及所有的菜品。

  (5)系统在显示结账时,提供所点菜品的价格及支付方式。

  (6) 系统界面良好,可操作性便利。

  5.5 测试结论

 系统经过反复测试,发现存在上述测试结果中的一些问题,比如,刚开始用户名和密码为空时,也能登陆成功,但是经过后来反复的修改和测试,解决了这个问题,测试结果中的大部分问题都得到解决。但是,由于本人能力有限,此系统仍存在一些潜在的问题没有解决。经过后期对软件的测试,我懂得了测试是一项重要的环节。

  结 论

 经过这几个月的程序代码及论文书写,毕业设计也进入收尾阶段,点餐系统的基本功能也基本完成。

  在这次毕业设计中,因为平时较其他来说接触安卓比较少,所以学习了很多的知识,从安卓环境的搭建一步一步,对Google Android开发及Java等相关技术的了解,积累了理论上的知识。需求分析,概要设计,可行性分析,再到后来的环境配置,书写代码及其调试,测试,让本文作为一个用户对该类系统的需求和软件运行的环境有了一定了解。将之前学过的数据库知识跟Java技术结合在一起,理论联系实际,在实践中锻炼了分析处理问题的能力。

  经过这几个月来的毕业设计和对相关资料的搜集,我深深的感到随着网络的不断发展和移动互联网的广泛应用,我们的生活已经离不开它了。网络它以自己的独特的优点影响着我们。随着用户的要求越来越高,点餐系统方面的工作量还有很多需要完善,并且其工作是一件十分烦琐和容易出错的事情。在这样的情况下有一个运行良好的点餐系统是有其必然性的,如果能做出一个完善的系统就能节约人力,物力,财力资源。

  其次在这次毕业设计的过程中,我对软件工程这门学科有了更贴近的认识,尤其对工程流程的各个阶段有了更深的感受,并且通过一定的知识积累基本能完成各个阶段的任务。还明白了需求分析和总体设计是开发系统中最重要的部分,起着导航的作用,它指出了系统的模块和业务接口,流程转换以及模块之间的关系。如果总体设计不合理,将会导致之后的详细设计工作上的麻烦,目标不明确甚至失去方向。虽然在开发过程中受专业知识水平和时间所限,在设计中还有些欠缺或考虑不周全的地方,但这次毕业设计的经历将对今后的学习和工作产生重大影响。

  谢 辞

 通过这几个月的不懈努力,毕业设计基本完成了,在这个过程中,首先我要感谢我的导师XX老师,从选题开始,XX老师给了我很大的帮助,耐心的辅导以及解惑,由于自身知识与开发实践不足的原因,我经常会发邮件问李老师问题,她都会在第一时间回复我,用她专业的知识帮助了我很多,使我感受到她朴实无华,平易近人的人格魅力,老师也会经常在我们小组的群里督促我们抓紧时间完成毕业设计,因为我的论文选题是关于安卓的,接触的比较少,遇到了大大小小的问题,要进行不断地检查,添加,调试,有的例子出错,找不到原因,不过我很幸运,最后在我们组老师和同学的帮助下我都一一克服了,尤其感谢XX同学给予我的鼓励与帮助。

  最后感谢给我们带过课的每一位老师,学院领导和我的辅导员老师,班主任老师,还有陪伴我度过人生最重要时光的大学同窗,我的寝室的姐妹们,带给我太多美好的回忆,特别感谢我的班长党伟同学,非常热心的一个男生,谢谢。

  参考文献

 [1] 谭浩强.Java语言程序设计(第三版)[M].北京:清华大学出版社,2008.

 [2] 张孝祥.Java就业培训教程[M].北京:清华大学出版社,2003

 [3] 王珊、萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006.

 [4] 李春儒.守望互联网经济—电子商务发展现状与趋势[OL].http://www.ilib2.com,2005.

 [5] 李飞,最新实用网络技术教程[M].西安:西安电子科技大学出版社.69~70,124~126.

  [6] 史斌星,史佳.Java基础编程贯通教程[M].北京:清华大学出版社,2003.

 [7] 马海军,杨继萍.Java 2 实用教程[M].北京:清华大学出版社,2004.1~63.

 [8] 余志龙,陈小凤,郑名杰.Android SDK开发范例大全[M].北京:人民邮电出版社,2009.

 [9] 高焕堂.Android 应用框架原理与程式设计36(第三版)[M].北京:清华大学出版社,2007.1

 [10]E2ECloud.深入浅出Android程序设计[OL].北京:人民邮电出版社,2009.8~63.

 [11]盖索林.Android开发入门指南[M].北京:人民邮电出版社,2009.11~63.

 [12]杨丰盛.Android 应用开发揭秘[M].西安:机械工业出版社,2010.1~63.

 [13]张利国,龚海平,王植萌.Android移动开发入门与进阶[M].北京:人民邮电出版社,2009.12~63.

 [14]贾琴勇. 及时通讯系统的研究与实现[D]. 武汉:武汉理工大学,2008

 [15]王克宏. Java 技术教程(基础篇)[M]. 北京:清华大学出版社,2008

 [16]孙燕. Java 2 入门与实例教程[M]. 北京:中国铁道出版社,2010

 [17]柯温钊. Java 例解教程[M]. 北京:中国铁道出版社,2007

 [18]Smego.Android应用程序设计基础.http://www.aidiji.com/viewtopic,2009.1~63.

 [19]Smego.Android A Programmers Guide[OL].http://www.aidiji.com/viewtopic.php?f=2,2008.9~63.

 [20]Bill Veneers(美)著,曹晓钢等译. 深入 Java 虚拟机[M]. 北京:机械工业出版社,2003

 [21] Stan Kurkovsky.Can Mobile Game Development Foster Student Interest in Computer Science?.Games Innovations Conference, 2009. ICE-GIC 2009. International IEEE Consumer Electronics Society's. London, UK. 2009,p.92-95

 [22] Barra, Hugo (10 May 2011). Android: momentum, mobile and more at Google I/O. The Official Google Blog.

 http://googleblog.blogspot.com/2011/05/android-momentum-mobile-and-more-at.html. Retrieved 10 May 2011.

 [23] Android Stats. 25 Sep 2011. http://www.androlib.com/appstats.aspx. Retrieved 25 Sep 2011.

推荐访问:系统 毕业设计

《基于安卓系统的点餐系统毕业设计.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

一键复制全文 下载 投诉