基于android的手机彩票通的设计与实现内容摘要:

样的功能在真实操作中需要像代理商提交数据的操作,进行自己模拟建立数据库,进行模拟处理。 因此该应用要实现的功能有: ( 1)数据库的设计 数据库包括注册用户的资料、 用户购买的号码记录。 ( 2) 服务端的设计 在购彩过程中需要进行客户端与服务端数据的交互,那么在现今的数据交互中 XML和 Json 成为主流操作,在此应用中选择了 XML 作为传 递数据的格式,服务端再接收到Android 客户端发送过来的 XML 数据后,首先解析 XML 格式的数据包,然后如果需要再跟数据库进行交互操作,最后将数据封装成 XML 格式返回给服务端。 还有选择 XML 作为交互的数据格式的一个重要原因是因为我获取到的彩票通信协议就是按照 XML 的格式进烟台大学毕业论文(设计) 4 行管理的,所以采用 XML 也方便了应用的开发。 ( 4)前台设计 前台主要向用户展示该应用所包括的功能,包括登陆、注册、购彩、手机摇一摇、查看新闻等功能。 系统的可行性分析 本课题将使用 Android 技术和 Java 语言进行客户端的开发与 实现,将 Eclipse 作为客户端的开发平台。 Java,经过查询与了解,是一种面向对象的非常强大的语言,这跟 C语言是相通的,同时 Java 语言具有简单性、安全性、稳定性、可靠性、跨平台性等优点。 Java的诸多优点使得它非常适合于 Web 应用程序设计。 但是本人在大学里主要学习与研究的是 技术,对 Java 的了解有一定的局限性,所以在服务端的代码方面采用了 进行实现,不同平台,不同操作语言之间进行通信,在很多方面都可以直接进行操作,没有障碍,但是在本应用住设计到钱财与密码,所以就设计到进行加密 与验证的问题,在本设计中需要在一端进行加密,在不同端进行解密。 本设计中采用的是 DES 算法进行加密解密运算,同时采用了 MD5 作为验证算法。 因此最重要的就是统一 Android 端与 端的算法,只要统一了算法,那么两端之间的通信就不再成问题。 烟台大学毕业论文(设计) 5 3 总体设计 功能模块划分 根据该系统的实际需要 与对系统的实际分析 , 该系统的实现可以分为以下几个方面 : ( 1)用户登陆、注册 ( 2)用户选号 此部分分为手动选号、机选号码、摇一摇选号。 ( 3)加入购物车 此部分主要是为了统计用户一次性购买的注数,在数据库 中一次购买作为一次记录,并不是每一注作为一次记录,注与注之间用“ ^”进行分隔。 ( 4)追期和倍投 ( 5)查看新闻 ( 6)服务端处理 此部分主要是为了模拟处理用户的请求,包括用户的登陆、注册、查询账户余额、购彩请求。 同时与数据库进行交互,对用户的数据进行及时的增删改查的处理。 ( 7) 数据库的设计 基 于 A n d r o i d 的 手 机 彩 票 通购彩大厅A n d r i d 端A s p . N e t 服 务 端登录注册双色球选号购物车追期和倍投查看新闻用户登录和注册销售期双色球购彩追期和倍投查看新闻 图 系统模块图 系统模块设计图 应用的系统模块图如图 所示。 Android 客户端部分,只要实现与用户相关的操作,烟台大学毕业论文(设计) 6 包括用户的登陆、注册、加入购 物车、追期和倍投、投注、查看新闻等。 所有的这些操作,都需要与服务端进行交互,将所要提交的的数据如在登陆中需要提交用户名和密码等信息,将需要提交的信息封装成 XML 格式的数据,在这里还需要将用户的信息进行加密处理,同时得到 MD5 值,当作服务端数据验证的凭据。 然后将数据用 HttpClient 进行提交。 对于服务端这边,服务端在接收到信息之后,对所接收到的请求进行不同的响应,这其中就包括对数据的操作。 先对接收到的 XML 数据进行格式解析,解析后按照协议生成 MD5值,如果验证通过的话,需要对用户传递过来的数据进行解密操作 ,这一系列操作完成后,将返回的数据再次封成 XML 格式,返回给客户端。 在这一系列的操作中,则包括了本系统的所有模块。 因为服务端并不是真正意义上的服务端,所以数据中只存了与操作有关的数据,并没有建立完整的数据关系,但是数据库的设计完全可以满足对客户端的响应。 系统流程图 系统的整个流程是这样的: 用户打开本应用后看到购彩大厅界面,由于本系统中只做了双色球,所以点击双色球的进行选号,此时未登陆的就会提示登陆,登录后进入选号页面,用户选号分为三种形式,分别是手动选号、机选号码、摇一摇选号。 用户选完号之后就进 入购物车界面,在购物车界面可以再次添加投注,同样的投注方式也是有以上三种,用户再次选好之后可以进行投注,进入投注页面后,用户可以进行追期和倍投,操作完追期和倍投之后,就可以将自己的这一次购彩数据进行提交,再提交到服务器之前,会先判断用户的余额是否足够购买,足够购买的话,会将用户的投注数据提交到服务器,同时服务器进行相应的处理,扣除用户相应的金额,然后将用户的余额返回,到此,用户的一次购买彩票的工作就完成了。 购彩的流程图如下图 所示。 烟台大学毕业论文(设计) 7 开始用户是否登录查看销售期信息购买双色球选号加入购物车追期和倍投购彩余额是否充足购彩成功结束是否是否是否 图 系统流程图 烟台大学毕业论文(设计) 8 开发工具和开发框架介绍 Eclipse 介绍 随着 Eclipse的不断发展, Java下一步的开发环境将被 Eclipse所独占。 而且,随着 Eclipse不断的开发插件, Eclipse 将不仅仅成为只能开发 Java 程序的平台,它甚至可以在不久的将来能被扩展到开发任何语言,甚至可以被当作绘图软件使用。 Eclipse 的优点如下 : ( 1) Eclipse 的源代码对所有开发者开放,这也就意味着将来具有无限的可能,只要人们提出了这个需要,那么人们就可以根据需求在 Eclipse 源代码的基础上进行 任何形式的插件的开发。 这也就意味着 Eclipse 的可以进行广阔的扩展, Eclipse 的未来具有无限的可能性。 ( 2) Eclipse 具有跨语言、跨平台性。 Eclipse 在很多人眼中只是一个 Java 的开发平台,但是 Eclipse 可以被用来进行各种形式的开发,并且可以部署在多种系统之上,例如 Linux平台,体现了 Eclipse 良好的跨平台性。 因此平台自身仅仅是十分小的组软件。 Eclipse 平台的目标,是成为融合多种平台开发的整个机制。 [2] 观察者模式 介绍 观察者模式在开发中会被大量应用,所谓观察着模 式就是指一个被监听者可以被多个对象同时监听,当被监听者发生状态改变时,监听对象会得到通知,然后进行自我更新。 这个过程可以被称作观察着模式 [3]。 ( 1) 抽象主题( Subject) 抽象了所有被观察者,对所有的被观察着进行维护,并且提供增删改查的功能。 ( 2) 具体主题( ConcreteSubject) 具体的被观察者对象,用来维护被观察者对象,当状态改变时,发起通知。 ( 3) 抽象观察者( Observer) 为所有的具体观察者定义一个接口, 主题更新时将自己进行更新。 ( 4) 具体观察者( ConcreteObserver) 具体的观察着对象,当被观察者状态发生改变时,进行自我状态的更新。 观察者模式如图 所示。 图 观察者模式 烟台大学毕业论文(设计) 9 4 详细设计 各模块的功能 此系统分为可以分为三大模块,分别是 Android 客户端模块、 服务端模块和数据库模块。 这三大块之间联系密切,不可分割。 三个大块之间进行数据交互的过程是这样的。 Android 客户端用户发起请求,例如发起登陆请求,在客户段进行简单的数据验证之后将数据封装成 XML 发送到 服务端。 服务端查询数据库,进行用户名密码的验证,验证通过后 ,将结果同样封装成 XML数据返回给客户端,客户端接收到数据后进行 XML 数据格式的解析,将解析结果展示在界面上。 Android 客户端模块 在 Android 客户端模块,用户需要向服务端发送 XML 格式的数据包,以进行数据的通信, 每一个发向服务端的请求都应该包含 message 节点, header 节点, header 节点中需要包含 messengerid(消息编号)、 timestamp(时间戳)、 transactiontype(交易类型)、 agentid(代理商编号)、 digest( 对消息包的摘要,摘要算法为 MD5,摘要内容为:时间戳 +代理密码 +消息体)、 source(用户操作终端来源)、 press(加密方式), body 节点, body 节点中需要包含 elements 节点, elements 节点中需要包括 element 节点每个请求所不同的地方就是 element 节点中的内容。 为了两端进行通信的安全性, body 节点中的信息是经过 DES加密的。 ( 1) 用户登录 用户登录时,输入用户名和密码,用户名唯一,不能重复,所以在此采用手机号码作为用户名。 用户登录成功后跳转到购彩大厅界面,进行双色球的购买。 同时在购彩大厅页面显示 用户名和余额信息。 用户登录时向需要向服务端发送的数据有:用户名、密码同时还需要发送头部信息即header 节点。 ( 2) 用户注册 用户注册时输入用户名密码等信息,用户成功注册后,将刚注册的用户设为登录状态,同时在注册时赠送两元作为注册奖励,注册成功后在购彩大厅页面显示用户的用户名和余额信息。 向服务器发送数据的用户注册,注册的用户名和密码,同时 还有头部信息 :注册的用户名和密码,同时和头部信息。 因为每个请求的头部信息都是相同的,每个请求协议不同的只是 body 中封装的内容。 同样, 实际应用中发送给 服务器的 body 部分是由 DES 加密。 ( 3)用户双色球选号 进入选号页面后,用户有三种选号方式,手工选号,机选号码和摇一摇选号,在手工选号时,每选中一个球,将球进行摇晃处理,增加交互效果。 用户选好号码之后,进行注烟台大学毕业论文(设计) 10 数的统计和金额的统计,同时将用户的投注信息添加到购物车。 ( 4)购物车 用户进入购物车页面之后,可以再此进行选号,同样选号的方式与金额等的统计与上一步骤相同。 同时可以进行清空购物车操作,将自己之前的选择的注数全部清空。 ( 5)追期和倍投 用户在购物车页面选择投注之后则进入了追期和倍投界面,在该界面用户可以进一步加大 注码,所谓的追期,就是在将来的期数之内,连续选择购物车中的号码。 所谓的倍投,就是将购物车中的注码进行加倍,每加一倍,钱数也会加倍,当然如果中奖的话,中奖的金额也会增加相应的倍数。 用户进行投注时,需要向服务端发送数据有用户名、玩法编号( lotteryid)、期号( issue)、投注金额( lotteryvalue 以分为单位)、注数( lotterynum)、倍数( appnumbers)、追期( issuenumbers)、投注号码( lotterycode 注与注之间用 ^分割)。 因为双色球的分为单式和复式,即单式: 6 个红球 +1 个蓝球;复式:多于 6 个红球 +1个蓝球或 6 个红球 +多于 1 个蓝球或 多于 6 个红球 +多于 1 个蓝球。 所以在统计双色球注数的时候采用如下的公式: 11( ( * ))nnT S T M M ( ) ( 6)查看新闻 用户可以查看跟彩票有关的相关新闻。 用户查看新闻时,因为新闻可以给每个注册的用户查看,所以不需要进行加密等操作,所以不需要进行协议的封装,直接向服务端发起请求即可,服务端将最新的新闻信息进行封装后返回,客户端将数据解析后进行展示 即可。 ( 7)我的彩票 在我的彩票中,可以查看用户购彩记录。 用户查询我的彩票时需要向服务端发送的数据只有用户名。 所以 body 中不进行信息的封装。 在进行数据传递时只需要封装好 header 中的内容即可。 这一模块的用例图如图 所示。 烟台大学毕业论文(设计) 11 用户购彩大厅登陆和注册双色球选号购物车追期和倍投服务端 图 Android 端用例图 服务端模块 服务端在响应客户端的请求时,对于每个请求的响应也有完全重复的地方,每个回复的数据中都包括 :用户名、密码同时还需要发送头部信息,每一个封装好的请求协议头部信息是固定的,包括 messengerid(消息 编号)、 timestamp(时间戳)、 transactiontype(交易类型)、 agentid(代理商编号)、 digest( 对消息包的摘要,摘要算法为 MD5,摘要内容为:时间戳 +代理密码 +消息体)、 source(用户操作终端来源)、 press(加密方式),但是在返回的 body 信息中多封装了 oelment 节点,该节点中保存了请求失败或成功的标志。 同样的,服务端返回给客户端。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。