基于Android平台拼车App设计毕业论文.doc_第1页
基于Android平台拼车App设计毕业论文.doc_第2页
基于Android平台拼车App设计毕业论文.doc_第3页
基于Android平台拼车App设计毕业论文.doc_第4页
基于Android平台拼车App设计毕业论文.doc_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

基于Android平台拼车App设计学位申请人:XXX学科专业:计算机科学与技术指导教师:XXX答辩日期:2015.3.21Based on the Android platform carpooling App design Candidate: XXXXMajor: Computer science and technologySupervisor: XXXX摘要随着国民经济的飞速发展,人民收入水平的不断提高,城市中乘坐出租车的人越来越多,尤其在上下班高峰期出租车出现供不应求的情况。但是,在非高峰时段,出租车的空载现象比较严重。特别是下雨或要下雨时,路上总是会同时到达许多辆出租车,每辆车上通常都只有一两个乘客。这都极大地浪费了出租车的运输效能,一定程度上造成汽车废气排放量增加、交通堵塞等一系列的问题,困扰着城市交通及出租车行业的健康发展,因此提高出租车的运营效率成为缓解交通压力的有效途径。另一方面,随着移动技术的发展,移动智能终端在人们的日常生活扮演越来越重要角色。为了提高人们的生活品质,越来越多的手机应用应运而生。人们的个人手机已经渐渐变成了一台迷你电脑,无论何时何地,只要有手机和通讯网络,就可以解决很多问题。如何在移动智能终端上构建出租车拼车系统,确实地方便用户实现拼车业务,是一项有实际应用价值的课题。矚慫润厲钐瘗睞枥庑赖。本文以移动平台出租车拼车系统的Android客户端为详述对象,主要任务是通过介绍整个客户端的需求分析、设计、实现的过程来深入阐述对于出租车资源浪费这一问题的解决思路。论文的核心工作包括三个方面,第一,设计实现了Android手机用户的自身定位,与乘坐出租车目的地的目标定位。第二,实现了客户端用户之间的距离匹配,以及目的地距离匹配。第三,实现了客户端用户之间的通讯聊天功能。聞創沟燴鐺險爱氇谴净。论文从项目背景出发,介绍了系统开发的背景和运营价值。然后,详细介绍了移动平台出租车拼车这一项目的可行性和匹配算法的设计,以及整个客户端的设计与实现。再次,论文详细阐述了系统的需求,具体介绍了移动平台出租车拼车系统的详细设计。最后论文针对当前完成移动平台出租车拼车系统进行的分析和评价,并指明了下一步的改进计划。残骛楼諍锩瀨濟溆塹籟。关键词:拼车 Android平台 拼车App PHP技术AbstractWith the rapid development of national economy, the continuous improvement of peoples income level, more and more people are taking a taxi in the city, especially in the rush hour taxi appeared in short supply situation.But, in the rush hour, the light of the taxi phenomenon is more serious.Especially when it rains or its going to rain, the road will always arrive at the same time many taxi, usually only one or two passengers per vehicle.It is greatly wasted taxi transportation efficiency, to a certain extent caused by automobile exhaust emissions increase, a series of problems such as traffic jams, affects the healthy development of urban traffic and the taxi industry, thus to improve the operating efficiency of taxi has become an effective way to ease traffic pressure.On the other hand, with the development of mobile technology, mobile intelligent terminal more and more important role in Peoples Daily life.In order to improve peoples quality of life, an increasing number of mobile phone application arises at the historic moment.Peoples personal mobile phones have gradually turned into a mini computer, no matter when and where, as long as have mobile phones and communications network, can solve many problems.How to build the taxi car pool to the mobile intelligent terminal system, really easy to achieve car-sharing business, is a subject of practical application value.酽锕极額閉镇桧猪訣锥。This paper takes the taxi car-sharing system Android mobile platform client for detailed object, main task is through introducing the client demand analysis, design, implementation, to further elaborate the process of to taxi resources waste solution of this problem.The core of the paper work includes three aspects: first, the design has realized the Android mobile phone users of its positioning, target positioning and taxi destination.Second, to achieve the client user, the distance between the matching distance matching as well as the destination.Third, implement the client communication chat between users.彈贸摄尔霁毙攬砖卤庑。Papers from the project background, this paper introduces the background of system development and operation value.Mobile platform are introduced in detail, and the taxi car pool the feasibility of the project and the design of the matching algorithm, and the design and implementation for the client.Again, the paper expounds the requirements of system in detail, detailed introduced the mobile platform taxi car-sharing system design in detail.The final paper in view of the current mobile platform taxi carpooling system analysis and evaluation, and pointed out the improvement plan of the next.謀荞抟箧飆鐸怼类蒋薔。Keywords: carpooling Android platform carpooling App PHP technology厦礴恳蹒骈時盡继價骚。目录基于Android平台拼车App设计1茕桢广鳓鯡选块网羈泪。摘要2鹅娅尽損鹌惨歷茏鴛賴。1 绪论4籟丛妈羥为贍偾蛏练淨。1.1 研究背景及意义4預頌圣鉉儐歲龈讶骅籴。1.2 国内外研究概况4渗釤呛俨匀谔鱉调硯錦。1.3 论文的主要研究工作5铙誅卧泻噦圣骋贶頂廡。2 关键技术5擁締凤袜备訊顎轮烂蔷。2.1 系统架构6贓熱俣阃歲匱阊邺镓騷。2.2 Android平台概述6坛摶乡囂忏蒌鍥铃氈淚。2.3 PHP技术6蜡變黲癟報伥铉锚鈰赘。2.4 GSP定位技术7買鲷鴯譖昙膚遙闫撷凄。2.5 百度地图7綾镝鯛駕櫬鹕踪韦辚糴。2.6 MySQL数据库7驅踬髏彦浃绥譎饴憂锦。2.7 本章小结8猫虿驢绘燈鮒诛髅貺庑。3 系统需求分析8锹籁饗迳琐筆襖鸥娅薔。3.1 系统可行性分析8構氽頑黉碩饨荠龈话骛。3.2 系统功能需求8輒峄陽檉簖疖網儂號泶。3.3 系统安全需求9尧侧閆繭絳闕绚勵蜆贅。3.4 本章小结9识饒鎂錕缢灩筧嚌俨淒。4 系统的设计9凍鈹鋨劳臘锴痫婦胫籴。4.1 系统总体设计9恥諤銪灭萦欢煬鞏鹜錦。4.2 系统功能模块设计10鯊腎鑰诎褳鉀沩懼統庫。4.2.1注册模块设计10硕癘鄴颃诌攆檸攜驤蔹。4.2.2登录模块设计10阌擻輳嬪諫迁择楨秘騖。4.2.3地图模块设计11氬嚕躑竄贸恳彈瀘颔澩。4.2.3发布信息模块12釷鹆資贏車贖孙滅獅赘。4.2.4个人资料管理模块12怂阐譜鯪迳導嘯畫長凉。4.3 数据库设计13谚辞調担鈧谄动禪泻類。4.4 系统安全性设计15嘰觐詿缧铴嗫偽純铪锩。4.5 本章小结16熒绐譏钲鏌觶鷹緇機库。5 系统的实现与测试16鶼渍螻偉阅劍鲰腎邏蘞。5.1 系统开发与运行环境17纣忧蔣氳頑莶驅藥悯骛。5.2 系统主要功能模块的实现17颖刍莖蛺饽亿顿裊赔泷。5.2.1 注册功能17濫驂膽閉驟羥闈詔寢賻。5.2.2 登录功能25銚銻縵哜鳗鸿锓謎諏涼。5.2.3 地图定位功能27挤貼綬电麥结鈺贖哓类。5.2.4 发布信息功能38赔荊紳谘侖驟辽輩袜錈。5.2.5 个人资料管理47塤礙籟馐决穩賽釙冊庫。5.3 系统测试50裊樣祕廬廂颤谚鍘羋蔺。5.4 本章小结51仓嫗盤紲嘱珑詁鍬齊驁。6 总结与展望51绽萬璉轆娛閬蛏鬮绾瀧。6.1 全文总结51骁顾燁鶚巯瀆蕪領鲡赙。6.2 展望52瑣钋濺暧惲锟缟馭篩凉。致谢52鎦诗涇艳损楼紲鯗餳類。参考文献52栉缏歐锄棗鈕种鵑瑶锬。1 绪论1.1 研究背景及意义当前,随着经济的高速发展,汽车越来越多,开车的成本越来越高。交通问题越来越严重的影响世界各大城市,大范围的交通拥堵,造成了环境污染、土地紧缺已经能源消耗等诸多社会问题。交通问题不仅阻碍城市的进一步发展,还与我国目前提倡的地毯环保主题相违背。 辔烨棟剛殓攬瑤丽阄应。针对目前的交通问题,铺设大量的道路,建设城市道路和乡村公路网是一个不错的解决方案。但修建道路只能在一定时间缓解交通压力,因为道路的建设速度远远比不上车辆的增长速度,所以从远的来说,必须研究出交通可持续发展的策略。峴扬斕滾澗辐滠兴渙藺。对于这个问题,不少上班族正在把目光投向拼车。在北京,深圳等一线城市,拼车已经形成了一定的规模。相互拼车如果形成规模,上下班高峰时段估计车辆能减少1/51/4,能缓解目前车辆拥堵的现象。两家拼车能节省将近一半的燃料,自然同时节约了养车的总支出。提供了交友的机会,能增进邻里、员工之间的友情,互相学习提高驾驶技术。互相间有了自己备用的司机,出现了问题互相有个照应。互相制约减少违章,一旦喝多了或没醒酒能有个人替换。如今30岁以下多是独生子女,拼车能使之成为挚友是十分可取的方式。未来家庭人口越来越少了,两家人一起出去游玩,过节一同吃顿饭,都是很不错的选择。出远门家中宠物无人照顾,就可以放到车友家了!詩叁撻訥烬忧毀厉鋨骜。1.2 国内外研究概况德国老百姓热衷于拼车,除去环保、社交等因素外,最直接的考量就是低廉的费用。德国老百姓热衷于拼车,除去环保、社交等因素外,最直接的考量就是低廉的费用。则鯤愜韋瘓賈晖园栋泷。除费用外,在德国拼车也无太多安全之虞。如果在中介机构寻找拼车,司机及乘客的相关信息都有备份,均有迹可查,而在拼车网站上,司机与拼车客都需注册,双方在拼车完成后会互相给出信用评价,也具有相当的可信度。胀鏝彈奥秘孫戶孪钇賻。在英国,想要拼车很容易,有很多专门的网站提供这项服务。不过这些网站大部分更适合长途旅行,除了提供英国各个城市之间的拼车之外,还提供欧洲范围之内的拼车服务。鳃躋峽祷紉诵帮废掃減。在韩国,随着油价的飙升、开车成本的提高以及日益严重的交通拥堵,拼车正受到韩国年轻一族的青睐。除了上下班拼车,拼车旅行和拼车回家过节也逐渐成为一种时尚。事实上,在上下班高峰期、周末、深夜、恶劣天气以及偏僻地区打车不易是日常生活中普遍遇到的一个难题。有时好不容易来了一辆空车,司机却又漫天要价。这样的情况在韩国也屡见不鲜。稟虛嬪赈维哜妝扩踴粜。美国是汽车大国,平均每百人就有80多人有车。为了节省能源,减少道路和交通压力,美国各级地方政府、各种社团和社区都积极推动“拼车”,为“拼车”牵线搭桥,并提供各种便利和优惠。拼车费一般都是AA制,支付形式因人因事而异。有些拼车网站为拼车的人提供费用和安全担保,由网站对参加客户进行信用调查和信用评级,有些网站还提供拼车定期收费服务。陽簍埡鲑罷規呜旧岿錟。1.3 论文的主要研究工作本课题主要从计算机科学与技术专业着手,研究计算机特色专业建设的各项管理工作。根据我校周边的实际情况,设计了一套计算机特色专业建设管理系统,主要围绕系统中涉及到的2种用户,对系统的注册、登录、发布信息、地图、个人资料管理模块作了具体的设计与实现。在系统设计过程中,主要作了以下工作:沩氣嘮戇苌鑿鑿槠谔應。(1)根据系统用户角色少、用户分散等特点,系统采用C/S架构进行设计。同时,由于Mysql体积小、速度快、总体拥有成本低,服务器端采用了PHP+Mysql技术开发。钡嵐縣緱虜荣产涛團蔺。(2)以系统中2种角色的业务活动为中心,在UML模型的指导下,对系统进行了需求分析、设计和主要功能模块的实现。懨俠劑鈍触乐鹇烬觶騮。(3)为了验证系统的可用性和可靠性,最后,对系统进行了测试。2 关键技术本章主要围绕系统在设计与开发阶段需要使用的到的相关技术和平台展开介绍,并分别从技术的原理、特点、发展方向等几个方面进行分析,从而说明其适用于本系统的原因。謾饱兗争詣繚鮐癞别瀘。2.1 系统架构即Client/Server (客户机/服务器) 结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。呙铉們欤谦鸪饺竞荡赚。客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。莹谐龌蕲賞组靄绉嚴减。开发比较容易,操作简便,但应用程序的升级和客户端程序的维护较为困难。2.2 Android平台概述Android(安卓),是一个以Linux为基础的开源移动设备操作系统,主要用於智能手机和平板电脑,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中。Android已发布的最新版本为Android 5.0(Lollipop)。麸肃鹏镟轿騍镣缚縟糶。Android系统最初由安迪鲁宾(Andy Rubin)等人开发制作1 ,最初开发这个系统的目的是创建一个数位相机的先进操作系统;但是後来发现市场需求不够大,加上智能手机市场快速成长,於是Android被改造为一款面向智能手机的操作系统。於2005年8月被美国科技企业Google收购。2007年11月,Google与84家制造商、开发商及电信营运商成立开放手持设备联盟来共同研发改良Android系统,随後,Google以Apache免费开放原始码许可证的授权方式,发布了Android的原码,让生产商推出搭载Android的智能手机,Android後来更逐渐拓展到平板电脑及其他领域上。納畴鳗吶鄖禎銣腻鰲锬。2010年末数据显示,仅正式推出两年的Android作业系统在市场占有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全球第一大智能手机操作系统。風撵鲔貓铁频钙蓟纠庙。2.3 PHP技术PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。灭嗳骇諗鋅猎輛觏馊藹。PHP的特性包括:(1)PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。(2)PHP可以比CGI或者Perl更快速的执行动态网页动态页面方面,与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多。铹鸝饷飾镡閌赀诨癱骝。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。(3)PHP支持几乎所有流行的数据库以及操作系统。(4)最重要的是PHP可以用C、C+进行程序的扩展!2.4 GSP定位技术GPS英文全名是“Navigation Satellite Timing And Ranging / Global Position System”,其意为“卫星测时测距导航/全球定位系统”,简称GPS系统。该系统是以卫星为基础的无线电导航定位系统。攙閿频嵘陣澇諗谴隴泸。GPS全球卫星定位导航系统,开始时只用于军事目的,后转为民用被广泛应用于商业和科学研究上。GPS空间部分使用了二十四颗卫星组成的星座,卫星高度约20200公里,分布在六条升交点互隔60度的轨道面上,每条轨道上均匀分布四颗卫星,相邻两轨道上的卫星相隔40度,使得地球任何地方至少同时可看到四颗卫星。趕輾雏纨颗锊讨跃满賺。传统的GPS定位技术在户外运转良好,但在室内或卫星信号无法覆盖的地方效果较差,而且如果所在位置上空没有3颗以上的卫星,那么系统就无法从冷启动状态实现定位。夹覡闾辁駁档驀迁锬減。2.5 百度地图API接口百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API、Web服务API、Android SDK、iOS SDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端、服务器等多种设备,多种操作系统下的地图应用开发。视絀镘鸸鲚鐘脑钧欖粝。2.6 MySQL数据库MySQL(发音为my ess cue el,不是my sequel)是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。偽澀锟攢鴛擋緬铹鈞錠。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。緦徑铫膾龋轿级镗挢廟。MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。騅憑钶銘侥张礫阵轸蔼。MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。疠骐錾农剎貯狱颢幗騮。MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。镞锊过润启婭澗骆讕瀘。2.7 本章小结本章主要通过搜集国内外相似系统的资料,了解其应用的相关技术,通过技术特点的对比进行本系统的技术选择。3 系统需求分析3.1 系统可行性分析本系统服务器采用PHP+Mysql技术,客户端采用Android平台。根据本人所掌握的技术:PHP+Mysql,Android,百度SDK,可以判定要做成这样的一个成品是完全没有问题的。榿贰轲誊壟该槛鲻垲赛。本系统计划从11月开始开发,于12月底完工,耗时两个月,时间非常充裕。在选择服务器之前,考察了网上各个服务器的价格,质量以及访问速度,本系统采用了新网虚拟主机作为服务器。3.2 系统功能需求本系统中,所有的业务都以用户和系统管理员两种角色。下面对着两种角色进行具体的分析。3.2.1系统管理员功能需求系统管理员主要负责审核司机的证件的真伪。系统管理员主要负责司机的认证管理,已经定期对系统的漏洞进行修复,数据库备份,危险文件删除,以提高系统的安全性。邁茑赚陉宾呗擷鹪讼凑。图用户功能需求首先,用户必须有注册,登录,管理个人资料这些必备的功能。然后是定位自己,发布信息,查看信息功能模块。如图3.2所示:嵝硖贪塒廩袞悯倉華糲。图3.2综上所述,本系统需要实现以下模块:注册模块、登录模块、发布信息模块、消息模块、订单管理模块、个人信息管理模块。该栎谖碼戆沖巋鳧薩锭。3.3 系统安全需求(1) 尽量减少客户端敏感的内容,尽量把这些放在服务端。(2) 防止命令注入攻击。命令注入攻击是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此。如果使用了被污染数据,命令注入漏洞就产生了。劇妆诨貰攖苹埘呂仑庙。(3) 防止SQL注入攻击,即一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。臠龍讹驄桠业變墊罗蘄。(4)防止session劫持。session劫持是一种比较复杂的攻击方法。大部分互联网上的电脑多存在被攻击的危险。这是一种劫持tcp协议的方法,所以几乎所有的局域网,都存在被劫持可能。鰻順褛悦漚縫冁屜鸭骞。(5)对用户提交的所有数据进行验证。3.4 本章小结本章分析系统的运行模式,功能需求,技术可行性,安全问题。4 系统的设计经过对系统的需求分析,更加明确了系统的需求导向,本章针对系统的需求,结合流程图对系统的功能模块进行具体设计。穑釓虚绺滟鳗絲懷紓泺。4.1 系统总体设计本系统架构表示层由Android 编写。Android客户端包含了UI以及UI逻辑控制。业务层主要在PHP服务期端,Android通过http协议,以POST的方式发送字符串,服务期返回JSON数据格式的结果,Android再根据结果进行业务结果判断。体系结构抽象如图4.1所示。隶誆荧鉴獫纲鴣攣駘賽。图4.14.2 系统功能模块设计根据第三章的功能需求,本节对系统进行具体的功能设计。主要分为5大模块,注册模块,登录模块,发布信息模块,个人信息管理模块,地图定位模块。如图4.1所示。浹繢腻叢着駕骠構砀湊。图 注册模块设计系统注册用户信息的时候,我们需要用户提交电话phone(13位手机号),密码password(小于20位字符,大于6位字符),昵称name(小于6个汉字,大于2个汉字),性别sex。鈀燭罚櫝箋礱颼畢韫粝。注册分成两步奏,第一步提示用户输入手机号,点击获取验证码,php平台发送验证码,验证码正确才可以继续第二步骤。第二步骤,完善剩余信息(密码,性别,昵称)。到此,注册完成。如图4.3所示。惬執缉蘿绅颀阳灣熗鍵。图 登录模块设计Android 需要提交3个值,第一个值key,说明要进行的业务逻辑,第二个值账户username,必须是13位手机号码。第三个值密码password,必须是小于20个字符的字符串。账户和密码的验证在服务器验证。整个流程如图4.2所示。贞廈给鏌綞牵鎮獵鎦龐。图地图模块设计关于地图模块,本系统是通过百度地图SDK调用百度地图API接口获取地图数据。当用户登录成功的时候,客户端调用GPS获取用户当前经纬度,再把经纬度发送给服务器。服务把用户当前位位置记录在数据库里面。同时,客户端请求周边用户位置,返回周边其它用户的位置。嚌鲭级厨胀鑲铟礦毁蕲。在百度地图上,我们通过使用百度地图的mBaiduMap.addOverlay()方法,添加覆盖物,把乘客和司机两种用户分别标示出来。如果是乘客,只显示他/她的性别,跟昵称,不显示电话。如果是司机,显示昵称和电话。乘客通过地图,可以很方便的获取周边司机的信息。随时可以通过App拨打电话,联系司机。整个流程如图4.2所示。薊镔竖牍熒浹醬籬铃騫。图发布信息模块拼车信息分成两种,一种即时拼车,一种是正常拼车。即时拼车适用于当天急需用车的乘客,当前城市的司机点击消息界面,切换消息状态,就可以看到即时拼车的信息。而正常拼车使用于几天后拼车,不急着用车的乘客。齡践砚语蜗铸转絹攤濼。正常拼车需要用户提供起点、终点、约定拼车的时间、给司机留言(不是必须有的)。即时拼车需要用户提供起点、终点、愿意等待的司机的时间(5分钟,15分钟,25分钟)、给司机留言(不是必须有的)。绅薮疮颧訝标販繯轅赛。同时,用户在客户端输入起点跟终点的时候,提供地图选取位置的功能。限制起点、终点20字以内。时间使用Android的时间空间,以标准的格式输入。饪箩狞屬诺釙诬苧径凛。4.2.4个人资料管理模块个人资料管理主要涉及到:用户的头像修改、昵称修改、性别修改、密码修改、身份的切换(乘客或者司机)、当前城市切换、用户认证(行驶证认证,驾驶证认证)、自动登陆开关、自动定位城市开关。烴毙潜籬賢擔視蠶贲粵。其中,由于系统是默认30秒更新一次数据库的用户经纬度。如果个自动定位开关关闭,将不再自动更新定位。用户认证主要是用于司机的认证,通过认证的司机将会在个人资料上显示他的认证标志。认证的审核将由系统管理员来完成。鋝岂涛軌跃轮莳講嫗键。4.3 数据库设计数据库是信息系统的核心和基础,本系统采用Mysql5.4数据库,数据库命名为carshare,主要包括系统管理员信息表(sys),用户表(user),拼车信息表(info)。撷伪氢鱧轍幂聹諛詼庞。(1)系统管理员信息表系统管理员信息表主要设计了管理员ID、姓名、账号(联系电话)、密码等,如表4-1所示。表4-1 系统管理员信息表(sys)字段字段名类型宽度是否主键备注1sys_id自增长是记录表长度2phoneNvarchar20账户名,手机号码3passwordNvarchar20登录密码4nameNvarchar10系统管理员姓名(2)用户信息表用户信息表主要设计了用户的ID、姓名、账号(联系电话)、密码,经度、纬度、身份(乘客或者司机)、当前所在城市等,如表4-2所示。踪飯梦掺钓貞绫賁发蘄。表4-2 用户信息表(user)字段字段名类型宽度是否主键备注1user_id自增长是记录表长度2phoneNvarchar20用户账号(联系电话)3passwordNvarchar20登录密码4nameNvarchar20用户昵称5sexNvarchar1性别6mystatusNvarchar1身份d表示司机,p表示乘客)7cityNvarchar10用户当前所在城市8latdouble9经度9logdouble9纬度10auth_phoneNvarchar5电话是否真实11auth_licence_driverNvarchar5驾驶证是否真实12auth_licence_carNvarchar5行驶证是否真实(3)拼车信息表拼车信息表(info)主要设计了拼车信息的ID、用户表ID、信息类型、起点、终点、出发时间、发布时间、愿意等待时间、用户留言等,如表4-3所示。婭鑠机职銦夾簣軒蚀骞。表4-3 拼车信息表(info)字段字段名类型宽度是否主键备注1info_id自增长是记录表长度2user_idint11用户表ID3typeint1拼车类型(1正常,2及时)4departureNvarchar32起点5TerminalNvarchar32终点6dep_dateNvarchar10出发日期,格式:2015-11-127Dep_timeNvarchar10出发时间,格式:07:008Wait_timeint2等待时间(5,15,25)9Pub_dateNvarchar10发布信息时间,格式: 2015-11-11 13:00 10infoVarchar200给拼友留言,可以为空4.4 系统安全性设计系统安全性,我觉得应该从软硬件结合做起。硬件方面由新网负责,对此笔者是比较信任的。软件方面,服务器端是由Apache+PHP+Mysql组成的,apache应该有以下设置:譽諶掺铒锭试监鄺儕泻。(1)编译源代码,修改默认的banner(2) 访问特殊目录需要密码.htaccess(3) 关闭索引目录options -Indexes(4) 关闭CGI执行程序options -ExecCGI(5) apache限制目录php_admin_value open_basedir /var/www俦聹执償閏号燴鈿膽賾。(6) apache的php扩展名解析漏洞apache配置文件,禁止.php.这样的文件执行,配置文件里面加入order Allow,DenyDeny from all(7)apache设置上传目录无执行权限关闭路径/www/home/upload的php解析:order allow,denyDeny from all在PHP方面:(1) 配置文件php.ini设置register_globals = Off。(防止变量滥用)(2) magic_quotes_gpc=On(3)safe_mode是唯一PHP_INI_SYSTEM属性,必须通过php.ini或httpd.conf来设置。要启用safe_mode,只需修改php.ini:safe_mode = On(避免本地包含、文件打开、命令执行)缜電怅淺靓蠐浅錒鵬凜。(4) 如非特殊需要,一定要关闭PHP的远程文件打开功能。修改php.ini文件(避免远程包含漏洞)(5) 防注入,在php.ini中,找到此节:; Automatically add files before or after any PHP document. 骥擯帜褸饜兗椏長绛粤。;auto_prepend_file = phpids.php;auto_append_file = alert.php默认是空,请添加所包含的文件。同时找到:; UNIX: /path1:/path2;include_path = .:/php/includes; ; Windows: path1;path2include_path = .;F:PHPnowhtdocs(6)修改display_errors = Off(关闭警告及错误信息)。(7)对于用户所提交的数据,笔者掌专门设计一个过滤类,用来过滤非法数据。4.5 本章小结本章对系统的结构设计、系统的功能以及安全性进行了详细的阐述,重点指出了开发中需要注意的问题。5 系统的实现与测试根据系统所涉及的用户,系统分为地图模块、发布信息模块、登录模块、注册模块和个人信息管理模块,本章将围绕这5个模块对主要功能模块进行具体的实现。最后,并对系统进行测试,以确保系统运行的稳定性和可靠性。癱噴导閽骋艳捣靨骢鍵。5.1 系统开发与运行环境系统的运行环境涉及到整个系统的质量。不同的系统,他对环境的要求是不一样的。笔者对本系统的运行环境做了如下介绍。鑣鸽夺圆鯢齙慫餞離龐。(1)网络环境国内高速节点。新网linux主机。(2)硬件环境服务器采用机架式IBM System x3650 M4 2U服务器,内存8G,1颗4核处理器,采用SATA/SAS硬盘接口,1TB容量大小,两块千兆网卡。榄阈团皱鹏緦寿驏頦蕴。(3)软件环境系统服务器端采用Linux操作系统,采用Mysql 5数据库,web服务器采用Apache2.2.16。独立空间200M,数据库20M(可升级),10G月流量,并发连接150个。逊输吴贝义鲽國鳩犹騸。5.2 系统主要功能模块的实现5.2.1 注册功能本系统注册功能暂时只提供手机号码注册,注册账号就是手机号。在打开APP进入登录界面,点击右下角的注册按钮,进入注册。账号:1385077XXXX 密码:123456,昵称:XXX。如图5.1,图5.2所示。幘觇匮骇儺红卤齡镰瀉。 图 5.1注册第一步 图 5.2 注册第二步当输入手机号,点击“获取验证码”的时候,客户端把号码发给服务器,服务器验证这个手机号是否被注册了,是否是规范格式的手机号。是返回验证码,不是将提示手机号被注册了。点击“下一步”,进入详细资料的填写。当点击“完成”,APP显示注册成功,否则显示注册失败。注册第一步的核心代码如下:誦终决懷区馱倆侧澩赜。public class Regist01Activity extends Activity implements OnClickListener 医涤侣綃噲睞齒办銩凛。private EditText et_regist_phone, et_regist_code;private TextView tv_regist_pro,tv_regist_back;private Button bt_regist_next, bt_regist_login, bt_regist_getcode;舻当为遙头韪鳍哕晕糞。private CheckBox cb_regist_pro;private AsyncHttpResponseHandler checkCodeHandler,getCodeHandler;鸪凑鸛齏嶇烛罵奖选锯。private Handler UIHandler;private CustomHttpService httpService;private CustomProgressDialog cpd;private Countdown countdown = null;boolean flag=false; /用于检测验证码是否正确,正确就跳转第二个注册页面protected void onCreate(Bundle savedInstanceState) 筧驪鴨栌怀鏇颐嵘悅废。/ TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_register01);et_regist_phone = (EditText) findViewById(R.id.et_regist_phone);韋鋯鯖荣擬滄閡悬贖蘊。et_regist_code = (EditText) findViewById(R.id.et_regist_code);涛貶騸锬晋铩锩揿宪骟。bt_regist_next = (Button) findViewById(R.id.bt_regist_next);钿蘇饌華檻杩鐵样说泻。bt_regist_login = (Button) findViewById(R.id.bt_regist_login);戧礱風熗浇鄖适泞嚀贗。bt_regist_getcode = (Button) findViewById(R.id.bt_regist_getcode);購櫛頁詩燦戶踐澜襯鳳。cb_regist_pro = (CheckBox) findViewById(R.id.cb_regist_pro);嗫奐闃頜瑷踯谫瓒兽粪。tv_regist_pro = (TextView) findViewById(R.id.tv_regist_pro);虚龉鐮宠確嵝誄祷舻鋸。tv_regist_back = (TextView) findViewById(R.id.tv_regist_back);與顶鍔笋类謾蝾纪黾廢。bt_regist_getcode.setOnClickListener(this);bt_regist_next.setOnClickListener(this);bt_regist_login.setOnClickListener(this);tv_regist_pro.setOnClickListener(this);tv_regist_back.setOnClickListener(this);cpd = CustomProgressDialog.createDialog(this);httpService=new CustomHttpService(Regist01Activity.this);結释鏈跄絞塒繭绽綹蕴。getCodeHandler = new AsyncHttpResponseHandler() public void onStart() super.onStart();/cpd.setMessage(getResources().getString(R.string.dia_load);餑诎鉈鲻缥评缯肃鮮驃。cpd.show();public void onFinish() super.onFinish();if (cpd != null) cpd.dismiss();public void onSuccess(String content) super.onSuccess(content);CustomData data =

温馨提示

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

评论

0/150

提交评论