毕 业 设 计( 文 )
题目
基Android网订餐系统
作者
学院
专业
学号
指导教师
二〇XX 年 X月 X日
摘
着科技发展二十世纪成网络化信息化核心社会网络商业化成时热门词汇着信息技术断更新特07年谷歌公司推出Android开放源码Android操作系统成移动台宠系统分析中型餐饮店理发展现状面问题发现传统服务模式已适应市场发展需求方便快捷性化网订餐服务正进入生活针类问题结合代科技发展新成果文构思规划套贴切服务模式中型餐饮店外送服务提供套系统
设计基Android手机网订餐系统采CS模式客户提供网选择浏览菜品介绍点菜订餐服务理员提供服务台实现户信息顾客订单理提高服务质量文系统需求系统实际代码实现方面介绍整软件开发程系统采JAVASQL Server数库利MyEclipseTOMCATAndroid SDKADTAVDDDMS等开发环境者开发工具
关键词:AndroidJavaMyEclipseSQLiteSQL Server 2005
ABSTRACT
With the development of science and technologythe 21st century has become a society centred on information and networkHence commercialization of network has become one of the hottest topics in recent years Android operating system is gradually going to be the darling of the mobile platform which results from the constantly updating of information technology especially the appearance of Android open source carried out by Google company in 2007 The system mentioned in this article mainly focus on the problems faced by the middle and small reataurants in their management and development and finds that the traditional service mode can not adapt to the needs of the development of the market any moreA more convenient quickerand personalized service enters people’s life——online reservations In view of the existing problems and combining the latest achievements of the development of modern technology I have conceived a set of the most appropriate pattern of dilivery service for the restaurant industry
This design is a online reservations system based on the Android mobile phones which adopts CS mode It can provide services for clients to choose dishes introduction freely and to order meal activelyBesides it can also offer a service platform for manager to regulate the user informations and customer orders so as to improve the quality of their servicesIn this article I’d like to introduce the whole development process of this software in details from the system requirements system realizationcode implementation and some other aspectsThis system uses JAVASQL Server databasein addition MyEclipseTOMCATAndroid SDKADTAVDDDMS and other development environments or development tools are also used in it
Keywords AndroidJavaMyEclipseSQLiteSQL Server 2005
目 录
第章 引 言 1
11项目背景 1
12 项目目 1
13 容 2
第二章 系统理技术 3
21 Android 3
211 Android简介 3
212 Android Features特性 3
213 Android基框架(Android Architecture) 4
214 Android系统四组件 4
22 Java 5
23 SQL Server 2005SQLite数库 5
24 CS模式 6
第三章 系统分析设计 8
31 功需求 8
32 模块结构流程 9
321 客户端 9
322 服务端 10
33 数库设计 11
331 数库表结构 11
332 数 12
333 客户端数库连接 13
334 服务器数库连接 14
34 系统结构 15
341 部署图 15
342 类图 15
35 执行概念 16
第四章 系统实现 18
41 Android环境搭建 18
42 客户端 19
421 系统登录 19
422 系统注册 21
423 浏览菜品 23
424 搜索菜品 25
425 订餐 26
426 结账 28
43 服务端 29
431 系统登录 29
432 订单理 30
433 菜品理 32
434 会员理 35
第五章 结束语 37
参 考 文 献 38
致 谢 39
第章 引 言
11项目背景
伴着国市场济高度发展企业越越赖市场客户种赖关系已开始逐步提升关企业生存高度获更客流量通代价商家获更知名度企业生存发展壮关键年销售亿众电子商务案例更商机应场景相限PC (电脑)相生具备便携属性手机电商更想象空间移动电子商务产生移动电子商务利手机PDA掌电脑等线终端进行B2BB2CC2C电子商务特网移动通信技术短距离通信技术信息处理技术完美结合时间点进行种商贸活动实现时线线购物交易线电子支付种交易活动商务活动金融活动相关综合服务活动等
Android操作系统着开放台允许移动终端厂商加入Android联盟中越越户倾选择操作系统Android手机品牌选择设计基Android台软件毫疑问覆盖更群众 餐饮业电子商务中处形成初期传统餐饮业中实际门面形式进行宣传交流作网络普化社会缺少更现代化元素餐饮业性化样化服务业电子商务体现性化样化服务方式现部分电子商务体现企业服务结合餐饮行业特点终发展区店服务模式贴切方式灵便服务进入网络社区进入生活
12 项目目
宅男宅女日益增加餐饮店提供外卖服务传统外卖服务需客户商家电话报出址商家边需记录客户信息外卖准确送达间操作难免会出现偏差遗漏客户者商家带损失3G网络覆盖范围越越广Android手机占领手机行业头考虑做Android应方便商家客户出错率达低户点餐时候需手机网点菜单吃喜欢吃菜品里面蕴含商机完全够效提高商家营业额基素提出样基Android网订餐系统
项目目开发户手机操作客户端然服务器连接进行数交互实现网订餐流程客户端需实现浏览菜品点菜订单搜索等功服务器端需实现添加删修改菜品订单处理会员理等功
项目款基Android手机台订餐系统拥Android手机户生活更加方便快捷手机显更生动灵活化更接手机时吃喜欢菜品生活更加样化设计者更加熟练Android技术市场特点
13 容
通实际情况调研系统致分三部分手机客户端电脑服务器端图形化界面工具系统采HTTP协议进行数传输采CS结构客户端基Android操作系统台智手机业务逻辑服务器端实现数存储数库服务器客户端实现位置服务商品展示会员注册登录购物车商品搜索信息等功服务器端完成数交互数逻辑处理图形界面化工具负责商品订单等增删改查
步步实现确定功文容安排:
第章:引言(介绍课题研究背景目)
第二章:系统理技术(项目中设计技术简介)
第三章:系统分析设计(需求分析数库分析设计系统结构设计)
第四章:系统实现(根需求分析实现系统模块功客户端服务器服务器数库正常数交互部分搭建开发环境编写代码测试运行)
第五章:结束语(项目做项目总结)
第二章 系统理技术
21 Android
211 Android简介
Android词义指机器时Google2007年11月5日宣布基Linux台开源手机操作系统名称该台操作系统中间件户界面应软件组成号称首移动终端造真正开放完整移动软件
Android基Linux核软件台操作系统早期Google开发(华注册商标名安致)开放手机联盟(Open Handset Alliance)开发采软件堆层(software stack名软件叠层)架构分三部分低层Linux核工作基础提供基功应软件公司行开发Java作编写程序部分外推广技术Google十手机公司建立开放手机联盟Android未公开前常传闻Google电话gPhone传闻认Google开发手机电话产品套软件台2010年1月Google开始发表家品牌手机电话Nexus One目前新SDK版Android 403
212 Android Features特性
Android系统特性[1]:
·应程序框架 支持组件重换
·Dalvik虚拟机 专门移动设备做优化
·部集成浏览器 该浏览器基开源WebKit引擎
·优化图形库 包括2D3D图形库3D图形库基OpenGL ES
·SQLite 作结构化数存储
· 媒体支持 包括常见音频视频静态印象文件格式(MPEG4 MP3 AAC AMR JPG PNG)
·GSM电话(赖硬件)
·蓝牙Bluetooth EDGE 3G and WiFi (赖硬件)
·相机GPS指南针加速度计 (赖硬件)
·丰富开发环境 包括设备模拟器调试工具存性分析图表Eclipse集成开发环境插件
213 Android基框架(Android Architecture)
图 21 Android Architecture
214 Android系统四组件
Android系统中提供四基组件组件视图见见视图ActivityContentProvider见视图ServiceBroadcastReceiver见系统台运行面分介绍四组件[3]:
(1)Activity 简介
Android系统中Activity提供视化户界面Android应通常Activity组成Activity组成Activity栈(Stack)前活动Activity处栈顶Activity生命周期Android系统控制
(2)Service 简介
顾名思义Service运行台种服务程序般少户交互没视化界面定义Service类较简单继承Service类实现生命周期中方法定义Service必须AndroidManifestxml配置文件注册通
(3)Broadcast Receiver 简介
Broadcast Receiver 顾名思义广播接收器事件处理机制类似事件处理机制程序组件级(例某钮单击事件)广播事件处理机制系统级目前止Intent启动程序组件通sendBroadcast()方法发起系统级事件广播传递消息应程序中实现Broadcast Receiver监听响应广播Intent
(4)ContentProvider简介
Content Provider 保存检索数应程序间相互访问数成跨应程序享数唯方法
Android 常数类型(:音视频图片联系方式等)提供量Content Provider定义androidprovider包面通样定义ContentProvider 方便进行数操作然必须拥适权限定ContentProvider享数方便户访问
22 Java
Java种撰写跨台应软件面象程序设计语言Sun Microsystems公司1995年5月推出Java程序设计语言Java台(JavaSE JavaEE JavaME)总称Java 技术具卓越通性高效性台移植性安全性广泛应PC数中心游戏控制台科学超级计算机移动电话互联网时拥全球开发者专业社群全球云计算移动互联网产业环境Java更具备显著优势广阔前景
Eclipse 开放源代码基Java扩展开发台身言框架组服务通插件组件构建开发环境幸运Eclipse 附带标准插件集包括Java开发工具(Java Development KitJDK)
然数户乐 Eclipse 作 Java 集成开发环境(IDE) Eclipse 目标仅限Eclipse 包括插件开发环境(Plugin Development EnvironmentPDE)组件针希扩展 Eclipse 软件开发员允许构建 Eclipse 环境缝集成工具 Eclipse 中样东西插件 Eclipse 提供插件户提供致统集成开发环境言工具开发员具等发挥场
种等致性仅限 Java 开发工具 Eclipse Java 语言开发途限 Java 语言例支持诸 CC++ COBOL 等编程语言插件已预计会推出Eclipse 框架作软件开发关应程序类型基础容理系统
基 Eclipse 应程序突出例子 IBM Rational Software Architect构成 IBM Java 开发工具系列基础[7]
23 SQL Server 2005SQLite数库
SQL Server 关系数库理系统初Microsoft Sybase AshtonTate三家公司开发1988 年推出第OS2 版Windows NT 推出MicrosoftSybase SQL Server 开发分道扬镳Microsoft SQL Server 移植Windows NT系统专注开发推广SQL Server Windows NT 版Sybase 较专注SQL ServerUNIX 操作系统应SQL Server安装界面
SQLite款轻型数库遵守ACID关联式数库理系统设计目标嵌入式目前已嵌入式产品中占资源非常低嵌入式设备中需百K存够够支持WindowsLinuxUnix等等流操作系统时够程序语言相结合 TclC#PHPJava等ODBC接口样起MysqlPostgreSQL两款开源世界著名数库理系统讲处理速度快SQLite第Alpha版诞生2000年5月 已10年头SQLite迎版 SQLite 3已发布
24 CS模式
网络连接模式中等网外种形式网络客户机服务器网ClientServer客户机服务器网络中服务器网络核心客户机网络基础客户机服务器获需网络资源服务器客户机提供网络必须资源
里客户服务器指通信中涉两应进程(软件)计算机计算机户(user)客户(client)许国外文献中常运行客户程序机器称client(种情况client译客户机)运行服务器程序机器称server时根文判断clientserver指软件硬件
软件系统体系结构通充分利两端硬件环境优势务合理分配 Client端Server端实现降低系统通讯开销目前数应软件系统ClientServer形式两层结构现软件应系统正分布式Web应发展WebClientServer 应进行样业务处理应模块享逻辑组件部外部户访问新现应系统通现应系统中逻辑扩展出新应系统目前应系统发展方
CS架构软件优势劣势[9]:
应服务器运行数负荷较轻简单CS体系结构数库应两部分组成客户应程序数库服务器程序二者分称前台程序台程序运行数库服务器程序机器称应服务器旦服务器程序启动时等响应客户程序发请求客户应程序运行户电脑应数库服务器称客户电脑需数库中数进行操作时客户程序动寻找服务器程序发出请求服务器程序根预定规作出应答送回结果应服务器运行数负荷较轻
数储存理功较透明数库应中数储存理功服务器程序客户应程序分独立进行前台应违反规通常(已知未知)运行数服务器程序中集中实现例访问者权限编号重复必须客户建立定单样规工作前台程序终户透明须问(通常法干涉)背程完成切工作客户服务器架构应中前台程序非常瘦麻烦事情交服务器网络CS体系数库真正成公专业化仓库受独立专门理
CS架构劣势高昂维护成投资首先采CS架构选择适数库台实现数库数真正统分布两数步完全交数库系统理逻辑两操作者直接访问数库效实现样问题果需建立实时数步必须两间建立实时通讯连接保持两数库服务器线运行网络理工作员服务器维护理客户端维护理需高昂投资复杂技术支持维护成高维护务量
(4)传统CS结构软件需针操作系统系统开发版软件产品更新换代十分快代价高低效率已适应工作需JAVA样跨台语言出现BS架构更猛烈击CS形成威胁挑战
第三章 系统分析设计
31 功需求
着3G时代手机应越越普遍加国民手机持量更爆炸式增长方便Android手机户时点喜欢菜品提出种操作简便功齐全占资源少户节约流量网订餐应提出系统功
需求界面:
客户端:
1登陆注册界面
2显示菜品界面
3搜索菜品界面(菜品名称种类店铺名称进行搜索)
4购物车界面
5信息界面
6菜品详情界面
服务器端:
1 登陆界面
2 订单理菜品理会员理界面
需求实现功:
客户端:
1实现客户端服务器间连接
2实现登陆注册功
3实现登陆浏览服务器数数进行系列操作
4菜品加入购物车结算生成订单
5生成订单信息传回服务器端
服务器端:
1实现理员登陆
2实现添加删修改菜品信息
3实现客户端传订单进行处理
4实现添加删会员列表
功模块图31示:
图31 系统功模块图
32 模块结构流程
321 客户端
表31 客户端概设计表
客户端模块
简说明
登陆模块
连接服务器前提登陆成功
注册模块
连接服务器前提注册成功
浏览菜品模块
服务器中读取数数封装显示菜品列表中
菜品详情模块
点击菜品进入菜品详细介绍订餐服务页面
搜索模块
户选择条件手机数库中搜索菜品
购物车模块
户定菜品订单信息显示模块中点击结算钮生成订单传送回服务器
信息模块
显示户信息
图32 客户端流程图
322 服务端
表32 服务器端概设计表
服务器端模块
简说明
登陆模块
提供理员登陆
订单信息模块
显示现订单信息处理钮
菜品添加删修改模块
显示客户端菜品进行添加删修改操作
会员理模块
会员进行添加删查信息
图33 服务器流程图
33 数库设计
数库结构组织数库文件设计根途求等决定数库整体组织形式等系列问题
数库顾名思义存放数仓库仓库计算机存储设备数定格式存放数库中数定模型组织描述存储具较重复度较高数独立性易扩张性定范围种户享涉数库软件开发中需根解决问题性质规模采前端程序创建工具等做出合适数库类型选择
该项目中建立两数库客户端服务器种设计方式户减少许必流量浪费果创建服务器数库话户次连接服务器时会服务器资源全部接受遍事实该项目需实时更新数菜品信息久会变动考虑客户端创建数库服务器端发送数存储数库中服务器更新时需传递改变数实现更新
331 数库表结构
服务器数库(SQL Server 2005)
Admin表:理员编号户名密码权限
BaseProducts表:菜品编号菜品名字菜品种类菜品价格菜品图片
DetailOrders表:订单编号详细编号菜品编号数量
DetailProducts表:编号菜品编号菜品价格菜品状态折扣菜品描述
Member表:会员编号会员名字会员密码会员性会员电话会员址会员积分会员金钱
Orders表:订单编号订单生成时间会员编号订单状态
客户端数库(SQLite)
Shoppingrecord表:订单编号详细编号菜品编号数量
Showedgoods表:菜品编号菜品名字菜品种类菜品价格菜品图片
332 数
系统ER(实体联系)图描述数关系模型建立数模型系统8实体关系图34示
图34 全局ER图
面列举实体:
理员实体(Admin)包括理员编号理员姓名(登录姓名)登录密码理员等级等属性图35示
图35 理员实体属性图
会员实体(Member)包括会员编号会员姓名(登录帐号)登录密码理员性联系电话联系址会员积分等属性图36示
图36 会员实体属性图
333 客户端数库连接
Andorid数库存储位置datadata<项目文件夹>databases目录Android利ContentProvider作容提供商SQLiteOpenHelper数库帮助类进行数库创建操作程序中数库类MyopenHelper extends SQLiteOpenHelper(继承关系)列出连接数库代码:
public class MyopenHelper extends SQLiteOpenHelper {
生成表shoppingrecod记录购买商品
private static final String RECORD_TABLE create table shoppingrecord (oid integer primary key doid integerbid integerdonum integer)
生成表showedgoods存储次购买商品
private static final String GOODS_TABLE create table showedgoods (bid integer primary key bname varcharbstyle varcharbprice floatbpicture varchar)
创建表
public void onCreate(SQLiteDatabase db) {
dbexecSQL(RECORD_TABLE)
dbexecSQL(GOODS_TABLE)
}
更新表
public void onUpgrade(SQLiteDatabase db int oldVersion int newVersion) {
dbexecSQL(drop table if exists shoppingrecord)
dbexecSQL(drop table if exists showedgoods)
dbexecSQL(RECORD_TABLE)
dbexecSQL(GOODS_TABLE)
}
334 服务器数库连接
服务器端采SQL Server 2005创建数库首先导入sql2000_2005jdbcjar库文件然数库配置工具中开启SQL Server服务接java代码中实现连接数库功代码:
public static Connection getCon() {
Connection con null
if (isInitialized) {
return con
}
try {
ClassforName(propgetProperty(className))
连接数库语句url user pwd配置文件sqlini中
con DriverManagergetConnection(propgetProperty(url) prop
getProperty(user) propgetProperty(pwd))
} catch (Exception e) {
eprintStackTrace()
}
return con
}
Sqlini配置文件容
classNamecommicrosoftsqlserverjdbcSQLServerDriver
urljdbcsqlserverlocalhost1433databaseNameDinner
usersa
pwd123
34 系统结构
系统采HTTP协议进行数传输采CS结构客户端基Android操作系统台智手机业务逻辑服务器端实现数存储数库服务器
341 部署图
系统部署图37示客户端采基Android操作系统台智手机服务器端包括服务器图形界面化工具数库服务器处理业务逻辑数增删改查
图37 系统部署图
342 类图
根已建立例图确定建立象类确定属性操作通检查类定义分析问题需求运该领域知识确定类属性根系统功需求系统设计需确定类操作系统6实体类分理员实体类(Admin)会员实体类(Member)订单实体类(Orders)订单详情实体类(DetailOrders)商品实体类(Products)商品详情实体类(DetailProducts)图38示
图38 实体类
35 执行概念
系统时序图图39示
图39 系统时序图
1客户端发送请求服务器服务器台Servlet负责处理数
2服务器业务逻辑处理会调DAO进行数处理
3调实体类数保存数库DB中
4DAO返回结果Servlet
5Servlet结果返回客户端
第四章 系统实现
41 Android环境搭建
事物运行环境Android环境够运行面介绍Android开发环境配置
搭建开发环境需软件:
1操作系统:Windows 7Linux
2软件包:Android SDK(Software Development kit Java Development kit) ADT(Android Develoopment Tool)
3IDE环境:Eclipse IDE+ADT Eclipse33
4JDK:Java Runtime Environment虚拟机 (JDK)Java Development kit
安装步骤:
第步:安装Java虚拟机sunjava6jdk版
第二步:安装Eclipse35工具 官网httpwwweclipseorgdownloads
选择版(图41):进行安装
图41 eclipse载
第三步:安装Android SDK:首先载SDK网址载Httpdeveloperandroidcomsdk 图42选择相应系统进行安装
图42 SDK载
第四步:安装Android ADT插件
运行Eclipse选择help>install new software 选择add会弹出框图43示
图43 ADT安装
点击OK选择安装软件占next然选择接受协议直安装成功重启Eclipse软件设置Android SDK HomeWindow>refrence
图44 设置SDK路径
SDK location中输入SDK Tools路径:D\android\androidsdk点击OK
样Android环境已搭建成功
42 客户端
421 系统登录
登陆模块界面图45示显示登陆窗口中加入许控件文输入框(EditText)文显示框(TextView)单选钮(RaidoButton)复选钮(CheckBox)等然系列布局条理放窗口中
图45 登陆窗口
户点击游客登陆时会服务器数库进行匹配直接进入界面代码:
if (flag) {
户选择游客登陆时点击登陆钮直接进入界面
Intent intent new Intent(LoginActivitythis
ProductListActivityclass)
startActivity(intent)
Intent intent1 new Intent(LoginActivitythis
UpdateServiceclass)
startService(intent1)
}
户点击会员登陆时会户输入数服务器端数库中数进行匹配果相登陆成功否弹出登陆失败信息果户点击记住密码选项户输入户名密码保存SharedPreferences中代码:
String name etUsernamegetText()toString()trim()
String password etPasswordgetText()toString()trim()
包装户发送户数
Member member new Member(name password)
protocolHelpersetObject(member)
protocolHelpersetRequest(ProtocolHelperREGISTERProtocolHelperQUERY member)
result protocolHelpersendRequestVO()
服务端发送数
if (resultsize() > 0) {
response resultget(0)
}
根服务端相应信息进行相应判断
if (response null) {
户名存sharedPreferences
Editor namedata sharedPreferencesedit()
namedataputString(name etUsernamegetText()toString()trim())
namedatacommit()
密码存sharedPreferences
Editor passworddata sharedPreferencesedit()
passworddataputString(password etPasswordgetText()toString()trim())
passworddatacommit()
登录成功进入界面
else 登录失败弹出错误信息
户点击注册钮时通AndroidIntent机制登陆界面跳转注册界面接实现系统注册功
422 系统注册
注册界面图46登陆界面属布局文件摆放控件模块中必须输入正确注册信息正常进行注册
图46 注册界面
户点击取消钮时界面会跳转回登陆界面户点击注册钮时会服务器端数库进行连接户填信息拼接发服务器服务器处理数插入数库中应表中客户端实现注册代码:
bRegistersetOnClickListener(new OnClickListener() {
public void onClick(View v) {
获取户输入数
if(nameequals()||passwordequals()||repasswordequals()){
果户输入户名密码空出提示户名密码空
}else {果空先放入HashMap中做密码输入否致判断
判断输入密码否致
if (infoHashMapget(password)equals(
infoHashMapget(repassword))) {
拼凑数
data name + infoHashMapget(username) +
+ password + infoHashMapget(password) +
+ sex + infoHashMapget(sex) + + num
+ infoHashMapget(number) + + address
+ infoHashMapget(address)
Member membernew Member(namepasswordinfoHashMap
get(sex)numberaddress)
protocolHelpersetObject(member)
准备请求数
protocolHelpersetRequest(ProtocolHelperREGISTER
ProtocolHelperINSERT data)
服务端发送请求
response protocolHelpersendRequest()
判断响应信息根信息触发事件
if (responseequals(success)) {
跳转界面
} else 话框形式出错误信息
} else 话框形式出错误信息密码必须致
423 浏览菜品
户登陆成功者选择游客登陆成功会直接进入界面图47界面布局采TabHost分页式布局Tab应Activity通addTab方法添加Tab控件Android手机Activity享界面操作方便简单布局
图47 界面
户选择菜单选项时面列出服务器端发送菜品简信息数客户端想数必须进行系列处理模块采ListView显示菜品信息ListView列表形式展示具体容够根数长度适应显示想ListView显示数必须添加适配器(Adapter)适配器分种ArrayAdapterSimpleAdapterBaseAdapter等等该ListView中显示数较图片信息等采BaseAdapter构建适配器
构建BaseAdapter核心代码:
菜单模块定义适配器
class ProductAdapter extends BaseAdapter {
public View getView(int position View convertView ViewGroup parent){
ViewHolder viewHolder null
果convertView空 创建View
if (convertView null) {
LayoutInflater inflater LayoutInflaterfrom(ctx)
viewHolder new ViewHolder()
convertView inflaterinflate(Rlayoutlistitem null)
获listitem布局中控件添加View
convertViewsetTag(viewHolder)
}
果convertView空 直接灌入数
else { viewHolder (ViewHolder) convertViewgetTag() }
获数灌入convertView中
return convertView} }
服务器获菜品信息数代码:
public void proRequest() {
helpersetRequest(ProtocolHelperGOODSLIST ProtocolHelperQUERY )
BaseProducts bp new BaseProducts()
bpsetBid(1)
helpersetObject(bp)
List