1、系 统 建 模 与 实 现 题目:基于 JSP 的网上投票系统 设计与实现 学 院 数学与信息科学 专 业 信息与计算科学 班 级 09 信计 1 班 姓 名 学 号 0910020015、0910020022、0910020010 2摘要随着科技的飞速发展,计算机已经广泛的应用于各个领域之中,而且日趋普及。在计算机应用中很重要的一部分就是编程语言,它的出现打开了计算机应用的新篇章。选举、调查不再局限于以往的方式,在线投票系统以更便捷、更快速、更经济、更准确的优势广泛应用于各种网络投票选举、问卷调查中。它将用户和网站很好的联系起来,进而达到互联网资源共享的目的。在线投票系统可以用来统计网站用户
2、对某个主题或热门话题的意见。网站管理员也可以通过在线投票系统这个媒介去了解用户的思想、意见,并通过在线投票系统的结果反馈改进工作策略。本系统采用 JSP 中常见的语言模块,以操作系统Windows XP 作为开发平台,并且使用 MyEclipse、SQLserver 2000 等工具设计开发;在线投票系统包括前台注册、登录、投票、结果查看和后台管理等部分,管理员可随意增删和修改投票项目,可管理投票用户账号,以及设定隐藏、公布投票结果等功能。【关键词】 在线投票系统 JSP MyEclipse SQLserver 20003目录摘要 21.需求分析 51.1 系统介绍 .51.2 需求的提取 .
3、52 开发工具简介 63.分析与设计 73.1 系统结构图 73.2 系统用例图 93.3 类模型 113.4 状态模型 113.5 时序图模型 .133.6 数据库功能模板设计 .174.系统的详细设计 .184.1 用户登录模块的设计 184.1.1 程序描述 184.1.2 功能描述 184.1.3 性能 194.1.4 输入项 204.1.5 输出项 204.1.6 流程逻辑 204.2 管理员管理模块的设计 204.2.1 程序描述 204.2.2 功能描述 204.2.3 性能 214.2.4 输入项 214.2.5 输出项 214.2.6 流程逻辑 214.3 用户投票和投票结果
4、查看模块设计 224.3.1 程序描述 224.3.2 功能描述 224.3.3 性能 234.3.4 投票输入项 234.3.5 结果输出项 234.3.6 流程逻辑 234.4 管理员对主题、选项和用户信息的编辑模块的设计 244.4.1 程序描述 244.4.2 功能描述 244.4.3 性能 2444.4.4 输入项 254.4.5 输出项 254.4.6 流程逻辑 255. 系统的效果图展示 255. 1 用户模块界面展示 .255-1-1 用户登录界面 255-1-2 用户注册界面 265-1-3 用户注册成功界面 265-1-4 用户投票界面 265-1-5 用户投票成功界面 2
5、75-1-6 用户查看投票结果界面 275.2 管理员模块界面展示 275-2-1 管理员登录界面 275-2-2 管理员后台管理界面 285-2-3 管理员查看所有统计结果 285-2-4 管理员添加主题界面 285-2-5 管理员编辑选项界面 295-2-6 用户管理界面 295-2-7 管理员修改密码界面 296. 系统测试 30总结 .31参考文献 .32用户操作手册 .33附录 .34小组分工表 .3451.需求分析 1.1 系统介绍本投票系统主要分为普通用户和管理员两部份。普通用户登录后可以进行投票和查看投票结果;管理员登录后可以进行管理投票话题和管理投票项。“投票”用例主要的功能
6、是普通用户对某个投票话题进行投票,在用户进行投票时检测用户是否已经投票了该话题,保证每个用户都一个话题只能投一次票。“查看投票结果”用例负责为用户提供某个话题的投票情况,包括每个选项的票数以及统计图。“登录”负责核对管理员的用户名与密码,保证管理员身份的正确性。“管理投票话题”用例负责为管理员提供添加和删除话题的功能。“管理投票项”用例负责为管理员提供添加和删除选项的功能。1.2 需求的提取 1.2.1 在线投票系统应具有的独特的功能:(1)方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节
7、省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。 (2)友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。(3)强大的功能,能够满足需要,快速简单的统计任务,提高质量。 1.2.2 在线投票系统需要满足的条件:(1)系统自动把投票结果转换为百分比显示。(2)投票管理员可以对投票主题和投票选项进行设计与修改。1.2.3 在线投票系统开发应遵循以下要求:6(1)尽量采用现有软硬件环境及先进的系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。(2)系统应具有可扩展、可复用的特点,能与投票系统接轨,数据库的设计应该具有通用性。(
8、3)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于系统维护人员的调试与修改维护。(4)系统应具备数据库维护功能,及时根据需要进行数据的添加、删除、修改等工作。2 开发工具简介在在线投票系统的设计发开过程中主要用了 JSP 技术,其中用到的工具有:JDK1.4、MyEclipse 、SQLserver 2000、Tomcat 等。2.1.JSP 简介JSP 技术有点类似 ASP 技术,它是在传统的网页 HTML 文件中插入 Java程序段和 JSP,从而形成 JSP 文件。JSP 技术使用 Java 编程语言编写类 XML的 tags 和 scriptlets,来封装产生动态
9、网页的处理逻辑。在线投票系统用 JSP 将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使本系统基于 Web 的应用程序的开发变得迅速和容易。(1)一次编写,到处运行。在这一点上 Java 比 PHP 更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比 ASP/PHP 的局限性是现而易见的。 (3)强大的可伸缩性。从只有一个小的 Jar 文件就可以运行 Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台 Application 进行事务处理,消息处理,一台服务器到无
10、数台服务器,Java 显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与 ASP 很像,Java 已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。2.2.SQLserver 2000 简介 7SQLServer 2000 是 Microsoft 公司推出的 SQLServer 数 据 库 管 理 系 统 ,SQL Server 2000 数据库系统使用最常用的数据库管理语言结构化查询语言(SQL)进行数据库管理。它具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行 Microsoft Windows 98 的
11、膝上型电脑到运行 Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用;SQL Server 2000 SQL Server 2000 不但结合了分析、报表、集成和通知功能,而且它具有的图形化用户界面,可以使系 统 管 理 和数据库管理更加直观、简单;SQL Server2000与 Windows NT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等。SQL Server2000 也可以很好地与 Microsoft BackOffice 产品集成。SQL Server2000 因为其速度、可靠性和适应性而备受关注。针对以上种种情况,SQL
12、Server 2000 数据库是在线投票系统最好的选择。3.分析与设计 3.1 系统结构图在线投票系统总体功能模块包括普通用户模块和管理员模块,其具体描述如下:1.普通用户模块(1)用户注册:普通投票用户须通过账号注册方可以进行投票;(2)登录:注册成功后,可输入用户名和密码登录系统;(3)重选:用户可以进行重新投票;从以上介绍中我们能看到,普通用户模块包含着 3 个不同的功能,其各部分功能关系如图 3-1-1 所示。 在线投票系统普通用户用户注册提交投票查看投票结果8图 3-1-1 普通用户模块图2.管理员模块(1)发布新问题;(2)用户管理,管理员可以增加和删除普通用户(超级用户不能删除)
13、 ,或者更改普通用户密码;(3)查看所有投票;从功能描述的内容中可以看到,管理员模块可以实现添加投票话题、删除投票话题、增加投票项、删除投票项、公布结果和查看投票结果 6 个完整的功能,并且不同功能之间也存在着一些直接或间接联系,如图 2-1-2 所示。删除投票主题添加投票主题查看所有投票增加投票项用户管理删除投票项公布结果删除用户添加用户更改密码管理员在线投票系统9图 3-1-2 管理员模块图3.系统的流程图:在线投票系统的流程图包含了该系统的投票原理与主要制作方法。从流程图上我们可以看到在线投票系统需要经过登录、显示投票项、取得投票参数、累加投票数、将投票写入数据库和显示投票结果等步骤,其
14、流程图,如图 3-1-3 所示。图 3-1-3 投票流程图开 始登 录显示投票项取得投票参数结 束是否取得参数累加投票数将结果写入数据库显示投票结果否是103.2 系统用例图图 3-2-1 普通用户用例图图 3-2-2 管理员用例图如图 3-2-1 所示,整个系统主要有三个参与者,分别为普通用户和管理员。数据库为系统的所有用例提供数据,保证系统的正常运作。11系统的用例主要有五个,分别为:投票、查看投票结果、登录、管理投票话题、管理投票项。 “投票”用例主要的功能是普通用户对某个投票话题进行投票,在用户进行投票时检测用户是否已经投票了该话题,保证每个用户都一个话题只能投一次票。 “查看投票结果
15、”用例负责为用户提供某个话题的投票情况,包括每个选项的票数以及统计饼图。 “登录”负责核对管理员的用户名与密码,保证管理员身份的正确性。“管理投票话题”用例负责为管理员提供添加和删除话题的功能。 “管理投票项”用例负责为管理员提供添加和删除选项的功能。3.3 类模型图 3-3-1 系统实体类类图3.4 状态模型12图 3-4-1 管理员管理投票系统状态图图 3-4-2 主题设计子状态图133.5 时序图模型3-6-1 普通用户登录的时序图图 3-6-2 普通用户投票的时序图14图 3-6-3 普通用户查看投票情况的时序图图 3-6-4 管理员登录的时序图15图 3-6-5 管理员添加投票话题的
16、时序图图 3-6-6 管理员删除话题的时序图16图 3-6-7 管理员增加投票项的时序图图 3-6-8 管理员删除投票项的时序图173.6 数据库功能模板设计数据库设计是软件开发中的重要环节,是对系统数据全面的、详细的分析。数据库设计的好坏直接关系到整个项目设计的效率的高低,关系到设计的稳定性。根据在线投票系统不同模块之间的联系和前期的设计目的与需求,设计了三个不同的数据表,它们分别是用户表、投票选项表和投票主题表。1.用户表(Admins)用户表包括所有用户的各种信息,如用户名、密码等详细数据并规定了每个字段的类型,如表 3-7-1 所示。表 3-7-1 用户表(Admins)字段名 数据类
17、型 长度 是否主键 描述admname Varchar 50 是 用户名admpwd Varchar 50 否 密码2.投票选项表(Items)投票选项表包括每个投票选项的基本信息,如投票编码、问题 ID、投票选项和投票选项各选项所得票数等信息,同时此表还规定了字段类型和长度,具体的数据说明如表 3-7-2 所示。表 3-7-2 投票选项表(Items)字段名 数据类型 长度 是否主键 描述ItemID int 11 是 投票编码QuestionID int 255 否 问题 IDItem varchar 500 否 投票选项ItemCount bigint 20 否 票数3.投票主题表(Qu
18、estion)投票主题表包括投票主题、问题 ID、是否对外投票、投票日期以及是否对外公布投票结果等信息,详细数据类型和字段长度如表 3-7-3 所示。表 3-7-3 投票主题表(Question)字段名 数据类型 长度 是否主键 描述QuestionID int 11 是 问题 ID18Question varchar 500 否 投票主题IsVisable int 10 否 是否对外投票Date varchar 50 否 日期值IsOpen varchar int 否 是否对外公布结果系统 E-R 图为:4.系统的详细设计4.1 用户登录模块的设计4.1.1 程序描述本程序设计的目的主要是对
19、用户注册和用户登录的实现。4.1.2 功能描述19用户登录:如果是已经注册的用户,则直接验证登录到投票系统首页;如果是还未注册的用户,则首先进行注册,注册成功,进行登录,登录成功的用户进入投票系统首页。如图:4.1.3 性能身份认证和检查用户要对数据库进行搜索和录入,检查用户是不是合法和注册时,用户表里是否有此用户名,如果是用户要求反应时间在 1 秒之内,如果不是会员反应时间在 2 秒之内,并在 0.5秒之内跳到注册页面。DB错误信息重新注册信息是否有误出错注册检查输入不合法无误用户登录检查输入输入信息不合法无误错误信息重新登录投票首页身份认证不通过通过204.1.4 输入项在登录界面登陆的信
20、息包括:用户信息(用户名,密码,数据类型:char,密码要以显示) 。4.1.5 输出项对用户输入信息进行判断,通过验证后进入用户操作界面,如果该用户信息不存在提示“注册” 。4.1.6 流程逻辑4.2 管理员管理模块的设计4.2.1 程序描述本程序设计的目的主要是管理员登录以及对管理员身份进行验证的实现。4.2.2 功能描述管理员登录:如果是管理员,则直接验证登录到后台管理系统首页,如果如果不是管理员,则显示错误信息。如图:顾客注册错误页面登录网页首页214.2.3 性能身份认证和检查管理员要对数据库进行搜索和录入,检查管理员是不是合法时,管理员表里是否有此管理员名,如果是管理员要求反应时间
21、在 1 秒之内,如果不是管理员要求反应时间在 2 秒之内。4.2.4 输入项在登录界面登陆的信息包括:管理员信息(管理员,密码,数据类型:char,密码要以显示) 。4.2.5 输出项对用户输入信息进行判断,通过验证后进入用户操作界面,如果该用户信息不存在提示“出错” 。管理员登录后台首页出错信息验证输入否是224.2.6 流程逻辑如图:4.3 用户投票和投票结果查看模块设计4.3.1 程序描述本程序设计的目的主要是用户进行投票以及对投票结果进行查看的实现。4.3.2 功能描述 投票管理:选择投票项,点击“提交” ,数据库增加相应票数,转换到投票查看页面;点击“重置” ,返回默认头投票项。如图
22、:管理员 验证错误页面登录 后台首页23投票页面选择投票项是否重置提交是否完成所有题目投票结果查看:点击“查看投票结果” ,可以查看到管理员允许对外公布的主题的投票结果。如图:投票查看页面点击查看主题是否对外公布显示票数和图示关闭窗口244.3.3 性能投票提交要求反应时间在 1 秒之内,数据库修改数据并以数字和图示显示结果。4.3.4 投票输入项点击投票项,被选中的选项以显示4.3.5 结果输出项点击查看结果,页面显示管理员允许对外公布的主题的票数和图示。4.3.6 流程逻辑如图:用户 投票 提交重置查看结果 显示对外公布结果隐藏对外公布结果4.4 管理员对主题、选项和用户信息的编辑模块的设
23、计4.4.1 程序描述本程序设计的目的主要是管理员对主题、选项和用户信息的增加以及删改的实现。4.4.2 功能描述 如图:增加操作信息删除确定等待操作 取消取消确定修改DB254.4.3 性能本模块要求对数据字典进行维护。用户名、主题名和选项不可以有重复,所以在输入中要检查冲突信息,删除信息时不要发生误操作。要求点击确定之后系统核查反映时间为 1 秒之内,并在 0.5秒跳转回后台管理界面。4.4.4 输入项输入新的主题或者新的选项或者添加新的用户。4.4.5 输出项数据表格中出现新的主题信息或者新的选项信息或者新的用户信息,并且提示操作完成。4.4.6 流程逻辑如图:5.系统的效果图展示5.1
24、 用户模块界面展示管理员 登录 信息修改 验证 保存265-1-1 用户登录界面5-1-2 用户注册界面5-1-3 用户注册成功界面275-1-4 用户投票界面5-1-5 用户投票成功界面5-1-6 用户查看投票结果界面5.2 管理员模块界面展示285-2-1 管理员登录界面5-2-2 管理员后台管理界面5-2-3 管理员查看所有统计结果295-2-4 管理员添加主题界面5-2-5 管理员编辑选项界面5-2-6 用户管理界面305-2-7 管理员修改密码界面6.系统测试这个系统要实现的功能有用户注册登陆、用户投票、用户查看投票结果,以及管理员对网站信息的各方面操作和维护等。测试部分包括网站对数
25、据库的访问和更新测试;对网站查询功能的测试;系统容错功能的测试。表 6-1 网站对数据库的访问和更新测试用例用例名称 网站对数据库的访问和更新用例描述当用户登录注册后,并登陆到网站后进行投票、链接等信息。这些信息都是来自管理员对后台数据库的更新和维护。我们要测试的是管理员通过后台是否对数据库进行了修改,并且修改后是否能相应、如实地在前台显示出来。测试方案管理员在后台添加主题信息,首先查看数据库中的数据是否有相应的变化,然后登录网站的前台看前台中显示的信息是否会相应改变。输入数据在添加主题模块中添加一个主题信息,数据如下:调查主题:你最喜欢下面哪种水果? 选项 1:苹果 选项 2:香蕉 选项 3:提子