基于java的网上投票系统内容摘要:

第三章 系统分析 需求 分析 需求分析是软件工程中一个重要的过程, 在很长的一 段时间内,人们一直认为需求分析是软件开发过程中最简单的一部分,但需求分析的草率行事往往会使最终的软件产品不符合用户的要求,从而导致软件产品开发的失败。 下面就介绍在线投票系统的需求分析。 对于普通用户,在线投票系统在网页中显示需要调查的问题、接受用户的投票 ,并以统计 图示的方式显示当前调查结果。 如下图: 对于管理员用户,在线投票系统提供管理接口,管理员可以任意增加、修改、删除投票,如下图: 密码错误 密码正确 进入投票页 投票 查看结果 退出 管理员登录 判断 进入管理页 投票系统管理 退出 第四章 系统设计 总体 设计 为 了 更好地表述在线投票系统,这里将部分地使用 UML的建模图形。 用例图 (Use Case Diagram)提供一个系统环境的建模办式,它能够帮助系统分析师确定系 统内部利外部元素以及系统范围。 简单 来说,列例图由用例和参与者构成,其中用例是外部 可 见的一个系统功能单元;参与者是 与系统发 生交互 作用的外部用户、进程或其他系统的理想化概念。 在线投票系统的用例图下图所示 , 可 以识别出两个参与者,即系统管理员( Admin)和系统使用者 ( user)。 系统 管理员除了可以参加投票外还能对整个系统实施完全 的管理。 系统使用者只能参与投票升查看投票结果。 在线投票用例图 顺序图 ( Sequence Diagram)描述对象之问动态交互关系,着重体现对象间消息传递的时间顺序。 顺序图是一个二维图,纵 向 是时问轴,时间延竖线向下延伸;横向表示对象之间的消息传递。 对象之 间 的消息从一个对象的 生 命线(时问 轴 上的双道线 用箭头指向另一个对象的生命线。 用户参与投票的流程顺序图如下所示, 用户参与在线投票系统从进入投票模块开始,投票模块以网页的形式显示所有开放的问题,用户在选取符合他要求的投票项后单击“提交”按钮,他的投票数据将提交给数据模块,由数据模块保存到 SQL Server 2020 数据库中,从而完成投票提交的过程。 用户还可以查看某问题的投票 统计结果,用户 进入显示模块,显示模块从数据模块读取开放问题的投票数据,并以柱状统计图 的形式显示。 用户参与投票的流程 顺序 图 管理员增加新投票的过程从登录管理模块开始 ,管理员先把用户名和密码提交给登录模块,登求模块根据用户名到数据库中搜索其对应的密码,然后对比用户名是否存在以及管理员输入的密码是否币确。 如果用户名和密码正确,登录模块把用户信息提交到管理模块并提示用户登录成功,管理员在管理模块提交新投票数据,管理模块把新投票数据提交到数据模块并保存到数据库中,管理模块提示管理员操作成功,从而完成添加新投票的整个过程。 管理员添加新投票的流程顺序 图如下 : 管理员添加新投票的流程图 模块设计 在线投票系统大致可以分为客户投票模块、管理员模块以及数据处理模块 3部分。 客户投票 模块 用户投票模块包括 、 、 、 4个程序页面,具体的系统结构 如下图。 其中, 是用户投票的首页,用户登录在线投票系统后就自动跳转到该页面,该页面通过数据处理模块读取数据库中所有开放的问题并显示,用户可以选取一项或多项回答项并提交。 是数据接收页。 用户在 中 选择投票的回答项并提交,用户所选择的数据项被提交到 ,该页把这些数据项储存到数据库中,并提示用户投票数据提交成功。 是数据的显示页。 当用广在参加投票后可以查看该项投票的统计结果,该页就用柱状图的显示给出统计图和所有选择的百分比。 sp 足字符转换页,主要用于解决中文字符无法正确显示的问题。 在这里 用清晰易懂的顺序图来描述用户投票的过裎中上述页面间的互相协作以及消息交互。 客户投票模块各页面间的顺序图如图所示。 管理员模块 管理员模块由用户登录页面、新增投票页面、编辑投票页面组 成,具体的系统结构图如 下图所示。 其中 login,jsp 是管理员的登录页,管理员要对在线投票系统进行管理必须先进行登录,通过用户名和密码的验证。 是管理员登录的验证页。 管理员在 login,jsp 填入用户名和密码后,这些数据将被提交到该页,然后与数据库中的数据进行对比。 如果验证通过将跳转到管理主页面。 是在线投票系统的管理主页面,在管理员通过用户名和密码的验证后, 将跳转到该页面。 包含所有投票的链接,管理员单击问题 就能查看投票的结果,管理员还可以选择编辑该投票或者删除该投票。 是查看投票结果的页面。 管理员在登录刽管理主页面 Mainform,jsp后,单击某投票的问题,系统会跳转到该页面。 会以柱状图的形式在网页上 给出该投票每个选项所占的百分比。 和 是 新增投票的页。 管理员在登录到管理主页面 后,选择新增投票.系统会跳转到 页而,管理员需要在该页面填入新增投票的问题以及选 项,然后提交。 页面把管理员所提 交的新增 投票资料保存到数据库中,并提示管理员操作成功。 是删除投票页。 管理员在登录到管理主页面 后,呵以选择删除投票选项来删除不需要的投票。 Edituserjsp 和 是编辑密码页。 管理员在登录到管理主页面 后,可以选择更改自己的登录密码. 和 是编辑投票项页面.管理员在登录到管理主页面Main 后,可以编辑某个投票的属性。 是设置投票结果为不开放,即接收用户的投票但用户不可以查看投票的结果。 isvisible,jsp 是把某个投票设置为对用户不可见,即不再接收用户的投票而且用户也不能查看投票的结果,但系统管理员还可以查看投票的结果. 在这里选取典型的管理员添加投票过程来描述系统页面间的互相协作以及消息交互的过程。 管理员添加投票各页面间的顺序图如下图所示。 数据处理模块 数据处理模块由一个 JavaBean 程序 组成.一般的系统都把与数据库相关的代码封装在一个 JavaBean 组 件中。 本系统中的 负责连接数据库、执行数据库查询、更新、删除数据等操作。 数据库设计 在线投票系统使用的数据库是 Microsof SQL Server 2020。 系统所使用的表包括管理员信息表( Admins)、投票问题表 (Questions)以及投票选项表 (Items)。 管理员信息表 ( Admins) 字段 说明 类型 备注 Admname 管理员用户名 Varchar 10 主键 Admpwd 管理员密码 Varchar 10 管理员信息表 ( Admins)包括管理 员的用户名和密码,管理员登录在线投票系统时 就是读取管理员输入的用户名和密码与数据库中的数据对比. 投票问题表 ( Questions) 字段 说明 类型 备注 QuestionID 投票问题 ID 号 Int 主键,自增 1 Question 投票问题内容 Varchar 500 不为空 IsVisable 该问题对用户是否可见 Int 1 为可见, 0 为不可见 IsOpen 该问题统计结果是否可见 Int 1 为可见, 0 为不可见 Date 该问题设立的时间 Varchar 50 投票问题表( Questions)包括的字段为投票的问题、投票问题是否可见、投票问题是否开放、投票问题设立的时间,当用户登录 时.该页就从数据库中读取所有的可见问题及其选项并显示在网页上。 投票选项表( Items) 字段 说明 类型 备注 ItemID 投票问题选项 ID号 Int 主键,自增 1 QuestionID 投票问题 ID 号 Int 不为空 Item 该问题选项内容 Varchar 500 不为空 ItemCount 该选项获得的投票数 Int 不为空 投票选项表 (Items)包括的字段为投票问题 ID 号、该问题选项内容、该选项获得的投票数。 当用户登录 时,该网页先读取投票问题表(Questions)中所有可见的问题,然后根据每一个问题的 ID号在投票选项表 (ltems)中找到该问题的对应选项并最终显示在网页上。 当用户完成自己的投票后, 将用户所投的选项所对 应 的投票数加 1。 投票问题表( Questions)与投票选项表 (Items)在 SQLServer 2020 中的数据库逻辑关系如 下 图 所示。 第五章 系统开发 客户投票模块 用户登录在线投票系统后首先看到的就是该页面,该页面从数据库中读取所有的可见问题及其选项后以网页的形式显示,并且接收用户的投票,然后把用户的投票信息提交给数据接收页。 程序说明: 用户投票首页。 程序模块名称:。 相关数据表:投票问题表( Questions)、投票选项表( Items)。 用户投票页的 部分 代码如下: String permit。 String SqlString=SELECT Question,QuestionID from questions where IsVisable = 1。 try { ResultSet rs=null。 ResultSet ch_rs=null。 //设置连接 (,jdbc:microsoft: //设置 SQL语句 rs=(SqlString)。 //得到查询结果 int questionid = 0,itemid = 0。 int i=0,j。 //题目及选项标号 while(()) { i++。 String question = (1)。 questionid= (2)。 (TABLE borderColor=999999 cellSpacing=0 cellPadding=0 width=100% border=0tr bgcolor=999999td+ +i+.+ +question+/td/tr)。 //子查询语句,根据问题 id 号到 items 表中查询该问题的所有选项 String ch_sql = SELECT Item,ItemID From Items Where QuestionID =39。 +questionid+39。 ch_rs=(ch_sql)。 j = 0。 while(()) { j++。 String item = (1)。 // itemid = (2)。 % td %=j%input type=radio value=%=itemid% name=%=questionid%%=item% /td/tr % } ( /tablep)。 } } catch(SQLException e1) { (SQL异常。 )。 } 用户首先登录投票页 并 提交他们认可的回答项,用户所选择的数据项被提交到数据接收页 ,该页把这些数据项储存到数据库中.并提示用户投票数据提交成功。 程序说明:数据接收页。 程序模块名称: 相关数据表:投票问题表( Questions)、投票选项表( Items) 数据接收页的代码如下 : ResultSet rs=null。 ResultSet ch_rs=null。 //查询所有可见问题 String sqlstring = SELECT QuestionID from questions where IsVisable = 1。 try { rs=(sqlstring)。 int questionid = 0,itemid = 0。 while(()) { questionid = (1)。 //获取用户选择的该问题的选项的 id 号 itemid = (((questionid)))。 //更新该问题选择的计数值 ,做加 1 操作 sqlstring = update Items set ItemCount = ItemCount + 1 Where ItemID =+itemid。 (sqlstring)。 }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。