毕业设计(论文)-基于Android的航空订票系统设计与实现.doc_第1页
毕业设计(论文)-基于Android的航空订票系统设计与实现.doc_第2页
毕业设计(论文)-基于Android的航空订票系统设计与实现.doc_第3页
毕业设计(论文)-基于Android的航空订票系统设计与实现.doc_第4页
毕业设计(论文)-基于Android的航空订票系统设计与实现.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学毕业设计(论文)用纸基于Android的航空订票系统设计与实现摘 要随着手机移动技术迅速发展,3G通讯技术在手机上的应用已经进入到日常生活的方方面面,手机从过去的单一通话和收发短信功能,发展到现在可进行移动搜索、全球定位导航、手机电视、实时的视频通信、网上支付和对使用者的健康进行监测等其它强大功能。而且随着科技的进步,手机的发展也越来越快,功能更全更好的手机也随之面世,所以基于安卓系统的应用会逐渐增多,以致形成主流。在这种情况下,为了适应这种日益增长的需求,正是开发本系统的目的。因为现在的人出行,并不仅仅是火车、客车,随着经济的发展,人们生活水平提高的十分迅速,所以飞机已逐渐成为现在的主流。它比火车、客车拥有更加快捷的时效性,减少了旅途的劳累。但是现在订票的问题也随之而来,需要本人到代售点去买,十分不方便。为此,本毕业设计在进行充分的需求调研和分析之后,设计并实现基于Android的手机航空订票系统。该系统采用Eclipse工具集成Android的SDK开发,利用Mysql作为数据库服务器进行数据管理,并使用android模拟器测试。本系统分为七个大的功能模块:预定机票、订单管理、网点查询、航线查询、个人管理、订阅消息和软件帮助。其中网点查询分为查询航空公司在每个城市的营业网点、航线、航班的机型等信息.。关键词:移动通信;智能手机开发;Android平台 iSystem design of flight query based on AndroidAbstract Along with the rapid development of mobile technology, the application of 3 g communication technology on mobile phones has entered into every aspect of daily life, from the past single voice and text function, development to the present can be mobile search, GPS navigation, mobile TV, real-time video communication, online payment and monitoring to the health of consumers and other power. And with the progress of science and technology, the development of the mobile phone is becoming more and more quickly, the mobile phone function more complete better also, so based on the android application will gradually increase, so as to form the mainstream. In this case, in order to meet this growing demand, it is the purpose of this system development. Because now people travel at the same time, it is not just the train, bus, along with the development of the economy, improve peoples living standard is very quickly, so the plane has gradually become the mainstream of the now. It more quickly than the train, bus has timeliness, reduce the fatigue of the journey. But now booking problem comes, need oneself to the outlets to buy, very inconvenient. For this reason, this graduation design after sufficient demand research and analysis, designed and implemented based on the Android mobile phone airline reservation systems. The system adopts the Eclipse tools to integrate Android SDK development, using Mysql as a database server to data management, and use the Android emulator to test. This system is divided into seven major functional modules: reservation, order management, network inquiry, route query, personal management, subscribe to news and software to help. Queries into one branch of airlines in each city outlets, routes, flights information such as the model.Keywords: mobile communications;Smartphone development;Android platform ii目 录摘 要iAbstractii1 绪 论11.1 研究的目的与意义11.2 国内外发展现状11.3 研究目标22 基本知识和基本原理32.1 Android简介32.2 Android的系统架构32.2.1应用程序层32.2.2应用程序框架32.2.3系统运行库32.2.4Linux 内核32.3 Java语言的简介42.3.1java语言的三个体系42.3.2java语言的特点42.4 系统工具与平台52.5 Eclipse工具简介63 系统需求与总体设计73.1 用户需求分析73.2 系统需求分析83.3 功能需求分析83.4 可行性分析83.4.1经济可行性83.4.2技术可行性94 概要设计104.1 系统总体功能结构104.2 系统流程图104.2.1订票流程图104.2.2 会员登录流程图114.3 结构体系124.3.1服务器端124.3.2客户端125 数据库设计145.1 表结构设计146 详细设计166.1 用户管理功能176.1.1用户登录176.1.2用户注册206.1.3修改密码226.2 主界面功能236.3 预订机票功能256.3.1航班查询功能256.4 订单管理功能276.4.1查询订单功能286.4.2删除订单功能286.5 信息查阅功能306.5.1机型查询306.5.2查询网点316.6 网点查阅功能317 系统实现327.1 系统配置与平台搭建327.1.1开发机器软件环境327.1.2开发机器硬件环境327.2 平台搭建327.2.1下载用到的工具327.2.2安装所用的工具327.2.3Ecplise自动安装Android开发插件(ADT- plugin)327.2.4配置Andiord SDK路径337.2.5测试Andiord 环境337.3 主要算法描述337.3.1加密工具类337.4 测试运行34结 论38参考文献39致 谢40外文原文41外文原文翻译53iv1 绪 论1.1 研究的目的与意义伴随现代科技的发展,3G技术逐渐成为人们生活的重要部分。3G在我国的用途极多,目前主要集中在以下商用领域:移动宽带、电信业务、3G市场运营、3G市场建设与共享以及TD完善。我国通信3G时代的到来以2011年底的中国3G大规模用户放号为标志,从此刻开始3G走向商用化道路。专家预计到2015年,我国3G用户数量达到高峰,其中一半用户来自传统移动通信。由此可见,中国的3G发展潜力极大, 3G的发展也将极大推动我国通信业的繁荣和进步。同时 ,随着现在社会的发展,我们的生活也朝着电子化不断发展,如交通电子眼在交通管理中越来越普及;而经济的不断发展,避免不了人们都要到某些城市去公干或其他的事情。因此,开发一个手机版航空订票系统就显得十分必要,可以说只要你是3G用户,无论你到哪里都可以通过该系统及时得到航班信息。该航空订票系统将帮助出行人士方便、高效的安排自己的行程。在这种快节奏的经济生活中,最基本的是快捷准确的获取最新信息。随着空间信息技术、移动通信技术、互联网技术以及移动终端技术的高速发展,为快速便捷获取信息提供便利。随之开发的移动技术,它将互联网上的所有信息和地理信息系统特点有机结合,扩展到移动终端上,为移动用户通过技术的交换、获取、共享和发布提供了有效的途径,大量的运用地址信息。而本系统就是为了提供这么一个移动平台。本系统是基于Android操作平台开发的客户端软件。用户可以在此平台上查看及预定机票,本系统将会与第三方合作,如银行和物流公司,来为用户提供更便捷更安全的服务.此系统的重点在于提供便捷而完善的交易过程,而难点则在于系统并发性与安全性的控制和实现.1.2 国内外发展现状计算机科学的发展推动了移动终端的计算能力和存储能力的日益强大,也促进了移动通信和互联网技术的迅猛发展,移动客户端的开发技术也愈发成熟,由Google携手的众多公司联合推出源代码开放的Android开发平台是继基于WAP浏览器和基于J2ME技术之后,是对于移动客户端开发的又一创举。Android这个手机系统是Linux平台的基础上开发制成的。它不仅拥有操作系统,还包括应用程序和用户界面,应用程序中包含移动手机工作使用的全部软件,但是与以往不同,它不会出现任何妨碍或组织移动产业创新发展的对于专有权的争端。Googlel领衔与摩托罗拉、T-Mobile、高通、宏达电以及中国移动等这个行业的领军企业组成一个开发手机联盟,Google与运营商、开发商、设备制造商和其他相关各方深入合作,尝试通过建立开放化、标准化的移动客户端软件平台来组件一个开放的生态系统。纵观基于WAP浏览器、基于J2ME技术、基于Android这三项技术,通过“瘦客户端”这个基于WAP浏览器的开发技术,由于客户端相对薄弱,致使服务器端和客户端需要进行大量的数据交换,然而有个难题是目前无线网络的带宽和理论状态相差甚远,用户只能进行有限的数据共享和体验;基于J2ME的开发 技术可以避免这个尴尬处境,因为在客户端上就可以实现很多功能,不过这种“胖客户端”需要配备较高的硬件性能,且有很多代码工作需要做,即便代码移植性很高,但要求的开发技术门槛也相对较高;相比之下,Android基于JAVA技术衍生的平台,将位置服务模块集成到平台之中,同时优化了核心系统架构,对硬件没有那么高的要求,还有特殊的互联网机制,这些都为降低移动系统服务的开发门槛提供了支持。Android是谷Google的战略决策中不可或缺的一部分,它的出现将Google歌的企业目标-“随时随地地为每一个人提供信息”又迈进了一大步。不难发现,纵观全球也有相当多的移动电话客户对Android技术都比较陌生。Google开发这项技术的根本目标是避免移动通讯依赖于设备或者平台,也是基于这个目的,Android对Google长期奉行的移动发展战略将是个补充而不是取代;Google与全球各个地区的移动运营商和移动手机制造商密切合作,既能开发实用并且具有吸引力的移动服务,也能不断推广这些产品。1.3 研究目标移动互联的飞速发展,人们消费方式和生活方式的转变,为商家带来前所未有的商机与挑战。本课题的目标是建立一个基于Android开源手机操作系统的手机航空订票系统,这个系统能够为消费者提供一种便捷的订票方式,消费者只需下载本软件的客户端应用程序到手机,注册登录系统,查询适合自己的航班,就可以预定机票,使消费者能享受“足不出户”就可以确定自己的工作行程的服务。 2 基本知识和基本原理2.1 Android简介Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。它由操作系统、中间件、应用软件三部分组成,它由Linux内核组成,独特的Dalvik 虚拟机,包含专门的地图模块、便捷的2D、3D绘图方案、XML的快捷布局方案、较轻量的SQLite数据库和多种的技术等等,它拥有迅捷的访问网络功能,集成现今正在使用的各种无线网络技术,不但可以让研发者的功能模块在对接时可以共享和无缝继承,重用多功能的的模块让开发的时间更短,开发难度更低,采用现今先进的定位技术,手机用户的M-GIS体验更加便利。该平台备有完善的程序开发环境,包括模拟器、除错工具、程序执行所耗用存储器、性能评价等功能。Android是一个真正意义上的开放性移动设备综合平台,基于Android进行系统开发,可以很容易地利用开放的API接口,可以说,基于Android的系统,是移动终端M-GIS开发道路上的一个里程碑。2.2 Android的系统架构 Android在系统架构上应用了分层架构,和现在大多数系统一样。Android在系统架构图上分别为应用程序层、应用程序框架层、系统运行库层和linux核心层,按从上到下四个层排列。2.2.1应用程序层Android与包含SMS短消息程序,浏览器,日历,地图,联系人,email客户端等组成的核心应用程序包一起发布。编写的语言全部都是JAVA。2.2.2应用程序框架 核心应用程序采用的API框架同样可以让开发人员完全访问。在这个框架的安全性限制下,每个应用程序都可以发布并使用该功能模块。它大大简化了组建的重要作用。在这个应用机制下,每个程序组件都可以被快捷的替换。2.2.3系统运行库 开发者利用Android应用程序的框架,可以使用C/C+库应用于Android系统中多样的组件,十分方便。2.2.4Linux 内核Android核心系统的进程管理安全性,网络协议栈,内存管理和驱动模型都是围绕Linux 2.6内核来进行的,同时作为抽象层存在于软件栈和硬件之间。2.3 Java语言的简介Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,1995年5月,Sun Microsystems公司推出Java程序设计语言以及Java平台(即JavaSE, JavaEE, JavaME),总称为Java 。Java平台包括两个部分,即Java虚拟机(Java Virtual Machine)与Java 应用编程接口(Application Programming Interface,API)。API为JAVA提供的标准接口是独立于操作系统的,含有基本部分及扩展部分。目前Java平台几乎已经被所有操作系统兼容,对于一个Java程序,只需要编译一次就能适应各种操作系统。API已经经历了几个版本,最新版本是Java1.7,目前主流使用的Java平台是基于Java1.5。Java发展至今可以分成三个体系:即JavaSE、JavaEE、JavaME,分别表示Java平台标准版,Java平台企业版和 Java平台微型版。2.3.1java语言的三个体系 (1) Java SE: Java平台标准版,最初被称为J2SE。它允许开发和部署在服务器、桌面、实时环境和嵌入式环境里运行的 Java 应用程序。Java SE中涵盖了支持Java Web服务开发的类,同时它的许多基础类还可以为 Java Platform和Java EE提供基础。(2) Java EE: Java平台企业版,最初被称为J2EE。它的主要功能是辅助开发和部署具备健壮、可移植性强、伸缩性强且安全性高的服务器端Java应用程序。它是在 Java SE 的基础之上构建而成的,提供组件模型、Web 服务、通信 API和管理的功能,可以应用在Web 2.0 应用程序开发或者企业级的面向服务体系结构(service-oriented architecture,SOA)。(3) Java ME: Java平台微型版,最初被称为J2ME。它主要是为诸如手机、电视机顶盒、PDA或者打印机之类的嵌入式设备和移动设备上执行的应用程序保证运行环境是健壮且灵活的。Java ME 包括许多内置的网络协议、健壮的安全模型、灵活的用户界面,还可以对能动态下载的连网或离线应用程序提供丰富的支持。基于这个规范的应用程序仅仅需要编写一次就可以成功用于许多设备,并且能充分使用各个设备的本机功能。2.3.2java语言的特点(1) Java语言的简单性。由于语法很接近C语言和C+语言,大多数程序员学习和使用Java时更容易理解。但同时,Java摒弃了某些特性,这些特性在C+中存在,但是很难理解、容易迷惑人且很少使用,比如多继承、操作符重载和自动发生的强制类型转换。尤为重要的是,Java中拒绝使用指针,且提供各类自动的垃圾回收,如此程序员不再需要担忧内存管理。 (2) Java语言是面向对象性。Java语言仍然使用类、接口和继承等术语,但是为了简化代码,它不支持类间多继承,仅支持类间单继承,但是支持接口的多继承,并且支持类与接口之间的实现机制。C+ 语言只对虚函数采用动态绑定,而Java语言对动态绑定实现全面支持。也就是说,Java语言是纯粹的的面向对象的程序设计语言。 (3) Java语言的分布式特性。Java语言支持开发Internet应用,在基本的Java应用编程接口中有一个提供了用于网络应用编程的类库的网络应用编程接口(java net),这个类库包括ServerSocket、URL、Socket、URLConnection等。Java的RMI(远程方法激活)机制也在一定程度上有助于开发分布式应用。(4) Java语言的健壮性。Java语言有许多特性保证程序的健壮性,例如自动收集废料、异常处理、强类型机制等。Java明智的摒弃了指针,它的安全检查机制也促使Java的健壮性更强。(5) Java语言的安全性。在很多网络环境中都使用Java语言,因此Java为防止恶意代码攻击提供了一个安全机制。除了Java语言本身具备的许多安全特性之外,Java通过一个安全防范机制来管理通过网络下载的类ClassLoader,这个类实现了诸如字节代码检查、分配不同的名字空间防止覆盖本地的同名类等功能,且提供安全管理机制让Java应用配置安全哨兵,即,类SecurityManager。(6) Java语言的体系结构中立特性。一个后缀为java的Java程序文件在平台上被编译成后缀为class的字节码格式,这个格式是体系中立的,这样就可以让这个Java平台能在任何实现它的系统中运行得以实现。这种方法适用于软件的分布式开发和异构的网络环境。(7) Java语言的可移植性。Java的体系结构中立性决定了它的可移植性。此外,Java对各个基本数据类型的长度作了严格规定。Java系统自身的可移植性很强,因为它用ANSI C实现Java的运行环境,用Java实现Java编译器是。(8) Java语言的解释型特性。前文提到,Java程序在Java平台上被编译成后缀为class的字节码格式,之后就能够在任何实现了这个Java平台的系统中运行。运行期间,Java平台里的Java解释器会解释执行这些字节码,在联接阶段载入执行过程中需要使用的类。(9) Java是高性能性。Java的高性能性是比较那些解释型的高级脚本语言而言。实际,随着JIT(Just-In-Time)编译器技术的逐渐成熟,Java在运行速度上越来越接近于C+。(10) Java语言的多线程特性。Java语言把线程当做一种特殊的对象,由Thread类或者它的继承类完成创建。通常来讲,创建线程有两种方法:第一个是从Thread类直接派生出子类,并重写run方法,那么由该子类创建的对象就是线程。第二个是采用构造为Thread(Runnable) 的构造子把一个实现了Runnable接口的对象封装成一个线程。必须明确的是Thread类已经将Runnable接口实现了,所以任意一个线程都有它的run方法,run方法中写入了线程所要执行的代码。使用一组方法来控制线程。Java语言支持多个线程并行执行,且提供关键字为synchronized的同步机制来控制多线程。(11) Java语言的动态性。适应动态变化的环境是Java的设计初衷之一,动态性一方面是指Java程序需要的类可以动态地被加载到运行环境之中,另一方面也指也可以通过网络来载入所需要的类,这种机制便于软件升级。此外,Java也能实现运行时刻的类型检查,因为Java中的类有一个对于运行时刻的表示。Java语言具有的诸多优秀特性保证了Java应用的健壮性强、可靠性高,这样应用系统的维护费用自然就降低了。Java全面支持面向对象技术及Java平台内嵌的API可以减少应用系统所耗开发时间和成本。Java一次编译处处可行的特质促使它能够提供一个随处可用的开放结构,并且降低在多平台之间传递信息的成本。而Java企业应用编程接口(Java Enterprise APIs)提供的类库和有关系数为企业计算及电子商务应用系统提供了丰富条件。2.4 系统工具与平台服务器操作系统平台:Linux,Unix或Winows 32位操作系统客户端手机系统平台:Android 2.2编程语言平台:JDK1.6或以上版本数据库:MySql 5.0及以上版本开发工具: MyEclipse 2.5 Eclipse工具简介Eclipse 本身只是一个框架和一组服务。作为平台而言,他具有可扩展性开,同时还对外开放了源代码。Eclipse最开始是Visual Age for Java的下一代IDE开发环境,Visual Age for Java是IBM开发的商业软件2003年,Eclipse 基金会把OSGi服务平台转化成了运行时架构。 2007年6月到2010年6月,先后发布了3.3、3.4版。3.5版。3.6版。分别为3.4版的Ganymede、3.5版GALILEO。3.6版的HeliosEclipse 。扩展了插件开发环境,主要针对专门扩展 Eclipse 的软件开发人员,开发人员可以用它构建与 Eclipse 环境无缝集成的工具。英文名为Plug-in Development Environment,PDE。Eclipse 是由各种插件组成的,因此为 Eclipse 提供插件,为用户提供一致和统一的集成开发环境而言,给所有提供了一个十分良好的平台。 3 系统需求与总体设计3.1 用户需求分析 通过调查了解以及实际体验,客户使用手机客户端软件,一般经过以下几个步骤:网上查询订购信息决定购买将预定航班信息添加到购物车填写订票订单,收货地址,选择付款方式等待确认。 在用户查询机票信息时,主要是从航空公司信息、航班信息判断选择航班,用户手机上网订票,一般具有很强的目的性,一个用户往往已经确定了要乘坐那一趟航班,所以良好的用户界面,快速的导引顾客找到其想要的预定的航班,是本系统应该重点实现的。用户良好的订票体验,取决于操作是否便捷,支付是否安全,预定是否实惠。其实,支付方式的是否便捷,直接决定着用户的购买欲望。大部分消费者如果在预定过程中遇到了一些麻烦,比如操作太繁琐及界面不友好,就会影响其购买的积极性。所以,操作愈简单,支付的越便捷,就对手机客户端越有好处。 有时用户在预订机票的时候,如果行程不太固定,用户可能根据自己的行程来选择比较合适的时间和机型。预定更加优惠的机票。用户可能不仅仅只盯着一趟航班,可能会综合各方面的考虑,选择最适合自己的航班。用户浏览航班的信息搜索多种航线,当看到可以乘坐的航线后将机票信息保存在购物车中,继续搜索如果有更合适的航线。而此时也不确定将具体乘坐哪个航班。这时就需要为客户提供“购物车”的功能了,购物车,顾名思义,就是在客户购物过程中,为客户提供暂存功能的“车子”,购物车不仅需要为客户暂存预定机票的信息,还要能够为客户提供必要的统计功能,能够帮客户计算出机票的总金额、优惠金额、折扣等等,当然用户在不想预定时,也要能够将机票从购物车中去除掉。在选择好需要乘坐的航班之后,用户还需要把预定的机票生成订单发给航空公司,订单中需要包含预定机票的的信息、乘机人信息、付款方式等等,乘机人信息主要包括:乘机人姓名、乘机人身份证、联系电话等等,付款方式目前比较流行的是“货到付款”,直接汇款或通过第三方工具交付。 从用户需求分析中看出系统主要需要处理的数据为:机票信息,订单和用户账户信息。顾客可以查询航班信息,订购机票。还可以对自己的基本账户、乘机人、联系人信息进行管理。系统的数据流图如图3.1所示。用户订单处理用户信息管理用户(订购)用户(浏览)航空订票系统 图3.1 一层数据流图3.2 系统需求分析本手机客户端主要实现用户的订票服务,以及用户的个人信息管理。通过调查,应用程序需要有以下系统要求:(1)要求有良好的人机界面,方便操作。(2)由于系统涉及到买卖交易,所以系统应该安全、结构合理。(3)方便原始数据修改,支持多条件修改。(4)数据查询方便,支持多条件查询。(5)具有一定得数据计算能力,尽量减少人工干预。3.3 功能需求分析有过网上购物经历的人都知道,在购物网站可以很方便的注册、浏览商品、查询商品,在购物时只需点几下鼠标,填写必要的收货信息,就能很轻松的完成购物。我模拟基本的网上购物流程,整理出本系统需要实现的功能有:预定机票、订单管理、网点查询、航线查询、个人管理、订阅消息和软件帮助。3.4 可行性分析可行性研究能使系统达到以最小的开发成本取得最佳的经济效益,可行性研究的目的是根据所开发系统的要求,通过初步调查和系统目标分析,对要开发的航空订票系统从技术上,经济上进行是否可行的研究。3.4.1经济可行性智能手机的客户端航空订票系统相比传统订票方式更加的方便。可以大大节约使用者的时间,使用者只需在手机上下载本软件就可以足不出户的对自己的行程做详细的计划,所以用户是很乐意下载本软件的。如果开发成功可以得到很好的投资效益。开发本系统的成本很低,只需要几台电脑,安装好开发环境,就能开始开发,投资成本很低,风险较小,而且android技术相比其它的手机技术容易掌握,初学者学习3个月就可以上手。随着3G手机的日益普及,中国3G市场的基础环境也越来越稳定,使用3G手机处理业务,订购商品已成为主流。人民生活水平的提高,中国网络规模的壮大,3G手机的普及、计算机技术的发展以及政府多层次多角度推动,3G市场越来越火爆,而且会逐渐发展及形成人们消费的主要形式。3.4.2技术可行性由于3G网络覆盖全国, 这样一来底全国大部分地区就可以用上3G了,对3G手机用户来说是一个很大的喜讯。对智能手机开发工程师来说更是一件大事,这不仅代表有更多的手机用户可以使用3G网络,而且代表智能手机客户端软件可以在全国范围内使用。Android操作系统是开源的操作系统,在中国的应用前景十分的广阔。并且在智能手机操作系统中所占有的市场份额也在逐渐的增大。本系统以Android手机操作系统为平台,使用Android的API,使用Sqlite 和mysql数据库对数据进行存储,在技术上是可行的。综上对经济和技术的可行性分析,无论是从经济还是技术上都是可行的,该系统具有极高的可开发性。4 概要设计通过对航空订票系统的需求分析,我们对系统的基本逻辑结构与功能有了基本的了解。整个系统的设计按照以下步骤进行:首先了解各个功能模块的流程,然后依照各模块流程图,实现其模块功能,最后,将各个模块合理的整合起来,组成整个完善的系统。4.1 系统总体功能结构系统功能分为预定机票、订单管理、网点查询、航线查询、个人管理、订阅消息和软件帮助共七个模块。系统总体功能结构如图4.1所示。图4.1 总体功能模块图4.2 系统流程图4.2.1订票流程图用户登录本系统后:首先,用户在查找航班信息;然后,将满意的航班的机票添加至购物车暂存;最后,确定要订购的航班机票,填写订单,就可以完成订购了。具体流程图如4-2所示。图4.2 订票流程图4.2.2 会员登录流程图会员登录主要是对会员帐号的一个判定,判断输入的帐号是否合法,合法即允许登入,登录流程如图4.3所示。图4.3 会员登陆流程图4.2.3会员注册流程图对于没有帐号的用户,需要为其提供会员注册功能,在用户填写合法注册信息后给予注册,注册流程如图4.4所示 图4.4 会员注册流程图4.3 结构体系4.3.1服务器端数据库服务器也称为“后端”,它负责有效地管理系统的信息数据库,在多个用户并发地请求服务器上相同资源时,要对这些资源进行优化管理。如安全地、快速地对公用信息数据库进行并发存取;使用备份和恢复功能保护数据库信息;对所有的客户应用程序集中实施全局的数据完整性规则等。另外,它还可以在客户登录的时候提供一些有关安全的关键数据,这些数据是加密以后放在服务器的数据库里的,主要的是:数据库账号和密码等。还包括一些对整个系统来说十分重要的数据运算及查询等。4.3.2客户端 客户应用程序也称为“前端”,它是系统中供用户与数据进行交互的部件,将以.apk为后缀的文件安装在用户的Android手机中。在C/S系统中,客户应用程序的主要任务是:提供良好的用户界面,方便用户使用,Android平台自身提供的组件能很好的实现这几点;按规定的格式弹出数据的表格与图形;按应用逻辑要求对数据条目进行计算和验证;以及向数据库服务器提交请求和接收来自服务器的信息。 5 数据库设计5.1 表结构设计依据逻辑关系模型,我们在数据库中创建了表。一共设计了十个数据库表。Airport表是所有机场名字及机场所在地信息,表结构如图5-1所示图5-1机场名字及所在地Airportcorp表是所有航空公司名字表信息,表结构如图5-2所示图5-2航空公司名称Branch表是所有航班网点名称及所在城市地址和网点电话表信息,表结构如图5-3所示图5-3航班网点信息City表是所有城市名称表信息,表结构如图5-4所示图5-4城市信息Flight表是所有航班名称,编号,飞机出发时间及到达时间表信息,表结构如图5-5所示图5-5航班信息Flight Plan表是所有航班名编号,飞机出发时间及到达时间,航班起止及结束时间表信息,表结构如图5-6所示图5-6航班计划Route表是所有所有出发机场及到达机场,路线距离,机票价格以及对应的航空公司表信息,表结构如图5-7所示图5-7路线信息User表是所有所有用户名字,用户密码等用户信息表信息,表结构如图5-8所示图5-8用户信息表Userorder表是所有航班代号,路线代号,用户信息机票价格,飞机起止时间及地点表信息,表结构如图5-9所示图5-9用户订单表6 详细设计6.1 用户管理功能6.1.1用户登录注册用户登录本系统的开始操作前,需要先登录系统,然后可以执行业务操作。首先进入登录页面,输入用户名和密码,点击登录,登录成功后进入主页面。若用户名或密码为空则弹出用户名或密码为空的提示;若用户名或密码不正确,则弹出用户名或密码不正确的提示,如图6-1所示。图6-1登录界面 登陆功能主要代码如下: public class LoginActivity extends Activity private EditText mUser; / 帐号编辑框 private EditText mPassword; / 密码编辑框 private SharedPreferences mSharedPreferences; private SharedPreferences.Editor mEditor;SuppressLint(NewApi)Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.login_system);StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build();StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath().build();mUser = (EditText) findViewById(R.id.login_user_edit);mPassword = (EditText) findViewById(R.id.login_passwd_edit);/ 登录方法private boolean login() / 获得用户名称String username = mUser.getText().toString();/ 获得密码String pwd = mPassword.getText().toString();/ 获得登录结果String result = query(username, pwd);if (result != null & result.equals(success) return true; else / saveUserMsg(result);return false;public void login_mobile_system(View v) if (validate() if (login() mSharedPreferences = getSharedPreferences(SharedPreferences,Context.MODE_PRIVATE);mEditor = mSharedPreferences.edit();mEditor.putString(login_name, mUser.getText().toString();mEmit();String real_name = null;String code = null;String url = HttpUtil.BASE_URLIntent intent = new Intent(LoginActivity.this,MainActivity.class);startActivity(intent); else new AlertDialog.Builder(LoginActivity.this).setIcon(getResources().getDrawable(R.drawable.login_error_icon).setTitle(登录错误).setMessage(用户名帐号或者密码不能为空,n请输入后再登 录!).create().show(); public void login_back(View v) / 标题栏 返回按钮 this.finish(); public void login_register(View v) / 忘记密码按钮 Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);startActivity(intent); / 验证方法 private boolean validate() String username = mUser.getText().toString();if (username.equals() showDialog(用户名称是必填项!);return false;String pwd = mPassword.getText().toString();if (pwd.equals() showDialog(用户密码是必填项!);return false;return true; private void showDialog(String msg) AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setMessage(msg).setCancelable(false).setPositiveButton(确定, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int id) );AlertDialog alert = builder.create();alert.show(); / 根据用户名称密码查询private String query(String account, String password) / 查询参数String queryString = account= + account + &password= + password;/ urlString url = HttpUtil.BASE_URL + servlet/LoginServlet? + queryString;/ 查询返回结果return HttpUtil.queryStringForPost(url); 6.1.2用户注册未注册的用户在使用本系统前,需要先注册个人信息,然后可执行登录操作。用户进入注册页面,输入个人账户信息,点击注册按钮,如图6-2所示。图6-2注册注册功能主要代码如下: public class RegisterActivity extends Activity EditText register_user_name_edit; EditText register_user_password1_edit; EditText register_user_password2_edit; EditText register_real_name_edit; EditText register_code_edit; SuppressLint(NewApi)protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.register);StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskRe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论