基于Android的网上订餐系统毕业论文


    XX 学

    毕 业 设 计( 文 )




    题目
    基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配置文件注册通元素声明Service生命周期调startService()启动Service者bindService()方法绑定存Service
    (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 result helpersendRequestVO()
    if (result null) { }}

    424 搜索菜品

    图48 搜索界面
    果菜品数量户会难找心仪菜品项目方便户选择特定菜品设计搜索菜品功通搜索界面户通商品名称商家名称商品价格三搜索条件搜索胃口菜品图48该功暂时仅支持单条件搜索列出商品名称搜索核心代码外两种搜索代码差
    通商品名称模糊查询
    public void getProductByName(String name) {
    List productListByname new ArrayList()
    Cursor cursor dbutilquerygoodsByName(name)
    int count cursorgetCount()
    cursormoveToFirst()
    if (count > 0) {
    菜品数遍历查找
    for (int i 0 i < count i++) {
    HashMap map new HashMap()
    mapput(bid cursorgetInt(0))
    mapput(bpicture cursorgetString(4))
    mapput(bname cursorgetString(1))
    mapput(bstyle cursorgetString(2))
    mapput(bprice cursorgetString(3))
    productListBynameadd(map)
    cursormoveToNext()
    }
    cursorclose()
    productList productListByname
    searchAdapternotifyDataSetChanged()
    } else 提示没找查询菜品
    }
    425 订餐
    订餐功项目核心功前面做仅仅订餐功做铺垫户点击行菜品时菜品时菜品列表中搜索列表中会跳转菜品详细信息界面跳转时Intent里面会PutExtra菜品数详细信息界面中Intent里面数取出显示界面图49该界面中显示菜品图片价格评分否折扣菜品详细介绍等菜品信息两钮输入订餐份数文输入框该输入框允许输入数字果户选菜品准备菜品加入购物车时户首先输入菜品份数点击加入购物车钮时系统进行系列逻辑处理果购物车中没物品直接加入果购物车中已物品户刚加入购物车菜品数购物车中原数进行匹配果已提示户该物品购物车里已反加入购物车

    图49 菜品详情
    列出跳转界面时数处理代码:
    菜品行点击事件数putExtraIntent中
    public void onItemClick(AdapterView<> parent View view int id
    long position) {
    if (position 1) {
    ViewHolder holder (ViewHolder) viewgetTag()
    TextView tvid (TextView) viewfindViewById(Ridtvid)
    TextView tvname (TextView) viewfindViewById(Ridtvname)
    TextView tvprice (TextView) viewfindViewById(Ridtvprice)
    Intent intent new Intent(ProductListActivitythisDetailsActivityclass)
    intentputExtra(pic (Bitmap) holderivpicturegetTag())
    intentputExtra(bid tvidgetText()toString())
    intentputExtra(bname tvnamegetText()toString())
    intentputExtra(bprice tvpricegetText()toString())
    startActivity(intent)
    详细信息界面中取出Intent里面数代码:
    Intent intent getIntent()
    Bitmap pic(Bitmap)intentgetParcelableExtra(pic)
    ivdish(ImageView)findViewById(Ridivdish)
    ivdishsetImageBitmap(pic)
    获商品id
    tvbidintentgetStringExtra(bid)
    获菜名
    bname intentgetStringExtra(bname)
    price intentgetStringExtra(bprice)
    菜品添加购物车中代码:
    baddsetOnClickListener(new OnClickListener() {
    public void onClick(View v) {
    int countProductListActivitycartdatasize()
    if(count>0)表示购物车中数
    {
    for(int i0iString existid(String)((HashMap)
    ProductListActivitycartdataget(i))get(bid)
    if(existidequals(tvbid)) 购物车中相数
    else
    {
    HashMap item new HashMap()
    itemput(bid tvbid)
    itemput(bprice price)
    itemput(bname bname)
    itemput(bnum etinputgetText()toString())
    dataadd(item) HashMap添加List中
    else购物车空时直接添加
    Intent intent new Intent(DetailsActivitythisProductListActivityclass)
    intentputExtra(changenum etinputgetText()toString())
    startActivity(intent)
    426 结账
    然订餐完成购物车模块进行结账操作
    首先户选中购物车中物品点击menu钮物品进行修改数量删操作实现Android menu功必须重载onCreateOptionsMenuonPrepareOptionsMenuonOptionsItemSelected三方法第方法创建menu钮显示菜单项第二方法限制菜单项购物车列表中显示第三方法实现菜单项功模块中menu添加两菜单项修改数量删购物车中物品数量进行修改删操作没选中物品会提示错误
    次条ListView添加长点击事件setOnLongClickListener接口接口中必须实现onClick方法户点击物品放时会直接该选中物品删
    点击结算钮系统会订单中数进行封装protocolHelper中sendRequest方法服务器发送请求接受服务器端返回消息果消息空说明订单生成成功提示户订单生成该方法代码:
    ProtocolHelpersetRequest方法请求类型操作传送数data进行封装
    helpersetObject(order)
    helpersetRequest(helperORDER helperINSERT )
    ProtocolHelpersendRequest方法服务器发送请求返回服务器发回消息
    String result helpersendRequest()
    果服务器返回消息null说明订单生产成功弹出提示
    if (result null && resultequals(fail)) {
    ToastmakeText(ProductListActivitythis
    订单已生成谢谢惠顾 ToastLENGTH_LONG)show()
    List list new ArrayList()
    setList(list)
    创建适配器象
    cartadapter new SimpleAdapter(
    ProductListActivitythis cartdata
    Rlayoutcartlist new String[] { bid
    bname bprice bnum } new int[] {
    Ridmarkid Ridshopname Ridprice
    Ridnumber })
    设置listview适配器
    cartlistViewsetAdapter(cartadapter)
    客户端基功介绍结束接介绍服务器端功实现
    43 服务端
    服务端分理员登陆订单理菜品理会员理四模块商家客户端发送数进行处理客户端数进行更新操作服务端代码JavaSE实现面模块进行详细分析
    431 系统登录
    理员运行程序必须进行登录认证服务器端数库户表中户权限字段果值0表示理员账号果值1表示户账号模块中仅仅理员提供登录功支持理员注册功理员唯系统数安全性种表现登录界面图410示理员点击登陆时果户名密码输入错误会弹出错误信息输入正确进入理界面

    图410 理员登陆界面
    该模块中核心代码获取户输入信息数库中理员信息进行匹配代码:
    public void actionPerformed(ActionEvent e) {
    if (egetActionCommand()equals(login)) {
    if (jt_passwordgetText()toString()equals()
    | jt_usernamegetText()toString()equals()) {
    JOptionPaneshowMessageDialog(null 户名密码空)
    } else {
    AdminDAO admin new AdminDAO(config)
    String logo adminloginAdmins(jt_usernamegetText()toString()
    jt_passwordgetText()toString())
    if (logoequals(success)) {
    logindispose()
    MainJframegetInstance()
    } else {
    JOptionPaneshowMessageDialog(null 户名密码错误)}}
    } else if (egetActionCommand()equals(exist)) {
    Systemexit(0)}}
    432 订单理
    理员登陆成功进入理界面该界面中采JavaSE卡片布局方式布局方式客户端界面布局方式差面板框架理界面中理员操作数方式分订单理菜品理会员理三模块首先介绍订单理模块设计实现
    订单理模块中分三部分面查订单钮中间订单基信息表结构订单编号订单生成时间请求姓名请求联系方式订单状态里DefaultTableModle实现样表结构面查询订单详细信息钮图411
    理员点击查订单时系统会数库中订单表信息取出放入DefaultTableModle里面遍理员订单进行查理员选中行订单信息点击查订单详细信息钮时会弹出订单详情话框图412示该话框中显示订单中信息订单完成钮果交易完成里交易完成定义商家菜品做送户址户付清费理员点击该钮会弹出订单完成消息框订单订单理界面中移

    图411订单理界面


    图412 订单详细话框
    功中难点订单完成订单列表中移该模块样设计数库中订单加标识位初始化0查询订单时标识位0订单添加列表中点击订单完成时标识位改1然查询次订单表订单移核心代码:
    public void complete(final int id) {
    btn_complete new Button(订单已完成)
    btn_completesetBounds(300 20 100 30)
    thisadd(btn_complete)
    btn_completeaddActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    if (OrdersDAOupdateState(id 1)) {
    JOptionPaneshowMessageDialog(null 订单已完成)
    listJPanel list listJPanelgetInstance()
    listinsertIntoTable(vec)} } })}

    433 菜品理
    菜品理界面需实现功理员菜品进行增加删修改等操作该模块中布局方式订单理界面基样图413示

    图413 菜品理界面
    添加新菜功实现:理员点击添加新菜钮时会弹出输入菜品信息界面图414示界面中输入菜品名称价格菜系折扣传图片详细描述等点击新增钮时会进行系列判断名称空价格空等等限制理员信息输入完成会信息添加数库中菜品信息表中然菜品列表中读取出该功难点图片传功图片存入数库中图片绝路径果该路径中找图片资源会显示图片该功核心代码:
    传图片钮功代码:
    btn_uploadImaaddActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    初始化jfc_upload控件设置传图片
    jfc_upload new JFileChooser()
    jfc_uploadsetAcceptAllFileFilterUsed(false)
    设置该控件滤器图片格式(png)
    jfc_uploadsetFileFilter(new FileFilter() {
    public String getDescription() {
    return 图片格式(png)}
    public boolean accept(File f) {
    if 图片名称jpg结尾 return true
    } else return false
    设置该控件滤器图片格式(jpg)
    jfc_uploadsetFileFilter(new FileFilter() {
    public String getDescription() {
    return 图片格式(jpg)}
    public boolean accept(File f) {
    if 图片名称jpg结尾 return true
    else return false
    增加钮功实现代码:
    btn_addaddActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    insertOneProducts() 数库中插入条菜品数方法
    Vector> v productsMoreOperationJpanel
    findall()
    productsMoreOperationJpanelinsertData(v)



    图414 新增菜品界面
    修改菜品信息功:理员选中行菜品点击更改选定菜品钮会跳转更改菜品信息界面图415界面中菜品信息全显示相应文输入框里面便理员修改户点击更新会调updataOneProducts方法数库里面菜品信息更新

    415 更改商品信息界面
    删菜品功:理员选中行菜品点击删钮该选中菜品列表中删
    434 会员理
    该模块中实现功查会员列表新增会员删会员三功功中核心理员服务器端数库操作具体界面图416该模块布局前两模块差功进行分析设计理员点击新增会员时会弹出新增会员界面图417该界面中理员需输入增加会员必信息点击新增钮代码中调插入数方法实现新增会员理员需删会员时选中删会员点击删钮代码中调删数方法实现删会员功

    图416 会员理界面

    图417 增加会员界面
    Android网订餐系统客户端服务器功界面实现结束

















    第五章 结束语
    通Android手机台网订餐系统软件开发技术说Android系统整体设计深入解发现问题提出问题解决问题套简单体系整软件设计流程清晰认识开发Android网订餐明白前期需求分析数库设计两部分做导致软件户体验预期意果两部分做会软件开发变更轻松思路会更清晰户体验会更加舒适团队合作方面讲学会学老师沟通解决遇问题工作更快融入团队创造价值
    次毕业设计学四年学成果次检验提升第次独立进行应软件开发四年做课程设计次做完会成感刚开始阶段重视次毕业设计觉课程设计增强版然事实想象截然巩固设计语言外解程序设计实现方法专业知识定程度认特期间遇懂知识刚开始会慌张知道手查阅相关资料慢慢弄懂东西时候心里开始慢慢接受种学方法遇问题中会慌张条理理清问题搞懂间逻辑关联步步解决问题
    Android网订餐系统第基Android型应软件系统基前学东西融入进Android整体架构编程思想进步解Android中控件运熟练度提高毕竟第应软件肯定模块做完美会接工作中努力方面力提高做出更优秀软件



















    参 考 文 献
    [1] 张孝祥著. java业培训教程[M].北京清华学出版社2007
    [2] 余志龙编著.Google Android SDK开发范例全[M].北京民邮电出版社200971
    [3] E2ECloud工作室著.深入浅出Google Android[M].北京民邮电出版社2009081
    [4] 靳岩 姚尚朗著.Google Android开发入门实战[M].北京清华学出版社20090701
    [5] 高昂著.支持动态语言Android台[M].北京民邮电出版社20090507
    [6] eoeAndroid开发社区.httpwwweoeandroidcom. 20100410
    [7] JavaEye坛.httpwwwjavaeyecomforums. 20100415
    [8] Android API文档.httpandroidappdocsappspotcomindexhtml. 20100410
    [9] 高焕堂编.Android 应框架原理程式设计(第三版)[M].北京清华学出版社20081003
    [10] 杨丰盛编.Android 应开发揭秘[M].西安机械工业出版社20100125
















    致 谢
    反复添加修改篇毕业文终成稿第篇毕业文体味非常复杂心情选题收集资料程序编写数原理尝试喜悦痛苦彷徨助现复杂心情烟消云散甚点成感
    首先想感谢母校XX学里度四年学时光四年里成长收获
    感谢导师XX老师热情治学严谨细心正私帮助苦恼时候鼓励迷茫时候指明道路整文定稿程中处老师心血
    感谢班XX老师学四年中授课老师学知识世界精彩学会做做事
    感谢四年里陪伴学朋友生丰富奋斗路孤独谢谢




















    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    网上订餐系统的设计与实现

     网上订餐系统的设计与实现摘 要近年来,我国的互联网正处于快速发展的阶段,使用网络的人群不断扩增。网络消费成为一种主流,其中网上订餐就是其中一个发展迅速的网络消费。一个功...

    3年前   
    690    0

    基于SSM框架的校园网上订餐系统的设计与实现

    基于SSM框架的校园网上订餐系统的设计与实现Design and Implementation of Campus Online Food Ordering System B...

    2年前   
    1172    0

    基于Android Studio的饼图账单的设计与开发Android毕业论文

    毕 业 论 文 基于Android Studio的饼图账单的设计与开发Design and Development of PieChart Billing Based on Android S...

    4年前   
    786    0

    基于Android的教学课程系统设计与开发

    摘 要移动应用已经成为人们生活必不可缺的一部分,大学生身为移动应用的最大用户群体,在生活学习娱乐各个方面都与移动应用有着紧密联系,然而针对大学生校园学习的移动应用却寥寥无几,因为不同的...

    3年前   
    611    0

    基于android的物业管理系统的设计与实现19.8

     目录基于android的物业管理系统的设计与实现 3摘 要 3Android property managemengt system 5Abstract 51 绪论 61.1 选题背景 6...

    3年前   
    797    0

    基于安卓Android智能家居详细设计毕业论文

    基于Android的智能家居目 录第 1 章 项目概述 11.1 项目背景 11.2 术语定义 2第 2 章 技术方案 32.1 系统描述 32.2 功能描述 32.3 项目功能图 4...

    3年前   
    1129    0

    基于Android的FTP文件传输

     毕业设计(论文) 题 目 基于Android的FTP文件传输 姓 名 学 ...

    5年前   
    1056    0

    基于Android植物大战僵尸

    摘要 手机游戏,顾名思义就是指在手机上运行的游戏软件。目前用来编写手机程序使用最多的是 Java 语言。随着科技的发展,手机的硬件更新速度越来越快,功能也越来越强大。现在的手机游戏具有很强的...

    5年前   
    1300    0

    基于Android智能风扇的设计

    由于科技越来越发达,智能硬件也使用越来越多,基于蓝牙的技术开发以及应用也是快速的发展。其使用在Android系统和Windows系统等平台上都可以使用蓝牙无线模块。可以实现了主蓝牙设备和从设备它...

    3年前   
    969    0

    企业级Java网上订餐系统报告

     企业级Java应用开发实践报告 课程代码:1302451 课程名称:企业级Java应用开发 课程类别:专业主干课 开课学期: ...

    5年前   
    1110    0

    网上订餐系统分析与设计实验报告

    随着人民的生活水平的提高,餐厅也蓬勃开展,线下的实体效劳已经满足不了日益进步的需求。网络订餐系统给人们带来了方便,成为一种全新的商务模式。网上订餐平台一方面为餐厅搭建了一个集中的宣传平台,能为餐...

    2年前   
    775    0

    大学生网上订餐系统-UML建模

    随着网络技术的飞速发展,人们的生活也越来越追求方便化。经过观察,发现整个大学城的学生对平常订餐需求很大,但他们订餐的方式都是比较原始的电话订餐。而各个餐饮店也是各自为战,自己接电话,记录订单需求...

    5年前   
    3118    0

    网上订餐系统外文翻译参考文献综述

     毕业设计(论文)外文资料翻译 系: 计算机系 专 业: 计算机科学与技术 姓 ...

    5年前   
    1925    0

    基于Android的智能停车系统的设计与开发(修改版)

    在对城市停车位供给紧缺、停车难以及乱停车等问题进行解决时,可以研究其根源,对城市的有效停车位进行增加,构建现代化停车场,另外也可以针对目前已有的停车场进行科学合理的配置、控制以及调度。

    3年前   
    488    0

    基于Android移动平台图像处理系统开发

    在今天的全球化世界里,科技不断的进步与创新更加促进了外语学习途径的多样化,随着人们学习方式的便捷并迅速的发展,特别是以电子词典为主工具的出现,用户对此类产品的便捷、功能的要求越来越高。目前,电子...

    3年前   
    3342    0

    基于Android的天气预报查询系统的实现毕业设计

     基于Android的天气预报查询系统的实现 摘要:随着智能手机一步步走进人们的生活,它将成为人们获取信息的主要设备,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。因此,...

    5年前   
    1956    0

    基于Java的网上购物系统的设计与实现

     XX 学 院 本科毕业论文(设计) 题 目 基于JAVA的网上购物 系统的设计与实现 院 系 计算机...

    5年前   
    2581    0

    基于JSP的网上书店推荐系统设计与实现

    本系统旨在设计一个网上的书店和书籍相关信息的服务网站,网站的基本运作流程如下:

    3年前   
    565    0

    Android实训报告基于Android的游戏开发

    通信与电子信息专业实训报告项目名称:基于Android的游戏开发 班 级 通信班 姓 名 ...

    3年前   
    1078    0

    基于Android的中国象棋毕业设计

    基于Android的中国象棋毕业设计 摘 要 现在智能操作系统迅速发展,使得智能手机和其他的智能移动设备得到广泛普及,因此,智能操作系统的应用软件开发及其需要的服务将有广阔的发展前景...

    5年前   
    1210    0

    文档贡献者

    z***u

    贡献于2019-06-05

    下载需要 10 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!