1、吉首大学毕业论文(设计) 毕业设计题 目体育赛事投票系统的设计与实现作 者 所 属 学 院数学与计算机科学学院专 业 年 级指 导 教 师 职 称写 作 时 间 目 录摘 要3ABSTRACT3前言41 开发工具和硬件环境41.1开发工具41.2硬件环境42 系统可行性分析42.1技术可行性42.2经济可行性42.3操作可行性53 系统需求分析53.1现行业务53.1.1 概要描述53.1.2 存在的主要问题53.1.3 解决方案53.2系统需求分析53.3系统功能模块53.4系统流程图73.5系统性能需求94 系统概要设计94.1系统体系结构94.2普通用户用例图104.3管理员用例图104
2、.4数据库概念设计114.5数据库逻辑结构设计135 系统详细设计155.1各功能模块设计155.1.1 投票频道模块设计155.1.2 后台登录模块设计155.1.3 新手帮助模块设计165.1.4 新增投票模块设计165.1.5 投票管理模块设计175.1.6 资料管理模块设计185.1.7 管理者列表模块设计185.2用JDBC连接数据库185.3使用Struts2作为控制中心,实现页面跳转195.4细节内容196 系统实现226.1投票频道模块的实现226.2后台登录模块的实现226.3新手版主模块的实现236.4新增投票模块的实现236.5投票管理模块的实现246.6资料管理模块的实
3、现246.7管理者列表模块的实现257 系统开发小结25参考文献26致谢26体育赛事投票系统的设计与实现摘 要:体育赛事在现代社会受到广泛关注,各种形式的投票也应运而生。传统模式下,人们采用手工统计票数的方法进行投票,具有一定的局限性,不易于统计。本系统以JDK1.6,MyEclipse 8.5GA和Adobe Dreamweaver CS5作为开发工具,以MySQL作为数据库服务器,用JDBC连接数据库,把Java作为编程语言,结合JSP+Struts2+JavaBean技术,构建一个在线体育赛事投票平台,解决传统投票方式老大难等问题。通过系统管理员设置热门体育赛事投票主题,网络用户对相应主
4、题进行投票,获得投票结果。系统分为前台投票实现和后台管理两部分,主要有投票实现、查看投票结果、管理投票、删除投票等功能。系统采用MVC设计模式进行开发,层次分明。关键词:投票系统; 系统设计; MySQL; JavaDesign and Implementation of Sports Event Voting SystemAbstract: Sporting events received extensive attention in modern society, all forms of voting have emerged.Under the traditional model,pe
5、ople using the method of hand-made voting vote,has some limitations, not easy to statistics.This system JDK1.6, MyEclipse 8.5GA, and Adobe Dreamweaver CS5 as a development tool,to MySQL as the database server,connect to the database using JDBC,to Java as a programming language,with JSP + Struts2 + J
6、avaBean technology,build an online voting platform for sporting events,solve the chronic problems of traditional voting methods.By the system administrator to set voting hot sports topic, Internet users to vote on the topic, access to voting results.Voting system is divided into front and back offic
7、e management to achieve two parts,to achieve the main vote, view the poll results, management vote, delete, etc vote.System uses the MVC design pattern to develop, structured.Key Words:Voting System; System Design; MySQL; Java前言随着Internet的发展,世界网民的数量急剧增加,社会的信息化强度增强,企业竞争之激烈,故对市场信息的掌握范围不仅仅是周边的一些信息,而应该把
8、范围扩展到全国,甚至全世界,Internet恰恰是实现这目标的有力工具。本系统正是建立在最大有效程度的利用网络便利之上的,为了快速方便获取想要得到的数据,便于进行统计决策,在线投票系统显示了它的强大方便快捷之处。本系统对热门体育赛事进行设置投票主题,获取对应投票项的网络支持率。本文详细的介绍了开发此系统的过程。1 开发工具和硬件环境1.1 开发工具在线投票系统是在J2EE的基础上进行开发的,本系统主要用到的工具包括MyEclipse 8.5GA 、Tomcat6.0、MySQL5.1。1.2 硬件环境Windows xp2 系统可行性分析2.1 技术可行性系统基于J2EE构架,采用目前主流设计
9、模式MVC来实现,采用JSP+Struts2+JavaBean技术,这些技术都是已经非常成熟的技术,本人已熟练掌握,因此在技术上是可行的。2.2 经济可行性由于本系统是个人毕业设计,不存在经济上的问题。2.3 操作可行性本系统属于Web项目,将采用图形界面,用户只需具有一般的计算机知识就可以轻松上手,具备用浏览器上网的能力就可以进行操作,而且整个系统采用友好的交互界面,简洁明了。所以,该系统在操作上是可行的。3 系统需求分析3.1 现行业务3.1.1 概要描述传统方式下的投票操作流程描述如下:1)发纸条进行投票;2)对所要统计的信息进行手工统计汇总。3.1.2 存在的主要问题用手工进行操作的现
10、行业务具有如下一些薄弱环节:1)得到想要的数据很困难;2)不方便统计;3)得到的数据并不能代表整体。3.1.3 解决方案1)本系统采用联网功能,现在是网络的时代,只要网民登录本系统就可以对自己心中的投票选项进行投票,具有广泛性,可行性,可操作性,易统计,明了。2)建议使用本系统。3.2 系统需求分析根据以上的分析,为了克服现行业务中存在的不足以及用电脑取代唱票决策的方式,得到新系统的功能如下:1) 当普通用户进入投票网站后,要能够进行投票操作,例如对喜爱的NBA明星投票,这里只能选择一个投票选项,并且一种投票一天内只能投一次。在投票前后,普通用户都是可以查看投票结果的。2) 当管理员进入投票系
11、统后,能够发起投票,例如对最喜爱的NBA球队进行投票添加,并且管理员要给出几个备选选项。当某一天投票已经过期,管理员可以将这种投票删除。3) 管理员也能进行投票,并查看投票结果等能力。3.3 系统功能模块前台系统功能模块:前台系统主页面投票频道模块进入系统后台登录模块新手帮助模块投票主题显示投票操作显示查看投票结果后台登录页新手帮助页图3-1 前台系统功能模块图前台各功能模块说明如下:(1) 投票频道模块 用户进入主界面并选择频道模块后,可以显示相应的模块下的投票主题,可以进行相关的投票操作及查看结果。(2) 后台登录模块 登录模块主页主要为管理员设置,管理员进入主界面后点击登录,即可进入相应
12、的登录界面进行登录后台的操作。(3) 新手帮助模块 帮助模块主要是为了规范网络文明以及提供用户对投票相关操作的说明。后台系统功能模块:后台登录后台管理系统主界面新增投票模块投票管理模块资料管理模块管理者列表模块图3-2 后台系统功能图后台各功能模块说明如下:(1) 新增投票模块 管理员进入该模块后可以选择相应的频道进行投票主题添加操作,及添加相应的选项。(2) 投票管理模块 管理员进入该模块后能对相应的投票主题进行删除操作及查看相应的投票主题的选项列表,并且可以对相应的选项进行删除操作。(3) 资料管理模块 管理员进入该模块后能对自身的资料进行修改,如密码、年龄等。(4) 管理者列表模块 该模
13、块仅超级管理员可见,超级管理员进入该模块后能查看所有管理员的资料,并能对相应的管理者进行删除操作。3.4 系统流程图前台系统流程图主要详解了用户的操作流程,用户进入本系统主界面后,选择自己喜欢的投票频道,可以对自己感兴趣的投票主题进行投票操作,也可以在相应的投票主题下添加自己喜欢的投票选项,并具有查看投票结果的能力。 前台系统流程图如下:图3-3 前台系统流程图后台系统流程图主要展示了管理员进入系统后台管理时,所具备的操作权限。管理员登陆成功后,能对投票进行管理,比如删除操作,也能在相应的投票频道下新增投票主题及相关选项,同时还具备修改自身资料的能力。如果登陆后的管理者为超级管理员,在具备普通
14、管理者权限的情况下,还具有管理管理者的能力,比如删除操作。后台系统流程图如下:图3-4 后台系统流程图3.5 系统性能需求 (1) 系统应具有较高的安全性和隔离性,用户可以操作自己应有权限的模块;(2) 系统应支持多用户的并发访问和数据处理,防止多个用户同时访问系统时出现系统故障;(3) 考虑到用户的电脑实际操作水平,系统应采用较友好的人机界面,使得操作灵活方便;(4) 系统应具有较强的数据处理能力、较快的查询检索速度、较好的用户体验;(5) 系统应具有良好的可靠性、稳定性和易维护性,具备检错、纠错和容错能力。4 系统概要设计4.1 系统体系结构系统采用MVC模式开发,分为三层,分别为视图层、
15、控制层和模型层,总体结构如图4-1所示。视图层 控制层模型层数据库图4-1系统体系结构图(1) 视图层视图是用户看到并与之交互的界面,当用户向服务器发出请求时,由控制层Struts2封装在底层的Servlet来接受此请求,在action中调用JavaBean做具体的数据存取逻辑运算等处理,然后把结果返回给JSP,JSP把得到的结果通过浏览器返回给用户。(2) 控制层控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数
16、据,它用action实现。(3) 模型层通常模型层用来处理系统数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用来操作数据库,处理乱码,分页后台处理等。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。4.2 普通用户用例图用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系 。 普通用户用例图展示了进入网站的用户能在主页进行的主要操作,关系图如下:普通用户图 4-2 普通用户用例图4
17、.3 管理员用例图管理员在拥有普通用户功能的基础上,同时还具备管理后台的功能,管理员用例图展示了管理员进入后台后所具有的操作权限,具体如下图所示: 管理员图 4-3管理员用例图4.4 数据库概念设计概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的直观的数据库结构模式。同时也是一种相对稳定统一的数据模式,一般情况下很少变动。概念性数据在用户和设计者之间建立了桥梁,是设计数据库结构的基础。概念设计中自顶向下的实体分析方法,即常用的实体-联系模型 ,对具体数据进行抽象加工,将实体集合抽象成实体类型。用
18、实体间联系反映现实世界事物间的内在联系,E-R模型中包含“实体”,“联系”和“属性”。本系统根据需求分析规划出的实体有:1、频道2、投票3、投票选项4、管理者投票频道实体具有频道名称属性和频道编号属性,如下图:投票频道实体频道编号频道名称图 4-4 投票频道实体图投票实体具有编号属性、名称属性和所属频道属性,如下图: 投票实体投票编号投票名称 所属频道图 4-5 投票实体图投票选项实体具有编号、名称、所属投票及得票数等属性,如下图:投票选项实体 投票选项编号投票选项名称所属投票得票数图 4-6 投票选项实体图管理员实体具有编号、名称、密码、性别、年龄等属性,如下图: 管理员用户实体 用户编号
19、用户年龄 用户性别用户名 用户状态 用户密码图 4-7 管理员实体图实体E-R图阐述了投票实体与投票选项实体之间的联系,以及投票实体与投票频道实体之间的联系,如下图:图 4-8 实体E-R图4.5 数据库逻辑结构设计 频道表用来存储投票所在频道的基本信息,包括频道ID和频道名称,如下表所示:表4-1频道信息表(tb_channel)字段名数据类型字段大小是否主键描述channelIDint11是频道编号channelNamevarchar255否频道名称投票表用来存储投票的基本信息,包括投票ID、投票名称和所属频道ID,如下表所示:表4-2投票信息表(tb_vote)字段名数据类型字段大小是否
20、主键描述voteIDint11是投票编号voteNamevarchar255否投票名称channelIDint11否(外键)所属频道ID投票选项表用来存储投票选项的基本信息,包括选项ID、所属投票ID、选项名称和得票数,如下表所示:表4-3投票选项信息表(tb_voteoption)字段名数据类型字段大小是否主键描述voteOptionIDint11是选项编号voteIDint11否(外键)所属投票编号voteOptionNamevarchar255否选项名称ticketNumint11否得票数管理员信息表是用来存储管理员的基本信息的,如下所示:表4-4 管理员用户信息表(tb_user)字段
21、名数据类型字段大小是否主键描述uidint11是用户编号usernamevarchar20否用户名passwordvarchar20否用户密码ageint11否年龄sexvarchar3否性别statevarchar5否状态表实体E-R关系图展示了表结构以及表之间的主外键关系,如下:图 4-9 表实体E-R关系图5 系统详细设计 5.1 各功能模块设计 5.1.1 投票频道模块设计投票频道模块供进入本系统的用户选择自己喜欢的频道项,不需要登录即可操作,选择之后,即可显示相应的投票主题,用户可以进行投票操作,并可以查看相应投票结果。根据分析做出投票频道模块流程图如下:图 5-1 投票频道模块流程
22、图5.1.2 后台登录模块设计后台登录界面为管理员提供登录,管理者选择登录后进入登录页面,然后再输入用户名,密码,系统将数据提交到后台进行处理,如果校验成功,则跳转到系统主界面,并将用户对象保存在session;如果校验失败,则跳转到登陆页。根据分析做出登录模块流程图如下:图5-2 登录模块流程图5.1.3 新手帮助模块设计帮助页面为一个静态的页面,主要显示了本系统中的一些规范申明,以及如何进行投票操作的帮助手册。主要是为了文明网络,用户进入系统主界面即可看到帮助字样,点击即可进入帮助页查看帮助详细信息。根据分析做出帮助模块流程图如下: 图5-3 帮助模块流程图5.1.4 新增投票模块设计管理
23、员登录成功后进入后台系统主界面,选择新增投票模块进行新增投票操作。管理员可以选择需要添加的投票频道进行添加投票主题和添加投票选项操作,在添加投票主题时有相应的提示功能,避免添加重复的主题。根据分析做出新增投票模块流程图如下:图5-4新增投票模块流程图5.1.5 投票管理模块设计管理员登录成功后进入后台系统主界面,选择投票管理模块进行管理投票操作。管理员可以删除已过期的投票主题,可以查看相应主题的详细内容,并可以删除相应主题的投票项。根据分析做出投票管理模块流程图如下:图5-5 投票管理模块流程图5.1.6 资料管理模块设计 管理员登录成功后进入后台系统主界面,选择资料管理模块对自己的资料信息进
24、行修改管理,同时可以查看所有管理者的部分信息。根据分析做出资料管理模块流程图如下:图5-6 资料管理模块流程图5.1.7 管理者列表模块设计 超级管理员登录成功后进入后台系统主界面,管理者列表模块对超级管理员是可视的,一般管理者没有此权限。超级管理员选择该模块后可以对普通管理者进行管理,如查看、删除。根据分析做出管理者列表模块流程图如下:图5-7 管理者列表模块流程图5.2 用JDBC连接数据库使用JDBC连接数据库的步骤如下:1、加载JDBC驱动程序2、提供JDBC连接的URL3、创建数据库的连接4、创建一个Statement5、执行sql语句6、处理结果7、关闭JDBC对象本系统对连接数据
25、库的代码进行了封装,做成工具类,方便使用。代码如下:public class DBConnection private static final String driver = com.mysql.jdbc.Driver;private static final String url = jdbc:mysql:/localhost:3306/db_votemanage;private static final String user = root;private static final String pw = 123;/ 获得连接public static Connection getCon
26、n() Connection conn = null;try Class.forName(driver);conn = DriverManager.getConnection(url, user, pw); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return conn;5.3 使用Struts2作为控制中心,实现页面跳转 Struts 2是Struts的下一代产品,是在struts和WebWork的技术基础上进行了合并,全新的Struts
27、2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。因为Struts 2和Struts 1有着太大的变化,但是相对于WebWork,Struts 2只有很小的变化。Struts2框架的大概处理流程如下: 1、浏览器发送一个请求。 2、核心控制器FilterDispatcher根据请求决定调用合适Action。 3、WebWork的拦截器链自动对请求应用通用功能,如验证
28、等。4、回调Action的execute方法,该execute方法根据请求的参数来执行一定的操作。5、Action的execute方法处理结果信息将被输出到浏览器中,支持多种形式的视图。5.4 细节内容1.在投票的主页面,为了防止重复投票,通过在投票action中作如下的处理,可以做到如上要求:获取浏览器中的cookies,拿出保存在cookies中的数据,与投票主题的ID进行匹配,如果相同则表示已经投过票了,则让投票操作无效,并提示相应的信息。通过cookies,并设置cookies的有效时间,做到防止同一用户一天内重复投票的功能实现。效果如下: 图 5-8 Cookies实现防止重复投票
29、2. 为了防止用户未选中任何投票选项而点击投票从而造成投空票的可能,用javascript解决了此问题的发生:效果如下:图5-9 Javascript实现防止投空票操作 3.使用ajax实现异步提醒功能,实现富客户端体验。当用户输入自己的投票选项时,使用ajax验证,提醒用户输入的投票项是否可用,是否合法。效果图如下:图5-10 ajax实现提醒功能4. 后台管理中,在新增投票页,为了防止管理员因操作不当而输入空的投票名称,用javascript作了如下处理:如果主题内容为空就点发布了,直接用javascript提示,并不执行提交操作。效果如下:图 5-11 Javascript实现避免操作不
30、当5.为了防止管理员输入相同的投票主题,使用ajax实现异步提醒功能:效果如下:图5-12 ajax实现防止输入不合法投票主题6 系统实现6.1 投票频道模块的实现投票频道模块下有不同的频道选项,用户可以选择自己喜欢的频道,进入投票主题,可以进行相应的投票及查看投票操作。界面如下:图6-1 投票频道界面6.2 后台登录模块的实现后台登陆主要供管理员登录后台进行管理操作,登录时只要输入正确的用户名及密码及可跳转至后台管理首页。界面如下:图6-2 后台登录界面6.3 新手帮助模块的实现新手帮助模块在用户进入本系统主页时即可看到,帮助页主要提供了系统的一些操作流程手册。界面如下:图6-3 新手帮助界
31、面6.4 新增投票模块的实现新增投票模块主要是为了实现管理员登录后台后,能在相应的频道下增加要添加的投票主题,具体界面如下:图6-4 新增投票界面6.5 投票管理模块的实现投票管理主界面下,管理员能查看对应的投票内容,还能进行删除操作。界面如下:图6-5 投票管理界面6.6 资料管理模块的实现资料管理模块下,管理员能对自己的资料进行修改操作,并能查看修改后的资料。界面如下:图 6-6 资料管理界面6.7 管理者列表模块的实现管理者列表模块只有超级管理员才具有权限,该模块下,管理员能查看所有的管理者列表,并且可以对相应的管理者进行删除操作。界面如下:图6-7 管理者列表界面7 系统开发小结本系统
32、基于Web开发模式MVC进行系统架构,易于分层,划分工作区间,符合企业级开发流程。当然,页面展示这一块我做的不是很好,而且花费的时间也是很多的,没有美术基础,前端技术不是很扎实,用普通的页面展示了要实现的功能。前期在规划的时候,没有把登录注册模块划分进来,因为网站还没建立会员机制,而是普通的进行投票实现,根据投票得到结果。本系统的扩展前景是美好的,只要建立用户数据表,然后加入注册页面,可以轻松的实现扩展。开发过程中,遇到了一些问题。比如用户不能重复投票,这时候就得通过程序的判断,来避免这一问题的发生。我在这里用的是Cookie,设置的Cookie的有效时间是一天,一个投票项一天一个用户只能投一
33、次,但这样的做法是存在缺陷的。投票系统要做到的就是防止刷票现象的存在,而当用户在浏览器端禁用了cookies的话,还是能够重复投票,所以我用的方法还不是最佳的解决方案。还有就是管理员在添加投票时数据判空的操作,这里使用的是JavaScript验证。当然解决了很多问题,同时这些问题在解决时也存在缺陷,现在是富客户端的时代,用户体验非常绚丽多彩,比如我在处理防止投空票的解决上就是不符合用户体验的,因为用javascript提示,弹出警告信息是很让人反感的,这样就需要如此解决:在用户未选中任何一项时,“投票”这个按钮应该设置为不可用的状态,这样用户的满意程度会更高些。通过本系统的开发,熟悉了系统的开
34、发流程,以及数据流路,前期的工作直接决定了后期的开发时间。所以,前期的规划一定要仔细,周到。比如在数据库的设计上,一定要把握周全。站在一个架构师的角度来考虑,首先要考虑本系统的扩展性,还有安全性。当然,本系统已经做了这方面的工作。参考文献1 陶宏才. 数据库原理及设计M. 北京:清华大学出版社,20042(美)埃克尔 ,陈昊鹏 . java编程思想M. 北京:机械工业出版社,20073 赛奎春. JSP信息系统开发实例M 北京:机械工业出版社,20054(英)克拉恩,帕斯卡雷洛,杰姆斯 ,ajaxcn.org 译. ajax实战M. 北京:人民邮电出版社,20065 DAVID FLANAGA
35、N ,张铭泽 等. Javascript权威指南M. 北京:机械工业出版社,20036 粟斯伟. XML程序设计M. 北京:人民邮电出版社,20017 中创工作室. Transact-SQL语言精解M. 北京:中国电力出版社,20008 Todd Cook. JSP从入门到精通M. 北京: 电子工业出版社,20039 David Carlson. Eclipse精粹M. 北京: 机械工业出版社,200610 邓子云, 张赐. JSP网络编程从基础到实践M. 北京:电子工业出版社,2005致谢本系统是在曾水玲老师的指导下独立修改完成的。在论文的准备、开题、修改过程中,曾老师渊博的知识,广博的思维,严谨的治学作风与磊落的做人态度,使我受益匪浅。在这里,要对她的帮助和指导表示由衷的感谢。同时也非常感谢我的同班同学陈泓涛、胡步军在整个毕业设计过程中对我的关心和帮助。在整个系统开发过程中,他们给我提出了许多建设性的意见,使我对整个毕业设计的思路有了总体的把握;还耐心地帮我解决了一些页面上的问题,使我有了很大收获。本系统之所以能够顺利地完成并予以实现,跟他们实质性的帮助密不可分。 26
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922