admin 管理员组

文章数量: 887021


2024年2月5日发(作者:最强大脑数字推盘游戏)

软件开发新技术

说明书

题目: 在线投票系统

院 系: 计算机科学与工程学院

专业班级: 计科14-3班

学 号: **********

学生姓名: ***

指导教师: ***

2017 年 11 月 30 日

I

安徽理工大学课程设计(论文)任务书

计算机科学与工程 院 数字媒体技术 教研室

学 号 2014302712 学生姓名 朱光明 专业(班级) 计科14-3班

设计题目

网上投票系统

开发语言:java

后台数据库:mysql5.7

应用开发环境:myeclipse

开发的系统要数据库设计要合理,有统一的web界面,能够实现设计的全部功能,能够运行、演示。能够体现一个软件的基本功能。

完成相关需求分析,JSP页面设计,数据库存储,撰写设计报告

6.9-6.10 需求分析阶段,确定实现的功能模块;

6.11-6.14 系统设计阶段,确定设计方案并设计出原型;

6.15-6.20 数据库设计阶段,设计数据库;

6.21-6.28 详细设计与实现阶段,设计算法并编程调试;

6.29-7.1 设计报告阶段,撰写设计报告;

7.2-7.3 提交验收阶段,演示系统、验收。

[1] 陈强.精通Java开发技术 . 清华大学出版社.2014

[2] 黄俊.Java程序设计与应用开发.第二版.机械工业出版社.2014

[3] 王爱国.Java面向对象程序设计. 机械工业出版社.2014

[4] 陈云婷.21天学通Java. 电子工业出版社.2014

教研室主任签字 指导教师签字

2017年 11 月 30 日

II

指导教师评语:

成绩:

指导教师:

年 月 日

III

摘要

相较于传统投票方式,在线投票是任何一次商演(时间短、影响范围小)、电视(投入大,效果不明显)或者户外广告(不能快速吸引消费者眼球)在投入产出效率上都难以企及的。在线投票能够迅速提升活动商家的广告价值,降低商家广告成本,提高知名度以及美誉度。网络投票的主要目的就是人群放大:通过网络投票,可以吸引大量的选手及相关亲友的关注,通过以往的数据统计,一名选手参与投票,会带动60人参与。这样可以最大程度的向客户展现实力,扩大社会影响力。

系统分为前台和后台两部分,前台主要是对普通用户开放。普通用户将实现注册、投票、重选等操作;后台主要作用是管理员实现登录、投票管理、用户管理等操作。依据前台和后台的不同权限需求,在线投票系统主要分为普通用户和管理员两个功能模块。

普通用户模块将实现用户注册、用户登录、用户投票以及投票重选和查看投票结果等功能。 管理员模块将实现管理员登录、发布新投票、撤消投票、查看所有投票、编辑和删除新投票以及用户管理等功能。

关键词:网上投票、JSP、MYSQL

IV

目录

1系统分析 ............................................................................................................ 5

1.1 系统简介 .......................................................................................................................................... 5

1.2 系统功能 .......................................................................................................................................... 5

2系统设计 ............................................................................................................ 6

2.1 开发工具简介 .................................................................................................................................. 6

2.2 总体功能模块设计 .......................................................................................................................... 7

3系统实现 .......................................................................................................... 10

3.1 数据库实现 .................................................................................................................................... 10

3.2 程序模块实现 ................................................................................................................................ 11

4总结 .................................................................................................................. 16

4.1 设计体会 ........................................................................................................................................ 16

4.2 系统改进 ........................................................................................................................................ 16

参考文献 ............................................................................................................. 18

V

1系统分析

1.1 系统简介

随着科技的飞速发展,计算机已经广泛的应用于各个领域之中,而且日趋普及。在计算机应用中很重要的一部分就是编程语言,编程语言的出现打开了计算机应用的新篇章。在这些编程语言中JSP占有着重要的地位,JSP拥有Java编程语言“一次编写,各处运行”的特点[1]。在当今的网络应用中JSP无处不在,在线投票系统就是JSP功能强大的一个最好的例证。

在线投票系统有很多传统投票方式不可比拟的优势。首先,它可以在很短的时间内,通过互联网将不同时间不同地域的用户投票组合到一起,并进行结果反馈,这是传统的投票方法完全做不到的;其次,在线投票系统的效率要比以往的传统投票方法高很多,在这个寸时如寸金的年代,在线投票系统不但省去了投票与计票环节的人力成本,还可以节省很多时间以用作处理其他更重要的事情;综上所述,在线投票系统有着快捷、经济、方便、省时省力等诸多优点都注定它将是未来投票方式的主流。在线投票系统可以用来统计网站用户对某个主题或热门话题的意见。网站管理员也可以通过投票的方式了解用户的看法,或者通过在线投票系统这个媒介去了解用户的思想、意见,并通在线投票系统的结果反馈改进自己的网站设计。政府决策者也可以通过在线投票系统来调查民众对某一项新政策的意见,进而统计数据做出更恰当的决策。在线投票系统是当今各大网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议,他可以设计这样一个投票主题:你认为该网站如何?(A.很好B.一般C.不好)然后提供给用户进行投票。

1.2 系统功能

因在线投票系统有着经济、快捷等诸多优点,所以在实际项目实践中如何很好的实现这些优点便成了整个开发过程中的重中之重。在整个项目实践中,首先对课题的实际要求与需求分析进行详细的考究,查阅大量的相关资料,并且借鉴一些其他投票系统的项目经验,最后提出设计方案。系统分为前台和后台两部分,前台主要是对普通用户开放。普通用户将实现注册、投票、重选等操作;后台主要作用是管理员实现登录、投票管理、用户管理等操作。依据前台和后台的不同权限需求,在线投票系统主要分为普通用户和管理员两个功能模块。

普通用户模块将实现用户注册、用户登录、用户投票以及投票重选和查看投票结果等功能。管理员模块将实现管理员登录、发布新投票、撤消投票、查看所有投票、编辑和删除新投票以及用户管理等功能。

5

2系统设计

2.1 开发工具简介

在在线投票系统的设计发开过程中主要用了JSP技术,其中用到的工具有:JDK1.4、MyEclipse6.0、MySQL、Tomcat等。

简介

JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段和JSP,从而形成JSP文件[2]。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。在线投票系统用JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使本系统基于Web的应用程序的开发变得迅速和容易。

(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是现而易见的。

(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

6

2.2 总体功能模块设计

在线投票系统总体功能模块包括普通用户登录模块和管理员登录模块,其具体描述如下:

1.普通用户模块

(1)用户注册:普通投票用户须通过账号注册方可以进行投票;

(3)重选:用户可以进行重新投票;

(2)登录:注册成功后,可输入用户名和密码登录系统;

从以上介绍中我们能看到,普通用户模块包含着3个不同的功能,其各部分功能关系如图1所示。

在线投票系统

普通用户

用户注册

提交投票

重选投票

图一 普通用户模块图

2.管理员模块

(1)发布新问题;

(2)用户管理,管理员可以增加和删除普通用户(超级用户不能删除),或者更改普通用户密码;

(3)查看所有投票;

从功能描述的内容中可以看到,管理员模块可以实现发布新投票、重新编辑投票、查看所有投票、删除投票、公布结果和撤销投票等多个完整的功能,并且不同功能之间也存在着一些直接或间接联系,如图2所示。

7

在线投票系统

管理员

查看所有投票

撤销投票

发布新投票

用户管理

重新编辑

永久删除

公布结果

删除用户

添加用户

更改密码

图二 管理员模块图

在线投票系统的流程图包含了该系统的投票原理与主要制作方法。从流程图上我们可以看到在线投票系统需要经过登录、显示投票表单、取得投票参数、累加投票数、将投票写入数据库和显示投票结果等步骤,其流程图,如图3所示。

8

开始

登陆

显示投票表单

取得投票参数

是否取得参数

累加投票数

将结果写入数据库

显示投票结果

结束

图三 投票流程图

9

3系统实现

3.1 数据库实现

数据库设计是软件开发中的重要环节,是对系统数据全面的、详细的分析。数据库设计的好坏直接关系到整个项目设计的效率的高低,关系到设计的稳定性。根据在线投票系统不同模块之间的联系和前期的设计目的与需求,设计了三个不同的数据表,它们分别是用户表、投票选项表和投票主题表。

1.用户表(users)

用户表包括所有用户的各种信息,如用户名、密码等详细数据并规定了每个字段的类型,如表1所示。

字段名

username

password

数据类型

Varcher

Varcher

表1 用户表(users)

长度 是否主键

255

255

描述

用户名

密码

2.管理员表(admins)

管理员表包括管理员的各种信息,如管理员名称、密码等详细数据并规定了每个字段的类型,如表2所示。

字段名

admname

admpwd

表2 管理员表(admins)

数据类型 长度

Varcher 255

Varcher 255

是否主键

描述

管理员名称

密码

3.投票选项表(items)

投票选项表包括每个投票选项的基本信息,如投票编码、问题ID、投票选项和投票选项各选项所得票数等信息,同时此表还规定了字段类型和长度,具体的数据说明如表3所示。

字段名

itemID

QuestionID

Item

ItemCount

表3 投票选项表(items)

数据类型 长度 是否主键

int 255 是

int 255 否

varcher 500 否

int 20 否

描述

投票编码

问题ID

投票选项

票数

4.投票主题表(questions)

投票主题表包括投票主题、问题ID、是否对外投票、投票日期以及是否对外公布投票结果等信息,详细数据类型和字段长度如表4所示。

10

字段名

QuestionID

Question

IsVisable

Date

IsOpen

表4 投票主题表(questions)

数据类型 长度 是否主键

Int 255 是

varcher 500 否

int 20 否

varcher 100 否

int 20 否

描述

问题ID

投票主题

是否对外投票

日期值

是否对外公布结果

3.2 程序模块实现

本系统分为普通用户和管理员两部分模块。普通用户模块具有注册、登录、投票等功能;管理员模块则具有登录、发布新投票、编辑投票、撤消投票、删除投票、用户管理与公布结果等功能。

3.2.1普通用户

1.注册模块

普通用户登录在线投票系统需要先进行账号注册,注册成功后方可以其他操作,注册模块的界面如图4所示。

图4 用户注册

当用户输入合法用户名和密码后就可以完成用户注册,提示页面如图5所示。

11

图5 注册成功提示

2.登录模块

普通用户在完成注册后方可以登录在线投票系统,注册完毕后单击“请重新登录”便可以重新返回登录页面,如图6所示。

图6 用户登录

3.投票模块

当所有的选项都投票完毕后,用户单击“投票入口”按钮,便可进入投票页面,如图7所示。

图7 投票页面

12

4.投票结束

当所有的选项都投票完毕后,用户单击“提交”按钮,便完成了投票的流程,如果用户想要查看这些问题的投票结果,投票完毕后点击“查看投票结果”便可以查看当前投票结了,如图8所示。

图8 查看结果

3.2.2 管理员

1.用户管理模块

管理员登录在线投票系统后可以对普通用户的账号及密码进行相关的管理操作,管理员可以直接删除用户,也可以更改用户名密码,相关页面如图9所示。

图9 用户管理

2.投票发布模块

管理员登录在线投票系统后可以根据需要发布相关投票,并可以对相关投票进行删除、发布、撤消、隐藏等操作,相关页面如图10所示。

13

图10 投票发布

3.重新编辑模块

当有重新编辑某一投票选项的需要时,管理员可以单击“编辑”对相关投票进行重新编辑,编辑完毕后单击“发布按钮”编辑完成,相关页面如图11所示。

图11 重新编辑

4.公布结果模块

管理员发布的投票可以根据实际需要公布和投票结果,当投票过期或者此投票已经没有公布结果的需要时,管理员可以根据需要单击“公布结果”或“隐藏结果”。

5.删除模块

管理员发布新投票后,如果有删除此投票的需要可以直接单击“删除”,这样此投票就被删除了。

6.撤消/发布模块

管理员需要重新编辑投票主题时,可以先将该主题撤消,暂停被投票。新发布或是刚被修改的投票主题需要确认“发布”才能被发布。相关页面如图12所示。

14

图12 管理员模块

7.查看所有投票模块

当管理员完成新投票发布或者编辑操作后,如果有需要也可以查看自己发布的所有投票,点击“查看所有投票”就可以看到管理员发布的所有投票了。如图13所示。

图13 投票情况

15

4总结

4.1 设计体会

经过这段时间的辅导讨论,我们组的投票网站基本开发完毕。其功能基本符合企业需求。对于数据的输入、修改、查询等问题通过程序进行了有效的解决。并且能对数据库进行权限管理。

通过此次课程设计,使我更加扎实的掌握了有关java方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。 过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了servlet的识别和测试;熟悉了前后端数据交互的方法;了解了前后端处理字符串的常用方法;以及如何提高代码执行的效率等等,掌握了查询文献的方法和技术,通过查询资料,也了解了mvc原理。 我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都16

有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。 实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果

4.2 系统改进

由于设计时间较短和本人知识有限,无法做到尽善尽美,所以该网站还有许多不尽人意的地方。网站主要存在以下一些问题:(1)系统在安全性方面的一些问题;(2)系统的某些功能还不能够很好的实现,同时本系统还有某些方面没有考虑到;(3)系统在跨平台运行方面有一些不足。

这些都有待进一步的改善。因此,以后还应加强这几个方面的工作和学习:对网站的安全管理方面的学习和加强;多翻阅一些相关资料,对一些常用的应用软件还要多用多熟悉;加强对关于网络功能数据库知识的学习。

17

参考文献

[1] 陈强.精通Java开发技术 . 清华大学出版社.2014

[2] 黄俊.Java程序设计与应用开发.第二版.机械工业出版社.2014

[3] 王爱国.Java面向对象程序设计. 机械工业出版社.2014

[4] 陈云婷.21天学通Java. 电子工业出版社.2014

[5] 张剑飞.Java EE开发技术. 哈尔滨工业大学出版社.2013

[6] 向昌成.Java程序设计项目化教程. 清华大学大学出版社.2013

[7] Metsker S 设计模式.第二版.电子工业出版社.2012

[8] Metsker S 框架设计.第一版.电子工业出版社.2012

[9] 王映龙.Java EE实用教程. 清华大学出版社.2011

[10] structures using Java. Jones&Bartlett Learning.2013

18

安徽理工大学课程设计(论文)成绩评定表

19


本文标签: 投票 设计 用户 管理员 系统