目 录
摘 要 ..................................................................................................... III Abstract ......................................................................................... IV
1.1课题的背景 .......................................................................... 1 1.2课题的重要性 ....................................................................... 1 1.3在线投票系统的开发任务 ........................................................ 1
第二章 文献综述 ........................................................................... 3
2.1 三层架构 ............................................................................. 3 2.2 Asp.net ................................................................................ 4 2.3 .NET Framework技术概览 ....................................................... 4 2.4 SQL Server简介 .................................................................... 4 2.5 Java Script简介 ..................................................................... 5 2.6 AJAX简介 ........................................................................... 6
第三章 系统分析 ........................................................................... 7
3.1 需求概述 ............................................................................. 7 3.2 系统功能分析 ...................................................................... 8 3.2.1 系统后台功能 ............................................................... 8 3.2.2 系统前台功能 ............................................................... 9 3.2.3 防止恶意刷票 ............................................................... 9 3.2.4 防脚本注入 ................................................................. 10 3.3 静态建模 ............................................................................ 10
第四章 系统设计 .......................................................................... 12
4.1 系统设计 ............................................................................ 12 4.1.1 系统总体结构设计 ........................................................ 12 4.1.2 系统详细设计 .............................................................. 14 4.2 数据库设计......................................................................... 17
第五章 系统实现 .......................................................................... 20
5.1 管理员后台登录 .................................................................. 21 5.2 详细模块实现 ..................................................................... 21 5.3 开发过程中遇到的问题和解决办法 .......................................... 21
I
苏州大学本科生毕业设计(论文)
第六章 总结与展望 ....................................................................... 26
6.1 课题的总结......................................................................... 27 6.2 课题展望 ............................................................................ 27
参考文献 ....................................................................................... 28 致 谢 ....................................................................................... 29
II
苏州大学本科生毕业设计(论文)
摘 要
在线投票可以较为公平、公正的评选出大众眼中优秀的人才,投票结果可以作为最后评分的参考。
本系统开发环境是Visual Studio 2008,运用了ASP.NET技术和SQL Server 2005数据库。同时运用了JAVASCRIPT和JQUERY来实现一些页面特效。
本系统做到了投票、评论等基本功能实现,以及评论信息过滤、后台登录、防止恶意刷票、产生数据报表、安全验证等功能,满足了需求的定义,具有一定的应用价值。
关键字:投票,ASP.NET,B/S模式,数据报表
III
苏州大学本科生毕业设计(论文)
Abstract
Online voting is a relatively fair way to choose elites through public appraisal, and therefore the results can be a reference point to the final judgment.
This system was developed under the environment of Visual Studio 2008, ASP.NET and SQL Server 2005 are applied as well. And we also used JAVASCRIPT and JQUERY to achieve some special effect on the web page.
This system fulfills the clients’ requirements well and is of much practical use. It can perform the basic functions like voting, commenting, etc., and this system can also perform some extended functions, such as information filtering, land from the background, forbidding auto vote, generating the data report, and safety verification. Keywords: Vote, ASP.NET, B/S model, Data Report
IV
苏州大学本科生毕业设计(论文)
第一章 概 述
1.1 课题的背景
长三角地区要举行一个“十佳HR经理人”在线投票活动,为此需要完成一个在线投票系统。我在单位实习期间接到了这个开发任务。为此,需要开发一个适合于这次投票系统的Web应用程序。
在线投票可以较为公平、公正的评选出群众眼中优秀的人才,投票结果可以作为最后评分的参考。目前,网上的一些在线投票系统或多或少也存在一些缺陷:
1) 对恶意刷票、脚本注入做的不够完善,系统没有对投票次数或者投票IP
的限定,可能导致刷票,破坏了在线投票的公平性原则。
2) 对于投票评论不能实现脏字过滤。因为在线投票系统是一个公开的平台,
如果不能实现脏字过滤,可能会出现不雅的言语。
3) 不具备报表统计功能,不能对投票最后结果做一个有效的统计和展示。 4) 用户体验度较差,投票需要注册用户,比较繁琐。
在这种情况下,就需要开发一个功能较为全面、用户体验度较高、符合这次活动规则的在线人事选拔投票系统。本课题的选择和实现正是基于这样的情况,有其重要的现实意义。
1.2课题的重要性
随着计算机网络的普及,计算机Web应用程序能够高效的完成一些平日的工作,基于B/S架构的应用程序也越来越成熟,在线投票的系统可以减少传统投票的成本,并且能够实时的展示投票结果,投票结束时,能够快速有效的处理数据。所以,为了这次“十佳HR经理人”投票活动能够顺利高质量的完成,设计实现这个在线人事选拔投票系统非常有必要。
1.3 在线投票系统的开发任务
本课题主要研究的是在线投票系统,并具有后台管理功能。本系统以ASP.NET和SQL SERVER为基础进行开发,并使用JAVASCRIPT和JQUERY脚本语言增加用户体验度。本系统除了具备基本的投票功能,还需要有防止恶意刷票、脏字过滤、防止脚本注入、产生报表等功能。
本论文主要讨论了在线人事投票系统的设计与实现。本论文分为六章:
1
苏州大学本科生毕业设计(论文)
第一章介绍了在线投票系统的开发背景、开发重要性及开发目标; 第二章介绍了与本课题相关的技术背景; 第三章介绍了本课题的系统分析; 第四章介绍了本课题的系统设计; 第五章介绍了本课题的系统实现; 第六章总结。
2
苏州大学本科生毕业设计(论文)
第二章 文献综述
本系统是一个基于网络应用的投票系统,整个编写过程主要运用了ASP.NET技术和SQL SERVER数据库的应用,编写环境是Microsoft Visual Studio 2008,并运用C#语言来完成主要的后台方法的才做,包括与数据库的链接、绑定,数据的添加、修改、查询等。本系统运用了三层架构开发模式来编写程序,并且应用了JAVASCRIPT与JQUERY脚本语言来实现一些特效和增加用户体验度。下面主要介绍了三层架构、ASP.NET和SQL SERVER 2005。
2.1 三层架构
在开发WEB应用程序是,目前比较流行的系统架构是三层架构设计,通常意义上的三层架构就是将整个业务应用划分为:界面表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的是为了“高内聚,低耦合”的思想。
图2-1 三层架构的分层式结构
1) 界面表示层(UI):就是展现给用户的界面,即用户在使用一个系统的时候
他的所见所得。
2) 业务逻辑层(BLL):是对数据层的操作,对数据业务逻辑处理。
3) 数据访问层(DAL):直接操作数据库,对数据的增加、删除、修改、更新、
查找等操作。
3
苏州大学本科生毕业设计(论文)
2.2 Asp.net
Asp.net的前身为Asp,它解决了Asp的众多缺点。目前最新版本的Asp.net 4.0以及.NET Framework 4.0 已经在VS2010平台内应用。
Asp.net具有众多的优点:
1) 世界级的工具支持:Asp.net架构是可以用Microsoft(R)公司最新的产品
Visual Studio.net开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.net强大化软件支持的小部分。
2) 强大的适应性:因为Asp.net是基于通用语言的编译运行的程序,所以它的
强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到Asp.net的Web应用中。Asp.net同时也是语言独立化的,现在已经支持的有C#(C++和java的结合体)、VB、Jscript、C++、F++。你可以选择一种最适合你的语言来编写程序,或者把你的程序用多种语言来写。
2.3 .NET Framework技术概览
.NET Framework可以分解为多个组件。第一个组件式CLR,它作为虚拟执行环境——有时也成为虚拟机——负责执行托管代码。托管代码是指采用某种高级语言(如C#、Visual Basic、C++/CLI和Iron Python之类的语言)编写的任何代码,将此代码编译成CLR的二进制格式即程序集,并且表示它的使用中间语言(IL)的可执行部分。程序集包含符合CLR的类型系统规范的自描述程序元数据和指令。然后CLR取用这种元数据和IL,并将其编译为可执行代码。这种代码包含到CLR服务和Win32的挂钩,并最终作为在它上面运行代码的机器的本地指令集。这种行动借助于一种称为即时(just-in-time, JIT)编译的过程来完成。编译后的结果最终可以运行。
2.4 SQL Server简介
SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、 Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。SQL,即结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟
4
苏州大学本科生毕业设计(论文)
通。在线人事选拔投票系统对数据库操作的SQL命令主要包括Select,Insert,Update,Delete等,这些标准的SQL命令可以被用来完成几乎所有的数据库操作。
SQL Server 2005数据平台包括以下工具。
1) 关系型数据库:安全、可靠、可伸缩及高可用的关系型数据库引擎,提升了
性能且支持结构化和非结构化(XML)数据。
2) 复制服务:数据复制可用于数据分发、处理移动数据应用、系统高可用、企
业报表解决方案中后备数据的可伸缩存储及异构系统的集成等,包括已有的Oracle数据库等。
3) 通知服务:用于开发、部署可伸缩应用程序的先进通知服务,能够向不同的
连接和移动设备发布个性化、及时的信息更新。
4) 集成服务:可以支持数据仓库和企业范围内数据集成的抽取。转换和装载能
力。
5) 分析服务:联机分析处理(OLAP)功能可用于多维存储的大量、复杂数据
集的快速高级分析。
6) 报表服务:全面的报表解决方案,可创建、管理和发布传统的、可打印的报
表和交互的、基于WEB的报表。
7) 管理工具:SQL Server包含的集成管理工具可用于高级数据库管理和调谐,
它也和其他微软工具,如MOM和SMS紧密集成在一起。标准数据访问协议大大减少了SQL Server和现有系统间数据集成所花的时间。此外,构建与SQL Server内的内嵌Web Server支持确保了和其他应用及平台的互操作能力。 开发工具:SQL Server为数据库引擎、数据抽取、转换盒装载(ETL)、数据挖掘、OLAP和报表提供了与Microsoft Visual Studio相集成的开发工具,以实现端到端的应用程序开发能力。SQL Server中每个主要的子系统都有自己的对象模型和API,能够以任何方式将数据系统扩展到不同的商业环境中。
在线人事选拔投票系统用的是SQL Server 2005。
2.5 Java Script简介
JavaScript是由Netscape公司开发的一种脚本语言。在HTML基础上,使用JavaScript可以开发交互式Web网页。JavaScript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网
5
苏州大学本科生毕业设计(论文)
页而量身定做的一种简单的编程语言。使用JavaScript可以帮助增强网页的交互能力,提高效率,增加网页特效等等。
2.6 AJAX简介
AJAX指异步JavaScript及XML。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
在线人事选拔投票系统主要运用到的是AJAX的页面局部刷新技术。只要用到VS2008中Script Manager与Update Panel两个AJAX控件来实现页面的局部刷新,主要是为了更好的用户体验。
6
苏州大学本科生毕业设计(论文)
第三章 系统分析
3.1需求概述
在线投票系统的主要任务是能够完成在线投票和对候选人的信息管理。在投票系统中,主要有两种角色:一种是管理员,一种是投票用户。该系统的功能需求包括管理员对功能的需求和投票用户对功能的需求两个部分。 1.管理员对功能的需求
管理员具有最高权限,可以对候选人信息、投票信息、评论信息等进行统一的管理,并且可以管理已有的投票信息、评论信息,也可以对这些信息生成相应报表。管理员的功能的需求如下:
1) 候选人个人信息的录入工作。
2) 修改候选人个人信息,包括姓名、公司职位、照片、个人简历等。 3) 逻辑删除候选人。
4) 逻辑删除各个候选人的投票评论。 5) 打印候选人信息。
6) 查看、导出候选人票数报表、评论情况报表,通过将报表内容导入并且
生成EXCEL文件,来更好的展示投票情况及评论情况。
7) 对候选人排序显示,包括增序、降序排列以及根据候选人状态显示候选
人列表。
2.投票用户对功能的需求
投票用户主要是对候选人进行投票,并且可以对候选人进行评论。 1) 对候选人投票,可以一次选多名候选人,但是每名候选人只能投一票。 2) 每投出一票,需要对候选人进行一次评论。对于评论内容,系统需要进
行脏字过滤。
3) 投票用户可以浏览每位候选人的个人信息、得票情况以及评论信息。
通过分析,可以得到在线投票系统的主要任务有: 1) 候选人信息管理 2) 投票、评论信息管理 3) 防止恶意刷票
7
苏州大学本科生毕业设计(论文)
4) 报表信息管理 5) 登录管理
3.2 系统功能分析
3.2.1 系统后台功能
管理员后台管理的用例图如下。
新建候选人
< 管理员通过用户名、密码登录到在线投票系统后台后,可以直观的查看现有候选人的个人信息以及得票情况。管理员既可以对现有候选人进行排序显示,也可以新建候选人,并对候选人信息进行修改、删除等操作。管理员也可以对候选人获得的评论进行删除,并可将其内容导入并生成EXCEL文件。 8 苏州大学本科生毕业设计(论文) 3.2.2 系统前台功能 “投票、评论信息管理”功能主要完成的是记录每次投票的和投票附带的评论信息。管理员可以在评论表里进行评论的查询、逻辑删除操作。投票用户前台用例图如下。 < 图3-2 投票用户前台用例图 3.2.3 防止恶意刷票 “防止恶意刷票”功能主要功能的是对每个投票用户,当他投票后,在规定的限制时间内,不允许他再次投票。其流程图如下。 开始 获取投票用户 MAC号 访问数据库 没有投票记录在限制时间内 是否有投票记录 有投票记录 允许投票 不允许投票 图3-3 防止恶意刷票流程图 9 苏州大学本科生毕业设计(论文) 投票用户无需登录便可进入在线投票系统前台,当用户进入前台首页时,系统会通过GetNetCardMacAddress()方法来获得用户的网卡地址,并且通过特定的方法与数据库中的数据进行对比,得出相应结果,由此来判断该用户是否可以再次投票。 3.2.4 防脚本注入 从浏览器的角度来看,网页只是一个长字符串。浏览器会按顺序处理这个字符串,在此过程中,会显示某些字符,同时按特殊规则解释其他字符(如 和