中原工学院软件学院软件工程实践二设计任务书指导教师签字:年月日网络选举投票系统设计与实现摘要随着Internet技术的快速发展,如今很多服务行业都需要进行服务的反馈,以便更好的提高产品的质量和作出更好的服务,投票系统就是一个反馈信息的软件,通过它可以更好更快捷的反馈信息供服务商参考,同时在公司单位内需要进行各种投票项目进行领导和员工间的互动,以供公司高层了解下面同事的最新动态,同时通过网络投票系统在各种精选活动中可以大大提高公平性与公正性,采用计算机机票提高了选举效率。
因此开发一个供客户反馈信息,供同事间进行交流的平台是必要的。
(1)方便的操作。
原有的手工投票管理基本上是人工管理,效率低下,缺乏方便性,在线投票管理系统运用计算机及其他附属设备,不再需要人工操作,基本上实现自动化,能够节省人力,最大限度的节省各种宝贵的资源,大大提高效率。
(2)友好的界面。
友好的用户界面会给人一种亲切感,在使用起来不会觉得沉闷,效率大大提高。
关键词:网络;投票;JSP目录摘要 (1)第1章项目分析 (1)1.1问题描述 (1)1.2技术分析 (1)1.3工程进度计划 (3)第2章系统分析与设计 (4)2.1系统分析 (4)2.1.1参与者 (4)2.1.2 用例及用例规约 (4)2.1.3用例图 (6)2.2系统设计 (6)2.2.1顺序图 (6)2.2.2类图 (8)2.2.3系统体系结构设计 (11)2.3数据库设计 (13)2.3.1E-R图 (14)2.3.2关系模式 (14)2.3.3表的设计 (15)第3章实现与测试 (17)3.1查看项目模块 (17)3.1.1活动图 (17)3.1.2界面 (18)3.1.3代码分析 (18)3.1.4测试用例 (20)3.2新建项目模块 (20)3.2.1活动图 (21)3.2.2界面 (21)3.2.3代码分析 (22)3.2.4测试用例 (22)3.3停止项目模块 (23)3.3.1活动图 (23)3.3.2界面 (24)3.3.3代码分析 (24)3.3.4测试用例 (25)3.4恢复项目模块 (25)3.4.1活动图 (25)3.4.2界面 (26)3.4.3代码分析 (26)第4章结束语 (28)附录A: 主要源程序 (31)第1章项目分析项目分析是对该系统具有功能的大致介绍,包括设计该系统的问题描述、技术分析、该系统的工作进度计划等内容。
项目分析是对该系统的总体概述。
这次我们做的系统名称是网络选举投票系统。
1.1问题描述当前正处于信息时代的繁荣时期,消费者对网站和企业的要求逐渐由单纯对质量的要求转变为不仅要求质量同时要求用户的体验和意见反馈及处理的方式。
在这样的情况下,一款专门应用与网络的网络选举投票系统就显的极为重要。
网络投票选举系统主要用来进行公司的各种投票和公司内部网的热点话题的意见收集与反馈,通过这些数据使公司高层尽快掌握员工的思想动态和各种工作需求,同时大大提高各种用于活动的竞选效率。
投票系统具有极大的灵活性,可以进行单选或多选投票,自动记录登录者的ID防止恶意刷票的出现,管理员也可以在线设计不同的投票主题供用户进行投票。
1)普通用户登录后即可对当前进行的投票项目进行投票。
2)管理员登录后即可对当前正在进行的投票项目进行结束,删除,添加等操作。
用户:面向所有公司内部员工,拥有正确的工号号和登录密码。
管理员:公司内部管理员,拥有正确的登录帐号和密码。
1.2技术分析Java是一种动态加载和运行的语言。
也就是说当应用程序持有一个类的地址(CLASSPATH)和名称(包名和类名)的情况下,可以在程序运行期间任何时候加载这个类,并创建和使用该类的对象。
Servlet就是基于这个机制与Web容器融合在一起的。
目前已知的所有支持Java Servlet的Web容器都是采用Java开发的。
当Web容器接收到来自客户端的请求信息之后,会根据URL中的Web元件地址信息到Servlet队列中查找对应的Servlet对象,如果找到则直接使用,如果没有找到则加载对应的类,并创建对象。
也就是说,Servlet对象是在第一次被使用的时候才创建的,并且一旦创建就会被反复使用,不再创建新的对象。
所有创建出的Servlet对象会在Web服务器停止运行的时候统一进行垃圾回收。
为了解决客户端请求地址与Java Servlet之间对应关系问题,Web容器需要一个用来描述这种对应关系的文件,一般是web.xml文件。
如果一个Web应用程序中存在很多个Servlet,那么web.xml会变得非常庞大。
在Servlet 3.0规范推出之后,允许在Servlet代码中使用声明式语法来代替web.xml中的描述信息,这才让web.xml瘦身下来。
所有的程序运行都需要有一个必要的运行环境。
这个环境可以是软件,也可以是硬件,或者是软件和硬件的结合。
比如说Windows操作系统需要运行在硬件基础上;Office软件需要运行在操作系统上。
并且程序与运行环境之间会有一定的数据交换,比如操作系统会将运行指令传递给硬件,硬件也会将指令运行结果传递给操作系统。
Java Web程序也需要一个运行环境才能够执行。
这种运行Java Web程序的环境被称为Web容器,Java Web程序与Web容器之间存在数据交互。
目前主要存在两种类型的Java Web容器:一种是独立的Java Web容器,在这种容器里面只能运行Web程序,这种容器一般也叫做Web服务器,如Tomcat等;另一种是与其他Java EE容器混合在一起的Web容器,Web容器负责运行Web程序,其他容器负责运行EJB等程序,如WebLogic等。
当用户通过浏览器等Web客户端软件向服务器发出一个请求之后,首先接收到这个请求的是Web容器,Web容器会将请求信息封装到一个HttpServletRequest类型的Java对象中,并将对象传递给Java Web程序。
对于每个请求,Web容器还会创建一个HttpServletResponse类型对象,该对象的作用是用来保存需要返回到浏览器等客户端的内容。
Java Web程序可以从HttpServletRequest提取用户发出的请求信息,进行适当的处理之后,将处理结果放置HttpServletResponse中,然或由Web容器解析HttpServletResponse对象内容,并将解析结果以浏览器能够识别的HTML等格式返回给浏览器等客户端。
在这个过程中,HttpServletRequest和HttpServletResponse就如同两条渡船,负责在Web容器和Java Web程序之间传递信息。
需要注意的是,这两个对象仅存在于Web容器和Java Web程序当中,与浏览器没有关系。
1.3工程进度计划备注:组长:杜春静组员:吴文文、宋晓梅、杜春静第2章系统分析与设计网络投票选举系统主要用来进行公司的各种投票和公司内部网的热点话题的意见收集与反馈,通过这些数据使公司高层尽快掌握员工的思想动态和各种工作需求,同时大大提高各种用于活动的竞选效率。
该系统立足课本,运用平时课本所学知识,来完成基本操作,并适当延伸知识点,培养自己动手的能力。
并能更好的提高编程水平。
2.1系统分析需求分析及系统设计说明:本系统是针对众多用户对项目参选人的投票,需要能够显示每个项目的参选人的票数,且对于每个用户同一个项目的参选人只能进行一次投票,并实现管理对项目的开放和关闭。
针对以上需求,管理员应对参选者、用户和项目具有管理权限(增、删、改、查)。
用户具有对项目参选人投票及个人投票记录查询的权限。
2.1.1参与者本项目的参与者都有:管理员、用户、参选者2.1.2 用例及用例规约2.1.3用例图查看项目添加用户删除用户添加参选人删除参选人参加投票图2.1用例图2.2 系统设计本系统前台采用MVC 框架,采用jsp+servlet+JavaBean 。
本着易用、可靠、实用性原则,采用模块化设计,将系统分解为管理员和用户两个模块。
管理员管理权限和角色、登录以及项目的相关操作,用户则是对参选者进行投票。
2.2.1顺序图: 管理员: frmMain: frmProjectManage : ProjectManage : SDProject图2.2管理员查看顺序图: 管理员 : frmMain : frmProjectManage : frmProjectDetail : ProjectManage : SDProject图2.3管理员新建项目顺序图: 管理员 : frmMain : ProjectManage: SDProject图2.3管理员停止项目顺序图: 管理员 : frmMain : ProjectManage: SDProject1.选择恢复项目2.请求恢复项目3.确定项目的合法性4.请求恢复项目5.恢复项目6.项目从历史项目列表转入项目列表图2.4管理员恢复项目顺序图2.2.2类图图2.4Dao包业务层类图2.5voter实体类图2.6 Manager实体类图2.7 Redocer实体类图2.8Projecter实体类图2.9 UserRecoder实体类图2.10 User实体类图图2.11 ProRecoder实体类图2.12过滤器类图图2.13 HistoryProject控制类图图2.14 HistoryUser控制类图图2.15 ListProject控制类图图2.16ManagerHistoryProject类图图2.17 ManagerListProject类图图2.18ManagerListUser类图图2.19 ManagerListVoter类图图2.20ManagerMessage类图图2.21 Manager控制类图图2.22 ManagerView类图图2.23 UserView类图图2.24Vote控制类图图2.25数据库连接类图2.2.3系统体系结构设计设计原则:模块化:本系统采用模块化的设计,如每个类中的具体方法,由一个方法块构成,可以方便的被系统中的其他类或者方法调用以实现预定的功能;抽象类:本系统还采用许多抽象类和接口,以实现访问层与数据库之间的连接;信息隐藏:系统代码编写过程中隐藏了帐户密码,这样可以确保使用时的安全性。
高内聚:系统中的每个类都具有相应的独立性和功能特性,其内都有各自具体的方法来实现不同的功能;低耦合:各个类之间有一定的联系,但是依赖性不大,可以避免因为子程序之间的复杂关系产生更多的错误;简单化:本系统设计的界面清晰,简明,性能可靠,操作简单;实用性能:该系统可以满足校园内进行的各种投票选举操作。
系统模块划分如图2.1 所示:图2.26功能结构图各子系统主要功能如下:1)登录:用户输入正确的账号和密码,进入系统;2)投票;普通用户对正在进行的项目进行投票;3)新建:管理员用户发起一个新的投票项目;4)查询:普通用户查询本人帐号以前的投票记录,管理员用户查询已经停止的投票项目;5)恢复:管理员用户对已经结束的投票项目进行恢复至正在进行;总体设计说明:表示层:应用程序的用户界面部分。