【毕业论文】问卷调查系统的设计与实现_第1页
【毕业论文】问卷调查系统的设计与实现_第2页
【毕业论文】问卷调查系统的设计与实现_第3页
【毕业论文】问卷调查系统的设计与实现_第4页
【毕业论文】问卷调查系统的设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

问卷调查系统的设计与实现PAGE―PAGEI―摘要电子问卷调查方式已经成为一种流行并且便捷的调查方式,它具有调查范围广,信息量大,可挑选余地大,保密效果好,费用低等优势。因此,电子问卷调查势必成为社会发展不可缺少的一部分。本系统采用JAVA语言开发,主要采用Struts,Hibernate,Spring三大框架技术。其主要功能包括电子问卷设计和问卷活动的信息采集、问卷反馈信息记录、并支持权限的控制以及强大的系统管理员的功能等等。本文阐述了在线调查方式的优势,并对所做软件的需求、设计及实现过程做了详细介绍。【关键词】问卷调查在线JAVA

DesignandImplementationofQuestionnaireDesignSystem【Abstract】Electronicquestionnairehasbecomeapopularandconvenientmethodofinvestigation,ithasinvestigatedawiderangeoflargeamountofinformationcanberoomforalargeselection,confidentiality,effectiveandlowcostadvantages.Therefore,theelectronicsurveywillbecomeanindispensablepartofsocialdevelopment.ThesystemisdevelopedbyJAVAlanguage,mainlyinStruts,Hibernate,Springframeworkofthethreetechnologies.Itsmainfeaturesincludeelectronicquestionnairedesignandsurveyactivities,informationcollection,questionnairefeedbackrecord,andsupporttherightsofcontrolandpowerfulfeaturesforsystemadministratorsandsoon.Thispaperdescribestheadvantagesofonlinesurveymethods,andthedemandmadebythesoftware,designandimplementationprocessdescribedindetail.【Keywords】questionnaire,Online,JAVA

目录TOC\o"1-2"\h\z\u摘要 I第一章绪论 11.1课题来源 11.2国内现状 1第二章需求分析 52.1系统定义 52.2功能需求 52.3数据需求 6第三章数据库设计 73.1数据库的概念 73.2数据库的选择 73.3数据库表的描述 7第四章技术介绍 224.1JAVA开发语言的选择 224.2MVC设计模式 244.3Struts,Hibernate,Spring技术 254.4SQL语言 274.5开发环境 27第五章系统实现 295.1总体架构及实现 295.2查看问卷信息 315.3发送通知 345.4问卷导入导出功能 365.5问卷查看 395.6问卷分析代码实现 46结论 52致谢 53参考文献 54―PAGE49―绪论1.1课题来源问卷调查的目的,是要通过问卷上的封闭式问题和开放式问题了解调查对象:市场调查的目的是为了收集足够的、真实的和有效的信息为企事业单位等的其他活动和策略所服务,为管理部门提供参考依据。利用市场调查的部门可以是企业、公司、团体以及任何一切企事业单位的管理决策层或个人。市场调查的目的可能是为了制定长远性的战略性规划,也可能是为制定某阶段或针对某问题的具体政策或策略,提供参考依据。研究可以是学术性的,也可以是实用性的。1.2国内现状市场调查的目的在于从零散的市场信息中收集、整理和提炼出有价值的信息和数据。问卷调查是市场调查的一种形式、问卷调查相对而言得到的回答会更加准确。基于软件的调查,是整合企业业务部门的相关需求,有针对性的对相关人员进行问卷调查。这样能够更好的是企业对于所期望调查的人员,部门,以及有针对性的对已限定范围进行期望回馈。网上市场调查的优势有:1、便捷性和低费用(1)网上市场调查可节省传统的市场调查中所耗费的大量人力和物力。(2)在网络上进行调查,只需要一台能上网的计算机即可。(3)调查者在企业站点上发出电子调查问卷,网民自愿填写,然后通过统计分析软件对访问者反馈回来的信息进行整理和分析。(4)网上市场调查在收集过程中不需要派出调查人员,不受天气和距离的限制,不需要印刷调查问卷,调查过程中最繁重、最关键的信息收集和录入工作将分布到众多网上用户的终端上完成。(5)线上调查可以是无人值守和不间接地接受调查填表,信息检验和信息处理工作均由计算机自动完成。2、交互性和充分性网络的最大优势是交互性。这种交互性在网上市场调研中体现在如下两点:(1)在网上调查时,被访问者可以及时就问卷相关的问题提出自己的看法和建议,可减少因问卷设计不合理而导致的调查结论出现偏差等问题。(2)被访问者可以自由地在网上发表自己的看法,同时没有时间的限制。而传统的市场调研是不可能做到这些的,例如,面谈法中的路上拦截调查,它的调查时间较短,不能超过10分钟,否则被调查者肯定会不耐烦,因而对访问调查员的要求非常高。3、调查结果的可靠性和客观性由于企业站点的访问者一般都对企业产品有一定的兴趣,所以这种基于顾客和潜在顾客的市场调研结果是客观和真实的,它在很大程度上反映了消费者的消费心态和市场发展(1)被调查者在完全自愿的原则下参与调查,调查的针对性更强。而传统的市场调查中的面谈法中的拦截询问法,实质上是带有一定的“强制性”的。(2)调查问卷的填写是自愿的,不是传统调查中的“强迫式”,填写者一般对调查内容有一定的兴趣,回答问题相对认真,所以问卷填写可靠性高。(3)网上市场调查可以避免传统市场调研中人为因素所导致的调查结论的偏差,被访问者是在完全独立思考的环境中接受调查的,能最大限度地保证调查结果的客观性。4、无时空和地域的限制网上市场调查可以24小时全天候进行,这与受区域和时间制约的传统的市场调查方式有很大的不同。5、可检验性和可控制性利用Internet进行网上调查收集信息,可以有效地对采集信息的质量实施系统的检验和控制。(1)网上市场调查问卷可以附加全面规范的指标解释,有利于消除因对指标理解不清或调查员解释口径不一而造成的调查偏差。(2)问卷的复核检验由计算机依据设定的检验条件和控制措施自动实施,可以有效地保证对调查问卷的100%的复核检验,保证检验与控制的客观公正性。(3)通过对被调查者的身份验证技术可以有效地防止信息采集过程中的舞弊行为。1.3研究意义问卷调查调查的范围很广,任何一种社会现象都可以作为我们研究性学习的内容。然而,社会调查报告还是有着一定的程式。一般来说,社会调查报告应该包含以下一些内容:调查的目的、调查的方法、调查的时间、样本的情况、调查的内容、调查表的分析、分析结果、提出自己的看法等等。问卷调查有如下意义(1)调查环境,适应快速。即通过对市场环境的调查,达到快速适应环境,快速顺利地开拓新市场的目的。(2)调查对手,胜之一筹。即通过对竞争对手的调查,达到了解对手情况,制定出措施、办法、制度胜过竞争地手一筹的目的。(3)调查客户,刺激需求。即通过对现有客户和潜在客户的调查,达到了解在客户心目中的形象,制定出相应对策,刺激客户对产品。需求分析2.1系统定义问卷调查的目的,是要通过问卷上的封闭式问题和开放式问题了解调查对象:市场调查的目的是为了收集足够的、真实的和有效的信息为企事业单位等的其他活动和策略所服务,为管理部门提供参考依据。利用市场调查的部门可以是企业、公司、团体以及任何一切企事业单位的管理决策层或个人。市场调查的目的可能是为了制定长远性的战略性规划,也可能是为制定某阶段或针对某问题的具体政策或策略,提供参考依据。研究可以是学术性的,也可以是实用性的。1)调查环境,适应快速。即通过对市场环境的调查,达到快速适应环境,快速顺利地开拓新市场的目的。2)调查对手,胜之一筹。即通过对竞争对手的调查,达到了解对手情况,制定出措施、办法、制度胜过竞争地手一筹的目的。3)调查客户,刺激需求。即通过对现有客户和潜在客户的调查,达到了解在客户心目中的形象,制定出相应对策,刺激客户对产品需求的目的。2.2功能需求问卷调查的一个主要目的就是为企业的抉择者和相关管理人员通过调查的形式来统计相关,企业所希望统计的相关信息,通过与预期的期望进行比对从而得出最终的决策方案或实施办法。基于ERP系统通过问卷调查的方式可以统计企业中相关人员的意愿以及针对企业中相关人士进行全面的信息收集。基于ERP系统的问卷调查可以大大的提高企业中人力资源部门统计相关调查信息的效率,节省委托外部公司介入企业调查的相关环节,并能继承系统办公和系统调查于一体,方便管理层得使用。从信息需求的角度分析针对以上方针,要设计一个公司内部基于ERP系统的问卷调查系统。首先要确定公司中问卷调查是存在实名制,和匿名制。即公司根据调查项目的不同,以及调查范围的不同可以针对不同的人员开展相关实名调查以及匿名调查以确保调查信息的贴真性。从用户的角度分析统计者或相关管理人员应该可以通过企业的ERP系统制作相关的电子问卷,并能够向相关从属人员进行调查。被调查者,即企业员工应通过点击邮件链接、登录企业系统查看调查信息,或登录自助系统接收系统消息查看并根据相关提示进入调查问卷的界面填写问卷。2.3数据需求问卷设计必备的信息对于基于ERP设计的一份电子问卷,需要系统当前操作员给出必输项目为问卷的调查日期,调查范围,调查方式(实名、匿名)。企业中对应的部门、人员类别、人员编码、所属公司。应根据软件的具体要求而设定。调查用户所需提供信息对于实名调查而言用户需要提供用用户名、密码来进行实名问卷调查。对于匿名调查中用户仅需根据提供的调查地址填写问卷中的必填项目即可通知方式企业通过ERP软件对下属员工通知的方式,可以为系统通知,书面通知,人事传达,部门通知等,对于本软件由于对当前用户未作限定,所以本软件仅通过系统通知、邮件通知、自助消息等相关ERP基础功能以实现。

数据库设计3.1数据库的概念当人们从不同的角度来描述这一概念时就有不同的定义。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该定义侧重于数据的组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。本软件使用的数据库模型将一直以来使用都最为广泛的关系模型作为数据库的建设依据。关系模型中数据的逻辑结构是以二维表的形式实现多对多、多对一、一对多等表关系实现方式,一个关系对应通常说的一张表,并且关系的每一个分量必须是一个不可分的数据项。而一个基于关系模型的数据库则是由若干个二维表组成的。对于一些大型和中型的数据库,如Oracle11G,SQLServer2008等都属于关系型数据库,同时它们所带有的数据库管理工具是其他小型数据库所没有的,而同时这些工具又为管理员的工作节省了很多的时间和财力。3.2数据库的选择本软件兼容Oracle10G/Oracle11g、Sql2005/Sql2008、DB2等多种数据库,可选择NC中间件(用友公司平台研制,Tomcat代理)、weblogic、websphere等多种中间件实现软件管控。对于中小型企业,通常会根据客户需要使用SQL2005进行数据库搭配,而对于一些大中型企业,数据库对应信息过万的的大库存量,通常会采取ORACLE数据库,ORACLE数据库具有安全性强,兼容性好,数据承受能力好的特点。演示产品对应数据量较小,故本软件演示平台所加数据源为SQL2008数据库。3.3数据库表的描述概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体-联系模型,即E-R模型,它是用E-R图来描述现实世界的概念模型。E-R图中用矩形表示实体;用椭圆表示属性;用菱形表示联系。为了清楚简便的描述出实体与其属性之间的关系,用VISIO软件生成了一张包含实体属性的完整E-R图,见图3—1。图3—1E-R图使用PowerDesigner生成的数据库关系图,见图3—2图3—23.3.1调查结果(hrqs_met)该表主要定义了头信息的主键,调查结果的主键以及为头信息取值设定表项。见表3-1。标识符数据类型长度非空描述主键外键说明pk_meta_resultChar20Y主键pk_resultChar20N调查结果主键YY自增pk_inv_metaChar20N头信息主键Y自增meta_infoChar20N取值表3—13.3.2调查问卷头信息项(hrqs_inv_meta)该表主要实现功能为存储头信息项目,具体实现方法继承基类而实现。见表3-2。标识符数据类型长度非空描述主键外键说明pk_inv_metaChar20Y主键Y自增pk_invVarchar20Y所属调查活动Ypk_metaVarchar20Y头信息项表3—23.3.3调查结果(hrqs_result)该表主要完成对于员工的调查问卷状态、提交日期等调查结果的记录。见表3-3。标识符数据类型长度非空描述主键外键说明pk_resultChar20Y主键Ypk_invChar20N调查活动Y自增pk_ownerVarchar20N调查对象主键owner_infoVarchar20N调查对象信息form_statusSmallint100N问卷状态0,1,2表示,0编写中,1已提交,3结束submit_dateChar19N提交日期表3—33.3.4调查范围(hrqs_inv_scope)该表主要完成公司调查活动对应的对象,实现一对多的对应。见表3-4。标识符数据类型长度非空描述主键外键说明pk_inv_scopeChar20Y主键Y自增pk_invChar20N所属调查活动Ypk_ownerChar20N调查对象主键表3—43.3.5调查结果_问卷明细(hrqs_result_form)该表主要用来保存调查问卷中的问卷对应答案相关数据,如数字值,字符值(文字叙述题)等。见表3-5。标识符数据类型长度非空描述主键外键说明pk_result_formChar20Y主键Ypk_resultChar20N调查结果Y自增pk_topic_optionChar20N题目选项Ystr_valueVarchar1000N字符值dbl_valuedcimal(12,4)12N数字值pk_topicChar20N题目主键表3—53.3.6调查活动(hrqs_inv)该表主要记录问卷活动中调查范围,调查时间,调查问卷,调查名称等一系列关联信息。在此表中定义了10个字段来进行信息存储。见表3-6。标识符数据类型长度非空描述主键外键说明pk_invChar20Y主键Yinv_namVarchar100Y调查名称Y自增pk_formChar20Y关联问卷Ypk_corpChar4N所属公司PeriodChar4N所属年度anonymousChar1N是否匿名调查begin_dateChar19N调查开始日期end_dateChar19N调查截止日期intendedInt自动N预期问卷数量invstatussmallint自动N状态object_typesmallint自动Y调查范围对象类型表3—63.3.7问卷题目(hrqs_topic)该表主要功能是记录问卷设计的相关信息,并记录问卷内容相关信息以便进行问卷展现时进行调用,以及问卷导出时进行调用。此表中定义了12个字段进行信息存储,以外键题目分类来进行联结表与表之间的关系,实现问卷分类与问卷一对多关系。见表3-7。标识符数据类型长度非空描述主键外键说明pk_topicChar20Y主键Y自增pk_topic_typeChar20N题目分类Ytopic_descVarchar500N题目描述sort_orderIntN序号directionSmallintN排列方式topic_styleSmallintN题型scaleSmallintN精度max_valuedecimal(12,4)12N最大值最大四位min_valuedecimal(12,4)12N最小值最大四位font_familyVarchar500N字体font_sizeIntN字体大小font_styleIntN字体样式font_colorInt30N字体颜色表3—73.3.8问卷题目选项(hrqs_topic_option)该表的主要功能是记录问卷设计(内容选项)的相关信息,并记录问卷内容的相关信息以便进行问卷展现时进行调用以及问卷导出时进行调用。在此表中定义了12个字段来进行信息存储,以外键题目分类来进行联结表与表之间的关系,实现问卷分类与问卷一对多的关系。见表3-8。标识符数据类型长度非空描述主键外键说明pk_topic_optionChar20Y主键Ypk_topicChar20N所属题目Yoption_descVarchar500N选项描述edit_flagChar1N是否编辑scoredecimal(124)12N分值sort_orderIntN序号font_sizeIntN字体大小font_familyVarchar500N字体font_styleIntN字体样式font_colorIntN字体颜色表3—83.3.9问卷(hrqs_form)该表的主要功能是记录问卷概览的相关信息,用于公司的私有调用以及问卷维护使用。在此表中定义了10个字段来进行信息存储,实现问卷调用的数据存储表。标识符数据类型长度非空描述主键外键说明pk_formChar20Y主键Yform_typeChar20N问卷分类pk_corpChar4N所属公司form_codeVarchar40N问卷编码form_nameVarchar80N问卷名称page_sizeSmallintN每页题目数量issue_flagChar1N是否发布memoVarchar1000N备注page_headerVarchar4000N页眉page_footerVarchar4000N页脚form_classSmallintN类型表3—93.3.10问卷题目分类(hrqs_topic_type)该表的主要功能是记录问卷分类概览的相关信息,用于公司的私有调用以及问卷分类维护使用。在此表中定义了8个字段来进行信息存储。以外键题目分类来进行联结表与表之间的关系,实现问卷分类与问卷一对多的关系。标识符数据类型长度非空描述主键外键说明pk_topic_typeChar20Y主键pk_formChar20N所属问卷Ysort_orderIntN序号type_nameVarchar80N分类名称type_descVarchar500N分类描述font_familyVarchar500N字体font_sizeIntN字体大小font_styleIntN字体样式font_colorIntN字体颜色表3—103.3.11问卷自定义档案列表(hrqs_doclist)该表为基础数据附加表,基于标准版本V57系列扩充表,该表主要对问卷序号问卷头信息关联进行维护,实现表中头信息与表的存储。调用时采用继承基类方式进行调用。标识符数据类型长度非空描述主键外键说明pk_doclistChar20Y主键关联自定义档案中创立该表(基础表)pk_defdoclistChar20N所属问卷Ysystem_flagInt1N序号表3—11

技术介绍4.1JAVA开发语言的选择现在,市场上的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行,使用最多,最为先进的可用作企业级开发语言的产品有:SUN公司的JavaMicrosoft公司的VisualBasicMicrosoft公司的VisualCBorland公司的DelphiPowersoft公司的PowerBulider在目前市场上这些众多的程序开发工具中,有些强调语言的弹性与执行效率;有些偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的不同需求。我的网站选择Java语言开发,其原因基于以下几点:Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言。简单Java的风格类似于C++,并且摒弃了C++中容易引发程序错误的地方,如指针和内存管理。此外Java提供了丰富的类库。面向对象面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的。Java支持静态和动态风格的代码继承及重用。分布式Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。健壮Java致力于检查程序在编译和运行时的错误。Java自己操纵内存减少了内存出错的可能性。Java提供Null指针检测数组边界、检测异常出口、字节代码校验。安全Java的安全性可从两个方面得到保证。一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。结构中立为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。可移植的Java的可移植性一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术。JAVA编译器产生的目标代码(J-Code)是针对一种并不存在的CPU--JAVA虚拟机(JAVAVirtualMachine),而不是某一实际的CPU。JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。高性能Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。多线程Java支持多线程,多线程功能使得在一个程序里可同时执行多个小任务。线程,有时也称小进程,是一个大进程里分出来的小的独立的进程。动态Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。4.2MVC设计模式MVC是Model-View-Controller的简称,它是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。视图是用户看到并与之交互的界面,作用包括向用户显示相关的数据、接受用户的输入、向模型查询业务状态、接受模型发出的数据更新事件,从而对用户界面进行同步更新。模型表示业务数据和业务逻辑,是应用程序的主体部分。一个模型能为多个视图提供数据,因此提高了代码的可重用性。控制器接受用户的输入并调用模型和视图去完成用户的需求。当Web用户单击Web页面中的递交按钮来发送HTML表单时,控制器本身不输出任何东西和做任何处理。控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪个视图来显示模型处理返回的数据。MVC的优点表现在如下几个方面:首先,最重要的一点是多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松偶合的构件。此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。MVC处理过程的结构图,见图4-1。图4—14.3Struts,Hibernate,Spring技术4.3.1StrutsStruts是目前Java

Web

MVC框架中不争的王者。Struts由一组相互协作的类(组件)、Serlvet以及jsp

tag

lib组成。由于Struts实质上就是在JSPModel2的基础上实现的一个MVC框架,所以基于struts构架的web应用程序基本上符合JSP

Model2即MVC的设计标准。其中的模型是JavaBean,控制器是ActionServlet、Action,视图是JSP、Struts客户化标签。Struts控制器组件主要包括:充当Struts框架的中央控制器的ActionServlet组件、充当每个子应用模块的请求处理器的RequestProcessor组件、负责处理一项具体的业务的Action组件。其工作流程如图4-2。图4—2Struts

的另一特点是使用ActionFormBean,ActionFormBean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。Struts框架利用ActionFormBean来进行View组件和Controller组件之间表单数据的传递。JSP文件使用Struts标签读取修改后的ActionFormBean的信息,重新设置HTML表单。4.3.2HibernateHibernate是连接Java应用程序和关系数据库的中间件,它封装了JDBC,实现了Java对象的持久化;封装了所有数据访问细节,使业务逻辑层专注于业务逻辑。并且通过对象关系映射(ObjectRelationalMapping,简称ORM)解决了面向对象与关系数据库之间存在的互不匹配的现象。如图4-3所示。4.3.3SpringSpring是为了降低企业应用开发的复杂性而创建的。Spring只使用基本的JavaBeans就能完成以前必须通过EJB来完成的事情,而与EJB是相比,Spring的核心是个轻量级的容器,它是实现IoC(InversionofControl-控制反转)容器,是非侵入性的框架,并提供AOP(Aspect-orientedprogramming-面向方面编程)概念的实现方式,提供对持久层和事务的支持,提供MVCWeb框架的实现,并对一些常用的企业服务API提供一致的模型封装,是一个全方位的应用程序框架。图4—34.4SQL语言SQL(StructureQueryLanguage结构化查询语言)自1974年被提出,至今已经是世界上最流行的关系数据库的标准语言。SQL语言的分类一、DDL(DataDefinitionLanguage)数据定义语言,其作用包括创建数据库对象、删除数据库对象、修改数据库对象(create、drop、alter)。二、DML(DataManipulationLanguage)数据操纵语言,其作用包括查找数据信息、插入数据信息、删除数据信息、更改数据信息(select、insert、delete、update)。三、DCL(DataControlLanguage)数据控制语言,作用主要对是授权数据库对象(grant,revoke)。4.5开发环境操作系统:WINDOWSXP;运行工具:IE7.0开发工具:MyEclipse5.1.0(附加组件MVC)数据库管理软件:AquaDataStudio数据库:ORACLE9.0、SQL2008、DB2服务器:Tomcat6.0辅助工具:DJJavaDecompilerver.1,DoradoV1.0.8

系统实现5.1总体架构及实现5.1.1系统总体结构图图5—15.1.2用户首页界面风格图5—2问卷调查使用的调查界面为企业的系统界面,根据权限进行分类,企业的系统业务管理的管理员进入界面后可查看到相关问卷活动信息,以及问卷与员工相同,可以接受到调查信息。如图5-2。使用用户登陆自助系统可以接受到来自系统管理员发来的相关问卷调查信息。如图5-3。图5—35.2查看问卷信息5.2.1功能描述问卷管理人员在登录之后可根据当前的权限进行问卷查询,在此对查看问卷信息作出的查询条件是仅能查询当前公司下的问卷。数据库的查询方式按照PK_CORP(公司pk)来进行查询。如图5-4。5.2.2模块流程图图5—45.2.3界面风格图5—55.2.4实现算法publicvoidexecute()throwsException{ FormVOform=(FormVO)getSelection(getMainPanel()).getParentVO(); form=(FormVO)PubDelegator.getIPersistenceRetrieve().retrieveByPk(null,FormVO.class,form.getPk_form()); if(form==null){ thrownewBusinessException("问卷不存在,请查询后重试!"); } StringbaseUrl=RuntimeEnv.getInstance().getProperty("SERVICEDISPATCH_URL"); URLurl=newURL(baseUrl.substring(0,baseUrl.indexOf("/",10)) +"/hrss/qs/Form.jsp?pk_form="+form.getPk_form()+"&preview=Y"); ClientAssistant.showDocument(url,"_blank");}5.3发送通知5.3.1功能描述问卷调查活动中实现了问卷调查活动制作,问卷调查活动开启。但是如果调查信息不能告知被调查的员工,则问卷调查活动意义则不能体现。所以问卷调查活动节点中添加了发送通知功能,具体实现的界面如图5-7。5.3.2模块流程图图5—65.3.3界面风格图5—75.3.4实现算法发送通知校验publicvoidexecute()throwsException{ HRAggVOvo=getSelection(getMainPanel()); InvActiveVOinv=(InvActiveVO)vo.getParentVO(); if(newUFDate().after(inv.getEnd_date())&& MessageDialog.showYesNoDlg(getFrameUI(),null,"该活动已经超出调查日期之内,您确定要发送通知么?")!=UIDialog.ID_YES){ return; } Listlist=null; if("1".equals(inv.getObject_type())){ //按部门范围 list=HRQSDelegator.getIInvActive().getDeptScopeEmail( Global.getCorpPK(),inv.getPk_inv(),Global.getUserID(), inv.getAnonymous().booleanValue()); }else{ //按人员范围 list=HRQSDelegator.getIInvActive().getPsnScopeEmail(inv.getPk_inv()); }5.4问卷导入导出功能5.4.1描述如图5-9所示,问卷制作之后为了方便问卷保存以及问卷电子档案迁移,必要的需要实现问卷资料的导入导出以便实现数据迁移,本系统中为了实现此方法实现的功能为EXCEL方式数据导出、导入。当问卷设计结束之后可通过导入、导出向导对其问卷的电子数据进行导入导出。实现的导出数据可以保证问卷设计的完整导出。同样为了保证问卷在公司与公司间共享,问卷导入系统支持修改问卷编码,问卷名称等问卷相关信息。5.4.2模块流程图图5—85.4.3界面风格见图5-9,5-10。5.4.4实现算法导入框架方法publicFormDataImportAction(FrameUIframeUI1){super(frameUI1);//按公司com对象在求职表查询向他投简历的求职者导出重写内容publicList<WizardStep>getSteps(){ List<WizardStep>steps=newArrayList<WizardStep>(); //第一步 WizardStepstepone=newDataIOWizardFirstStep(getWizardModel()); //第二步 WizardStepsteptwo=newDataIOWizardSecondStep(getWizardModel()); //对第二步的表格进行特殊处理 SelectableBillScrollPanestep2Table=(SelectableBillScrollPane)steptwo.getComp(); step2Table.hideTableCol("excel_field_name"); step2Table.hideTableCol("default_value"); //第三步 WizardStepstepthree=newDataIOWizardThirdStep(getWizardModel()); //放到List中 steps=Arrays.asList(newWizardStep[]{stepone,steptwo,stepthree}); returnsteps; }图5—9图5—105.5问卷查看5.5.1描述为了实现统计人员以及管理员对问卷调查结果的查看或者进行数据抽查,问卷查看节点可针对员工填写的问卷进行问卷查看,以及实际文字信息填写内容进行查看。并且可根据问卷调查状态对问卷调查活动进行过滤查看。5.5.2模块流程图图5—105.5.3界面风格图5—115.5.4实现算法调用方法,根据字符串中封装的vo数据进行数据调用,简单的循环算法的出数据中datas的值的长度,并赋值给maxValue,取得数据时候由于平台采用数据分割,为了实现数据与分隔符脱离,使用strLable.replaceAll("\\$","#####&&&&&&&&&&#####");使数据实体分离 publicHrQueryDialoggetQueryDialog(){ StringpkInv=((ResultViewTopPanel)getTopPanel()).getPkInv(); if(queryDlgHash.get(pkInv)!=null){ returnqueryDlgHash.get(pkInv); } HrQueryDialogqueryDialog=newHrQueryDialog(this,getNormalPanel(pkInv),getTemplateInfo()){ publicStringgetWhereSQL(){ QueryTreetree=(QueryTree)getQryCondEditor().getCurrentCriteriaEditor().getCriteria().getCriteriaObject(); QueryTreeNoderoot=(QueryTreeNode)tree.getRoot(); Enumerationenu=root.preorderEnumeration(); //排除根节点 enu.nextElement(); while(enu.hasMoreElements()){ QueryTreeNodenode=(QueryTreeNode)enu.nextElement(); if(!node.isLeaf()){ continue; } if(!(node.getUserObject()instanceofDefaultFilter) ||!((DefaultFilter)node.getUserObject()).getFilterMeta().getFieldCode().equals("hrqs_result.submit_date")){ continue; } DefaultFilterfilter=(DefaultFilter)node.getUserObject(); if(filter.getOperator()instanceofEqOperator){ //等于 filter.setOperator(newEqOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getSQLFieldCode()+">='"+valueString+"00:00:00'and"+meta.getSQLFieldCode()+"<='" +valueString+"23:59:59'"; } }); }elseif(filter.getOperator()instanceofBetweenOperator){ //介于 filter.setOperator(newBetweenOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1){ returnnull; } Stringresult=null; if(value.getFieldValues().size()==1&&value.getFieldValues().get(0)!=null){ result=meta.getFieldCode()+">='"+value.getFieldValues().get(0).getSqlString()+"00:00:00'"; }elseif(value.getFieldValues().size()>1&&value.getFieldValues().get(0)!=null &&value.getFieldValues().get(1)==null){ result=meta.getFieldCode()+">='"+value.getFieldValues().get(0).getSqlString()+"00:00:00'"; }elseif(value.getFieldValues().size()>1&&value.getFieldValues().get(0)==null &&value.getFieldValues().get(1)!=null){ result=meta.getFieldCode()+"<='"+value.getFieldValues().get(1).getSqlString()+"23:59:59'"; }elseif(value.getFieldValues().size()>1&&value.getFieldValues().get(0)!=null &&value.getFieldValues().get(1)!=null){ result="("+meta.getFieldCode()+">='"+value.getFieldValues().get(0).getSqlString()+"00:00:00'" +"and"+meta.getFieldCode()+"<='"+value.getFieldValues().get(1).getSqlString()+"23:59:59'" +")"; } returnresult; } }); }elseif(filter.getOperator()instanceofGtOperator){ //大于 filter.setOperator(newGtOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getFieldCode()+""+getOperatorCode()+"'"+valueString+"00:00:00'"; } }); }elseif(filter.getOperator()instanceofGetOperator){ //大于等于 filter.setOperator(newGetOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getFieldCode()+""+getOperatorCode()+"'"+valueString+"00:00:00'"; } }); }elseif(filter.getOperator()instanceofLtOperator){ //小于 filter.setOperator(newLtOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getFieldCode()+""+getOperatorCode()+"'"+valueString+"23:59:59'"; } }); }elseif(filter.getOperator()instanceofLetOperator){ //小于等于 filter.setOperator(newLetOperator(){ publicStringgetSQLString(FilterMetameta,IFieldValuevalue){ if(value==null||value.getFieldValues()==null||value.getFieldValues().size()<1 ||value.getFieldValues().get(0)==null){ returnnull; } StringvalueString=value.getFieldValues().get(0).getSqlString(); returnmeta.getFieldCode()+""+getOperatorCode()+"'"+valueString+"23:59:59'"; } }); } } returnsuper.getWhereSQL(); } };5.6问卷分析代码实现publicabstractChartViewercreateChartViewer(GeneralVO[]generalvos); /** *得到最大值 *@paramdatas *@returndouble */ protecteddoublegetMaxValue(double[]datas){ doublemaxValue=0; for(inti=0;datas!=null&&i<datas.length;i++){ if(datas[i]>maxValue){ maxValue=datas[i]; } } returnMath.ceil(maxValue); } /** *取得图形展示数据 *@paramgeneralvos *@return */ protecteddouble[]getdatas(GeneralVO[]generalvos){ double[]dbldatas=newdouble[generalvos.length]; intintCnt=0; for(GeneralVOdatainfo:generalvos){ if(datainfo.getAttributeValue(getStrDateKey())==null){ dbldatas[intCnt]=0; }else{ Strings=datainfo.getAttributeValue(getStrDateKey()).toString(); dbldatas[intCnt]=newUFDouble(s).setScale(2,UFDouble.ROUND_HALF_UP).doubleValue(); } intCnt++; } returndbldatas; } /** *取得图形展示项目 *@paramgeneralvos *@return */ protectedString[]getLabels(GeneralVO[]generalvos){ String[]strlabels=newString[generalvos.length]; intintCnt=0; for(GeneralVOdatainfo:generalvos){ StringstrLable=datainfo.getAttributeValue(getStrItemKey()).toString(); if(strLable.length()>8){ strLable=strLable.substring(0,8)+".."; } strlabels[intCnt]=strLable; intCnt++; } returnstrlabels; } /** *取得图形展示项目 *@paramgeneralvos *@return *//**getAllNameLabels(GeneralVO[]String)得到姓名列表*/ protectedString[]getAllNameLabels(GeneralVO[]generalvos){ String[]strlabels=newString[generalvos.length]; intintCnt=0; for(GeneralVOdatainfo:generalvos){ StringstrLable=datainfo.getAttributeValue(getStrItemKey()).toString(); if(!StringUtils.isEmpty(strLable)&&strLable.indexOf("$")!=-1) { strLable=strLable.replaceAll("\\$","#####&&&&&&&&&&#####"); } strlabels[intCnt]=strLable; intCnt++; } returnstrlabels; } 5.6.1显示控件控件分四种,其中饼状图,柱状图,塔状图为swing控件继承修改。如图5-12,如图5-13,如图5-14所示:图5—12图5—13图5—14

结论在前面几章中,我对问卷调查的制作过程从需求分析、设计、实现等阶段分别做了介绍。本软件的问卷调查模块实现了从企业管理者的问卷设计,设定调查范围,问卷活动发布,至下属员工通过ERP自助系统进行电子问卷填写,至用户管理者、企业相关信息统计人员对用户回馈问卷的分析等一些流流程的实现。而本文对所选择的开发语言做了介绍,本网站在开发过程中采用Struts、Hibernate、Spring三大框架相结合,利用Spring的声明式事务管理,不同于以往开发过程中所使用的编程式事务管理,在这一点上,本文也做了详细的介绍。此外,在项目的开发过程中采用规范的软件工程的开发流程,因此在需求分析及数据库设计部分做了大量的工作,这些对本模块后期的编码过程起到了指导作用,在本文中也有所体现。本软件对应此功能现已于年初发行,正在各个合作公司中实施使用中。

致谢

参考文献[1](美)MartyHall,LarryBrown.Servlet与JSP核心编程.第二版.赵学良译.北京:清华大学出版社,2004.06[2]林上杰,林康司.JSP2.0技术手册.北京:电子工业出版社,2005.04[3]孙卫琴.精通Struts:基于MVC的JavaWeb设计与开发.北京:电子工业出版社,2004.08[4]孙卫琴.精通Hibernate.北京:电子工业出版社,2006.09[5]林信良.Spring技术手册.北京:电子工业出版社,2006.06[6]张孝祥.Java就业培训教程.北京:清华大学出版社,2003.09[7]林信良.JavaJDK6学习笔记.北京:清华大学出版社,2007.04:P2-9[8]BruceEckel.ThinkinginJava.ThirdEdition.January,2004[9]萨师煊,王珊.数据库系统概论.第三版.北京:高等教育出版社,2000.02[10]刘佳音.我国人力资源信息网站的现状与发展——基于人才招聘网站的调查分析.情报科学.2004(6):24-25[11]方小明.基于Struts的JavaWeb应用开发(一).软件报,2006.04.10[12]史济民,顾春华,李昌武等.软件工程——原理、方法与应用.第二版.北京:高等教育出版社,2002.12基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论