版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、I / 60 文档可自由编辑打印中原工学院软件学院中原工学院软件学院软软件件工工程程实实践践二二 设设计计任任务务书书姓姓 名名杜春静 Java 专业 104 班题题 目目网络选举投票系统的设计与实现设设计计任任务务设计一个功能完善的网络选举投票系统,该程序界面简洁大方,按照用户的需要进行投票项目的管理,具体功能如下:1. 用户端登录,输入正确的账户和密码,登录成功后进行投票和查询历史记录的操作。2. 管理员登录,输入正确的账户和密码,登录后可对各种投票项目进行管理。开发工具:My Eclipse6.5 数据库:Mysql使用技术:jdbc、servlet、filter开发环境:Windows
2、XP时时间间进进度度第 1 周(2013-2-252013-3-1):完成软件的需求分析,总体设计和详细设计,并构造出一个大体的软件模型,构造出其体系结构,画出其系统模块图,并写出初步的文档;第 2 周(2013-3-42013-3-8):主要是对系统进行详细设计,划分出具体的功能模块,根据模块进行界面设计,编码及单元测试;第 3 周(2013-3-112013-3-15):主要是对系统的测试,以及纠错,加强对软件的功能设计,添补遗漏;然后对文档进行适当的修改。原原 主主始始 要要资资 参参料料 考考与与 文文 献献01 刘京华 JavaWeb 整合开发王者归来M:清华大学出版社.02 张帆
3、Java 范例开发大全M:清华大学出版社.03 李钟尉、陈丹丹 Java 开发实战 1200 例 M:清华大学出版社. 2006.604 千丽霞 Java 项目开发案例全程实录M:北京.清华大学出版社. 2004.505 孙卫琴 Tomcat 与 Java Web 开发技术详解M: 电子工业出版社. 2005.2指导教师签字:指导教师签字: 年年 月月 日日1 / 60 文档可自由编辑打印网络选举投票系统设计与实现摘 要随着 Internet 技术的快速发展,如今很多服务行业都需要进行服务的反馈,以便更好的提高产品的质量和作出更好的服务,投票系统就是一个反馈信息的软件,通过它可以更好更快捷的反
4、馈信息供服务商参考,同时在公司单位内需要进行各种投票项目进行领导和员工间的互动,以供公司高层了解下面同事的最新动态,同时通过网络投票系统在各种精选活动中可以大大提高公平性与公正性,采用计算机机票提高了选举效率。因此开发一个供客户反馈信息,供同事间进行交流的平台是必要的。(1)方便的操作。原有的手工投票管理基本上是人工管理,效率低下,缺乏方便性,在线投票管理系统运用计算机及其他附属设备,不再需要人工操作,基本上实现自动化,能够节省人力,最大限度的节省各种宝贵的资源,大大提高效率。(2)友好的界面。友好的用户界面会给人一种亲切感,在使用起来不会觉得沉闷,效率大大提高。关键词: 网络; 投票; JS
5、P1 / 60 文档可自由编辑打印目 录摘摘 要要.1第第 1 章章 项目分析项目分析.11.1 问题描述.11.2 技术分析.11.3 工程进度计划.3第第 2 章章 系统分析与设计系统分析与设计.42.1 系统分析.42.1.1 参与者.42.1.2 用例及用例规约.42.1.3 用例图 .62.2 系统设计.62.2.1 顺序图.62.2.2 类图.82.2.3 系统体系结构设计.112.3 数据库设计.132.3.1 E-R 图.142.3.2 关系模式.142.3.3 表的设计.15第第 3 章章 实现与测试实现与测试.173.1 查看项目模块.173.1.1 活动图.173.1.2
6、 界面.183.1.3 代码分析.183.1.4 测试用例.203.2 新建项目模块.203.2.1 活动图.213.2.2 界面.213.2.3 代码分析.223.2.4 测试用例.223.3 停止项目模块.233.3.1 活动图.233.3.2 界面.243.3.3 代码分析.243.3.4 测试用例.253.4 恢复项目模块.253.4.1 活动图.253.4.2 界面.263.4.3 代码分析.263.4.4 测试用例.272 / 60 文档可自由编辑打印第第 4 章章 结束语结束语.28附录附录 A: 主要源程序主要源程序.311 / 60 文档可自由编辑打印第 1 章 项目分析项目
7、分析是对该系统具有功能的大致介绍,包括设计该系统的问题描述、技术分析、该系统的工作进度计划等内容。项目分析是对该系统的总体概述。这次我们做的系统名称是网络选举投票系统。1.1 问题描述当前正处于信息时代的繁荣时期,消费者对网站和企业的要求逐渐由单纯对质量的要求转变为不仅要求质量同时要求用户的体验和意见反馈及处理的方式。在这样的情况下,一款专门应用与网络的网络选举投票系统就显的极为重要。网络投票选举系统主要用来进行公司的各种投票和公司内部网的热点话题的意见收集与反馈,通过这些数据使公司高层尽快掌握员工的思想动态和各种工作需求,同时大大提高各种用于活动的竞选效率。投票系统具有极大的灵活性,可以进行
8、单选或多选投票,自动记录登录者的 ID 防止恶意刷票的出现,管理员也可以在线设计不同的投票主题供用户进行投票。1)普通用户登录后即可对当前进行的投票项目进行投票。2)管理员登录后即可对当前正在进行的投票项目进行结束,删除,添加等操作。用户: 面向所有公司内部员工,拥有正确的工号号和登录密码。管理员:公司内部管理员,拥有正确的登录帐号和密码。1.2 技术分析Java 是一种动态加载和运行的语言。也就是说当应用程序持有一个类的地址(CLASSPATH)和名称(包名和类名)的情况下,可以在程序运行期间任何时候加载这个类,并创建和使用该类的对象。Servlet 就是基于这个机制与 Web 容器融合在一
9、起的。目前已知的所有支持 Java Servlet 的 Web 容器都是采用 Java 开发的。当 Web 容器接收到来自客户端的请求信息之后,会根据 URL 中的 Web 元件地址信息到 Servlet 队列中查找对应的 Servlet 对象,如果找到则直接使用,如果没有找到则加载对应的类,并创建对象。也就是说,Servlet 对象是在第一次被使用的时候才创建的,并且一旦创建就会被反复使用,不再创建新的对象。所有创建出的 Servlet 对象会在 Web 服务器停止运行的时候统一进行垃圾回收。为了解决客户端请求地址与 Java Servlet 之间对应关系问题,Web 容器需要一个用来2 /
10、 60 文档可自由编辑打印描述这种对应关系的文件,一般是 web.xml 文件。如果一个 Web 应用程序中存在很多个Servlet,那么 web.xml 会变得非常庞大。在 Servlet 3.0 规范推出之后,允许在 Servlet 代码中使用声明式语法来代替 web.xml 中的描述信息,这才让 web.xml 瘦身下来。所有的程序运行都需要有一个必要的运行环境。这个环境可以是软件,也可以是硬件,或者是软件和硬件的结合。比如说 Windows 操作系统需要运行在硬件基础上;Office软件需要运行在操作系统上。并且程序与运行环境之间会有一定的数据交换,比如操作系统会将运行指令传递给硬件,
11、硬件也会将指令运行结果传递给操作系统。Java Web 程序也需要一个运行环境才能够执行。这种运行 Java Web 程序的环境被称为 Web 容器,Java Web 程序与 Web 容器之间存在数据交互。目前主要存在两种类型的 Java Web 容器:一种是独立的 Java Web 容器,在这种容器里面只能运行 Web 程序,这种容器一般也叫做Web 服务器,如 Tomcat 等;另一种是与其他 Java EE 容器混合在一起的 Web 容器,Web容器负责运行 Web 程序,其他容器负责运行 EJB 等程序,如 WebLogic 等。当用户通过浏览器等 Web 客户端软件向服务器发出一个请
12、求之后,首先接收到这个请求的是 Web 容器,Web 容器会将请求信息封装到一个 HttpServletRequest 类型的 Java对象中,并将对象传递给 Java Web 程序。对于每个请求,Web 容器还会创建一个HttpServletResponse 类型对象,该对象的作用是用来保存需要返回到浏览器等客户端的内容。Java Web 程序可以从 HttpServletRequest 提取用户发出的请求信息,进行适当的处理之后,将处理结果放置 HttpServletResponse 中,然或由 Web 容器解析HttpServletResponse 对象内容,并将解析结果以浏览器能够识别
13、的 HTML 等格式返回给浏览器等客户端。在这个过程中,HttpServletRequest 和 HttpServletResponse 就如同两条渡船,负责在 Web 容器和 Java Web 程序之间传递信息。需要注意的是,这两个对象仅存在于 Web 容器和 Java Web 程序当中,与浏览器没有关系。3 / 60 文档可自由编辑打印1.3 工程进度计划表 1.1 工程进度计划表模块名称开发时间编码人员后台集成、调试登陆界面1宋晓梅管理员功能模块5杜春静用户功能界面5吴文文恢复项目模块5杜春静终止项目模块5杜春静添加项目模块5杜春静浏览项目模块5杜春静添加用户模块5宋晓梅删除用户模块5宋
14、晓梅添加参选者模块5吴文文删除参选者模块5吴文文用户投票模块5吴文文用户查看个人投票历史记录模块5吴文文重新登陆模块1宋晓梅所有人员调试时间为 1 天退出模块1宋晓梅备注:备注:组长:杜春静 组员:吴文文、宋晓梅、杜春静4 / 60 文档可自由编辑打印第 2 章 系统分析与设计网络投票选举系统主要用来进行公司的各种投票和公司内部网的热点话题的意见收集与反馈,通过这些数据使公司高层尽快掌握员工的思想动态和各种工作需求,同时大大提高各种用于活动的竞选效率。该系统立足课本,运用平时课本所学知识,来完成基本操作,并适当延伸知识点,培养自己动手的能力。并能更好的提高编程水平。2.1 系统分析需求分析及系
15、统设计说明:本系统是针对众多用户对项目参选人的投票,需要能够显示每个项目的参选人的票数,且对于每个用户同一个项目的参选人只能进行一次投票,并实现管理对项目的开放和关闭。针对以上需求,管理员应对参选者、用户和项目具有管理权限(增、删、改、查) 。用户具有对项目参选人投票及个人投票记录查询的权限。2.1.1 参与者本项目的参与者都有:管理员、用户、参选者2.1.2 用例及用例规约表 2.1 系统用例汇总表【A 管理员 B 用户】编号用例编号用例名称参与者备注1UC-01登录系统A、B2UC-02添加项目A3UC-03终止项目A4UC-04恢复项目A5UC-05添加参选者A6UC-06删除参选者A7
16、UC-07添加用户A8UC-08删除用户A9UC-09查看项目A10UC-10个人投票记录B11UC-11投票B12UC-12重新登录系统A、B13UC-12退出系统A、B5 / 60 文档可自由编辑打印表 2.2 管理员停止当前项目用例规约用例名称停止当前项目参与者管理员用户功能描述将此正在进行的投票项目停止并删除至历史记录前置条件管理员账户必须登录成功基本事件流点击“停止投票”按钮备选事件流E-1:如果点击后无反应,请刷新后重试。后置条件如果用例执行成功,系统发生相应改变。如果执行不成功,系统状态不变。业务规则必须有正确的管理员账户表 2.3 查询历史项目并恢复用例规约用例名称查询历史记录
17、并恢复参与者管理员用户功能描述用户可以查询以前的投票项目及结果并回复至正在进行继续进行选举前置条件用户成功登录管理员账户基本事件流(1)进入系统后,点击“历史项目”后,此用例开始;(2)系统调用数据库中标记为已结束的项目(3)系统从数据库中找出所要查询的信息,并显示出来;(4)点击“恢复项目”按钮(5)系统修改数据库中信息。(6)在正在进行页面显示此项目并可以继续进行投票。备选事件流E-1:点击恢复如无反应,请刷新后重试。后置条件如果用例执行成功,系统发生相应改变。如果执行不成功,系统状态不变。业务规则已经标记为结束的记录存在于数据库中表 2.4 新建投票项目用例规约用例名称新建投票项目参与者
18、管理员用户功能描述创建新的投票项目前置条件用户成功登录基本事件流填写参选人信息并提交备选事件流若填写信息不规范则无法提交成功、可重填后置条件如果执行成功,系统发生相应改变。如果执行不成功,系统状态不变。6 / 60 文档可自由编辑打印业务规则主键必须进行设置2.1.3 用例图个 个 个 个个 个 个 个个 个 个 个个 个 个 个个 个 个 个 个个 个 个 个 个个 个 个 个个 个 个 个个 个 个 个个 个 个 个 个 个 个 个个 个个 个 个 个个 个 个 个 个个 个 个 个个 个 个个 个个 个图 2.1 用例图 2.2 系统设计本系统前台采用 MVC 框架,采用 jsp+ser
19、vlet+JavaBean。本着易用、可靠、实用性原则,采用模块化设计,将系统分解为管理员和用户两个模块。管理员管理权限和角色、登录以及项目的相关操作,用户则是对参选者进行投票。7 / 60 文档可自由编辑打印2.2.1 顺序图 : 个 个 个 : frmMain : frmProjectManage : ProjectManage : SDProject1.个 个 个 个 个 个2.个 个 个 个 个 个3.个 个 个 个 个 个4.个 个 个 个 个 个5.个 个 个 个 个 个6.个 个 个 个7.个 个 个 个 个 个图 2.2 管理员查看顺序图 : 个 个 个 : frmMain :
20、 frmProjectManage : frmProjectDetail : ProjectManage : SDProject1.个 个 个 个 个 个 个 个 个2.个 个 个 个 个 个3.个 个 个 个 个 个 个 个 个 个 个 个4.个 个 个 个 个 个5.个 个 个 个6.个 个 个 个图 2.3 管理员新建项目顺序图8 / 60 文档可自由编辑打印 : 个 个 个 : frmMain : ProjectManage : SDProject1.个 个 个 个2.个 个 个 个 个 个 个 个 个 个 个 个 个 个3.个 个 个 个 个 个 个 个 个 个4.个 个 个 个 个
21、 个5.个 个 个 个6.个 个 个 个 个 个 个 个 个 个 个图 2.3 管理员停止项目顺序图 : 个 个 个 : frmMain : ProjectManage : SDProject1.个 个 个 个 个 个2.个 个 个 个 个 个3.个 个 个 个 个 个 个 个4.个 个 个 个 个 个5.个 个 个 个6.个 个 个 个 个 个 个 个 个 个 个 个 个 个 个图 2.4 管理员恢复项目顺序图9 / 60 文档可自由编辑打印2.2.2 类图 图 2.4Dao 包业务层类 图 2.5 voter 实体类 图 2.6 Manager 实体类 图 2.7 Redocer 实体类1
22、0 / 60 文档可自由编辑打印 图 2.8 Projecter 实体类 图 2.9 UserRecoder 实体类 图 2.10 User 实体类图 图 2.11 ProRecoder 实体类图 2.12 过滤器类图图 2.13 HistoryProject 控制类图图 2.14 HistoryUser 控制类图11 / 60 文档可自由编辑打印图 2.15 ListProject 控制类图图 2.16 ManagerHistoryProject 类图 图 2.17 ManagerListProject 类图图 2.18 ManagerListUser 类图图 2.19 ManagerLis
23、tVoter 类图图 2.20 ManagerMessage 类图12 / 60 文档可自由编辑打印图 2.21 Manager 控制类图图 2.22 ManagerView 类图图 2.23 UserView 类图图 2.24 Vote 控制类图图 2.25 数据库连接类图2.2.3 系统体系结构设计设计原则:模块化:本系统采用模块化的设计,如每个类中的具体方法,由一个方法块构成,可以方便的被系统中的其他类或者方法调用以实现预定的功能;抽象类: 本系统还采用许多抽象类和接口,以实现访问层与数据库之间的连接;信息隐藏:系统代码编写过程中隐藏了帐户密码,这样可以确保使用时的安全性。高内聚:系统中
24、的每个类都具有相应的独立性和功能特性,其内都有各自具体13 / 60 文档可自由编辑打印的方法来实现不同的功能;低耦合:各个类之间有一定的联系,但是依赖性不大,可以避免因为子程序之间的复杂关系产生更多的错误;简单化:本系统设计的界面清晰,简明,性能可靠,操作简单;实用性能:该系统可以满足校园内进行的各种投票选举操作。系统模块划分如图 2.1 所示:网络投票选举系统服务器客户端查询记录功能连接修稿数据库传送对象投票功能登录功能新建功能查询更能恢复功能传送对象图 2.26 功能结构图各子系统主要功能如下:1)登录: 用户输入正确的账号和密码,进入系统; 2)投票; 普通用户对正在进行的项目进行投票
25、;3)新建: 管理员用户发起一个新的投票项目;4)查询: 普通用户查询本人帐号以前的投票记录,管理员用户查询已经停止的投票项目;5)恢复: 管理员用户对已经结束的投票项目进行恢复至正在进行;总体设计说明:表示层:应用程序的用户界面部分。为了方便操作采用统一简明的界面与用户交互14 / 60 文档可自由编辑打印登陆后即可对账户进行各种操作。 ;数据层:有数据的存储及对数据的存取操作。以及数据源正确连接。服务器层:对数据库中的数据进行各种操作。此B/S体系结构中服务器中主要功能:(1)从客户端接收数据请求。(2)处理数据请求。(3)格式化结果并传送给客户机。(4)执行完整性检查。(5)提供并行访问
26、控制。2.3 数据库设计数据是企业运作过程中不可缺少的重要部分,建立自己的数据资料库是提高企业整体竞争力的关键因素。对于程序而言,安全完整地保存客户的信息是一种责任,因此,数据库设计就成了整个软件开发中重要的一个环节。一旦数据设计出现问题,软件就会出现问题,某些功能的使用就发挥不了最大作用。所以,为了更好地开发数据库,了解信息的来源以及信息的流向是头等大事。对于客户的整个操作流程,都要亲身参与,才能客观地掌握数据资料的真实性,为设计良好的数据库打下基础。本章主要介绍如何收集客户的数据资料,并将其转化为程序需要的数据资源。对于本系统,管理员拥有对参选者的voter表、用户的user表添加删除的功
27、能,对项目的project表恢复终止的功能,用户有对个人投票记录userrecoder表查询的功能,存储历史项目的prorecoder表,参选人项目报名的recoder表。15 / 60 文档可自由编辑打印2.3.1 E-R 图 管理员项目参选人员用户密码性别编号年龄姓名编号宣言姓名项目介绍可选人数编号项目名称姓名密码学号投票选择参加图 2.27 E-R 图2.3.2 关系模式本次课题经过最初小组讨论,确定 voter 类、recoder 类、manager 类、project 类、user 类、prorecoder 类、userrecoder 类七个基本类。系统中有三个实体:管理员、用户和参
28、选者。1.voter( voterId int(20),voterAge int(50),voterIndex int(8) ,voterName Varchar(255),voterSex Varchar(8) ,voterWord Varchar(255),voterProject Varchar(30) ,voterBool Boolean) voterId 为主键;2.recoder( recoderId int(20),chooseName Varchar(255) ,chooseProject Varchar(255)) recoderId 为主键;16 / 60 文档可自由编辑打
29、印3.manager(managerId int(20),managerName Varchar(255) ,managerPassword Varchar(50)) managerId 为主键;4.project(proId int(20),proName Varchar(255) ,proNumber int(20),proShow Varchar(255) ,proBool Boolean) proId 为主键;5.user(id int(20),password Varchar(50) ,name Varchar(255))id 为主键;6.prorecoder(recProId in
30、t(20),recProName Varchar(255)) recProId 为主键;7.userrecoder(rId int(20),rIndex int(8),rName Varchar(255) ,rProject Varchar(255) ,rChooseName Varchar(255) ,rBool Boolean) rId 为主键。2.3.3 表的设计表 2.1 参选人信息(voter)表名voter列名数据类型(精度范围)空/非空约束条件voterIdint(20)非空主键voterNameVarchar(255)非空无voterSexVarchar(8)非空无voterW
31、ordVarchar(255)非空无voterIndexint(8)非空无voterAgeint(50)非空无voterProjectVarchar(255)非空无voterBoolBoolean非空无voterPasswordVarchar(255)非空无表 2.2 管理员信息表(manager)表名manager列名数据类型(精度范围)空/非空约束条件managerIdint(20)非空主键managerPasswordVarchar(50)非空无managerNameVarchar(255)非空无表 2.3 普通用户信息表(user)表名user列名数据类型空/非空约束条件17 / 60
32、 文档可自由编辑打印idint(20)非空主键passwordVarchar(50)非空无nameVarchar(255)非空无表 2.4 项目信息表(project)表名project列名数据类型空/非空约束条件proIdint(20)非空主键proNameVarchar(255)非空无proNumberint(20)非空无proShowVarchar(255)非空无proBoolBoolean非空无表 2.5 用户记录信息表(userrecoder)表名userrecoder列名数据类型空/非空约束条件rIdint(20)非空主键rIndexint(8)非空无rProjectVarchar
33、(255)非空无rNameVarchar(255)非空无rChoosenameVarchar(255)非空无rBoolBoolean非空无表 2.6 项目参选人表(recoder)表名recoder列名数据类型(精度范围)空/非空约束条件recoderIdint(20)非空主键chooseNameVarchar(255)非空无chooseProjectVarchar(255)非空无表 2.7 历史项目表(prorecoder)表名prorecoder列名数据类型(精度范围)空/非空约束条件recProIdint(20)非空主键recProNameVarchar(255)非空无18 / 60 文
34、档可自由编辑打印第 3 章 实现与测试实现该系统的功能,并对实现的功能进行相应的测试工作,包括功能模块,活动图,界面和代码3.1 查看项目模块管理员登录系统后,选择某一项目,查看项目参选人信息。3.1.1 活动图图 3.1 管理员查看项目活动图19 / 60 文档可自由编辑打印3.1.2 界面图 3.2 管理员选择项目界面图 3.3 管理员查看项目界面3.1.3 代码分析此功能的主要代码是 ManagerListProjectServlet.java,主要思路是通过一个 servlet 判断是否显示所有信息,是否结束一个,是否开始一个。SuppressWarnings(serial)/关闭序列
35、化警告。public class ManagerListProjectServlet extends HttpServlet / 创建一个HttpServletResponse 类型对象,该对象的作用是用来保存需要返回到浏览器等客户端的内容 Dao dao = new Dao();20 / 60 文档可自由编辑打印User user = new User();Manager manager = new Manager();/因为doGet和doPost方法各有优缺点。GET调用在URL里显示正传送给SERVLET的数据,这在系统的安全方面可能带来一些问题,而Post方法可以隐藏传送给服务器的任
36、何数据。所以这里把方法写在doPost()方法中,在doGet()方法中调用执行,可以使提交的方法无论是post还是get方法都可以Public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response);/调用doPost()方法public void doPost(HttpServletRequest request, HttpServletResponse response) throws
37、ServletException, IOException String method = request.getParameter(method); String path = ManagerListProjectServlet?method=listProject;/默认页面是项目浏览,通过改变其值重定向到不同的JSP中 boolean redirect = false;/* 以从HttpServletRequest提取用户发出的请求信息,进行适当的处理,这里使用if.else.语句进行判断选择*/ if(method.equals(listProject) List list = dao
38、.findTrueProject(); request.setCharacterEncoding(gb2312);/汉字转码 request.setAttribute(list,list);/对list进行赋值 path = managerListProject.jsp; else if(method.equals(addProject) Project project = new Project(); project.setProId(Integer.parseInt(request.getParameter(id);project.setProNumber(Integer.parseInt
39、(request.getParameter(number);project.setProName(request.getParameter(name); project.setProShow(request.getParameter(show); project.setProBool(Boolean.parseBoolean(request.getParameter(bool); dao.addProject(project); redirect = true;/浏览器显示目的JSP的参数 else if(method.equals(stopProject) String name = req
40、uest.getParameter(proName);21 / 60 文档可自由编辑打印 dao.updateFalseProject(dao.findProjectByName(name); redirect = true; else if(method.equals(startProject) String name = request.getParameter(proName); dao.updateTrueProject(dao.findProjectByName(name); redirect = true; if(redirect) response.sendRedirect(pa
41、th); else/* 当一个客户端的请求到这个页面时,不做处理或者不处理完,将请求转给另一个页面处理,然后再响应客户端 */request.getRequestDispatcher(path).forward(request,response); 3.1.4 测试用例本测试用例是测试管理员查看项目的界面,测试人:杜春静,测试环境:Windows 7 如表 3.1表 3.1 管理员查看项目界面测试用例项目名称网络选举投票系统测试阶段系统测试测试类型功能+界面测试人杜春静测试日期2013-3-14测试项管理员查看项目测试环境Windows 7界面要求:无前提条件:以管理员身份登录到后台管理系统操
42、作步骤:点击项目管理-查看项目输入数据动作预期结果实际结果点击“查看项目”按钮页面跳转到查看项目页面,页面显示项目参选人信息同预期结果一样3.2 新建项目模块管理员点击新建项目,页面转到新建项目,填写项目的有关数据。点击提交按钮后,可以对项目进行添加。然后转到管理员项目管理界面,刷新,个人所要添加的页面,所添加的项目显示在项目浏览中。22 / 60 文档可自由编辑打印3.2.1 活动图图 3.4 管理员新建项目活动图3.2.2 界面图 3.5 管理员新建项目页面23 / 60 文档可自由编辑打印图 3.6 项目浏览界面3.2.3 代码分析新建项目主要用到以下代码ManagerListProje
43、ctServlet.javaif(method.equals(addProject)/如果请求参数为“addProject”,那么就new Project(),然后通过request得到相应的参数值 Project project = new Project(); project.setProId(Integer.parseInt(request.getParameter(id);project.setProNumber(Integer.parseInt(request.getParameter(number);project.setProName(request.getParameter(n
44、ame); project.setProShow(request.getParameter(show); project.setProBool(Boolean.parseBoolean(request.getParameter(bool);dao.addProject(project);/调用dao类中的addProject把该项目添加到数据库中 redirect = true;/浏览器显示目的JSP的参数 3.2.4 测试用例本测试用例是测试管理员新建选举项目的界面,测试人:杜春静,测试环境:Windows 7 如表3.2表 3.2 管理员新建选举项目项目名称网络选举投票系统测试阶段系统测试
45、测试类型功能+界面测试人杜春静测试日期2013-3-14测试项管理员新建项目测试环境Windows 7界面要求:无24 / 60 文档可自由编辑打印前提条件:以管理员身份登录到后台管理系统,并成功进入到项目浏览页面操作步骤:1、点击查看项目,页面跳转到新建项目界面 2、管理员添加项目有关信息,点击提交 3、刷新项目浏览页面,项目显示在项目浏览中输入数据动作预期结果实际结果点击查看项目页面跳转到新建项目界面同预期结果一样输入正常数据项目号:11可选人数:34项目名称:无闻闻项目简介:默默无闻小人物提示:添加成功,点击“确定” 。刷新项目浏览页面,项目显示在项目浏览中没有提示信息。新建的项目也没有
46、显示在项目浏览中输入数据项目号、可选人数为 int 型,项目名称、项目简介为字符串项目号:11可选人数:34项目名称:wuwuwu项目简介:sdfsdfsdfsdf提示:添加成功,点击“确定” 。刷新项目浏览页面,项目显示在项目浏览中没有提示信息。但新建的项目成功显示在项目浏览中输入数据全为字符串项目号:df可选人数:sdf项目名称:wuwuwu项目简介:sdfsdfsdfsdf提示:添加失败,项目号、可选人数应为数字型程序报异常3.3 停止项目模块管理员在主界面点击停止项目,项目就会从项目浏览中转入历史项目。在历史项目浏览中,可以对历史项目进行恢复。 3.3.1 活动图图 3.7 管理员停止
47、项目活动图25 / 60 文档可自由编辑打印3.3.2 界面图 3.8 管理员停止项目页面图 3.9 历史项目浏览界面3.3.3 代码分析停止项目的主要代码:ManagerListProjectServlet.javaif(method.equals(stopProject)/*如果请求参数为“stopProject”,那么就根据 request得到的 proName 检索到项目,调用 dao 的 updateFalseProject,对数据库进行更新*/ String name = request.getParameter(proName);26 / 60 文档可自由编辑打印 dao.upd
48、ateFalseProject(dao.findProjectByName(name); redirect = true;3.3.4 测试用例本测试用例是测试管理停止项目的界面,测试人:杜春静,测试环境:Windows 7 如表 3.3表 3.3 管理员停止项目项目名称网络选举投票系统测试阶段系统测试测试类型功能+界面测试人杜春静测试日期2013-3-14测试项管理员停止项目测试环境Windows 7界面要求:无前提条件:以管理员身份登录到后台管理系统操作步骤:点击项目管理-停止项目输入数据动作预期结果实际结果点击“停止项目”按钮,该项目从项目浏览中删除同预期结果一样点击历史项目可以看到停止的
49、项目进入到历史项目中同预期结果一样3.4 恢复项目模块管理员在历史项目浏览中,可以对历史项目进行恢复。 3.4.1 活动图图 3.10 用户查看个人投票记录活动图27 / 60 文档可自由编辑打印3.4.2 界面图 3.11 历史项目浏览界面图 3.12 历史项目恢复页面3.4.3 代码分析恢复项目的主要代码:ManagerListProjectServlet.javaif(method.equals(startProject)/*如果请求参数为“startProject”,那么就根据request得到的proName调用dao中的findProjectByName检索到项目,调用dao的up
50、dateTrueProject,对数据库进行更新*/ String name = request.getParameter(proName); dao.updateTrueProject(dao.findProjectByName(name);28 / 60 文档可自由编辑打印 redirect = true; 3.4.4 测试用例本测试用例是测试管理恢复项目的界面,测试人:杜春静,测试环境:Windows 7 如表 3.4表 3.4 管理员恢复项目测试用例项目名称网络选举投票系统测试阶段系统测试测试类型功能+界面测试人杜春静测试日期2013-3-14测试项管理员查看项目测试环境Windows
51、 7界面要求:无前提条件:以管理员身份登录到后台管理系统操作步骤:点击项目管理-历史项目输入数据动作预期结果实际结果点击“恢复项目”按钮该项目从历史项目中删除同预期结果一样返回到项目浏览主界面该项目恢复到可选项目浏览中同预期结果一样29 / 60 文档可自由编辑打印第 4 章 结束语转眼之间,三周的实践课题实践已经过去。这已经是第四次课题实践了。每次做课题都能学到很多知识。这次课题老师教我们用 struts2 框架,由于时间太短没能真正的融会贯通。没有 servlet 用的熟练,于是我们就用了 JavaBean +Servlet+jsp。接下来我们就按照上学期学的软件工程的方法开始我们的课题。
52、对整个工程进行分析。关于课题的需求我们上网收集资料,加上每个人对网络选举的不同看法,综合出最合适的功能。在小组成员的讨论下,我们决定用熟悉的 servlet 编写。然后对程序的大致框架进行了仔细的设计,仔细透彻的规划设计了程序的主要逻辑功能,以及大概的分析了一下如何实现这些功能,并且在一开始就对组员进行了明确的任务模块分配,使得我们的程序在以后的开发中能够实现并发的设计,彼此之间的模块开发进步互不影响。这样的设计模式节约了我们很多的开发时间,所以,本次课题的合作开发模式也是我们的一大进步。以前没有学习软件工程,不知道按着流程会带来那么多方便。于是我们分工以后就开始了课题的编写。我主要负责的是项
53、目管理的模块,里面包括查看项目、停止项目、恢复项目、新建项目等。在这次的项目中,依照上学期老师讲的三层架构的思想,分别建立了业务层 Dao 包、控制层 Servlet 包、实体包 entity、数据库包 Util 包、过滤器 filter。在这次报告中,遇到了编码统一问题,由于在自己的电脑中我安装 My SQL 时,没有改变编码,再后来的编程中,又重新上网搜资料问老师同学,终于解决了这个问题。在开始的讨论中我们想到用学号来防止刷票问题,也有人说用电脑的 Id 来防止。经过我们的磨合,我们决定用电脑的 ID 来防止刷票。在这次课题中我担任组长,发现组长的任务很重,需要很强的领导力,在分配任务时,
54、也要根据每个人的能力和特长,来分配不同的任务,充分体现团队的合作的重要性。在每次的课题实践中都能学到不同的东西,我感觉的我知识的增长,经验的丰富。这多谢了学校给了我们这样一个学习的机会,这样的机会让我们学到更多,学到更有用。同时也谢谢我的老师,谢谢周围的同学,更感谢我的队友。谢谢!30 / 60 文档可自由编辑打印参考文献01 刘京华 JavaWeb 整合开发王者归来M:清华大学出版社.02 张帆 Java 范例开发大全M:清华大学出版社.03 李钟尉、陈丹丹 Java 开发实战 1200 例 M:清华大学出版社. 2006.604 千丽霞 Java 项目开发案例全程实录M:北京.清华大学出版
55、社. 2004.505 孙卫琴 Tomcat 与 Java Web 开发技术详解M: 电子工业出版社. 2005.231 / 60 文档可自由编辑打印指导教师评语 成绩:指导教师签名: 年 月 日 32 / 60 文档可自由编辑打印附录 A: 主要源程序ManagerListProjectServlet.javapackage servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;im
56、port javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.Dao;import entity.Manager;import entity.Project;import er;SuppressWarnings(serial)public class ManagerListProjectServlet extends HttpServlet Dao dao = new Dao();User user = new User();Manager manager
57、= new Manager();Public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response); public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String method = request.getParame
58、ter(method); String path = ManagerListProjectServlet?method=listProject; boolean redirect = false; if(method.equals(listProject) List list = dao.findTrueProject(); request.setCharacterEncoding(gb2312); request.setAttribute(list,list); path = managerListProject.jsp; else if(method.equals(addProject)
59、Project project = new Project(); project.setProId(Integer.parseInt(request.getParameter(id);project.setProNumber(Integer.parseInt(request.getParameter(number);project.setProName(request.getParameter(name); project.setProShow(request.getParameter(show); project.setProBool(Boolean.parseBoolean(request
60、.getParameter(bool); dao.addProject(project); redirect = true;33 / 60 文档可自由编辑打印 else if(method.equals(stopProject) String name = request.getParameter(proName); dao.updateFalseProject(dao.findProjectByName(name); redirect = true; else if(method.equals(startProject) String name = request.getParameter(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地面水磨石施工方案
- 2025年光伏电站电气绝缘检测运维工程师上岗答案
- 重大活动突发事件应急联动处置工作预案
- 2025年人教版小学数学小升初试卷(含答案解析)
- 英语(五年级上册)U2-L1课件 You Should Go to Bed Early
- 安防行业技防科技防员设备故障处理手册
- 产品注册与质量管理指南
- 危急重症诊疗中心建设方案
- 店铺库存预警台账搭建方案
- 2025-2026年健康促进策略知识竞赛试题
- 新版西师版五年级上册数学全册教案(完整版)教学设计含教学反思
- 规培医生心理健康维护体系
- 严重心律失常急救护理
- 码头项目事故案例
- 机械制造业的生产调度措施
- 小学生消毒劳动实践课件
- 单位驾驶员劳务派遣投标方案投标文件(技术方案)
- DL∕T 459-2017 电力用直流电源设备
- MOOC 研究生学术规范与学术诚信-南京大学 中国大学慕课答案
- 飞机结构强度规范课件
- 民航安检理论与实务PPT完整全套教学课件
评论
0/150
提交评论