基于JSP的网上投票系统设计与实现.docx
《基于JSP的网上投票系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于JSP的网上投票系统设计与实现.docx(36页珍藏版)》请在冰豆网上搜索。
![基于JSP的网上投票系统设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-6/14/0922f04d-5f07-4911-9781-e5cb055c032a/0922f04d-5f07-4911-9781-e5cb055c032a1.gif)
基于JSP的网上投票系统设计与实现
系统建模与实现
题目:
基于JSP的网上投票系统
设计与实现
毕业设计(论文)原创性声明和利用授权说明
原创性声明
本人郑重许诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的功效。
尽我所知,除文中专门加以标注和致谢的地址外,不包括其他人或组织已经发表或发布过的研究功效,也不包括我为取得及其它教育机构的学位或学历而利用过的材料。
对本研究提供过帮忙和做出过奉献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
利用授权说明
本人完全了解大学关于搜集、保留、利用毕业设计(论文)的规定,即:
依照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保留毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览效劳;学校能够采纳影印、缩印、数字化或其它复制手腕保留论文;在不以获利为目的前提下,学校能够发布论文的部份或全数内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究功效。
除文中专门加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的功效作品。
对本文的研究做出重要奉献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权利用授权书
本学位论文作者完全了解学校有关保留、利用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,许诺论文被查阅和借阅。
本人授权 大学能够将本学位论文的全数或部份内容编入有关数据库进行检索,能够采纳影印、缩印或扫描等复制手腕保留和汇编本学位论文。
涉密论文按学校规定处置。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
摘要
随着科技的飞速进展,运算机已经普遍的应用于各个领域当中,而且日趋普及。
在运算机应用中很重要的一部份确实是编程语言,它的显现打开了运算机应用的新篇章。
选举、调查再也不局限于以往的方式,在线投票系统以更便利、更快速、更经济、更准确的优势普遍应用于各类网络投票选举、问卷调查中。
它将用户和网站专门好的联系起来,进而达到互联网资源共享的目的。
在线投票系统能够用来统计网站用户对某个主题或热点话题的意见。
网站治理员也能够通过在线投票系统那个媒介去了解用户的思想、意见,并通过在线投票系统的结果反馈改良工作策略。
本系统采纳JSP中常见的语言模块,以操作系统WindowsXP作为开发平台,而且利用MyEclipse、SQLserver2000等工具设计开发;在线投票系统包括前台注册、登录、投票、结果查看和后台治理等部份,治理员可随意增删和修改投票项目,可治理投票用户账号,和设定隐藏、发布投票结果等功能。
【关键词】在线投票系统JSPMyEclipseSQLserver2000
1.需求分析
系统介绍
本投票系统要紧分为一般用户和治理员两部份。
一般用户登录后能够进行投票和查看投票结果;治理员登录后能够进行治理投票话题和治理投票项。
“投票”用例要紧的功能是一般用户对某个投票话题进行投票,在用户进行投票时检测用户是不是已经投票了该话题,保证每一个用户都一个话题只能投一次票。
“查看投票结果”用例负责为用户提供某个话题的投票情形,包括每一个选项的票数和统计图。
“登录”负责查对治理员的用户名与密码,保证治理员身份的正确性。
“治理投票话题”用例负责为治理员提供添加和删除话题的功能。
“治理投票项”用例负责为治理员提供添加和删除选项的功能。
需求的提取
在线投票系统应具有的独特的功能:
(1)方便的操作。
原有的手工投票治理大体上是人工操作,效率低下,缺乏方便性,在线投票治理系统运用运算机和其他附加设备,再也不需要手工操作,大体上是全自动化,能够节省人力、最大限度地利用各类宝贵的资源,大大的提高了效率。
(2)友好的界面。
友好的用户界面会给人一种亲切的感觉,在利用起来可不能感觉沉闷,效率自然也会提高了。
(3)壮大的功能,能够知足需要,快速简单的统计任务,提高质量。
在线投票系统需要知足的条件:
(1)系统自动把投票结果转换为百分比显示。
(2)投票治理员能够对投票主题和投票选项进行设计与修改。
在线投票系统开发应遵循以下要求:
(1)尽可能采纳现有软硬件环境及先进的系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用成效的目的。
(2)系统应具有可扩展、可复用的特点,能与投票系统接轨,数据库的设计应该具有通用性。
(3)系统采纳模块化程序设计方式,既便于系统功能的各类组合和修改,又便于系统保护人员的调试与修改保护。
(4)系统应具有数据库保护功能,及时依照需要进行数据的添加、删除、修改等工作。
2开发工具简介
在在线投票系统的设计发开进程中要紧用了JSP技术,其顶用到的工具有:
、MyEclipse、SQLserver2000、Tomcat等。
简介
JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段和JSP,从而形成JSP文件。
JSP技术利用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处置逻辑。
在线投票系统用JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使本系统基于Web的应用程序的开发变得迅速和容易。
(1)一次编写,处处运行。
在这一点上Java比PHP更超卓,除系统之外,代码不用做任何更改。
(2)系统的多平台支持。
大体上能够在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相较ASP/PHP的局限性是现而易见的。
(3)壮大的可伸缩性。
从只有一个小的Jar文件就能够够运行Servlet/JSP,到由多台效劳器进行集群和负载均衡,到多台Application进行事务处置,消息处置,一台效劳器到无数台效劳器,Java显示了一个庞大的生命力。
(4)多样化和功能壮大的开发工具支持。
这一点与ASP很像,Java已经有了许多超级优秀的开发工具,而且许多能够免费取得,而且其中许多已经能够顺利的运行于多种平台之下。
2000简介
SQLServer2000是Microsoft公司推出的SQLServer,SQLServer2000数据库系统利用最经常使用的数据库治理语言——结构化查询语言(SQL)进行数据库治理。
它具有利用方即可伸缩性好与相关软件集成程度高等优势,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处置器的效劳器等多种平台利用;SQLServer2000SQLServer2000不但结合了分析、报表、集成和通知功能,而且它具有的图形化用户界面,能够使和数据库治理加倍直观、简单;SQLServer2000与WindowsNT完全集成,利用了NT的许多功能,如发送和同意消息,治理登录平安性等。
SQLServer2000也能够专门好地与MicrosoftBackOffice产品集成。
SQLServer2000因为其速度、靠得住性和适应性而备受关注。
针对以上各类情形,SQLServer2000数据库是在线投票系统最好的选择。
系统结构图
在线投票系统整体功能模块包括一般用户模块和治理员模块,其具体描述如下:
1.一般用户模块
(1)用户注册:
一般投票用户须通过账号注册方能够进行投票;
(2)登录:
注册成功后,可输入用户名和密码登录系统;
(3)重选:
用户能够进行从头投票;
在线投票系统
普通用户
用户注册
提交投票
查看投票结果
从以上介绍中咱们能看到,一般用户模块包括着3个不同的功能,其各部份功能关系如图3-1-1所示。
图3-1-1一般用户模块图
2.治理员模块
(1)发布新问题;
(2)用户治理,治理员能够增加和删除一般用户(超级用户不能删除),或更改一般用户密码;
(3)查看所有投票;
从功能描述的内容中能够看到,治理员模块能够实现添加投票话题、删除投票话题、增加投票项、删除投票项、发布结果和查看投票结果6个完整的功能,而且不同功能之间也存在着一些直接或间接联系,如图2-1-2所示。
删除投票主题
添加投票主题
查看所有投票
增加投票项
用户管理
删除投票项
公布结果
删除用户
添加用户
更改密码
管理员
在线投票系统
图3-1-2治理员模块图
3.系统的流程图:
在线投票系统的流程图包括了该系统的投票原理与要紧制作方式。
从流程图上咱们能够看到在线投票系统需要通过登录、显示投票项、取得投票参数、累加投票数、将投票写入数据库和显示投票结果等步骤,其流程图,如图3-1-3所示。
开始
登录
显示投票项
取得投票参数
结束
是否取得参数
累加投票数
将结果写入数据库
显示投票结果
否
是
图3-1-3投票流程图
系统用例图
图3-2-1一般用户用例图
图3-2-2治理员用例图
如图3-2-1所示,整个系统要紧有三个参与者,别离为一般用户和治理员。
数据库为系统的所有效例提供数据,保证系统的正常运作。
系统的用例要紧有五个,别离为:
投票、查看投票结果、登录、治理投票话题、治理投票项。
“投票”用例要紧的功能是一般用户对某个投票话题进行投票,在用户进行投票时检测用户是不是已经投票了该话题,保证每一个用户都一个话题只能投一次票。
“查看投票结果”用例负责为用户提供某个话题的投票情形,包括每一个选项的票数和统计饼图。
“登录”负责查对治理员的用户名与密码,保证治理员身份的正确性。
“治理投票话题”用例负责为治理员提供添加和删除话题的功能。
“治理投票项”用例负责为治理员提供添加和删除选项的功能。
类模型
图3-3-1系统实体类类图
状态模型
图3-4-1治理员治理投票系统状态图
图3-4-2主题设计子状态图
时序图模型
3-6-1一般用户登录的时序图
图3-6-2一般用户投票的时序图
图3-6-3一般用户查看投票情形的时序图
图3-6-4治理员登录的时序图
图3-6-5治理员添加投票话题的时序图
图3-6-6治理员删除话题的时序图
图3-6-7治理员增加投票项的时序图
图3-6-8治理员删除投票项的时序图
数据库功能模板设计
数据库设计是软件开发中的重要环节,是对系统数据全面的、详细的分析。
数据库设计的好坏直接关系到整个项目设计的效率的高低,关系到设计的稳固性。
依照在线投票系统不同模块之间的联系和前期的设计目的与需求,设计了三个不同的数据表,它们别离是用户表、投票选项表和投票主题表。
1.用户表(Admins)
用户表包括所有效户的各类信息,如用户名、密码等详细数据并规定了每一个字段的类型,如表3-7-1所示。
表3-7-1用户表(Admins)
字段名
数据类型
长度
是否主键
描述
admname
Varchar
50
是
用户名
admpwd
Varchar
50
否
密码
2.投票选项表(Items)
投票选项表包括每一个投票选项的大体信息,如投票编码、问题ID、投票选项和投票选项各选项所得票数等信息,同时此表还规定了字段类型和长度,具体的数听说明如表3-7-2所示。
表3-7-2投票选项表(Items)
字段名
数据类型
长度
是否主键
描述
ItemID
int
11
是
投票编码
QuestionID
int
255
否
问题ID
Item
varchar
500
否
投票选项
ItemCount
bigint
20
否
票数
(Question)
投票主题表包括投票主题、问题ID、是不是对外投票、投票日期和是不是对外发布投票结果等信息,详细数据类型和字段长度如表3-7-3所示。
表3-7-3投票主题表(Question)
字段名
数据类型
长度
是否主键
描述
QuestionID
int
11
是
问题ID
Question
varchar
500
否
投票主题
IsVisable
int
10
否
是否对外投票
Date
varchar
50
否
日期值
IsOpen
varchar
int
否
是否对外公布结果
系统E-R图为:
用户登录模块的设计
程序描述
本程序设计的目的主若是对用户注册和用户登录的实现。
功能描述
用户登录:
若是是已经注册的用户,那么直接验证登录到投票系统首页;若是是还未注册的用户,那么第一进行注册,注册成功,进行登录,登录成功的用户进入投票系统首页。
如图:
DB
错误信息
重新注册
信息是否有误
出错
注册
检查输入
不合法
无误
用户
登录
检查输入
输入信息
不合法
无误
错误信息
重新登录
投票首页
身份认证
不通过
通过
性能
身份认证和检查用户要对数据库进行搜索和录入,检查用户是不是合法和注册时,用户内外是不是有此用户名,若是是用户要求反映时刻在1秒之内,若是不是会员反映时刻在2秒之内,并在秒之内跳到注册页面。
输入项
在登录界面登岸的信息包括:
用户信息(用户名,密码,数据类型:
char,密码要以‘●’显示)。
输出项
对用户输入信息进行判定,通过验证后进入用户操作界面,若是该用户信息不存在提示“注册”。
流程逻辑
顾客
注册
错误页面
登录
网页首页
治理员治理模块的设计
程序描述
本程序设计的目的主若是治理员登录和对治理员身份进行验证的实现。
功能描述
治理员登录:
若是是治理员,那么直接验证登录到后台治理系统首页,若是若是不是治理员,那么显示错误信息。
如图:
管理员
登录
后台首页
出错信息
验证输入
否
是
性能
身份认证和检查治理员要对数据库进行搜索和录入,检查治理员是不是合法时,治理员内外是不是有此治理员名,若是是治理员要求反映时刻在1秒之内,若是不是治理员要求反映时刻在2秒之内。
输入项
在登录界面登岸的信息包括:
治理员信息(治理员,密码,数据类型:
char,密码要以‘●’显示)。
输出项
对用户输入信息进行判定,通过验证后进入用户操作界面,若是该用户信息不存在提示“犯错”。
流程逻辑
如图:
管理员
验证
错误页面
登录
后台首页
用户投票和投票结果查看模块设计
程序描述
本程序设计的目的主若是用户进行投票和对投票结果进行查看的实现。
功能描述
投票治理:
选择投票项,点击“提交”,数据库增加相应票数,转换到投票查看页面;点击“重置”,返回默许头投票项。
如图:
投票页面
选择投票项
是否重置
提交
是否完成所有题目
投票结果查看:
点击“查看投票结果”,能够查看到治理员许诺对外发布的主题的投票结果。
如图:
投票查看页面
点击查看
主题是否对外公布
显示票数和图示
关闭窗口
性能
投票提交要求反映时刻在1秒之内,数据库修改数据并以数字和图示显示结果。
投票输入项
点击投票项,被选中的选项以‘●’显示
结果输出项
点击查看结果,页面显示治理员许诺对外发布的主题的票数和图示。
流程逻辑
如图:
用户
投票
提交
重置
查看结果
显示对外公布结果
隐藏对外公布结果
治理员对主题、选项和用户信息的编辑模块的设计
程序描述
本程序设计的目的主若是治理员对主题、选项和用户信息的增加和删改的实现。
功能描述
如图:
增加
操作信息
删除
确定
等待操作
取消
取消
确定
修改
DB
性能
本模块要求对数据字典进行保护。
用户名、主落款和选项不能够有重复,因此在输入中要检查冲突信息,删除信息时不要发生误操作。
要求点击确信以后系统核查反映时刻为1秒之内,并在秒跳转回后台治理界面。
输入项
输入新的主题或新的选项或添加新的用户。
输出项
数据表格中显现新的主题信息或新的选项信息或新的用户信息,而且提示操作完成。
流程逻辑
如图:
管理员
登录
信息修改
验证
保存
5.系统的成效图展现
5.1用户模块界面展现
5-1-1用户登录界面
5-1-2用户注册界面
5-1-3用户注册成功界面
5-1-4用户投票界面
5-1-5用户投票成功界面
5-1-6用户查看投票结果界面
治理员模块界面展现
5-2-1治理员登录界面
5-2-2治理员后台治理界面
5-2-3治理员查看所有统计结果
5-2-4治理员添加主题界面
5-2-5治理员编辑选项界面
5-2-6用户治理界面
5-2-7治理员修改密码界面
6.系统测试
那个系统要实现的功能有效户注册登岸、用户投票、用户查看投票结果,和治理员对网站信息的各方面操作和保护等。
测试部份包括网站对数据库的访问和更新测试;对网站查询功能的测试;系统容错功能的测试。
表6-1网站对数据库的访问和更新测试用例
用例名称
网站对数据库的访问和更新
用例描述
当用户登录注册后,并登陆到网站后进行投票、链接等信息。
这些信息都是来自管理员对后台数据库的更新和维护。
我们要测试的是管理员通过后台是否对数据库进行了修改,并且修改后是否能相应、如实地在前台显示出来。
测试方案
管理员在后台添加主题信息,首先查看数据库中的数据是否有相应的变化,然后登录网站的前台看前台中显示的信息是否会相应改变。
输入数据
在添加主题模块中添加一个主题信息,数据如下:
调查主题:
你最喜欢下面哪种水果?
选项1:
苹果
选项2:
香蕉
选项3:
提子
选项4:
西瓜
预期结果
在添加的主题信息被提交后,打开SQLserver2000数据库,可以看到表中多了一行数据,其属性调查主题、选项1、选项2、选项3、选项4……的值分别为你最喜欢下面哪种水果?
、苹果、香蕉、提子、西瓜……说明管理员对网站数据库的访问和更新是成功的。
表6-2网站投票功能的测试
用例名称
网站投票功能的测试
用例描述
在用户登录前,用户是否能进行投票;用户登录后,并在投票中进行提交,观察系统是否会把投票数增加1;用户进行投票结果查看时,系统是否会把投票结果返回。
测试方案
用户未登录,然后观察是否能进行投票;登录后,进行投票提交和查看投票结果。
输入数据
进行选项投票。
预期结果
结果1:
用户未登录时,不能进行投票;
结果2:
在投票结果查看页面中显示投票结果。
表6-3对系统容错功能的测试之对投票选项修改的检测
用例名称
对系统容错功能的测试之对投票选项修改的检测
用例描述
在系统设计时,设计员需要考虑到可能进行什么样的操作。
其中,需要判定那些操作是合法的而那些操作是不允许的。
在这个系统中,需要对投票选项修改操作进行检测。
这个测试是投票选项修改的容错功能。
测试方案
管理员对主题的选项进行添加。
输入数据
调查主题:
你最喜欢下面哪种水果?
选项1:
苹果
选项2:
香蕉
选项3:
提子
选项4:
西瓜
选项5:
哈密瓜
预期结果
点击提交后,系统弹出提示框“更改成功”。
同时,将信息添加进数据库中。
总结
那个系统要紧采纳的jsp技术,数据库为SQLSERVER2000,效劳器为Tomcat,开发环境是MyEclispe。
由于是第一次合作利用不熟悉的java语言弄的系统,故在编写系统的进程中,咱们碰着了很多问题。
如:
在数据库的安装和链接这一部份,咱们花了大量的时刻。
由于之前安装了数据库2020版的功能不全,无法完成数据库的连接操作,由于之前安装了数据库2020版的功能不全,无法完成数据库的链接操作,故要卸载2020版本,从头安装了2000版本。
可是由于之前的2020版卸载时挺麻烦的,需要在系统的注册内外面删除之前的安装键值等才能够安装2000版数据库。
本数据库的端口号改成了1434。
默以为1433。
由于所安装的2000版本的库并非能支持所运用的开发环境MYEclipse(反反复复才弄清楚是那个缘故。
),因此还需要对数据库进行打补丁SP3。
在JDK安装中需要设置系统坏境和Tomcat的安装中需要设置虚拟机为JDK的安装途径,这一步是挺重要的。
本系统的开发要紧分为:
界面层、逻辑结构层、数据存储层。
在编写JSP文档中