1、在线问卷调查系统-课程设计报告班级:_姓名:_指导老师:_设计地点:_信息管理系2013 年 6 月 24 日信息管理系课程设计1目录一、 前言 2二、系统分析 3(一)系统建设项目概述 3(二)可行性分析 31、经济可行性 32、技术可行性 43、运营可行性 4(三)需求分析 4三、系统设计 5(一) 系统功能模块设计 51、系统结构设计 52、系统功能结构流程分析 53、系统各个页面功能具体描述 64、系统业务流程图 6(二)数据库设计 71、概念结构设计 82、逻辑结构设计 83、数据库表 94、数据流程图 115、存储过程 11四、系统实施 14(一)数据库实施 14(二)系统界面 1
2、51、用户登陆 152、用户问卷调查(部分截图) 163、问卷调查结果 164、调查管理 165、问题管理 176、选项管理 18(三)系统评价 19五、总结 20六、参考文献 21七、项目分工 21信息管理系课程设计2在线问卷调查系统设计报告摘要:21 世纪是一个以网络为核心的信息时代,计算机技术、网络技术已经渗透到政府、学校,企事业单位的日常工作中。随着社会的发展,很多行业需要掌握大量的信息来了解特定的用户需求,传统的做法是组织大量的人力物力对用户散发调查表,然后对收集的信息进行统计并得到想要的结果.但这种传统的做法浪费大,效率低,周期长.为了改变这一现象, 必须用一种现代化的技术来改变这
3、种现状,它应该能够方便的获取大量的数据,并且能对数据进行分析,因此最近几年基于 Web 的网上调查系统开始占据问卷调查的主导地位。本在线调查系统采用模块化面向对象设计思想,采用 Visual Studio 与 SQL Server 技术。本系统按实际需求进行设计,包括用户对问卷的调查、管理员对问卷的管理等。通过这样一个调查系统,网民可以不受时间的限制,并可采取匿名的方式接受调查,能反映真实的想法和意见。可以有针对性的对问卷内容做适当的处理,总结问题。关键词:问卷调查系统;数据处理;Visual Studio 2005;SQL Server 2005一、 前言随着我国国民经济的飞速发展,人类已逐
4、渐地进入信息化社会。信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中,软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。随着社会的发展,软件也在不断的更新换代。古老的方式已经赶不上社会的需求,人工问卷
5、调查已经不能满足需要。迫使人们需求一种更加高效的方式来捕获所需要的信息。网络的发展给问卷调查带来了解决的方式,不同的行业可以更有针对性的去选择自己想要的信息,从而做出对应的措施。设计一个基于 WEB 的网上问卷调查系统,要求支持调查管理、问题管理、选项管理,能够防止同一 IP 重复提交,并能设置问卷日期,问卷提交后,能够对问卷结果进行统计分析,本系统根据上面的介绍具体实现了一个 web 网上问卷调查并达到以下功能模块:信息管理系课程设计3用户登录:不同的角色可以相应的注册到不同权限的用户,会看到相对应的界面和信息。问卷调查主体模块:进入系统后,进行问卷调查,查看调查的结果,增减问卷问题,增加调
6、查,开始和结束调查等功能。二、系统分析(一)系统建设项目概述在线问卷调查系统构建与设计项目项目名称 在线问卷调查系统构建与设计 时间安排 3 周表数量 5 个 项目难度 项目简介本在线调查系统采用模块化面向对象设计思想,采用 Visual Studio 与 SQL Server 技术。本系统按实际需求进行设计,包括用户对问卷的调查、管理员对问卷的管理等。通过这样一个调查系统,网民可以不受时间的限制,并可采取匿名的方式接受调查,能反映真实的想法和意见。可以有针对性的对问卷内容做适当的处理,总结问题。项目目的 了解管理信息应用系统的数据库设计和信息系统分析设计的基本方法,掌握数据库设计和系统设计的
7、基本流程。设计主要技术 数据库的分析与设计、ASP.NET编程环境 SQL Server 2005 , Visual Studio 2005项目特点 通过本次课程设计,了解并掌握数据库设计过程和信息系统设计过程中各个阶段的工作过程和工作内容。技术重点 使用标准的数据库设计方法实现数据库的分析与设计;使用 c#进行编程,完成系统设计。技术难点 数据库中各种不同类型信息关系的系统化和规范化的实现;系统界面建设与空间的应用;前台建设、后台管理与数据库之间的连接。(二)可行性分析1、经济可行性网上调查的优势在于,这是一种更快更简便,而且更低价更高效的方法。传统调查信息管理系课程设计4方式的成本是不断上
8、升的。当调查达到一定规模的时侯,网上调查的成本相对而言比较低廉,在成本曲线上基本没有任何上升的趋势。而且它不受时空的限制,可以 24 小时接受被调查者提交的问卷,并且能自动进行检验与处理,显示并能够生成直观生动的统计图形。2、技术可行性(1)SQL Server 2005SQL(Structured Query Language,结构化查询语言)是一个功能强大的数据库语言。SQL 语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。虽然绝大多数的数据库系统使用 SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的 SQL 命令,比如“S
9、elect“、 “Insert“、 “Update“、 “Delete“、 “Create“和 “Drop“常常被用于完成绝大多数数据库的操作。SQL 语言有着非常突出的优点,主要是:A 、非过程化语言,B、 统一的语言,C 、是所有关系数据库的公共语言。SQL 不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有 SQL 语句使用查询优化器,它是 RDBMS 的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。(2)Visual Studio 2005Microsof
10、t Visual Studio(简称 VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如 UML 工具、代码管控工具、集成开发环境(IDE)等等。特性:A、可生产的,B、综合性,C、可靠的。使用 Visual Studio 开发解决方案的优点:通过综合和熟悉的工具提高工作效率和质量。部署,安全,和支持您的关键网络应用和基础设施。降低成本,更好地了解您的发展进程。提供更好的可预见性和规划通过综合过程和方法的支持。3、运营可行性对于敏感性的问题,网上调查方法可以使被调查者不受影响地以内心真实的态度回答,保证了问卷答案的真实性等
11、等。它还可以在更为广泛的范围内,对更多的用户进行数据收集的工作。(三)需求分析迄今为止,已经出现了各种各样的网上调查软件,作为调查工具,至少要具备以下几个不可或缺的功能:简单易用,使用者无需了解程序代码;可以选择多种问题形式(比如列表、多选等等) ;提供分析工具,可以将数据导人、导出,并作处理;人们可以根据当前调查研究的需要自由选择参与调查。当然,也要考虑到研究的预算、研究人员的能力以及所要做的结果分析工作等等。虽然人们正在致力于这种正在蓬勃发展信息管理系课程设计5中的调查方式的研究与应用,同时也意识到在其不可比拟的优势之外,也有其不足的方面。这种方式的局限性的一面的主要表现是:网络普及率还比
12、较低、专业人员缺乏、研究时对社会伦理道德的考虑不周等问题;另一方面,对这种调查研究方式的理论研究还不够全面和深入,如样本的内在偏差性等等投票调查系统要能够方便发布调查,一般一次调查是一个主题的相关问题集合。可以包括多个问题,也可以是一个问题,每个问题可以有多个答案选项。三、系统设计(一) 系统功能模块设计1、系统结构设计本系统主要由以下七个模块组成:用户登录模块、调查问卷模块、调查结果模块、问卷调查管理模块、问卷问题管理模块、问卷问题管理模块:系统功能模块图 3-12、系统功能结构流程分析投票调查系统具体包括以下几个方面的功能:(1)调查管理:增加、修改和删除调查,并且可以对调查归档,并指定当
13、前系统首页显示的调查。(2)问题管理:包括增加、修改和删除问题。(3)选项管理:包括增加、修改和删除选项。(4)统计功能:可以看到每次投票中,每个问题的投票情况,管理页面和前台都能够显示出来。信息管理系课程设计6(5)防止多次投票:允许匿名投票,所以是否多次投票只能通过用户的 IP 来判断,但由于有可能多个用户用同一个 IP 投票,所以我们允许一个 IP 可以投 15 次,但每两次投票之间必须超过 5min。应在制作时根据实际情况加以更改配置。3、系统各个页面功能具体描述表 3-1模块 功能名称 文件名 功能描述用户登录 /Login.aspx 登陆页面调查显示 /default.aspx 显
14、示调查页面前台管理结果显示 /stat.aspx 查看调查结果调查列表 /Admin/SurveyList.aspx 显示调查列表新增调查 /Admin/SurveyAdd.aspx 显示具体调查的详细信息,包括调查所包含的问题信息问题管理 /Admin/QuestionList.aspx 根据调查显示该调查的所有问题和问题选项信息选项管理 /Admin/OptionList.aspx 管理选项,包括增加、删除和修改选项后台管理统计显示 /Admin/Stat.aspx 显示调查的结果4、系统业务流程图信息管理系课程设计7在线投票系统前台用户界面后台数据库管理投票选择选项检测IP检测时间是否限
15、制IP投票不限制限制 IP第一次投票已投过票时间允许时间不允许查看调查结果登陆界面提交项目信息管理系统配置管理投票项目删除投票项目更新编辑删除管理选项添加更新是否还有选项删除没有 有(二)数据库设计图 3-2 在线问卷调查业务流程图 信息管理系课程设计81、概念结构设计2、逻辑结构设计图 3-4 数据表逻辑结构图图 3-3 E-R 图信息管理系课程设计93、数据库表投票调查系统使用 SQL Server 2000 作为系统后台数据库。根据前面的需求分析,可以知道系统共有 4 个表,分别是调查表、问题表、选项表和投票结果表。所有的数据库表都有一个前缀(Survey_) 。表 3-2 是对投票调查
16、系统中各个数据库表的说明。表 3-2 数据库表描述表名称 描述Survey_Survey 存储所有调查Survey_Question 存储投票调查用到的所有问题Survey_Option 存储所有问题的选项Survey_User 存储用户信息Survey_Vote 存储所有的投票结果(1)Survey_Survey 调查表调查表包含调查主题、问题总数以及调查要防止多次投票的策略参数等信息。表 3-3 调查表字段描述列名 类型 大小 是否允许为空 描述SurveyId int 4 否 自增 IdSurveyName nvarchar 200 否 调查主题QuestionNum int 4 否 问
17、题总数Current bit 1 否 是否当前调查AddedDate datetime 8 否 调查发起时间MultiSel char 1 否 防止多次投票的方式:Cookie,IP 判断和不限制MultiTimes int 4 是 允许多次投票次数Spans int 4 是 两次投票间隔时间(2)Survey_Question 问题表问题表包含问题的内容、选项总数、所属调查的 Id 和投票总数。表 3-4 问题表字段描述列名 类型 大小 是否允许为空 描述信息管理系课程设计10QuestionId int 4 否 自增 IdSurveyId nvarchar 200 否 问题所在的投票主题
18、IdQuestionName int 4 否 问题内容OptionNum int 1 否 问题选项总数JoinNum datetime 8 否 投票总数(3)Survey_Option 选项表选项表主要记录选择所述的问题 Id、选项内容和该选项已经被投票的总数。表 3-5 选项表字段描述列名 类型 大小 是否允许为空 描述OptionId int 4 否 自增 IdQuestionId nvarchar 200 否 选择所属问题IdOptionName int 4 否 选项内容SelectedNum bit 1 否 已经投票总数(4)Survey_Vote 投票表投票表主要记录选项的 Id、投
19、票的 Id 地址和投票时间等,用户每次投票都是在这个表中增加一条记录。表 3-6 投票表字段描述列名 类型 大小 是否允许为空 描述VoteId int 4 否 自增 IdOptionId nvarchar 200 否 选项 IdUserIP int 4 否 用户 IPAddedDate smalldatetime 4 是 投票时间(5)用户表表 3-7 用户表字段描述列名 类型 大小 是否允许为空 描述UserID int 4 否 自增 IdUserName Char 10 否 用户名UserPwd Char 10 否 密码信息管理系课程设计114、数据流程图5、存储过程为了提高系统访问的效
20、率,我们使用存储过程来实现大部分数据操作功能。同时为了防止系统内存储过程太多而难以管理,我们只是在新增或修改实体数据以及运用其他复杂的逻辑时才采用存储过程,删除和返回列表的功能都还是使用 SQL 语句来完成的。下表是项目中具体运用到的存储过程。表 3-8 存储过程描述 名称 描述Survey_Survey_Save 保存调查:包括新增和修改调查,通过SurveyId 来判断新增还是修改调查Survey_Question_Save 保存问题:包括新增和修改问题,通过新增QuestionId 来判断是新增还是修改问题Survey_Option_Save 保存选项:包括新增和修改选项,通过Quest
21、ionId 来判断是新增还是修改选项Survey_Vote_Save 保存投票的功能:记录投票用户的 IP、投票时间、投票的同时更新该选项的投票数图 3-5信息管理系课程设计12和所述问题的投票总数Survey_GetOptions 返回问题 Id 的所有选项及每个选项的投票数和比例大多数存储过程的实现都比较标准,包括执行插入和更新操作。下面简单列举几个功能较多的存储过程:(1) Survey_Vote_Save该存储过程主要实现保存投票的功能,记录投票用户的 IP、投票时间和选项 ID,投票的同时更新该选项的投票数和所属问题的投票总数,这样可以方便后面计算每个选项的投票数和所占的比例,代码如
22、下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo- Date Created: 2007年月日- Created By: Generated by Glory- 增加或者更新记录-ALTER PROCEDURE dbo.Survey_Vote_SaveVoteId int, - 投票IdOptionId int, - 选项IdUserIP nvarchar(50), - 投票IPCookieId nvarchar(50), - 用户CookieAddedDate smalldatetime - 投票时间ASdeclare QuestionId intb
23、eginINSERT INTO dbo.Survey_Vote (OptionId,信息管理系课程设计13UserIP,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 ONse
24、t QUOTED_IDENTIFIER ONgoALTER PROCEDURE dbo.Survey_GetOptionsQuestionID 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, Optio
25、nName,0 as SelectedNum, 0% as Percentage信息管理系课程设计14From Survey_Option a inner 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 Surve
26、y_Option a inner join Survey_Question b on a.QuestionId=b.QuestionIdWHERE b.QuestionID = QuestionID四、系统实施(一)数据库实施数据库实施是根据应用系统数据库的关系结构模型和物理结构设计结果,形成基于SQL Server 平台应用系统数据库的脚本和数据库设计报告,并进行数据库的具体构建与管理。信息管理系课程设计15(二)系统界面1、用户登陆输入用户名“123” ,密码“123”或者用户名“问卷” ,密码“wenjuan”进入系统。信息管理系课程设计162、用户问卷调查(部分截图)3、问卷调查结果4
27、、调查管理下图是调查管理界面,在后台管理中,管理员可以对调查、问题和选项实现管理,包括添加、修改和删除。信息管理系课程设计175、问题管理 单击“问题管理”按钮进入问题管理页面,如下图所示。单击“编辑”和“删除”按钮可以分别编辑和删除选中的问题描述信息,也可以填写问题描述信息,然后单击“添加问题”按钮实现新增问题的功能。信息管理系课程设计186、选项管理单击“选项管理”按钮进入选项管理界面,如下图所示。首先单击“选择调查”下拉列表框,根据选择的调查再单击“选择问题”下拉列表框,出现该问题对应的选项列表,如下图所示。单击“编辑”和“删除”按钮可以分别编辑和删除选中的选项描述信息,也可以填写选项描
28、述信息,然后单击“添加选项”按钮实现新增选项的功能。信息管理系课程设计19(三)系统评价本系统按照软件工程开发的思想,结合当前软件开发的常用技术进行的一次开发实战,最终得到一个功能基本完善的在线问卷调查系统。系统详细实现的一般在线问卷调查系统所具有的功能主要包括:用户调查、查看调查结果、调查管理、问题管理、选项管理。由于整个系统按照辅导书的说明一步一步建设起来,所以各部分安排比较简单但也不是合理性,程序中注释写得比较规范,因此可读性与可维护性也比较好。在本系统开发过程中不可避免地遇到不少困难,加之我们目前水平有限并对.Net的应用开发还不是太熟练,系统的一些功能做得还是很完善,有些功能也没有实
29、现。比如:由于当初对安全没有考虑,不能防范 SQL 注入攻击。由于时间关系,用户权限设置未能完成,只完成了简单的登陆功能。 信息管理系课程设计20每个系统在初期都不完善,后期系统完善与维护也同样重要。我们正在积极完成上述没有能达到的功能,同时借助网络与参考书,打算开发一个多应用的调查系统,以能适应不同需求的问卷调查。 五、总结通过这次课程设计,了解了一个系统建立的过程,本次课程设计是我们经过几个学期对数据库及相关概念的学习后,独立地进行一个完整、具有一定规模的系统的设计和实践。三个多星期以来忙碌紧张而又有条不紊的设计,使我们有机会对本专业的基本理论、专业知识和基本技术有了更深入的了解和体会,使
30、我们在这学期中所学到的知识得到了系统和升华,真正达到了学以致用。(1)从心态方面:在整个课程设计的过程中我们学到了做任何事情所要有的态度和心态,首先我们明白了做学问要一丝不苟,对于出现的任何问题和偏差都不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就打退堂鼓,只要坚持下去就可以找到思路去解决问题。同时,在工作中要学会与人合作的态度,认真听取别人的意见,这样做起事情来就可以事半功倍。同时,学会如何分配工作,使大家发挥自己的优势与特长,如何在最短的时间高效完成也是很重要的。(2)从实践方面:在本次的课程设计中,我们充分体会到了“实践出真知”这一点,书本上的知识是不
31、够的,同时也并不完全正确。只有把理论与实践相结合才能够真正的学到知识。在一个系统开发的过程中编码不是最重要的,最重要的是分析系统、建立起系统模型。在分析一个系统前,必须要对将要开发的系统所涉及到的各方面知识有一个认识,然后将系统的模型建立起来。而且一个成功的系统要符合用户的需要,要以用户为中心,开发出用户想要的系统,而不能自以为是,想当然。一个在线问卷调查系统的设计,不可能一步到位,还需要不断的完善和补充。编程前的设计是减少程序调试工作量的重要方法,只有进行充分考虑,才能减少调试过程中的工作量。虽然在开始写程序之前我们做了很多的准备工作,但在真正写程序时仍然发现许多问题,有些问题是分析时的疏漏
32、,有些则是如果不做无论如何也想不到的。所以,在收获知识的同时,还收获了阅历,收获了成熟,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在设计过程中,我们学会了很多学习的方法。而这是日后最实用的。总的来说,课程设计结束了,我们从中获得了大量的知识,学习到了一些课本上没有的知识,也掌握了很多专业技能,相信这对我们以后的学习生活会有很大的帮助。当然,由于知识方面的不健全,还有实践能力也不是很强,设计出来的系统肯定存在着很多小毛病,也请老师多加指导及谅解。信息管理系课程设计21六、参考文献1.Visual C#2005 动态网站开发技术与实践 王路,王改性,彭海云等编著。电子工业出版社2.Visual C#.NET 项目开发实战-从入门到精通李继武编著。 清华大学出版社3.天极网新技术研究室 ASP.NET 完全入门 人民邮电出版社,2010.44.王华杰,李律松,孙一波等编著.c#数据库开发技术.清华大学出版社,2009.25.吴雷.Visual Studio 2005 高级编程,2010.7七、项目分工_(组长):统筹管理项目进程、系统的分析与设计,进行系统数据库设计、编写代码完成系统设计,编写课程设计报告等。_:进行系统需求分析,完成数据库概要设计、系统流程图绘制等。_:协助完成数据库设计,编写课程设计报告。