1、本科毕业论文(设计)本科毕业论文(设计)题 目 基于 JavaEE 的公 共自行车管理系统 专 业 软件工程 作者姓名 学 号 单 位 聊城大学 指导教师 年 月教 务 处 编目 录目 录 .1摘 要 .2Abstract.3前 言 .11. 绪论 11.1 系统开发背景及意义 .11.2 本文主要工作 .21.3 关键问题解决 .32. 系统需求分析与获取 32.1 系统概述 .32.2 系统需求分析 .33. 开发工具介绍 43.1 eclipse 43.2 Oracle 数据库 .54. 详细设计 54.1 包、类结构设计 .54.2 数据库设计 .65. 系统实现与测试 65.1 系统
2、总体实现 .65.2 系统关键功能及算法实现 .9结束语 14参考文献 16致 谢 17摘 要公共自行车管理系统是一款用于规范公共自行车租借行为,保护公共财产的用户实名制管理系统。当今公共自行车租借在中国已经比较普及,广泛应用于城市公共交通基础设施建设,在学校,小区,商业街的附近经常可以看到它的身影。可是公共自行车避免不了的会受到用户或者他人的恶意损坏,为了保护广大群众的公共利益不受侵害,公共自行车管理系统应运而生。该系统限制用户注册必须实名,以评分为基础对用户信用度进行判断并做出相应处罚措施,最大程度的避免用户恶意损坏公共财产。本系统开发时使用的工具有 Eclipse,Oracle 数据库,
3、涉及到Java,JavaScript,jsp,struts2 框架相关的知识,通过 jdbc 技术完成Java 与数据库的数据交互。系统实现了用户的注册,登录,信息查询,信息修改的功能,根据车辆损坏状态的最后使用者判定负责人,以信用评分的方式监管用户借车行为。关键词:公共自行车;信用度;实名;EclipseAbstractPublic Bicycle Supervise System is a real-name registration system which was used for reconcile the behavior of rent public bicycle,protec
4、t common property.Now the public bicycle was general in China,extensive use in city common traffic infrastructure construction,we can easy to see them in school,village and business street. But public bicycle is hard to avoid the evil damage from user or other people,Public Bicycle Supervise System
5、was born to protect peoples common property.this system require user enroll with real-name,based on score to judge users credit standing that make corresponding punishment measures,at utmost to avoid user destroy public property.This system consists of development tool called Eclipse and Oracle data
6、base,involve the knowledge of Java,JavaScript,jsp and struts2,jdbc technology connect Java and database complete data alternation.The system has finished the function of users register,entry,information query,information amend.Person liable is a man who used the bicycle at the last time before the b
7、icycle was destroyed,supervise users rent behavior with credit rating.Key words: Public bicycle; Credit line; Real-name; Eclipse聊城大学本科毕业设计1基于JavaEE的公共自行车管理系统的设计与实现前 言当今时代,公共自行车成为了大家出行的宠儿,它不仅具有方便,快捷,环保的特点,随取随用和低收费也是获得大家青睐的重要原因。不过在公共自行车的发展过程中,有一部分人却要违背社会的主旋律,做出损坏公共自行车这种损人不利己的行为,对社会造成了很坏的影响,影响了大家的公共利益。
8、该系统通过对租车用户进行实名制注册的方式,规范用户“反正不是我自己的就不用爱惜”的思想,通过信用度评分的措施对用户进行处罚和管理,改善公共自行车租借市场的乌烟瘴气。本系统的操作界面并非传统业务处理界面那样难懂,适用于任何计算机操作水平的用户,致力于做到任何阶层,任何文化水平的用户都可以轻松掌握系统的使用方法。聊城大学本科毕业设计21. 绪论1.1 系统开发背景及意义公共自行车并非新事物,阿姆斯特丹早在 1965 年就进行了“公共自行车”项目,在当时被称作“WitteFietsen” ,但是由于损坏,偷窃等问题不断出现,这个项目最终被叫停。 12到了 2007 年,法国巴黎重启项目,推出“单车自
9、由骑” ,该活动取得了巨大的成功,起到了缓解交通拥阻和遏制环境污染的目的,但是损坏,偷窃仍旧是一个挥之不去的问题,让经营者付出了很大代价。 3同年,中国国内开始引入具有一定使用价值的公共自行车系统,开启了由政府主导分城市统一管理的模式时代,此后,共享单车一发不可收拾,永安行,ofo,摩拜等公司的成立,象征着中国共享单车市场进入群雄争霸的时代。 4在法国,有四万余量公共自行车,遍及全国三十多个城市,足以满足人口密集区的自行车租借需求。不过这个数量并不是最终结果,此后法国公共自行车的数量快速增长,骑自行车的人士增加了将近一半,每年使用公共自行车的数量破亿。 6不仅仅是法国,全球至少 49 个国家的
10、 500 多个城市建立了公共自行车系统,连迪拜也于 2013 年建立了公共自行车系统。 7丹麦多年来都提倡“绿色交通” ,仅仅需要付出少量的代价便可以租用自行车,据统计显示,每辆自行车的空闲时间只有 8 分钟,足见其受欢迎程度。 8在英国,许多乘客都可以使用公共自行车环游英国, 9在伦敦,租车系统全天 24 小时运行,当租车者到达停车位却无空位时,可以操作显示屏搜索附近空闲车位进行查找。公共自行车出行不仅方便快捷,绿色环保,使用成本还要明显低于驾车出行,因此深受人们的青睐。聊城大学本科毕业设计3但是公共自行车风靡中国以来,出现了越来越多的报道公共自行车被破坏的新闻,很多扫码租车的单车车身上的二
11、维码被撕掉,敲碎,喷黑导致车辆无法使用,甚至还有车轮被撞歪,锁芯被水泥封住,电缆被盗走的恶劣现象。很多媒体调查结果显示,做出破坏公共自行车的行为的人要么是因为公共自行车的出现影响了自己的单车租赁生意,因此心生怨恨,用极端的方式对待公共财物,要么是因为不是个人财产因此毫不爱惜,无论自行车受到了什么损伤都不以为然。 5由此可见,公共自行车市场急需有效的管理手段来规范,而车被破坏可分为停放时被破坏和租借过程中被破坏两种方式,停放时被破坏可由监控控制,租借时缺乏有效的管理手段,利用租借管理系统起到车辆租赁期间个人负责的作用,有效的控制租借者的行为。 11公共自行车管理系统是一个界面清晰简单的管理系统,
12、用户可以轻松的登录系统进行相关业务操作。该系统的目标是约束用户租借自行车时的行为,加强人们对公共财产的保护意识,避免一个即有利于环境保护又有利于身体健康的公益项目破产。 121.2 本文主要工作本片论文需要完成现状分析,系统需求分析,需求获取,主体业务编码实现,程序测试的任务。国家目前正处于经济实力日益增强,私人汽车数量激增的发展阶段,随之而来的便是交通拥堵,环境污染,世界气候变化的严重问题 13,这一切都与人类的行为活动密切相关,在国家大力提倡低碳经济的时代,自行车逐渐成为人们出行的首选。 14自行车作为一种不消耗能源,无污染的绿色交通工具,是一种可持续的交通方式, 15作为公共交通的末端交
13、通工具,自行车可以弥补公共交通线路密度不足的缺陷,减少汽车使用量,促进节能减排,实现绿色出行。 16该系统需要完成用户的实名登记,用户行为记录的功能,可跟不同的管理员系统配合使用,开发用户帐号停解权管理,账户数据修改,帐户数据维护,手机认证等功能,在满足系统功能设计的同时加入社交,分享等板块降低系统与生活的距离感。1.3 关键问题解决1.用户信息的更改2.车辆损坏状态的责任判定聊城大学本科毕业设计42. 系统需求分析与获取2.1 系统概述公共自行车管理系统是针对公共自行车租借市场设计的管理软件,主要用于规范用户行为,减少新闻报道中出现的恶意破坏公共自行车的行为而设计的管理系统。该系统采用记分制
14、计算用户的信用度,依据用户还车后的车辆状态来判断车辆损坏的责任人,对破坏公共财产行为起到约束作用。2.2 系统需求分析2.2.1 系统总体业务描述该系统的设计目的是为了规范用户的借车行为,通过评分的方式使用户加强公共财产保护的意识,合理合法地使用公共自行车,真正做到方便大家。用户在使用该系统时的操作权限有注册功能,用于注册新用户以使用公共自行车。登陆后默认界面是欢迎界面,显示轮播的广告和时间日期,用户可在菜单栏选择个人信息功能以查看注册时填写的信息,如果信息有误或者想修改登录密码则可以选择菜单栏“账户管理”页面进行信息修改申请,修改信息时的填写规范同注册时一致;通过点击“借车记录”可查看当前账
15、户的借车历史;点击右上角“退出”则返回到登录页面注销用户。2.2.1 系统功能性需求聊城大学本科毕业设计51.完成用户注册时关键字段信息重复的检查2.完成用户登录校验3.完成用户信息传递4.完成用户信息修改5.读取数据表格显示6.根据关键字段查询2.2.2 系统非功能性需求1.用户责任判断方式2.界面简洁清晰3. 开发工具介绍3.1 eclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。虽然其本身只是一个框架平台,但是众多插件的支持,使得 Eclipsc 拥有较佳的灵活性。Eclipse 的插件机制是轻型软件组织性架构,可以使用插件来提供所有的附加功能。3.1.1
16、 javascript 技术简介JavaScript 是一种属于网络的脚本语言,已经被广泛应用于 Web 应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常 JavaScript 脚本是通过嵌入在 HTML 中来实现自身功能的。JavaScript 是一种解释性脚本语言,主要用来向 HTML 页面添加交互行为;可以直接嵌入 HTML 界面,但写成单独的 js 文件有利于结构和行为的分离;具有跨平台的特性,在绝大多数浏览器的支持下可以在多种平台下运行。JavaScript 脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Ja
17、vaScript 提供了四种基本数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。3.1.2 jsp 简介JSP 全名为 Java Server Pages,中文名叫 java 服务器页面,其根本是一个聊城大学本科毕业设计6简化的 Servlet 设计,它是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似 ASP 技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入 Java 程序段(Scriptlet)和 JSP 标记(tag),从
18、而形成 JSP 文件,后缀名为(*.jsp)。 用 JSP开发的 Web 应用是跨平台的,既能在 Linux 下运行,也能在其他操作系统上运行。它实现了 Html 语法中的 java 扩展(以 形式) 。JSP 与 Servlet 一样,是在服务器端执行的。通常返回给客户端的就是一个 HTML 文本,因此客户端只要有浏览器就能浏览。JSP 技术使用 Java 编程语言编写类 XML 的 tags 和 scriptlets,来封装产生动态网页的处理逻辑。网页还能通过 tags 和 scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计的显示分离,支持可重用的基于组件
19、的设计,使基于 Web 的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从 Servlet 中分离出来。Java Servlet 是 JSP 的技术基础,而且大型的 Web 应用程序的开发需要Java Servlet 和 JSP 配合才能完成。JSP 具备了 Java 技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。3.1.3 struts2 框架简介Struts2 是一个基于 MVC 设计模式的 Web 应用框架,它本质上相当于一个servlet,在 MVC 设计模式中,Struts2
20、 作为控制器(Controller)来建立模型与视图的数据交互。Struts 2 是 Struts 的下一代产品,是在 struts 1 和WebWork 的技术基础上进行了合并的全新的 Struts 2 框架。其全新的 Struts 2的体系结构与 Struts 1 的体系结构差别巨大。Struts 2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI 完全脱离开,所以 Struts 2 可以理解为 WebWork 的更新产品。3.2 Oracle 数据库ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以
21、分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或 B/S 体系结构的数据库之一。比如 SilverStream 就是基于数据库的一种中间件。ORACLE聊城大学本科毕业设计7数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了 ORACLE 知识,便能在各种类型的机器上使用它。 174. 详细设计4.1 包、类结构设计程序的包结构根据架构划分为五层:实体层(POJO 层):由 POJ
22、O(Plain Old Java Object)组成,与数据库中的表对应,用于持久化数据。数据访问层(DAO 层):由 DAO(Data Access Object)组件组成,提供对实体对象的创建、查询、删除和修改等操作。业务逻辑层(Service 层):由业务逻辑对象组成,用于实现系统所需要的业务逻辑方法。控制器层(Controller 层):由控制器组成,用于响应用户请求,并调用业务逻辑组件的对应业务方法处理用户请求,然后根据处理结果转发到不同的表现层组件。表现层(View 层):由页面或其他视图组件组成,负责收集用户请求,并显示处理结果。4.2 数据库设计数据库中有用户,借车记录,车辆三
23、个表。用户表:用户 id,用户昵称,登录密码,真实姓名,身份证号,性别,生日,评分车辆表:车辆 id,车辆当前状态聊城大学本科毕业设计8借车记录表:用户 id,车辆 id,归还时间业务流程为:用户 id 根据索引或全局变量自动生成,并作为用户表的主键存在,与其他表相关联。车辆表的主键为车辆 id,也是由索引或全局变量生成。借车记录表中必不可少包含用户 id 和车辆 id,在加上还车时间的字段来判断是谁在车辆损坏的前的最后一个借车人。5. 系统实现与测试5.1 系统总体实现打开网页进入登陆界面,可输入已有的帐号密码进行登录操作,登陆界面如图 1 所示:图 1 系统登陆界面若没有帐号可点击右下角注
24、册按钮进行注册:聊城大学本科毕业设计9图 2 用户注册页面通过验证后点击提交自动返回登陆页面,可用注册成功的账号进行登录,“我的桌面”欢迎界面由读取时间、日期和设置轮播广告的 js 脚本组成:图 3 登陆成功后的轮播广告界面“个人信息”栏目中可查看当前用户已经设置的个人信息,根据评分的高低右侧会显示不同的图片提醒用户当前的信用度等级:聊城大学本科毕业设计10图 4 个人信息界面“借车记录”栏目中可以查询到当前用户的借车历史纪录:图 5 借车记录页面“账户管理”栏目中可对账户信息进行修改,系统将用户的注册信息自动填入表单,可根据需求只修改目标数据:聊城大学本科毕业设计11图 6 账户管理界面5.
25、2 系统关键功能及算法实现1.用户登录界面的表单验证:若用户选择直接登录系统,那么用户名和密码是必填的,如果不填写用户名和密码,系统会弹出提示窗口提示“用户名不能为空”或者“密码不能为空” ;如果输入了错误的帐号密码则会调用 js 脚本在页面提示“用户名或密码输入有误” 。在 DBoperate 类中的 DBSelect(String aimValue,String tableName,String tableAttribute,String numLimit)方法中处理用户登录提交的信息:con = DBConnect.getConn();String selectSQL = “select
26、 “+ aimValue + “ from “ + tableName + “ where “ + tableAttribute + “ LIKE “ + numLimit + “;try pst = con.prepareStatement(selectSQL);rs = pst.executeQuery();if(rs.next()/查询到相关数据/ System.out.println(rs.getString(1);LoginAction.loginFlag = 1;聊城大学本科毕业设计12LoginAction.dataFlag = rs.getString(1);/=关闭资源=DB
27、Connect.getClose(con, pst, rs); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); 在 LoginAction 中通过设置全局变量的方式对返回结果做出判断:DBoperate dbo = new DBoperate();HttpSession session = request.getSession();dbo.DBSelect(“UPASS“, “CM_USER“, “UNAME“, username);if(loginFlag = 1 sex = dataF
28、lag;dbo.select/完成上述工作后通过 session 传递到其他 jsp 页面session.setAttribute(“uRealName“, uRealName);session.return “success“;elsesession.setAttribute(“mag“,“用户名或密码输入有误“);return “error“;2.注册页面的信息验证和提交聊城大学本科毕业设计13在用户注册页面,通过 js 脚本进行前端的表单验证工作,确保用户输入的信息符合规范。公共自行车管理系统用户注册用户注册信息(带*为必须填写的项目)用户名:*用户名只能由 a-z,A-Z,0-9,_组
29、成密码:*密码必须由 6-12 位组成聊城大学本科毕业设计14确认密码:*密码与确认密码必须一致用户个人信息真实姓名:性别:男女 身份证号:聊城大学本科毕业设计15Js 进行表单验证代码如下:function checkUser()var userName = myform.username.value;if(userName=“)document.getElementById(“id1“).outerHTML=“用户名不能为空“;return false;var ch= userName.charAt(0);if(!(ch=areturn false;for(var i=1;i=aretur
30、n false;document.getElementById(“id1“).outerHTML=“;return true;/验证密码function checkPassword()var pw1 = myform.password.value;var pw2 = myform.password2.value;if(pw1.length12|pw1.length密码不在 6-12 位之间“;return false;document.getElementById(“id2“).outerHTML=“;if(pw1!=pw2)document.getElementById(“id3“).out
31、erHTML=“两次密码不一致“;return false;聊城大学本科毕业设计17document.getElementById(“id3“).outerHTML=“;return true;function yanZheng()if(checkUser()完成前台验证后,转入后台执行存放步骤,通过传递 sql 语句 String sql = “insert into CM_USER VALUES(?,?,“+RegistAction.uid+“,?,10,?,?)“;执行sql 完成增加功能,其中用户 id 由全局变量自增设定,也可在数据库中创建序列自动生成。3.网页信息的传递在该系统中用
32、户信息在个网页上的读取通过 HttpSession 完成,这样可以实现较少地跟后台交互,使用过程中不会出现长时间读取数据,频繁读取数据的现象,有较好的用户体验。传递数据:HttpSession session = request.getSession();session.setAttribute(“xxx“, xxx);读取数据:$session.xxx4.个人信息修改修改个人信息时前台验证内容的过程跟注册相似,后台的 sql 执行语句为String sql = “update CM_USER set UPASS = ?,UIDCARD = ?,UREALNAME = ? where UID
33、= “+LoginAction.uid;即可对相应字段完成修改工作。聊城大学本科毕业设计18聊城大学本科毕业设计19结束语在一段时间的开发和研究后,公共自行车管理系统最终设计完成,我采用了青软实训的 web 项目静态页面作为模板,改造成动态 web 项目并增加了自己的业务,完成了该系统的基本功能。目前系统拥有帐号注册,用户登录,信息查询,信息修改的功能,页面简单清晰,不存在页面信息复杂冗余,无从下手的问题,比较符合业务处理网站的特点。不过本系统也存在很多缺点。由于各方面的原因,本系统还有很多功能尚未完善,比如与此配套的管理员系统没有做出模板演示,用户界面太过死板,没有娱乐性的扩展功能,尚未开发
34、用户与用户之间的交互功能等,对于该系统的完善,我有以下的想法:1.用户信息数据库增加星座,爱好,特长等字段,丰富用户的个人信息。2.相对于实名制认证而言,传统的表单验证限制略显不足,可编写自定义方法进行用户输入信息校验以降低更新维护成本。3.用户界面栏目过少,应在主体功能之外多开发扩展功能,向多功能网站转型。公共自行车管理系统与人们的生活息息相关,只有严肃的业务板块的应用不能走进人们的生活,系统可以增加更多有意思的板块,论坛来增加人们的互动,发挥社会积极团体的凝聚作用,共同为保护公共财产,提升全体人民素质而努力,这样的效果要比单纯的分数控制有效得多。4.信息更新不及时。车辆的受损检测只能通过工
35、作人员每天的排查上传车辆状态数据,再对借车用户进行排查处理,不能实时反应车辆状态,可以通过增加奖励措施鼓励借车用户上传问题车辆,使系统及时作出处理。5.系统管理员相关功能:首先,系统管理员可以查询到全体用户的详细信息,并且拥有账户封禁的特权,以便对低分数用户,恶意破坏车辆用户,违规发言用户进行处理;其次,管理员拥有对车辆,用户表进行增删改查功能的权力,用来聊城大学本科毕业设计20处理用户发来的信息修改请求,车辆信息登记等。聊城大学本科毕业设计21参考文献1 萨师煊,王珊. 数据库系统概论(第 3 版)M. 北京:高等教育出版社,2000.2 Horton D,Rosen P,Cox P.Cyc
36、ling and SocietyM.Farnham:Ashgate,2007.3潘海啸.中国城市自行车交通政策的演变和可持续发展J.城市规划学刊.2011.4周佳丽,林平,李依依.运用经济学理论探究杭州市公共自行车发展方向J.公共管理.20115郭敏辉,钟明.上海市公共自行车服务规划与实践J.城市交通.20096陈星平.公共自行车服务案例分析J.社科纵横.2013.7杨文庆,刘力丹.自行车J.同济大学出版社.20118谢正宽.自行车骑行宝典.J.中国轻工业出版社.20129Pfrommer J,Warring J,Schildbach G,Morari M.Dynamic Vehicle Re
37、distribution and Online Price Incentives in Shared Mobility SystemJ.Intelligent Transportation System IEEE Transactions on.2013.10Fishman E,Washington S,Haworth N.Bike Share:A Synthesis of the LiteratureJ.Transport Reviews.2013.11Pucher J E,Buehler R E.City CyclingM.Cambridge:MIT Press.2012.12Shahee
38、n S,Guzman S.Worldwide BikesharingJ.Access.2011.13Meddin R.Bikeshare Cities 1998-2013R.Dataset provided to author.2014.14Alta Bike Share.Melbourne Bike Share SurveyR.Melbourne:Alta Bilce Share.201115Gardner G.The Trends that Are Shaping Our FutureM.New York:W W Norton.2002.16Elvik R.The Non-linearit
39、y of Risk and the portationJ.PLos One.2014.17BiciMAD.What id BiciMADEB/OL.2014聊城大学本科毕业设计22致 谢经过了三个月的努力和摸索,我终于完成了公共自行车管理系统。在这几个月的时光里,有很多人向我伸出了援手,借此论文完成的机会,我向他满表达衷心的感谢。论文的完成离不开老师和同学们的帮助,在青岛的日子里有青软实训的老师为我解答疑惑;在学校中有在校工作的老师为我检查论文,指导格式;在日常生活中有热心同学跟我一起排查困难,共同进步。感谢所有帮助过我的人,让我感受到了积极,奋斗的精神,让我有身处集体中的踏实。通过这次毕设设计的制作,我认识到自身还存在很多不足,许多问题想起来觉得简单但真正动手的时候会被各种弯路困扰,这也是编程技能不熟练导致的工时预判不准,在今后的学习生活中还要扎扎实实地学习,把基础掌握好。