毕业设计(论文)-在线投票系统的设计与实现.docx_第1页
毕业设计(论文)-在线投票系统的设计与实现.docx_第2页
毕业设计(论文)-在线投票系统的设计与实现.docx_第3页
毕业设计(论文)-在线投票系统的设计与实现.docx_第4页
毕业设计(论文)-在线投票系统的设计与实现.docx_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

本 科 毕 业 设 计(论文) 题目:在线投票系统的设计与实现 学生姓名: 学号: 院 系: 软件学院 专 业: 软件工程 指导教师: 学位级别: 二一八年 五月 一日摘 要当今世界,数据为王。在这个大信息时代,时间就意味金钱,及时处理采集到的数据是非常重要的。以往的一些如班干部选举、选优秀三好学生等投票方式,大多采用写纸条的方式,即费资源,又限制了人们的时间自由,投票人数也不易多,统计结果还需一定的时间。自计算机问世以来,互联网用户的爆炸式增长,目前已广泛在各个领域中日趋普及。当下以前的选举,调查方式已经逐渐落伍满足不了需求。因此,在线投票系统应需而生。在线投票系统面向对象广、高效、安全适用于各个领域。管理员可以通过查看结果及时的分析出现的问题,促进工作改进。在线投票系统系统采用B/S架构开发,代码设计实现使用了经典集成框架SSH,模块功能划分清晰,本系统以J2EE作为主要开发语言,并使用myeclipse,sublime,MySQL等工具设计开发,用Tomcat8.5作为Web服务器,页面采用jsp动态页面开发。论文主要介绍了在线投票系统的研究背景以及具体详细实现过程。之后,对本系统的主要功能模块进行了调试,总结了在研发本系统中遇到的问题。关键词:J2EE,B/S结构,在线投票 ,MVC全套设计加扣 3012250582ABSTRACT In todays world, data is important. In this age of big information, time means money, and it is important to deal with the collected data in a timely manner. Past some such as the class cadre election, choose good miyoshi students, such as voting, mostly adopt the way of a note, namely cost resources, and limit the peoples free time, not easy also more voter turnout, the results still need a certain amount of time. The explosive growth of Internet users since the computer came into being has become increasingly popular in various fields. In previous elections, the way the survey was done was not enough to meet demand. Therefore, the online voting system should be born. The online voting system is wide, efficient and safe for all fields. The administrator can improve the work by analyzing the problems in a timely manner through voting results.Online voting system adopts B/S architecture development, system design implementation USES the classic SSH integration framework, clear module function division, this system with J2EE as the main development language, and use myeclipse, sublime does, MySQL tools such as design, development, use Tomcat8.5 as a Web server, using JSP page dynamic page development.This paper mainly introduces the research background and detailed implementation process of the J2EE online voting system. Finally, the main function modules of this system are debugged, and the problems encountered in the system are summarized.Keywords: J2EE,B/S structure,Voting site,MVC目录第1章 绪论51.1背景51.2 国内外研究状况51.3 课题研究意义5第2章 系统需求分析62.1系统概述62.2 功能需求62.3 技术需求62.4 可行性分析8第3章 总体设计93.1 总体功能结构93.2管理员的功能模块93.3用户功能模块103.4系统业务描述103.5登录程序流程图11图3-5 登录流程图11第4章 系统详细设计与实现114.1概念模型设计114.2数据库表结构124.3表关系图144.4基本类图154.5 系统功能模块17第 5 章 系统调试225.1 调试任务225.2 项目访问225.3 项目问题22总结23第1章 绪论1.1背景如今随着人们物质水平的提高,人们愈发注重对精神方面的追求,希望等到更好的服务。因此,及时能了解客户的需求信息显得尤为重要。当下社会竞争激烈,谁能最先掌握最新的市场信息以及客户需求,往往能起到事半功倍的作用,故在线投票系统在当前市场对信息的需求背景下顺势而生。在线投票系统相比于传统的投票方式,大大节省了人力,对信息采集的范围增大,能及时的统计出投票结果,从而在激励的竞争市场中夺取先机。一个网站是否可以发展,依赖于用户的支持,因此必须积极的与用户信息交流。了解用户反馈的要求,对网站的缺点进行改进,这样网站才能持续发展。一个网页的界面会直接影响用户的体检,因此要设计出简单明了的功能格局,给人一种友好的界面,使用起来感觉不到繁杂,自然能赢的更多的用户支持。1.2 国内外研究状况最早的无记名投票源于古希腊雅典城邦民主制度,投票方式有公开和私密两种。公开方式即允许别人知晓自己的投票决定,私密方式是投票时选民在写投票选择时不需要写自己的名字。现在国外的在线投票大多是网站投票,如在某个网站上面通过弹小窗口的方式,提醒网友进行选择,还有通过发邮件的方式给网友,认网友回复,形式简单操作方便,一般都是直接选择就可。国内目前的网上投票主要在网页和微信公众号来发布,一般它只占整个页面非常小的一部分,网民参加投票的积极性较差,大部分只投自己感兴趣的模块而且不关注最后的投票结果。1.3 课题研究意义现如今在线投票系统广泛出现在各类网站,从娱乐网站到官方网站,投票内容涉及广泛,包括兴趣爱好,民意调查等。网上投票系统几乎完全取代了古老的传统投票方式,因为其方便、快捷、丰富的特点,慢慢成为了互联网资源的重要部分,发挥着必不可少的作用。并且,网上投票系统的保密性也越来越高。一般为匿名投票,并对投票内容保密,同时还要确认投票身份的合法性,以保证其结果的真实性、可靠性,如用户与投票内容被他人所悉,就对用户隐私构成了侵害。网上投票系统的设计,使我将书本知识与实际相结合,更好的培养了我的时间能力和创新能力,在此过程中所出现的问题,通过积极分析其原因,并采取方法进行改进,使我对专业知识的理解更加透彻并能灵活运用。 第2章 系统需求分析2.1系统概述 在线投票系统分为页面设计与后台管理两部分。前端页面,未登录的情况下,用户可以查看公告详情和投票模块,但不能投票。用户只有在注册完成后登录,才可以对具体的投票话题投票,一个投票话题一个用户只能参加一次,拒绝重复投票,目前投票结果对普通用户不可见,考虑存在拉票的可能。管理端,只有管理人员可以登录,主要功能有系统公告的修改、添加,投票主题的删除、添加,修改当前某个主题具体的选项,查看当前某个具体投票主题的选票详情,普通用户的管理。2.2 功能需求 在线投票系统,根据调研结果应以下功能:一 整体需求:(1) 系统功能划分明确,给人一个友好的界面,用户使用起来简单明了。(2) 操作简单,将一些繁杂功能简单化,便于用户操作且满足客户需求,系统功能要强大。(3) 系统设计需要将各个功能不同的模板区分开来,利于后期系统的维护。(4) 该系统应具备可扩展性强的特点,适应不同的社会市场需求。(5) 系统数据库设计时,可以紧急对数据修改,删除或增加等情况。二 模块需求:(1) 登录与注册 普通用户注册需要用户名、密码、手机号。登录需要用户名、密码和验证码。(2) 个人信息修改 用户可修改登录密码。 (3) 公告通知 可以通过公告功能及时告知投票结果或投票需要注意的问题。(4) 投票 每个投票主题普通用户只能投一次票。管理员可以对投票选题进行新增、修改与删除,并可以对某个具体的选题选项添加,删除与修改,还可以及时的通过后台查看当前的投票结果(5) 管理员 管理员的功能包括修改登录密码、公告通知管理、投票管理、用户管理。2.3 技术需求2.3.1 J2EEJ2EE是企业级应用的规范。J2EE拥有多层次的分布式应用模型,且在多个领域应用广泛。J2EE基于组件开发,方便用户开发,简化结构,代码移植性强,在代码功能差不多的情况下可以在原来代码的基础上进行修改,由于使用组件开发技术,不同技能的程序员可以同时进行开发。易于维护,更新特定的组件功能就可以增加。J2EE将页面的设计与展示分离,使web的应用开发更加便捷。2.3.2 JSP JSP一种基于Java的跨平台动态页。访问JSP页面时,服务器对JSP页面会对第一次访问编译,保持编译结果,下次访问时就会直接运行编译好的代码。JSP拥有java语言的很多特性。一、跨平台,可以在Linux,Mac,Windows等不同的平台上运行,使JSP得应用范围扩大。二、代码重用,JSP页面能重复使用在Java中写好的JavaBean。包括JavabBean中包含的基本数据属性与业务逻辑处理代码。三、业务代码分离,开发人员在Web页面中可以用JSP标识和小脚本生成动态内容。然后将该逻辑封装在JavaBean组件中,实现业务代码分离。但JSP是预编译机制所以在运行过程中比其他程序占运行内存高,而且由于JSP的跨平台能力相对强,就相对增加了其产品的复杂性。2.3.3 MySQL MySQL是一种免费开源的关系型数据库系统。由于不收取费用,且速度快,很多刚起步的网站或软件都会选择MySQL作为数据库。在不同的平台上都可以兼容运行,运行结构主要以客户机/服务器结构为主。其所使用的SQL语言是标准数据库语言,可视化界面简洁,操作简单,故受很多初学SQL语言者的喜欢。2.3.4 myeclipse myeclipse是一款在eclipse的基础上提供了大量插件的开发工具。开发人员可以现成的使用它提供的jar包和其他插件,功能完善,能够大大提高开发效率。除了Java与J2EE外安装其他插件,还可以支持其他的编程语言。2.3.5 Tomcat Tomcat是一款免费的、开源的轻量级Web服务器。Tomcat部署项目简单,只要将项目打包放在Webapp目录下,它就会自动检测这个文件,并将其解压。安全系数高,Tomcat支持多线程,则可以忽略多线程高并发的问题,而且Tomcat对Realm支持,大大提高了其安全性。方便与eclipse等其他开发软件集成。2.3.6 SSH框架 SSH框架即struts2 spring hibernate。struts2实现了MVC,在业务开发过程中重要采用模式化方式 。使用Struts2主要通过配置文件配置拦截器中的逻辑,大大节省了代码量,层次结构清晰,提高了开发效率。此外Struts2还拥有大量的标签库,配置位置struts.xml。spring 是一款功能由用户决定的轻量级框架。用户需要什么功能自己可以进行选择使用是一种模块化的框架,容易与其他框架整合。Spring中的核心容器IOC容器,提供了对象的管理,主要有对象的创建、初始化、销毁,开发人员只需将设计好的java类交给控制IOC,不需要在类的内部进行控制管理,通过配置文件将对象与对象间的关系,交给IOC管理,使代码间的逻辑关系更简洁。AOP俗称面向切面编程,实现AOP功能有两种情况,如果对象没有实现接口,则spring默认调用CGLIB,如果实现了接口,则spring调用JDK代理,spring会自动在JDK动态代理和CGLIB之间选择。AOP主要应用于不同的代码模块中有一些相同功能点通过面向切面编程原来提取出来,如日志记录与实务管理等。hibernate是一个非常优秀的,成熟的ORM框架。hibernate有操作数据库的API,实现了面向对象的查询模式,可以在不用写SQL语句的情况下,仅仅对持久化对象进行操作便可以完成对数据库的操作,可以使开发者更为专注于业务代码的编写,提高了开发效率,相对于JDBC而言,大大简化了操作数据库的代码量。2.4 可行性分析1)技术可行性在线投票系统采用JAVA语言开发,数据库用MySQL,页面主要采用jsp,这几门语言在大学期间都有学习以及实践,容易编写,开发软件myeclipse也有两年的使用经验,基础夯实,在学习配置的电脑上就可编写。2)经济可行性该系统所使用的开发语言及软件大部分是免费的,且容易操作,不需要浪费时间去培训学习,节省了大批费用。该系统的维护成本较低,只需要一台可运行的pc即可。3)时间可行性定题到答辩有5个月左右的时间,且系统结构清晰,每天完成一部分,系统设计时间充裕,不会感到吃力。4) 操作可行性大学专业软件工程,并且对计算机的软件和硬件有深刻的认识与见解,计算机基础夯实。开发软件也有多年的使用经验,所以,操作容易实现。第3章 总体设计3.1 总体功能结构 在线投票系统主包括普通用户与管理员 在线投票系统投票查询管理员投票操作公告查询注册登录 普通用户用户管理投票管理通知公告管理系统管理3-1总体设计3.2管理员的功能模块在线投票系统后台管理登录后,可以增加、删减或编辑已经发出的公告通知,还能创建新的投票主题,对原来就存在的投票主题可以就行修改或删除,还能查看当前的投票记录,可以知晓那个普通用户在什么时候投了哪个选项一票,除此之外还具备管理普通用户的功能。图3-2. 管理员功能图3.3用户功能模块在线投票系统普通用户具备以下功能要点。用户在进入在线投票系统的首页后可以注册登录成为普通用户,对通知公告模块只具备查看功能,投票时每个投票主题都只能投一次票。图3-3.用户功能图3.4系统业务描述用户的主要功能包括公告查询、投票、注册登录功能;系统管理员可以增删改通知公告、增删改查投票主题、查看投票人员以及投票记录查询、投票选项统计、普通用户删除功能。用例图如3-4所示:图3-43.5登录程序流程图首先用户打开普通浏览器进去在线投票系统的首页,然后按照页面给的要求输入信息,注册完成后登录系统,系统在后台判断是否有当前用户名或密码与用户名是否一致,当密码与用户名一致后用户就可以查看系统公告和参加投票。图3-5 登录流程图第4章 系统详细设计与实现4.1概念模型设计在线投票系统采用B/S模式设计(如图6-1) 图6-1 B/S 结构模型B/S架构,即浏览器/服务器结构。这种架构客服端比较简洁,只需一个普通浏览器。这种结构不用像C/S架构那样,前端只要发出请求和接收请求,不需要做业务处理,而服务器端需要全部完成逻辑处理。这种架构基本不需要在客服端安装太多的软件,只需要一个浏览器即可,给客户节省了内存空间。B/S主要有以下特点开发简单且发布性强、共享性强,维护成本方便,总体成本较低。本模块主要通过E-R图表达对现实世界事物的联系信息。主要有实体集、属性与联系集三部分组成。E-R图直观易懂,能够直观的表达出实体与实体间的联系。但应注意联系不能够脱离实体。本系统E-R图如4-1所示:4-1 E-R图在线投票系统主要设计了5个实体:用户实体,通知公告实体,投票主题实体,投票选项实体,投票记录实体用户实体包括用户名,用户密码、手机号码、创建时间,用户删除状态,用户是否是管理员,它是用来管理用户和管理员的基本信息。通知公告实体包括公告的创建时间,公告标题,公告标题内容,公告删除状态,用来公告通知的基本信息。投票主题实体包括创建时间,投票主题内容,投票主题说明,删除状态,主要记录投票主题信息。投票选项实体包括选项名称,选项号次,选项简介,照片路径,所得票数,选项删除状态,主要用来管理具体的选项信息。投票记录实体包括投票时间,投票用户,投票选项,主题删除状态,主要用来记录用户的投票信息记录。4.2数据库表结构1公告表2评选人员表3投票主题表4用户表5用户投票表4.3表关系图4.4基本类图4.4.1通知公告4.4.2投票主题4.4.3评选人员4.4.4用户4.4.5 投票记录4.5 系统功能模块4.5.1前端功能页面1.网站首页页面名称 index.Jsp 具体展示如下普通用户所有的功能,将最新的投票信息展示在首页,整体简单明了,便于用户操作2.通知公告页面名称 list.jsp 普通用户对通知公告模块只有查看功能。3.在线投票页面名称:pinxuan.jsp按时间来排列最新的投票主题点击具体的投票选项如下页面 toupiao.jsp有选项具体的简介 以及选择投票信息投票要求1.必须登录 2.每个投票主题只能投一次票4 新用户注册页面名称:reg.jsp填写用户的基本信息5.登录界面页面名称 login.jsp 按要求填写用户名密码 页面如下4.5.2 管理员后台管理界面1.主页面如下主要功能有修改当前管理账号的密码,通知公告添加、删除和修改、投票主题管理、投票人员管理、投票记录查询、投票选项统计、用户管理2. 修改密码页面如下3. 通知公告列表页面如下4. 投票主题管理详细页面如下5. 用户管理页面如下第 5 章 系统调试5.1 调试任务在线投票系统完善之后,对系统进行功能测试。主要任务,寻找系统中逻辑处理或投票没限制可能会影响投票结果的因素。在投票响应过程中,投票响应时间能否满足要求,投票数据方面,存不存在泄露跳票人信息的可能。从多方面测试系统,找到出错的原因并处理。5.2 项目访问访问地址:http:/localhost:8080/toupiao管理员账号 lw 密码 123 或 账号 admin 密码 111111浏览器: IE8.0以上浏览器,并且对该网站添加兼容性视图。 5.3 项目问题1. 开发过程中存在问题 1、 在确定选题后,由于自己以前没独自做过一个项目,开始只是有几个数据库的实体类型,但无从下手,不知道应该先做什么事情。在咨询过其他学生后,明白一个软件最主要的底层数据库的设计,通过网上查找资料,开始了整个项目的开发。 2、代码开发中,发现对框架不会灵活使用,习惯以前的代码方式,经常自己写一下逻辑判断或数据处理,不会灵活调用框架提供的方法,浪费了很多时间。通过网上下载框架API,查看其提供的方法,解决了该问题。 3、不能通过看控制台出现错误提示,找到错误的地方。在修改代码的过程中,重启项目经常会报错,对于一些错误总是不理解,且不知道是页面逻辑、数据库或代码处理中出了问题,极大的影响了开发效率,刚开始通过问辅导老师和同学来解决问题,慢慢的自己也学会了其中的规律,可以及时发现哪里出现问题。2. 项目现存在的问题 调试中发现的问题有:1.投票结果对普通用户不可见、用户投票不能多选,当时想结果可见的话,选民会存在拉票的情况,但是在调试时发现一些如兴趣爱好主题的投票不存在竞争,就可以对普通用户查看结果。2.投票结果统计未能实现柱形图描述,目前只能管理员查看通过表格显示数字表示结果。总结在线研发在线投票系统的这段日子里。一边要做好公司安排的工作,另一半要编写毕业设计,时间没有当初想象的那么宽裕,但是最终还是按时完成了毕设在线投票系统。在这段时间中,我参考很多了互联网中先进的投票网站,借鉴优秀的网页模块划分与网页布局,但由于时间仓促,自己的在技术方面尚有欠缺,很多时候考虑的投票情况比实际简单,数据库建模时考虑的实体属性也不全面。造成代码开发一半的时候,需要修改,浪费了大量的精力与时间。在线投票系统开发中整体使用了SSH整合框架,功能模块比较明确,初期的投票逻辑概念清晰。首先构建数据库,将系统需要的实体属性通过数据库表的形式表现出来,然后前端页面编写jsp,再进行dao层、控制器的编写,最后写执行操作的逻辑实现。 虽然在昆山的实习过程中,也有做过类似的Web项目,但是这次这个项目让我成长进步学习到了很多的文本和实践知识,并且能够较之前更加灵活频繁的使用已有专业知识。因为这个项目从开始到结束一直都是自己独立进行的,从头到尾,没有辅导老师指导,没有现有相关书籍查询。在编写代码的过程中碰到的一连串的难题,都只能靠自己一个人来解决。网上查找资料或市图书馆查阅相关权威信息,询问请教同事以及自己身边一切人员我想用了自己能想到的所有的方法和途径。在这个不断研究、不断

温馨提示

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

最新文档

评论

0/150

提交评论