毕业论文(基于Android的网上订餐系统和原代码)
更新时间:2024-06-06 02:01:01 阅读量: 综合文库 文档下载
毕 业 设 计( 论 文 )
题作学专学
目 基于Android的网上订餐系统 者 院 业 号
二〇一二 年 五月 十六日
指导教师
摘 要
随着科技的发展,二十一世纪成为了以网络化,信息化为核心的社会。网络商业化也成为了时下最热门的词汇。随着信息技术的不断更新,特别是07年谷歌公司推出了Android开放源码,让Android操作系统成为了移动平台的宠儿,本系统主要分析了中小型餐饮店管理与发展的现状所面临的问题,发现传统的服务模式已经不能适应市场发展的需求,方便、快捷、个性化的网上订餐服务正在进入人们的生活。针对这类问题,结合当代科技发展的新成果,本文构思规划了一套最贴切的服务模式,为中小型餐饮店外送服务提供了一套系统。
本设计是一个基于Android手机的网上订餐系统,采用C/S模式,能为客户提供网上选择浏览菜品介绍,点菜订餐服务,并为管理员提供一个服务平台实现用户信息与顾客订单的管理,从而提高了服务的质量,本文从系统需求、系统实际、代码实现几个方面介绍了整个软件的开发过程,这个系统采用JAVA、SQL Server数据库,并利用MyEclipse、TOMCAT、Android SDK、ADT、AVD、DDMS等开发环境或者开发工具。
关键词:Android;Java;MyEclipse;SQLite;SQL Server 2005
湖南科技大学本科生毕业设计(论文)
ABSTRACT
With the development of science and technology,the 21st century has become a society centred on information and network.Hence 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 more.A more convenient, quicker,and 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 C/S mode. It can provide services for clients to choose dishes introduction freely ,and to order meal actively.Besides, 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 services.In this article, I’d like to introduce the whole development process of this software in details from the system requirements, system realization,code implementation and some other aspects.This system uses JAVA,SQL Server database,in addition, MyEclipse、TOMCAT、Android SDK、ADT、AVD、DDMS and other development environments or development tools are also used in it.
Keywords: Android;Java;MyEclipse;SQLite;SQL Server 2005
湖南科技大学本科生毕业设计(论文)
目 录
第一章 引 言 ............................................................................................... 1
1.1项目背景 ....................................................................................................................... 1 1.2 项目目的 ................................................................................................................... 1 1.3 主要内容 ................................................................................................................... 2
第二章 系统理论与技术 ................................................................................... 3
2.1 Android .......................................................................................................................... 3
2.1.1 Android简介 ....................................................................................................... 3 2.1.2 Android Features特性 ........................................................................................ 3 2.1.3 Android基本框架(Android Architecture) ..................................................... 4 2.1.4 Android系统的四大组件 ................................................................................... 4 2.2 Java ................................................................................................................................ 5 2.3 SQL Server 2005和SQLite数据库 ............................................................................ 5 2.4 C/S模式 ........................................................................................................................ 6
第三章 系统分析与设计 ................................................................................... 8
3.1 功能需求 .................................................................................................................... 8 3.2 模块结构与流程 ........................................................................................................ 9
3.2.1 客户端 ................................................................................................................ 9 3.2.2 服务端 .............................................................................................................. 10 3.3 数据库设计 ................................................................................................................ 11
3.3.1 数据库表及其结构 .......................................................................................... 11 3.3.2 数据 .................................................................................................................. 12 3.3.3 客户端数据库的连接 ...................................................................................... 13 3.3.4 服务器数据库的连接 ...................................................................................... 14 3.4 系统结构 .................................................................................................................... 15
3.4.1 部署图 .............................................................................................................. 15 3.4.2 类图 .................................................................................................................. 15 3.5 执行概念 .................................................................................................................... 16
第四章 系统实现 ............................................................................................... 18
4.1 Android环境搭建 ....................................................................................................... 18 4.2 客户端 ........................................................................................................................ 19
4.2.1 系统登录 .......................................................................................................... 19 4.2.2 系统注册 .......................................................................................................... 21 4.2.3 浏览菜品 .......................................................................................................... 23
- i -
湖南科技大学本科生毕业设计(论文)
4.2.4 搜索菜品 .......................................................................................................... 25 4.2.5 订餐 .................................................................................................................. 26 4.2.6 结账 .................................................................................................................. 28 4.3 服务端 ........................................................................................................................ 29
4.3.1 系统登录 .......................................................................................................... 29 4.3.2 订单管理 .......................................................................................................... 30 4.3.3 菜品管理 .......................................................................................................... 32 4.3.4 会员管理 .......................................................................................................... 35
第五章 结束语 ................................................................................................. 37 参 考 文 献 ....................................................................................................... 38 致 谢 ............................................................................................................. 39
- ii -
湖南科技大学本科生毕业设计(论文)
第一章 引 言
1.1项目背景
伴随着我国市场经济的高度发展,企业越来越依赖于市场和客户,这种依赖关系已经开始逐步提升到关乎企业生存的高度。如何获得更多客流量,如何通过小的代价而使商家获得更大的知名度,这是使企业得以生存、发展、壮大的关键。年销售过亿的众多电子商务案例让人们看到了更多的商机。与应用场景相当有限的PC (个人电脑)相比,生而具备便携属性的手机给了电商们更大的想象空间。移动电子商务由此产生了。移动电子商务就是利用手机、PDA及掌上电脑等无线终端进行的B2B、B2C或C2C的电子商务。它将因特网、移动通信技术、短距离通信技术及其它信息处理技术完美的结合,使人们可以在任何时间、任何地点进行各种商贸活动,实现随时随地、线上线下的购物与交易、在线电子支付以及各种交易活动、商务活动、金融活动和相关的综合服务活动等。
而Android操作系统凭借着自己开放的平台允许任何移动终端厂商加入到Android联盟中,从而使得越来越多的用户倾向于选择操作系统为Android的手机品牌。选择设计基于Android平台的软件,毫无疑问能覆盖更多的群众, 餐饮业在电子商务中还处于形成的初期,传统的餐饮业中,大都是以实际门面形式来进行宣传和交流。作为网络普及化的社会,这还缺少了一些更为现代化的元素。餐饮业是一个个性化、多样化的服务业,而电子商务则最能体现个性化、多样化服务的方式。而且现在大部分电子商务都体现为向大企业服务,结合餐饮这个行业的特点,最终还发展为同小区小店服务的模式。以最贴切的方式,最灵便的服务进入个个网络社区,进入人们的生活。
1.2 项目目的
如今宅男宅女日益增加,很多餐饮店都提供外卖服务,传统的外卖服务需要客户给商家打电话并报出地址,商家那边也需要记录下客户的信息,才能将外卖准确的送达,但在这之间都是人在操作,难免会出现偏差和遗漏为客户或者商家带来损失。如今3G网络覆盖范围越来越广,Android手机也占领了手机行业的大头,那么我们可以考虑做一个Android的应用来方便商家和客户,让出错率达到最低。用户要点餐的时候只需手机上网点一下菜单就能吃到自己喜欢吃的菜品,这里面蕴含了很大的商机,完全能够有效的提高商家的营业额,基于以上因素,所以提出了这样一个基于Android的网上订餐系统。
本项目的目的是开发一个可以让用户在手机上操作的客户端,然后与服务器连接进行数据交互,来实现网上订餐的流程。客户端需要实现浏览菜品,点菜,下订单,搜索等功能。服务器端需实现添加、删除、修改菜品、对订单的处理,以及对会员的管理等功能。
- 1 -
湖南科技大学本科生毕业设计(论文)
本项目是一款基于Android手机平台的订餐系统,使拥有Android手机的用户生活更加方便快捷,使得手机显得更生动灵活化,与人们更为接近,让手机主人随时随地都能吃到自己喜欢的菜品。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其他在市场上的特点。
1.3 主要内容
通过对实际情况的调研,本系统大致可分为三个部分,即手机客户端、电脑服务器端和图形化界面工具。系统采用HTTP协议来进行数据传输。采用C/S结构,客户端为基于Android操作系统平台的智能手机,主要的业务逻辑则服务器端来实现,数据存储在数据库服务器。客户端主要实现位置服务,商品展示,会员注册及登录,购物车,商品搜索和个人信息等功能,服务器端主要是完成数据交互和数据逻辑处理,而图形界面化工具则是负责商品、订单等的增删改查。
为了一步步实现确定的功能,本论文主要内容安排如下: 第一章:引言(介绍课题研究的背景和目的)
第二章:系统理论与技术(在本项目中设计到的技术简介)
第三章:系统分析与设计(需求分析,数据库的分析与设计以及系统结构的设计) 第四章:系统实现(根据需求分析来实现系统的各个模块功能,使客户端与服务器,服务器与数据库能正常数据交互。这部分主要搭建开发环境,编写代码,测试,运行)
第五章:结束语(对本项目做一个项目总结)
- 2 -
湖南科技大学本科生毕业设计(论文)
第二章 系统理论与技术
2.1 Android
2.1.1 Android简介
Android一词的本义指“机器人”,同时也是Google于2007年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 4.0.3。 2.1.2 Android Features特性
Android系统有如下的几大特性[1]: ·应用程序框架 支持组件的重用与替换 ·Dalvik虚拟机 专门为移动设备做了优化
·内部集成浏览器 该浏览器基于开源的WebKit引擎
·优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES ·SQLite 用作结构化的数据存储
· 多媒体支持 包括常见的音频、视频和静态印象文件格式(如MPEG4, MP3, AAC, AMR, JPG, PNG)
·GSM电话(依赖于硬件)
·蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件) ·照相机,GPS,指南针,和加速度计 (依赖于硬件)
·丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
- 3 -
湖南科技大学本科生毕业设计(论文)
2.1.3 Android基本框架(Android Architecture)
图 2.1 Android Architecture
2.1.4 Android系统的四大组件
在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。下面分别介绍四大组件[3]:
(1)Activity 简介
在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。
(2)Service 简介
顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件注册,通过
(3)Broadcast Receiver 简介
Broadcast Receiver 顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用
- 4 -
湖南科技大学本科生毕业设计(论文)
sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent
(4)ContentProvider简介
Content Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。
Android 为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的Content Provider。它们被定义在android.provider包下面。通过这样定义好的ContentProvider 我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问。
2.2 Java
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础[7]。
2.3 SQL Server 2005和SQLite数据库
SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT
- 5 -
湖南科技大学本科生毕业设计(论文)
推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已经发布。
2.4 C/S模式
在网络连接模式中,除对等网外,还有另一种形式的网络,即客户机/服务器网,Client/Server。在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。
这里客户和服务器都是指通信中所涉及的两个应用进程(软件)。使用计算机的人是计算机的“用户”(user)而不是“客户”(client)。但在许多国外文献中,也经常把运行客户程序的机器称为client(这种情况下也可把client译为“客户机”),把运行服务器程序的机器称为server。所以有时要根据上下文判断client与server是指软件还是硬件。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
C/S架构软件的优势和劣势[9]:
应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务
- 6 -
湖南科技大学本科生毕业设计(论文)
器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
C/S架构的劣势是高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
(4)传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。
- 7 -
湖南科技大学本科生毕业设计(论文)
第三章 系统分析与设计
3.1 功能需求
随着3G时代的到来,手机应用越来越普遍,加之国民手机持有量更是爆炸式增长。为了方便Android手机用户能随时随地点到自己喜欢的菜品,提出一种操作简便,功能齐全,占用资源少,能为用户节约流量的的网上订餐应用,于是提出本系统的主要功能。
需求界面如下: 客户端:
1、登陆、注册界面 2、显示菜品界面
3、搜索菜品界面(按菜品名称、种类、店铺名称进行搜索) 4、购物车界面 5、个人信息界面 6、菜品详情界面 服务器端: 1、登陆界面
2、订单管理、菜品管理、会员管理界面 需求实现功能如下: 客户端:
1、实现客户端与服务器之间的连接 2、实现登陆、注册功能
3、实现登陆后能浏览到服务器数据,并对数据进行一系列的操作 4、能把菜品加入到购物车,并结算生成订单 5、把生成的订单信息传回服务器端 服务器端: 1、实现管理员登陆
2、实现添加、删除、修改菜品信息 3、实现对客户端传过来的订单进行处理 4、实现添加、删除会员列表 功能模块图如3.1所示:
- 8 -
湖南科技大学本科生毕业设计(论文)
图3.1 系统功能模块图
3.2 模块结构与流程
3.2.1 客户端
表3.1 客户端概要设计表
客户端模块 登陆模块 注册模块 浏览菜品模块 菜品详情模块 搜索模块 购物车模块
简要说明
在连接上服务器的前提下登陆成功 在连接上服务器的前提下注册成功
从服务器中读取数据,并把数据封装显示在菜品列表中 点击菜品进入到菜品的详细介绍和订餐服务页面 按照用户选择的条件从手机数据库中搜索菜品 当用户定了菜品之后,所有订单信息都显示在这个模块中,
并且点击结算按钮生成订单传送回服务器
显示用户的个人信息
个人信息模块
- 9 -
湖南科技大学本科生毕业设计(论文)
图3.2 客户端流程图
3.2.2 服务端
表3.2 服务器端概要设计表
服务器端模块 登陆模块 订单信息模块 菜品添加删除修改模块 会员管理模块
简要说明 提供管理员登陆
显示现有的订单信息并给与处理按钮
对要显示在客户端的菜品进行添加删除修改操作 对会员进行添加和删除以及查看信息
- 10 -
湖南科技大学本科生毕业设计(论文)
图3.3 服务器流程图
3.3 数据库设计
数据库结构组织和数据库文件设计要根据不同用途,使用要求等,来决定数据库的整体组织形式等一系列问题。
数据库,顾名思义,是存放数据的仓库,只不过这个仓库是在计算机存储设备上的,而且数据是按一定格式存放。数据库中的数据按一定模型组织描述和存储。具有较小的重复度,较高的数据独立性和易扩张性,并且可以被一定范围内的各种用户共享。在涉及数据库的软件开发中,需要根据有待解决的问题性质,规模,以及所采用的前端程序创建工具等。做出合适的数据库类型选择。
在该项目中建立了两个数据库,客户端和服务器各一个,用这种设计方式主要是为用户减少许多不必要的流量浪费,如果只创建一个服务器数据库的话,用户每次连接上服务器时都会将服务器的所有资源全部接受一遍,但是事实上该项目并不需要实时的更新数据,因为有些菜品的信息可能很久都不会有变动,所以考虑在客户端也创建一个数据库把服务器端发送过来的数据存储在本地数据库中,当服务器有更新时只需要传递改变的数据就可以实现更新。 3.3.1 数据库表及其结构
服务器数据库(SQL Server 2005)
Admin表:管理员编号,用户名,密码,权限。
BaseProducts表:菜品编号,菜品名字,菜品种类,菜品价格,菜品图片。 DetailOrders表:订单编号,详细编号,菜品编号,数量。
DetailProducts表:编号,菜品编号,菜品价格,菜品状态,折扣,菜品描述。 Member表:会员编号,会员名字,会员密码,会员性别,会员电话,会员地址,
- 11 -
湖南科技大学本科生毕业设计(论文)
会员积分,会员金钱。
Orders表:订单编号,订单生成时间,会员编号,订单状态。 客户端数据库(SQLite)
Shoppingrecord表:订单编号,详细编号,菜品编号,数量。
Showedgoods表:菜品编号,菜品名字,菜品种类,菜品价格,菜品图片。 3.3.2 数据
系统E-R(实体-联系)图用来描述数据关系模型,可以用来建立数据模型。本系统共有8个实体,其关系如图3.4所示。
图3.4 全局E-R图
下面列举主要实体:
管理员实体(Admin)包括管理员编号、管理员姓名(登录姓名)、登录密码、管理员等级等属性,如图3.5所示。
- 12 -
湖南科技大学本科生毕业设计(论文)
管理员姓名(登录帐号)管理员编号登录密码管理员级别管理员表
图3.5 管理员实体属性图
会员实体(Member)包括会员编号、会员姓名(登录帐号)、登录密码、管理员性别,联系电话,联系地址,会员积分等属性。如图3.6所示。
会员性别登录密码联系电话会员姓名(登录帐号)会员表联系地址会员编号会员积分
图3.6 会员实体属性图
3.3.3 客户端数据库的连接
Andorid数据库存储的位置在data/data/<项目文件夹>/databases/目录下,Android是利用ContentProvider作为内容提供商,SQLiteOpenHelper数据库帮助类来进行对数据库的创建和操作。程序中数据库类为MyopenHelper extends SQLiteOpenHelper(继承关系),在此列出连接数据库的代码:
public class MyopenHelper extends SQLiteOpenHelper { // 生成表shoppingrecod,用以记录购买过的商品 private static final String RECORD_TABLE = \primary key ,doid integer,bid integer,donum integer)\ // 生成表showedgoods,用以存储上次购买过的商品 private static final String GOODS_TABLE = \ showedgoods (bid integer - 13 -
湖南科技大学本科生毕业设计(论文)
primary key ,bname varchar,bstyle varchar,bprice float,bpicture varchar)\ } //创建表 public void onCreate(SQLiteDatabase db) { db.execSQL(RECORD_TABLE); db.execSQL(GOODS_TABLE); } //更新表 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL(\ db.execSQL(\ db.execSQL(RECORD_TABLE); db.execSQL(GOODS_TABLE); 3.3.4 服务器数据库的连接
服务器端采用SQL Server 2005来创建数据库,首先得导入sql2000_2005jdbc.jar库文件,然后在数据库的配置工具中开启SQL Server服务,接下来就要在java代码中实现连接数据库的功能了,代码如下: public static Connection getCon() { Connection con = null; if (!isInitialized) { return con; } try { Class.forName(prop.getProperty(\ } //连接数据库语句,url user pwd都在配置文件sql.ini中 con = DriverManager.getConnection(prop.getProperty(\ .getProperty(\} catch (Exception e) { e.printStackTrace(); } return con; Sql.ini配置文件内容: className=com.microsoft.sqlserver.jdbc.SQLServerDriver url=jdbc:sqlserver://localhost:1433;databaseName=Dinner user=sa pwd=123 - 14 -
湖南科技大学本科生毕业设计(论文)
3.4 系统结构
本系统采用HTTP协议来进行数据传输。采用C/S结构,客户端为基于Android操作系统平台的智能手机,主要的业务逻辑则服务器端来实现,数据存储在数据库服务器。 3.4.1 部署图
系统部署如图3.7所示,客户端采用基于Android操作系统平台的智能手机,服务器端包括服务器、图形界面化工具和数据库服务器,主要处理业务逻辑和对数据的增删改查。
图3.7 系统部署图
3.4.2 类图
根据已建立的用例图确定要建立的对象类并确定属性和操作。通过检查类的定义,分析问题的需求和运用该领域知识来确定类的属性。根据系统功能需求和系统设计需要确定类的操作,本系统有6个实体类,分别为管理员实体类(Admin)、会员实体类(Member)、订单实体类(Orders)、订单详情实体类(DetailOrders)、商品实体类(Products)、商品详情实体类(DetailProducts),如图3.8所示。
- 15 -
湖南科技大学本科生毕业设计(论文)
Amin-aid : int-aname : string-acode : string+getAid() : int+setAid()+getAname() : string+setAname()+getAcode() : string+setAcode()Member-mid : int-mname : string-mcode : string-msex : string-mnumber : string-maddress : string-mscore : int-mmoney : float+getMid() : int+setMid()+getMname() : string+setMname()+getMcode() : string+setMcode()+getMsex() : string+setMsex()+getMnumber() : string+setMnumber()+getMaddress() : string+setMaddress()+getMscore() : int+setMscore()+getMmoney() : float+setMmoney()DetailOrder-oid : int-doid : int-bid : int-donum : int+getOid() : int+setOid()+getDoid() : int+setDoid()+getBid() : int+setBid()+getDonum() : int+setDonum()DetailProducts-did : int-bid : int-dappraise : float-dstate : int-ddiscount : int-dcomment : string+getDid() : int+setDid()+getBid() : int+setBid()+getDappraise() : float+setDappraise()+getDstate() : int+setDstate()+getDdiscount() : int+setDdiscount()+getDcomment() : string+setDcomment()BaseProducts-bid : int-bname : string-bstyle : string-bprice : float-bpicture : string+getBid() : int+setBid()+getBname() : string+setBname()+getBstyle() : string+setBstyle()+getBprice() : float+setBprice()+getBpicture() : string+setBpicture()Orders-oid : int-otime : string-mid : int-ostate : int+getOid() : int+setOid()+getOtime() : string+setOtime()+getMid() : int+setMid()+getOstate() : int+setOstate()
图3.8 实体类
3.5 执行概念
本系统时序图如图
3.9所示。
图3.9 系统时序图
- 16 -
湖南科技大学本科生毕业设计(论文)
1、客户端发送请求给服务器,服务器的后台Servlet负责处理数据。 2、服务器业务逻辑处理会调用DAO,进行数据处理。 3、调用实体类,把数据保存到数据库DB中。 4、DAO返回结果给Servlet。 5、Servlet把结果返回给客户端。
- 17 -
湖南科技大学本科生毕业设计(论文)
第四章 系统实现
4.1 Android环境搭建
任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置.
搭建开发环境需要的软件: 1、操作系统:Windows 7或Linux
2、软件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment Tool)
3、IDE环境:Eclipse IDE+ADT Eclipse3.3以上
4、JDK:Java Runtime Environment虚拟机 、(JDK)Java Development kit 安装步骤如下:
第一步:安装Java虚拟机sun-java6-jdk版本
第二步:安装Eclipse3.5工具 官网http://www.eclipse.org/downloads/ 选择版本(图4.1):进行安装
图4.1 eclipse下载
第三步:安装Android SDK:首先要下载SDK,可以在这个网址下载Http://developer.android.com/sdk ,如图4.2,选择相应的系统进行安装
图4.2 SDK下载
第四步:安装Android ADT插件
运行Eclipse,选择help->install new software 选择add,将会弹出一个框,如图4.3
- 18 -
湖南科技大学本科生毕业设计(论文)
所示
图4.3 ADT的安装
点击OK,选择要安装的软件,占next,然后选择接受协议,直到安装成功,重启Eclipse软件,设置Android SDK Home,Window->refrence
图4.4 设置SDK路径
在SDK location中输入SDK Tools路径:D:\\android\\android-sdk点击OK 这样Android环境就已经搭建成功了。
4.2 客户端
4.2.1 系统登录
登陆模块界面如图4.5所示,显示了一个登陆窗口,在其中加入许多控件,如文本输
- 19 -
湖南科技大学本科生毕业设计(论文)
入框(EditText),文本显示框(TextView),单选按钮(RaidoButton),复选按钮(CheckBox)等,然后用一系列的布局将其有条理的放在这个窗口中。
图4.5 登陆窗口
当用户点击游客登陆时,将不会跟服务器的数据库进行匹配,直接进入主界面,代码如下: if (flag) { // 当用户选择游客登陆时点击登陆按钮直接进入主界面 Intent intent = new Intent(LoginActivity.this, ProductListActivity.class); startActivity(intent); Intent intent1 = new Intent(LoginActivity.this, UpdateService.class); startService(intent1); } 当用户点击会员登陆时,会把用户输入的数据跟服务器端数据库中的数据进行匹配,如果相同则登陆成功,否则弹出登陆失败的信息。如果用户点击了记住密码选项,则把用户输入的用户名和密码都保存到SharedPreferences中。代码如下: String name = etUsername.getText().toString().trim(); String password = etPassword.getText().toString().trim(); // 包装用户发送的用户数据 Member member = new Member(name, password); protocolHelper.setObject(member); - 20 -
湖南科技大学本科生毕业设计(论文)
protocolHelper.setRequest(ProtocolHelper.REGISTER,ProtocolHelper.QUERY, member); result = protocolHelper.sendRequestVO(); // 向服务端发送数据 if (result.size() > 0) { response = result.get(0); } // 根据服务端的相应信息进行相应判断 if (response != null) { Editor namedata = sharedPreferences.edit(); namedata.putString(\namedata.commit(); Editor passworddata = sharedPreferences.edit(); passworddata.putString(\passworddata.commit(); // 将用户名存在sharedPreferences // 将密码存在sharedPreferences // 登录成功,进入主界面 else // 登录失败,弹出错误信息 当用户点击注册按钮时,通过Android的Intent机制,就从登陆界面跳转到注册界面,接下来实现系统注册的功能。 4.2.2 系统注册
注册界面如图4.6,跟登陆界面一下,它也有一个属于它的布局文件来摆放这些控件,在此模块中必须要输入正确这些注册信息,才能正常的进行注册。
- 21 -
湖南科技大学本科生毕业设计(论文)
图4.6 注册界面
当用户点击取消按钮时,界面会跳转回到登陆界面,当用户点击注册按钮时会跟服务器端的数据库进行连接,把用户所填的信息拼接发给服务器,服务器处理过后将数据插入到数据库中对应的表中。客户端实现注册代码如下: bRegister.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 获取用户输入数据 if(name.equals(\}else {//如果不为空则先放入HashMap中,再做密码输入是否一致的判断 // 判断输入的密码是否一致 if (infoHashMap.get(\ infoHashMap.get(\ // 拼凑数据 //如果用户输入用户名或密码为空,则给出提示,用户名和密码不能为空 data = \ + \ + \ + infoHashMap.get(\ + infoHashMap.get(\ Member member=new Member(name,password,infoHashMap .get(\ protocolHelper.setObject(member); - 22 -
湖南科技大学本科生毕业设计(论文)
// 准备请求数据 protocolHelper.setRequest(ProtocolHelper.REGISTER, ProtocolHelper.INSERT, data); // 向服务端发送请求 response = protocolHelper.sendRequest(); // 判断响应信息,根据信息触发不同的事件 if (response.equals(\ // 跳转到主界面 } else // 以对话框的形式给出错误信息 } else // 以对话框的形式给出错误信息:密码必须一致 4.2.3 浏览菜品
用户登陆成功或者选择游客登陆成功后,会直接进入到主界面,如图4.7,主界面的布局采用的是TabHost分页式布局,每一个Tab都对应一个Activity,通过addTab这个方法来添加Tab,这个控件让Android手机多个Activity共享一个界面,而且操作方便,简单,布局好看。
图4.7 主界面
当用户选择菜单选项时,在其下面将列出从服务器端发送过来菜品简要信息数据,客户端想要看到这些数据必须对它进行一系列的处理,在此,本模块采用了ListView来显示菜品信息,ListView是以列表的形式来展示具体内容,并且能够根据数据的长度自适应的显示,要想ListView显示数据必须要为其添加适配器(Adapter),适配器分为很多种,有ArrayAdapter、SimpleAdapter、BaseAdapter等等,由于在该ListView中显示的
- 23 -
湖南科技大学本科生毕业设计(论文)
数据比较多,而且还有图片信息等,所以在此采用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 = LayoutInflater.from(ctx); viewHolder = new ViewHolder(); convertView = inflater.inflate(R.layout.listitem, null); // 获得listitem布局中的控件并添加到View上 convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } // 获得所有的数据并灌入convertView中 return convertView;} } // 如果convertView不为空 那么直接为其灌入数据 向服务器获得菜品信息的数据代码: public void proRequest() { helper.setRequest(ProtocolHelper.GOODSLIST, ProtocolHelper.QUERY, \ BaseProducts bp = new BaseProducts(); bp.setBid(1); helper.setObject(bp); List
湖南科技大学本科生毕业设计(论文)
4.2.4 搜索菜品
图4.8 搜索界面
如果菜品数量过多,用户将会很难找到自己心仪的菜品,在此,本项目为了方便用户选择特定的菜品,设计了一个搜索菜品的功能,通过搜索界面,用户可以通过商品名称、商家名称、商品价格三个搜索条件来搜索对自己胃口的菜品,如图4.8,该功能暂时仅支持单条件搜索,在此列出按商品名称搜索的核心代码,另外两种搜索代码跟此差不多。
// 通过商品名称模糊查询。 public void getProductByName(String name) { List productListByname = new ArrayList(); Cursor cursor = dbutil.querygoodsByName(name); int count = cursor.getCount(); cursor.moveToFirst(); if (count > 0) { for (int i = 0; i < count; i++) { HashMap map = new HashMap(); map.put(\ map.put(\ map.put(\ map.put(\ map.put(\ productListByname.add(map); - 25 -
// 对菜品数据遍历查找
湖南科技大学本科生毕业设计(论文)
} cursor.moveToNext(); } cursor.close(); productList = productListByname; searchAdapter.notifyDataSetChanged(); } else // 提示没有找到要查询的菜品 4.2.5 订餐
订餐功能是本项目的核心功能,前面做的那些仅仅是为订餐功能做铺垫。当用户点击每一行菜品时,不论这菜品时在菜品列表中还是在搜索列表中都会跳转到菜品详细信息界面,在跳转的同时,Intent里面会PutExtra菜品的数据,在详细信息界面中再将Intent里面的数据取出并显示。界面如图4.9,在该界面中显示了菜品的图片、价格、评分、是否有折扣、菜品详细介绍等菜品信息,还有两个按钮和输入订餐份数的文本输入框,该输入框只允许输入数字。如果用户选好了菜品,并且准备将菜品加入购物车时,用户首先得输入一个菜品份数,并点击加入购物车按钮,这时系统将进行一系列的逻辑处理,如果购物车中没有物品则直接加入,如果购物车中已经有物品了,则将用户刚加入购物车的菜品数据跟购物车中原有的数据进行匹配,如果已经有了,那么将提示用户,该物品购物车里已有,反之则加入购物车。
图4.9 菜品详情
在此列出跳转界面时对数据处理的代码:
- 26 -
湖南科技大学本科生毕业设计(论文)
菜品行点击事件,把数据putExtra到Intent中
public void onItemClick(AdapterView> parent, View view, int id, long position) { if (position != -1) { ViewHolder holder = (ViewHolder) view.getTag(); TextView tvid = (TextView) view.findViewById(R.id.tvid); TextView tvname = (TextView) view.findViewById(R.id.tvname); TextView tvprice = (TextView) view.findViewById(R.id.tvprice); Intent intent = new Intent(ProductListActivity.this,DetailsActivity.class); intent.putExtra(\ intent.putExtra(\ intent.putExtra(\ intent.putExtra(\ startActivity(intent); 在详细信息界面中取出Intent里面的数据代码: Intent intent = getIntent(); Bitmap pic=(Bitmap)intent.getParcelableExtra(\ ivdish=(ImageView)findViewById(R.id.ivdish); ivdish.setImageBitmap(pic); //获得商品id tvbid=intent.getStringExtra(\// 获得菜名 bname= intent.getStringExtra(\price =intent.getStringExtra(\将菜品添加到购物车中代码: badd.setOnClickListener(new OnClickListener() { public void onClick(View v) { int count=ProductListActivity.cartdata.size(); if(count>0)//表示购物车中有数据 { for(int i=0;i 湖南科技大学本科生毕业设计(论文) item.put(\item.put(\item.put(\data.add(item);// 将HashMap添加到List中 else//购物车为空时直接添加 Intent intent =new Intent(DetailsActivity.this,ProductListActivity.class); intent.putExtra(\startActivity(intent); 4.2.6 结账 当然,订餐完成之后就得去购物车模块进行结账操作。 首先用户可以选中购物车中的物品,点击menu按钮对物品进行修改数量和删除操作。要实现Android menu功能必须重载onCreateOptionsMenu、onPrepareOptionsMenu以及onOptionsItemSelected三个方法,第一个方法是用来创建menu按钮显示的菜单项,第二个方法是限制菜单项只在购物车列表中显示,第三个方法则是实现菜单项功能的。在本模块中,为menu添加了两个菜单项,一个是修改数量,一个是删除,可以对购物车中物品的数量进行修改和删除操作,没选中物品则会提示错误。 其次为每一条ListView添加了一个长点击事件,及setOnLongClickListener接口,在此接口中必须实现onClick方法,当用户点击物品不放时会直接将该选中物品删除。 最后点击结算按钮系统将会把订单中的数据进行封装,并使用protocolHelper中的sendRequest方法向服务器发送请求,并接受服务器端返回的消息,如果消息不为空则说明订单生成成功,提示用户订单生成,该方法代码如下: // 使用ProtocolHelper的setRequest方法对请求类型,操作及传送来的数据data进行封装 helper.setObject(order); helper.setRequest(helper.ORDER, helper.INSERT, \String result = helper.sendRequest(); if (result != null && !result.equals(\ Toast.makeText(ProductListActivity.this, \订单已生成,谢谢惠顾!!!\// 使用ProtocolHelper的sendRequest方法对服务器发送请求并返回服务器发回得消息 // 如果服务器返回消息不为null,则说明订单以生产成功,弹出提示 Toast.LENGTH_LONG).show(); List 湖南科技大学本科生毕业设计(论文) R.layout.cartlist, new String[] { \ \ R.id.markid, R.id.shopname, R.id.price, R.id.number }); // 设置listview的适配器 cartlistView.setAdapter(cartadapter); 客户端的基本功能介绍到此结束了,接下来介绍服务器端的功能实现。 4.3 服务端 服务端分为管理员登陆、订单管理、菜品管理、会员管理四个模块,主要是为商家对客户端发送过来的数据进行处理,以及对客户端的数据进行更新操作。服务端代码是用JavaSE来实现,下面对每一个模块进行详细分析。 4.3.1 系统登录 当管理员运行程序后,必须得进行登录认证,在服务器端数据库的用户表中有一个用户权限的字段,如果值为0则表示为管理员账号,如果值为1则表示用户账号,在此模块中仅仅为管理员提供登录功能,并不支持管理员注册功能,所以管理员是唯一的,这也是系统数据安全性的一种表现。登录界面如图4.10所示,管理员点击登陆时如果用户名和密码输入错误则会弹出错误信息,输入正确则进入管理界面。 图4.10 管理员登陆界面 在该模块中核心代码在于获取用户输入的信息并跟数据库中管理员的信息进行匹配,代码如下: public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals(\ if (jt_password.getText().toString().equals(\ | jt_username.getText().toString().equals(\ JOptionPane.showMessageDialog(null, \用户名或密码不能为空\} else { AdminDAO admin = new AdminDAO(\- 29 - 湖南科技大学本科生毕业设计(论文) String logo = admin.loginAdmins(jt_username.getText().toString(), jt_password.getText().toString()); if (logo.equals(\ login.dispose(); MainJframe.getInstance(); } else { JOptionPane.showMessageDialog(null, \用户名或密码错误\} else if (e.getActionCommand().equals(\ System.exit(0);}} 4.3.2 订单管理 当管理员登陆成功后,那么就进入了管理界面,在该界面中采用了JavaSE的卡片布局方式,这个布局方式跟客户端主界面的布局方式差不多,也是多个面板共用一个框架。在管理界面中,将管理员操作数据的方式分为了订单管理、菜品管理、会员管理三个模块,首先介绍一下订单管理模块的设计与实现。 在订单管理模块中,从上到下分为三个部分,最上面是查看订单按钮,中间是订单的一些基本信息表结构,有订单编号、订单生成时间、请求人姓名、请求人联系方式、订单状态,这里主要是使用DefaultTableModle来实现这样一个表结构,最下面是一个查询订单详细信息的按钮,如图4.11。 当管理员点击查看订单时,系统将会从数据库中将订单表的信息取出并放入到DefaultTableModle里面一遍管理员对订单进行查看。当管理员选中一行订单信息,再点击查看订单详细信息按钮时,将会弹出一个订单详情对话框,如图4.12所示,在该对话框中显示了订单中的信息,以及一个订单完成的按钮,如果交易完成,在这里的交易完成的定义是商家把菜品做好,送到用户的地址并且用户付清所有费用,则管理员点击该按钮,将会弹出订单完成消息框,并且将此订单从订单管理界面中移除。 - 30 - 湖南科技大学本科生毕业设计(论文) 图4.11订单管理界面 图4.12 订单详细对话框 在此功能中的难点在于,当订单完成之后将其从订单列表中移除,在此该模块是这样设计的,在数据库中为每一个订单加一个标识位初始化为0,查询订单时把标识位为0的订单都添加到列表中,当点击订单完成时将标识位改为1,然后再查询一次订单表那么就能将订单移除。核心代码如下: - 31 - 湖南科技大学本科生毕业设计(论文) public void complete(final int id) { 4.3.3 菜品管理 菜品管理界面需要实现的功能是能使管理员对菜品进行增加、删除、修改等操作,在该模块中布局方式跟订单管理界面基本一样,如图4.13所示。 btn_complete = new Button(\订单已完成\btn_complete.setBounds(300, 20, 100, 30); this.add(btn_complete); btn_complete.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (OrdersDAO.updateState(id, 1)) { JOptionPane.showMessageDialog(null, \订单已完成\listJPanel list = listJPanel.getInstance(); list.insertIntoTable(vec);} } });} 图4.13 菜品管理界面 添加新菜功能实现:当管理员点击添加新菜按钮时会弹出一个输入菜品信息的界面,如图4.14所示,在此界面中可以输入菜品的名称、价格、菜系、折扣、上传图片、详细描述等。点击新增按钮时会进行一系列的判断,比如名称不能为空,价格不能为空等等限制。管理员将信息输入完成后就会将这些信息添加到数据库中的菜品信息表中,然后再菜品列表中读取出来,该功能的难点在于图片的上传功能,图片存入数据库中的 - 32 - 湖南科技大学本科生毕业设计(论文) 是图片的绝对路径,如果在该路径中找不到图片资源那么将会不能显示图片,该功能核心代码如下: 上传图片按钮功能代码: btn_uploadIma.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 初始化jfc_upload控件,并设置其只能上传图片 jfc_upload = new JFileChooser(); jfc_upload.setAcceptAllFileFilterUsed(false); // 设置该控件过滤器,图片格式为(.png) jfc_upload.setFileFilter(new FileFilter() { public String getDescription() { return \图片格式(.png)\if // 图片名称以.jpg结尾 return true; } else return false; public boolean accept(File f) { // 设置该控件过滤器,图片格式为(.jpg) jfc_upload.setFileFilter(new FileFilter() { public String getDescription() { return \图片格式(.jpg)\if // 图片名称以.jpg结尾 return true; else return false; public boolean accept(File f) { 增加按钮功能实现代码: btn_add.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { insertOneProducts();// 向数据库中插入一条菜品数据方法 Vector 湖南科技大学本科生毕业设计(论文) 图4.14 新增菜品界面 修改菜品信息功能:管理员选中一行菜品后,点击更改选定菜品按钮就会跳转到更改菜品信息界面,如图4.15,在这个界面中将菜品的信息全都显示在了相应的文本输入框里面以便管理员对照修改,用户点击更新后会调用updataOneProducts方法将数据库里面的菜品信息也更新。 4.15 更改商品信息界面 删除菜品功能:管理员选中一行菜品,点击删除按钮,就可以将该选中菜品从列表中删除。 - 34 - 湖南科技大学本科生毕业设计(论文) 4.3.4 会员管理 在该模块中,主要实现功能为查看会员列表,新增会员,删除会员三个功能,在这几个功能中的核心主要是管理员对服务器端数据库的操作,具体界面如图4.16,该模块的布局跟前两个模块也差不多,在此主要对功能进行分析与设计,当管理员点击新增会员时,会弹出一个新增会员的界面,如图4.17,在该界面中管理员需输入增加会员的必要信息,点击新增按钮及在代码中调用插入数据的方法实现新增会员。当管理员需要删除会员时,则选中要删除的会员,点击删除按钮,代码中调用删除数据的方法来实现删除会员的功能。 图4.16 会员管理界面 - 35 -
正在阅读:
毕业论文(基于Android的网上订餐系统和原代码)06-06
考研各大题型考查重点难点分析及建议04-21
九年级上3-4圆周角同步练习303-15
承力索、接触线的架设05-10
体育运动处方与应用09-03
茂名市《船舶行业规范申请报告》全文05-24
宝安区教育系统固定资产管理制度(试行)06-05
科研基金申请书撰写中须注意的几个问题2010050608-29
近世代数作业11-17
人生路上的风景作文600字07-04
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 网上订餐
- 毕业论文
- 基于
- Android
- 代码
- 系统
- “一通三防”井下现场检查表
- 公共关系学论文大作业
- 现代世界著名家具设计学派与品牌的形成机制
- 沥青混凝土道路安全文明施工方案
- 森林资源管理措施和做法.
- 武汉科技大学10机械原理考研试题
- 五年级语文课外知识竞赛试题
- FANUC数控系统的操作及有关功能
- 人教版小学一年级上册数学教学计划
- 沈阳体育学院2018年舞蹈表演招生简章
- 和倍问题(学生版)
- 超重模支架模板工程转换层专项施工方案
- XXXX融资担保有限公司财务管理制度
- 火灾自动报警系统联动逻辑关系(十九)
- 法人企业与非法人企业的利弊及其各自适用的情况
- 电子商务网站的设计与实现毕业设计
- 江苏省组织机构电子证书业务申请单
- 2010年高考数学预测系列试题(7)
- 景区满意度调查问卷
- ANSYS常见问题