在线问卷调查系统 ---课程设计报告班级:__________________姓名:___________________指导老师:_______________设计地点:_______________信息管理系2013年6月24日目录一、前言 (2)二、系统分析 (3)(一)系统建设项目概述 (3)(二)可行性分析 (3)1、经济可行性 (3)2、技术可行性 (4)3、运营可行性 (4)(三)需求分析 (4)三、系统设计 (5)(一)系统功能模块设计 (5)1、系统结构设计 (5)2、系统功能结构流程分析 (5)3、系统各个页面功能具体描述 (6)4、系统业务流程图 (6)(二)数据库设计 (7)1、概念结构设计 (8)2、逻辑结构设计 (8)3、数据库表 (9)4、数据流程图 (11)5、存储过程 (11)四、系统实施 (14)(一)数据库实施 (14)(二)系统界面 (15)1、用户登陆 (15)2、用户问卷调查(部分截图) (16)3、问卷调查结果 (16)4、调查管理 (16)5、问题管理 (17)6、选项管理 (18)(三)系统评价 (19)五、总结 (20)六、参考文献 (21)七、项目分工 (21)在线问卷调查系统设计报告摘要:21世纪是一个以网络为核心的信息时代,计算机技术、网络技术已经渗透到政府、学校,企事业单位的日常工作中。
随着社会的发展,很多行业需要掌握大量的信息来了解特定的用户需求,传统的做法是组织大量的人力物力对用户散发调查表,然后对收集的信息进行统计并得到想要的结果.但这种传统的做法浪费大,效率低,周期长.为了改变这一现象, 必须用一种现代化的技术来改变这种现状,它应该能够方便的获取大量的数据,并且能对数据进行分析,因此最近几年基于Web的网上调查系统开始占据问卷调查的主导地位。
本在线调查系统采用模块化面向对象设计思想,采用Visual Studio与SQL Server 技术。
本系统按实际需求进行设计,包括用户对问卷的调查、管理员对问卷的管理等。
通过这样一个调查系统,网民可以不受时间的限制,并可采取匿名的方式接受调查,能反映真实的想法和意见。
可以有针对性的对问卷内容做适当的处理,总结问题。
关键词:问卷调查系统;数据处理;Visual Studio 2005;SQL Server 2005 一、前言随着我国国民经济的飞速发展,人类已逐渐地进入信息化社会。
信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。
同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要。
而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步开拓。
软件产业已成为社会信息化进程中的一个战略性产业。
在软件技术的应用中,软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。
不断开发适应用户需求、市场需要的新型软件产品。
随着社会的发展,软件也在不断的更新换代。
古老的方式已经赶不上社会的需求,人工问卷调查已经不能满足需要。
迫使人们需求一种更加高效的方式来捕获所需要的信息。
网络的发展给问卷调查带来了解决的方式,不同的行业可以更有针对性的去选择自己想要的信息,从而做出对应的措施。
设计一个基于WEB的网上问卷调查系统,要求支持调查管理、问题管理、选项管理,能够防止同一IP重复提交,并能设置问卷日期,问卷提交后,能够对问卷结果进行统计分析,本系统根据上面的介绍具体实现了一个web网上问卷调查并达到以下功能模块:用户登录:不同的角色可以相应的注册到不同权限的用户,会看到相对应的界面和信息。
问卷调查主体模块:进入系统后,进行问卷调查,查看调查的结果,增减问卷问题,增加调查,开始和结束调查等功能。
二、系统分析(一)系统建设项目概述(二)可行性分析1、经济可行性网上调查的优势在于,这是一种更快更简便,而且更低价更高效的方法。
传统调查方式的成本是不断上升的。
当调查达到一定规模的时侯,网上调查的成本相对而言比较低廉,在成本曲线上基本没有任何上升的趋势。
而且它不受时空的限制,可以24小时接受被调查者提交的问卷,并且能自动进行检验与处理,显示并能够生成直观生动的统计图形。
2、技术可行性(1)SQL Server 2005SQL(Structured Query Language,结构化查询语言)是一个功能强大的数据库语言。
SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。
虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。
但是,标准的SQL命令,比如"Select"、"Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。
SQL语言有着非常突出的优点,主要是:A 、非过程化语言,B、统一的语言,C 、是所有关系数据库的公共语言。
SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。
(2)Visual Studio 2005Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。
VS 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。
特性:A、可生产的,B、综合性,C、可靠的。
使用Visual Studio开发解决方案的优点:通过综合和熟悉的工具提高工作效率和质量。
部署,安全,和支持您的关键网络应用和基础设施。
降低成本,更好地了解您的发展进程。
提供更好的可预见性和规划通过综合过程和方法的支持。
3、运营可行性对于敏感性的问题,网上调查方法可以使被调查者不受影响地以内心真实的态度回答,保证了问卷答案的真实性等等。
它还可以在更为广泛的范围内,对更多的用户进行数据收集的工作。
(三)需求分析迄今为止,已经出现了各种各样的网上调查软件,作为调查工具,至少要具备以下几个不可或缺的功能:简单易用,使用者无需了解程序代码;可以选择多种问题形式(比如列表、多选等等);提供分析工具,可以将数据导人、导出,并作处理;人们可以根据当前调查研究的需要自由选择参与调查。
当然,也要考虑到研究的预算、研究人员的能力以及所要做的结果分析工作等等。
虽然人们正在致力于这种正在蓬勃发展中的调查方式的研究与应用,同时也意识到在其不可比拟的优势之外,也有其不足的方面。
这种方式的局限性的一面的主要表现是:网络普及率还比较低、专业人员缺乏、研究时对社会伦理道德的考虑不周等问题;另一方面,对这种调查研究方式的理论研究还不够全面和深入,如样本的内在偏差性等等投票调查系统要能够方便发布调查,一般一次调查是一个主题的相关问题集合。
可以包括多个问题,也可以是一个问题,每个问题可以有多个答案选项。
三、系统设计(一)系统功能模块设计1、系统结构设计本系统主要由以下七个模块组成:用户登录模块、调查问卷模块、调查结果模块、问卷调查管理模块、问卷问题管理模块、问卷问题管理模块:系统功能模块图3-12、系统功能结构流程分析投票调查系统具体包括以下几个方面的功能:(1)调查管理:增加、修改和删除调查,并且可以对调查归档,并指定当前系统首页显示的调查。
(2)问题管理:包括增加、修改和删除问题。
(3)选项管理:包括增加、修改和删除选项。
(4)统计功能:可以看到每次投票中,每个问题的投票情况,管理页面和前台都能够显示出来。
(5)防止多次投票:允许匿名投票,所以是否多次投票只能通过用户的IP来判断,但由于有可能多个用户用同一个IP投票,所以我们允许一个IP可以投15次,但每两次投票之间必须超过5min。
应在制作时根据实际情况加以更改配置。
3、系统各个页面功能具体描述4、系统业务流程图图3-2 在线问卷调查业务流程图(二)数据库设计1、概念结构设计2、逻辑结构设计图 3-4 数据表逻辑结构图图 3-3 E-R 图3、数据库表投票调查系统使用SQL Server 2000作为系统后台数据库。
根据前面的需求分析,可以知道系统共有4个表,分别是调查表、问题表、选项表和投票结果表。
所有的数据库表都有一个前缀(Survey_)。
表3-2是对投票调查系统中各个数据库表的说明。
表3-2 数据库表描述(1)Survey_Survey调查表调查表包含调查主题、问题总数以及调查要防止多次投票的策略参数等信息。
表3-3 调查表字段描述(2)Survey_Question问题表问题表包含问题的内容、选项总数、所属调查的Id和投票总数。
表3-4 问题表字段描述(3)Survey_Option选项表选项表主要记录选择所述的问题Id、选项内容和该选项已经被投票的总数。
(4)Survey_Vote投票表投票表主要记录选项的Id、投票的Id地址和投票时间等,用户每次投票都是在这个表中增加一条记录。
(5)用户表4、数据流程图图3-55、存储过程为了提高系统访问的效率,我们使用存储过程来实现大部分数据操作功能。
同时为了防止系统内存储过程太多而难以管理,我们只是在新增或修改实体数据以及运用其他复杂的逻辑时才采用存储过程,删除和返回列表的功能都还是使用SQL语句来完成的。
下表是项目中具体运用到的存储过程。
大多数存储过程的实现都比较标准,包括执行插入和更新操作。
下面简单列举几个功能较多的存储过程:(1)Survey_V ote_Save该存储过程主要实现保存投票的功能,记录投票用户的IP、投票时间和选项ID,投票的同时更新该选项的投票数和所属问题的投票总数,这样可以方便后面计算每个选项的投票数和所占的比例,代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-------------------------------------------------------------------------------------------------------------------------- Date Created: 2007年月日-- Created By: Generated by Glory-- 增加或者更新记录------------------------------------------------------------------------------------------------------------------------ALTER PROCEDURE [dbo].[Survey_Vote_Save]@VoteId int,-- 投票Id@OptionId int,-- 选项Id@UserIP nvarchar(50),-- 投票IP@CookieId nvarchar(50),-- 用户Cookie@AddedDate smalldatetime-- 投票时间ASdeclare @QuestionId intbeginINSERT INTO [dbo].[Survey_Vote] ([OptionId],[UserIP],[CookieId],[AddedDate])VALUES(@OptionId,@UserIP,@CookieId,@AddedDate)SET @VoteId =@@IDENTITYupdate Survey_Option set SelectedNum=SelectedNum+1 where OptionId=@OptionIdend(2)Survey_GetOptions该存储过程用来返回一个问题的各个选项的投票数和所占投票总数的投票比例,代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER PROCEDURE [dbo].[Survey_GetOptions]@QuestionID intASDECLARE @QuestionTotalVotes int-- get the number of total votes for this questionSELECT @QuestionTotalVotes = JoinNum FROM Survey_Question WHERE QuestionID = @QuestionIDIF @QuestionTotalVotes = 0SELECT distinct a.OptionID, OptionName,'0'as SelectedNum,'0%'as PercentageFrom Survey_Option ainner join Survey_Question b on a.QuestionId=b.QuestionIdWHERE b.QuestionID = @QuestionIDelseSELECT distinct a.OptionID, OptionName,SelectedNum,CAST((SelectedNum * 100 / @QuestionTotalVotes)as decimal(19,2))AS PercentageFrom Survey_Option ainner join Survey_Question b on a.QuestionId=b.QuestionIdWHERE b.QuestionID = @QuestionID四、系统实施(一)数据库实施数据库实施是根据应用系统数据库的关系结构模型和物理结构设计结果,形成基于SQL Server平台应用系统数据库的脚本和数据库设计报告,并进行数据库的具体构建与管理。