目 录
摘要
随着互联网技术的发展和数据分析重要性的日益凸显,传统的问卷调查方式逐渐暴露出效率低下、数据处理复杂等问题。为应对这些挑战,本文提出了一种可视化问卷调查系统。本系统采用Java Servlet作为服务器端的核心技术,结合JSP(JavaServer Pages)用于动态网页生成,确保系统的高性能和可扩展性。同时,通过引入HTML5、CSS3及JavaScript等Web开发标准技术,增强了用户体验。数据库层面选用了MySQL来存储问卷结构和响应数据,以保证数据的一致性和安全性。
本文首先阐述了系统的研究背景、意义以及国内外研究现状;随后进行了系统的需求分析,探讨其可行性、功能性等方面的要求;接着详细介绍了系统的设计原理和实现细节,包括系统架构设计、功能模块划分、数据库设计等内容;最后完成了系统的部署和多轮测试,验证了其稳定性和高效性。
本研究旨在探索如何结合现代信息技术,打造一个高效、智能且安全的问卷调查平台,以适应新时代的需求。该系统不仅简化了问卷创建和管理流程,还通过直观的图表展示促进了数据理解和决策制定过程,从而推动社会科学研究方法的进步与发展。
关键词:问卷调查;可视化;Java Servlet
Abstract
With the development of Internet technology and the increasing importance of data analysis, the traditional questionnaire survey has gradually exposed problems such as low efficiency and complex data processing. To address these challenges, this article proposes a visual questionnaire survey system. This system adopts Java Servlet as the core technology on the server-side, combined with JSP (JavaServer Pages) for dynamic webpage generation, ensuring high performance and scalability of the system. Meanwhile, by introducing web development standard technologies such as HTML5, CSS3, and JavaScript, the user experience has been enhanced. MySQL was selected at the database level to store the questionnaire structure and response data, ensuring data consistency and security.
This article first elaborates on the research background, significance, and current research status of the system both domestically and internationally; Subsequently, a systematic requirements analysis was conducted to explore its feasibility, functionality, and other requirements; Then, the design principles and implementation details of the system were introduced in detail, including system architecture design, functional module division, database design, etc; Finally, the deployment and multiple rounds of testing of the system were completed, verifying its stability and efficiency.
This study aims to explore how to combine modern information technology to create an efficient, intelligent, and secure questionnaire survey platform that meets the needs of the new era. This system not only simplifies the process of questionnaire creation and management, but also promotes data understanding and decision-making through intuitive chart displays, thereby advancing and developing social science research methods.
Keywords:questionnaire investigation; Visualization; Java Servlet
1 绪论
1.1 研究背景和意义
随着互联网技术的飞速发展,人们的生活和生产方式发生了深刻的变化。这种变化不仅体现在日常交流和信息获取上,也对传统的问卷调查方式产生了重大影响。基于互联网技术的问卷调查系统迅速崛起,传统的纸质问卷调查方式逐步被更为便捷、高效的在线调查方式所取代[1]。互联网技术的应用使得问卷设计、分发、收集及分析过程更加简便快速,极大地提高了工作效率和数据准确性。
在数据急剧增长的信息时代,网络技术的快速发展给传统问卷调查带来了新的挑战与机遇[2]。电子问卷调查系统应运而生,并逐渐崭露头角,其应用范围广泛覆盖了教育、医疗、市场调研等多个领域。相较于传统的调查手段,电子问卷不仅能够减少纸张浪费,降低环境负担,还能通过自动化处理大幅提高数据处理速度和质量。更重要的是,它为研究人员提供了更灵活多样的数据分析工具,有助于挖掘深层次的信息价值。
基于上述背景,采用Servlet技术栈开发一个可视化问卷调查系统具有重要的现实意义。首先,利用Java EE中的Servlet技术,可以构建一个稳定可靠且易于扩展的Web应用程序,满足不同类型用户的多样化需求。其次,该系统将集成先进的前端技术和数据库管理方案,提供直观易用的操作界面和强大的后台支持,确保用户能够轻松创建、发布并填写问卷。最后,考虑到数据安全性和隐私保护的重要性,系统还将采用严格的认证机制和技术措施来保障用户信息安全。因此,本研究旨在探索如何结合现代信息技术,打造一个高效、智能且安全的问卷调查平台,以适应新时代的需求,推动社会科学研究方法的进步与发展。
1.2研究现状
1.2.1国内研究现状
在国内,随着信息科学技术的推动,互联网技术正深刻改变着人们的生活方式,网络问卷调查在日常生产生活中已成为一种常见的调查形式。最初,参与网络问卷调查的人数有限,因此早期的问卷调查系统设计较为简单。然而,随着互联网的发展,越来越多的人参与到问卷调查中来,传统的单体架构逐渐无法满足日益增长的需求。为了解决这一问题,王晓晓采用前后端分离进行系统开发,前端使用BootStrap框架,后端使用微服务架构对系统进行开发,使系统具有高可用、高并发、易扩展等特性,实现了基于微服务架构的问卷调查系统[3]。
近年来,研究人员不断探索更加高效和灵活的问卷调查系统解决方案。例如,朱晓妤、陈思等人设计了一款基于Vue.js前后端分离技术的问卷调查系统,该系统集成了问卷设计、发布和作答功能于一体,有效地降低了人工成本,提高了工作效率[4]。王政山、陈江则针对传统实名问卷调查耗时耗力的问题,设计了一款基于QT与微服务架构的网上匿名问卷调查系统,不仅节省了人工成本,还提高了工作效率[5]。此外,王卫东探讨了如何在数字时代超越传统的纸笔问卷调查,采用拥有广大全球用户的LimeSurvey问卷调查系统,创新性地开展电子化、网络化、系统化的问卷调查项目[6]。
随着计算机技术的发展和业务需求的变化,传统问卷调查方式已难以满足现代工作需求。李芃森和曾茂春利用CiteSpace可视化分析软件对国内大学生心理问卷调查进行了发文量、关键词突现、作者聚类、关键词聚类等多维度分析,揭示了该领域研究的趋势和发展方向[7]。这项研究不仅提供了宝贵的数据支持,也为后续研究指明了方向。与此同时,杨晟针对传统问卷调查管理方式中存在的诸多问题,如费时费力、数据处理繁琐、效率低下等,设计了一套基于Spring Cloud微服务技术的问卷调查管理系统。该系统涵盖了用户信息管理、问卷信息管理、问题信息管理、题库信息管理以及调查记录管理等多个功能模块,显著提升了问卷调查的效率和准确性[8]。
综上所述,国内关于问卷调查系统的研究呈现出多样化和技术前沿化的趋势。从早期简单的Web表单到如今复杂的微服务架构,再到结合最新前端技术和用户体验优化的设计,这些进步都极大地推动了问卷调查领域的现代化进程。
1.2.2国外研究现状
可视化问卷调查系统在国外已经得到了广泛的研究和应用,这些系统旨在通过图形界面将复杂的数据转化为易于理解的视觉表示,从而帮助研究者快速获取洞察。国外的研究现状显示,这类工具不仅在学术界中备受青睐,在商业、医疗、政府决策等多个领域也获得了显著的应用成果。随着Web技术和数据可视化技术的进步,越来越多的研究致力于提高系统的交互性和实时性,确保用户能够更加便捷地创建、分享和分析问卷数据。
在技术实现方面,国外的研究倾向于利用先进的前端开发框架(如React、Angular或Vue.js)与后端服务(如Node.js、Django或Spring Boot)相结合,以构建高效且响应迅速的可视化平台。同时,对大数据处理能力和机器学习算法的整合成为研究热点之一,使得系统能够处理海量问卷数据,并通过智能分析提供预测性的见解。此外,对于用户体验设计的关注也日益增加,研究者们努力使系统界面更加直观友好,降低用户的使用门槛,特别是对于非技术人员而言。
隐私保护和数据安全是另一个重要研究方向。鉴于问卷调查可能涉及敏感信息,国外学者积极探讨如何在不影响数据分析效果的前提下,采用加密技术和匿名化处理来保障参与者的隐私。这包括研究差分隐私等前沿方法,确保即使是在开放网络环境下,个人身份信息也不会被泄露。
综上所述,国外对可视化问卷调查系统的研究已经深入到技术实现、用户体验优化以及隐私保护等多个层面。通过整合前沿的Web开发技术和数据处理能力,这些系统不仅在功能上日益完善,而且在实际应用中也展现出了高度的安全性和用户友好性。随着研究的不断推进,可视化问卷调查系统正逐步成为连接数据收集与决策支持的关键桥梁,为不同领域的研究和实践提供强有力的支持。
1.3开发技术
1.3.1 Java语言
早在上个世纪90年代,Java就由詹姆斯·高斯林进行开发,自诞生之日起,Java就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今。Java语言是真的是一种纯面向对象的计算机语言,在Java的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Java中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多。Java另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程。如今,随着编程思想的继续发展,Java也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本管理系统采用Java编程语言进行后台的开发,一是鉴于标准化制定以后,Java语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Java代码的能力。
1.3.2 Servlet框架
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。
1.3.3 MySQL
MySQL是一款卓越的关系型数据库管理系统,以其小巧的安装包和易于学习的SQL语言而著称。最初,MySQL并非甲骨文公司(Oracle Corporation)的产品,而是后来被其收购。作为一款开源软件,MySQL无需额外付费,这使其成为教育和研究项目中理想的数据库选择,特别是在注重成本效益的系统开发环境中。
本系统选用了MySQL,因其免费且性能可靠,特别适合实践学习。它支持大容量数据和分布式处理,是中小型企业常用的数据库工具。尽管开源赋予了灵活性和社区支持,但也需注意安全风险,在高安全性需求项目中应加强防护。
MySQL具备跨平台兼容性,不受限于特定硬件或操作系统,任何熟悉SQL的开发者都能高效使用。它支持本地数据存储和结构化查询,简化了数据管理。作为一个网络化的系统,MySQL允许远程访问和数据共享,并通过访问控制确保安全性和稳定性。这些特性使MySQL在需要平衡成本与性能的应用场景中广受欢迎。
1.4论文结构与章节安排
本文除去摘要、参考文献和致谢部分,共分为六章,各章内容安排如下:
第一章:绪论,主要介绍可视化问卷调查系统领域研究的背景和意义、开发现状,开发技术以及论文章节安排。
第二章:系统分析,主要从可视化问卷调查系统的可行性、用户功能、操作流程等方面进行分析,为后续系统设计提供理论支持。
第三章:系统总体设计,主要对可视化问卷调查系统的系统架构、功能模块、数据库进行设计。
第四章:系统详细设计与实现,主要介绍了可视化问卷调查系统各个用户功能界面的实现。
第五章:系统测试,主要对可视化问卷调查系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
第六章:结论。总结全文研究内容。
2系统分析
系统分析是对系统开发的可行性进行研究,分析功能需求以确保系统满足用户期望。系统用例设计将明确定义系统与外部用户的交互场景,系统流程规划则细化系统内部功能流程,确保系统各模块协调工作。通过系统分析,可以建立清晰的系统框架,明确系统目标和功能,为系统开发和实施奠定基础。
2.1 可行性分析
1. 技术可行性
Servlet作为Java EE的核心组件之一,已经拥有成熟的技术体系和广泛的社区支持,能够高效处理HTTP请求并生成动态内容。结合现代前端技术如HTML5、CSS3以及JavaScript框架(例如Vue.js),可以创建出直观且交互性强的用户界面,提供良好的用户体验。因此,从技术层面来说是可行的。
- 经济可行性
采用Servlet技术栈构建的可视化问卷调查系统,在开发成本方面展现出显著的优势,由于Servlet及相关技术栈均为开源软件,因此可以节省大量的软件购买成本,从而降低开发成本。因此,从经济角度分析是可行的。
系统设计了简洁明了的用户界面和直观的操作流程,确保用户能够轻松地创建、发布和填写问卷。为了进一步降低使用门槛,系统还提供了详细的使用说明和全面的操作指南,帮助新用户快速上手并熟练掌握各项功能。因此,从操作角度分析是可行的。
- 市场可行性
随着信息技术的快速发展和普及,越来越多的企业和机构需要进行市场调研和数据分析。可视化问卷调查系统可以满足这些需求,提供高效、便捷、准确的问卷设计和数据分析服务。同时,系统可以通过不断优化和升级,提高用户体验和满意度,增强市场竞争力。因此,从市场角度来看是可行的。
综上所述,可视化问卷调查系统在经济、技术、操作,市场等方面都具有较高的可行性。
2.2 系统功能分析
2.2.1系统功能性需求分析
按照可视化问卷调查系统的角色,主要包括普通用户和管理员这两大用户功能模块,各用户功能模块的具体功能说明如下。
- 普通用户功能
- 注册登录:新用户可以通过注册成为系统用户,注册后后需由管理员进行审核,审核通过后可以用账号密码登录系统。
- 首页:用户可以查看首页展示的导航栏、轮播图、新闻资讯、问卷信息等信息。
- 网站公告:用户可以查看系统发布的网站公告、关于我们、联系方式、网站介绍等信息。
- 新闻资讯:用户可以查看新闻资讯列表中某个资讯的详情并可以点赞、收藏和评论。
- 问卷信息:在该界面用户可以查看问卷信息列表中某个问卷的详情,如标题、类型、发布日期等信息,并可以进行参与答题、点赞、收藏、分享和发表评论等操作。
- 我的:用户点击我的头像的下拉菜单“我的账户”可以查看和修改个人资料(如个人昵称、头像等)和登录密码;点击“个人中心”进入页面可以查看个人中心、问卷参与、问卷报告、反馈评价、收藏和评论管理并进行相关操作;点击“退出”即可退出系统登录。
普通用户角色的用例图如下图2-1所示:
图2-1普通用户用例图
- 管理员功能
- 登录:管理员的账号和密码是事先在数据库中设定好的,管理员可以通过在后台输入正确的账号和密码进行登录。
- 主页:后台主页界面为管理员提供了方便快捷地查看问卷信息、问卷参与、问卷报告、反馈评价统计图等重要信息的功能。
- 公共管理:在公共管理界面,管理员对轮播图和网站公告进行管控。管理员可以对轮播图和网站公告信息进行增删改查操作。
- 用户管理:管理员可以对所有用户信息(普通用户、管理员)进行增删改查操作。支持通过用户名称来查找用户信息。
- 资讯管理:在资讯管理模块管理员对新闻资讯和资讯分类进行管控,可以对新闻资讯和资讯分类信息进行增删改查操作。
- 问卷类型:管理员可以新增问卷类型信息,可以对已有的问卷类型信息进行查询、重置和删除操作。
- 问卷信息:管理员点击“问卷信息”可以查看问卷信息列表中某个问卷信息的详情和评论信息,点击“新增”进入页面填写问卷标题、问卷类型、问卷简介等信息并上传问卷文件后点击“确认”即可完成问卷信息的发布。
- 问卷参与:管理员点击“问卷参与”可以查看问卷参与列表中某个问卷参与信息的详情、下载答题文件和生成报告,点击“生成报告”进入页面填写评分日期、答题分数即可生成问卷报告。
- 问卷报告:管理员点击“问卷报告”可以查看问卷报告列表中某个问卷报告的详情,可以对问卷报告信息进行增删改查操作。
- 反馈评价:管理员点击“评价反馈”可以查看评价反馈列表中某个用户确认的评价反馈的详情并进行回复,支持通过输入用户姓名或反馈标题进行搜索相关评价反馈信息。
- 个人信息:管理员点击右上角的“个人信息”可以修改个人头像、昵称等基本信息。
- 修改密码:管理员点击右上角的“修改密码”可以修改登录密码。修改后可以用信息密码登录系统。
- 退出:管理员点击“退出”即可退出系统登录。
管理员用例图如下图2-2所示。
图2-2管理员用例图
2.2.2系统非功能性需求分析
非功能性需求分析主要是分析本系统的安全性怎么样(是否会泄露用户个人信息),可靠性怎么样(用户操作的时候是不是能够根据实际操作显示信息),性能怎么样(运行是否操作流畅),可拓展性怎么样(功能能否继续拓展)等。具体可以表示在如下2-1表格中:
表2-1可视化问卷调查系统非功能需求表
需求类型 |
描述 |
性能 |
系统应具有高性能,能够快速响应用户请求,保持稳定的性能水平,支持高并发访问和大规模数据处理。 |
可靠性 |
系统应具有高可靠性,确保系统稳定运行,防止系统故障和数据丢失,提供数据备份和恢复机制。 |
安全性 |
系统应具有高安全性,保护用户隐私信息和数据安全,采用加密传输技术、访问控制和身份验证机制。 |
可用性 |
系统应具有高可用性,保证系统全天候运行,最大限度减少系统故障和维护时间,提供灾备和故障转移功能。 |
易用性 |
系统应具有良好的易用性,用户界面设计友好,操作简单直观,提供清晰的指导和帮助文档。 |
可维护性 |
系统应具有良好的可维护性,易于维护和升级,提供模块化和结构化代码,方便开发人员进行维护和修改。 |
可扩展性 |
系统应具有良好的可扩展性,支持新增功能和模块的集成,具备良好的架构设计和扩展性能。 |
2.3系统流程分析
2.3.1程序操作流程
用户访问系统,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图2-3所示。
2.3.2注册流程
未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、姓名等必要信息。后台系统验证并保存用户确认的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图2-4所示。
图2-4注册操作流程图
2.3.3登录流程
用户访问系统,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图2-5所示。
图2-5登录操作流程图
2.4本章小结
本章主要通过对可视化问卷调查系统的可行性分析、功能分析、系统用例分析、流程分析,确定整个系统要实现的功能。同时也为系统的代码实现和测试提供了标准。
3 系统总体设计
本章主要讨论的内容包括 可视化问卷调查系统的架构设计、功能模块设计和数据库系统设计。
3.1 系统架构设计
在系统架构设计中,我将确定系统的整体结构和组件之间的关系。这包括选择适当的架构风格,划分系统的层次结构,并定义各个模块的职责和交互方式。架构图如下图所示。
图3-1系统架构设计图
表示层(Presentation Layer):负责与用户进行交互,将系统的功能和数据以易于理解和操作的方式展示给用户。通常包括用户界面、页面设计和用户输入验证等。
业务逻辑层(Business Logic Layer):处理系统的核心业务逻辑,包括对用户请求的处理、业务规则的执行以及数据的处理和转换。它独立于表现层和数据层,实现了业务逻辑的封装和复用。
数据层(Data Layer):负责数据的存储、访问和管理,包括数据库和持久化机制。数据层提供了对数据的增删改查操作,并与业务逻辑层进行交互,使系统能够有效地存储和检索数据。
这三个层次相互独立,通过明确的接口和协议进行通信,实现了系统的模块化和可扩展性。表现层负责将用户的请求传递给业务逻辑层,业务逻辑层处理请求并返回结果,最后数据层负责与数据库交互并提供数据支持。这种分层架构有助于实现系统的可维护性、灵活性和可测试性。
3.2 系统功能模块设计
3.2.1整体功能模块设计
通过整体功能模块设计,根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。具体的功能模块图如图3-2所示。
图3-2 系统功能模块图
3.2.2用户管理模块设计
(1)用户管理模块结构图
本系统主要分为管理员和普通用户这两个用户角色。它们共享基本功能,但普通用户多了一个注册功能,以便能够注册使用系统。管理员用户在系统中有着操作权限和功能,确保了系统的一致性和易用性。用户管理模块结构图如下图3-3所示:
图3-3系统用户模块结构图
(2)各个结构的具体业务逻辑
a.查询用户信息:设计基础的查询功能,允许用户根据用户姓名查询用户信息。此功能主要用于管理员查询用户信息和用户自行查询个人信息。
b.新增用户信息:普通用户可以通过注册获取账号或由管理员在后台添加,成为系统的注册用户,以便享受系统提供的服务和功能。
c.重置用户信息:用户可以根据需要修改个人基本信息,包括姓名、密码、头像等。这种操作可以提高用户个性化体验。
d.删除用户信息:管理员可以对系统用户信息进行删除操作。
3.2.3问卷信息模块设计
(1)问卷信息模块结构图
可视化问卷调查系统需要一个完善的问卷信息管理模块来存储和管理大量的问卷信息。普通用户可以浏览问卷信息并进行点赞、收藏、评论和参与答题等操作,管理员则具有查询、新增、修改、删除问卷信息的权限,这样的问卷信息管理模块能够有效地组织和管理问卷信息,提供用户查询问卷信息的便利性,同时为管理员提供全面的问卷信息管理的功能,确保系统的正常运行和用户体验。具体的结构图如下:

图3-4问卷信息模块结构图
(2)各个结构的具体业务逻辑
a.查询问卷信息:患者用户可以通过关键词等方式搜索查询问卷信息。
b.新增问卷信息:.管理员具有添加问卷信息的权限,可以新增问卷信息到系统中。
c.重置问卷信息:管理员可以对现有问卷信息进行修改,包括更新问卷文件等。
d.删除问卷信息:管理员可以删除相关问卷信息。
3.3 数据库设计
3.3.1 数据库概念结构设计
本文在系统分析阶段抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。可视化问卷调查系统总体E-R图如下图3-5所示。
图3-5 系统总E-R关系图
3.3.2 数据库逻辑结构设计
数据库逻辑结构设计则是在概念结构的基础上,进行具体的数据库表设计。我们将定义每个表的结构、字段和约束,并建立表与表之间的关系。在此主要罗列系统中所需要的主要数据结构表,如下所示:
表ordinary_users (普通用户)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
ordinary_users_id |
int |
10 |
0 |
N |
Y |
普通用户ID |
|
2 |
user_name |
varchar |
64 |
0 |
N |
N |
用户姓名 |
|
3 |
user_phone_number |
varchar |
16 |
0 |
Y |
N |
用户电话 |
|
4 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
5 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
6 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表questionnaire_information (问卷信息)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
questionnaire_information_id |
int |
10 |
0 |
N |
Y |
问卷信息ID |
|
2 |
questionnaire_title |
varchar |
64 |
0 |
N |
N |
问卷标题 |
|
3 |
questionnaire_cover |
varchar |
255 |
0 |
Y |
N |
问卷封面 |
|
4 |
questionnaire_type |
varchar |
64 |
0 |
Y |
N |
问卷类型 |
|
5 |
release_date |
date |
10 |
0 |
Y |
N |
发布日期 |
|
6 |
number_of_respondents |
double |
9 |
2 |
Y |
N |
0.00 |
答题人数 |
7 |
questionnaire_file |
varchar |
255 |
0 |
Y |
N |
问卷文件 |
|
8 |
questionnaire_introduction |
text |
65535 |
0 |
Y |
N |
问卷简介 |
|
9 |
questionnaire_details |
longtext |
2147483647 |
0 |
Y |
N |
问卷详情 |
|
10 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
11 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
12 |
qrcode_img |
varchar |
255 |
0 |
N |
N |
二维码图片 |
|
13 |
qrcode_title |
varchar |
64 |
0 |
N |
N |
二维码标题 |
|
14 |
questionnaire_participation_limit_times |
int |
10 |
0 |
N |
N |
0 |
参与答题限制次数 |
15 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
16 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表questionnaire_participation (问卷参与)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
questionnaire_participation_id |
int |
10 |
0 |
N |
Y |
问卷参与ID |
|
2 |
participation_number |
varchar |
64 |
0 |
Y |
N |
参与编号 |
|
3 |
ordinary_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
4 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
5 |
user_phone_number |
varchar |
64 |
0 |
Y |
N |
用户电话 |
|
6 |
questionnaire_title |
varchar |
64 |
0 |
Y |
N |
问卷标题 |
|
7 |
questionnaire_type |
varchar |
64 |
0 |
Y |
N |
问卷类型 |
|
8 |
date_of_participation |
date |
10 |
0 |
Y |
N |
参与日期 |
|
9 |
number_of_participants |
varchar |
64 |
0 |
Y |
N |
参与人数 |
|
10 |
answer_file |
varchar |
255 |
0 |
Y |
N |
答题文件 |
|
11 |
questionnaire_report_limit_times |
int |
10 |
0 |
N |
N |
1 |
生成报告限制次数 |
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
14 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
15 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
16 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
表questionnaire_type (问卷类型)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
questionnaire_type_id |
int |
10 |
0 |
N |
Y |
问卷类型ID |
|
2 |
questionnaire_type |
varchar |
64 |
0 |
Y |
N |
问卷类型 |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
3.4本章小结
整个可视化问卷调查系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 系统详细设计与实现
本系统的实现主要是根据前面的系统需求分析和系统总体设计来设计页面并实现业务逻辑。主要从可视化问卷调查系统界面实现、业务逻辑实现这两部分进行介绍。
4.1普通用户功能模块
4.1.1用户注册界面
用户注册界面用于新用户进行账号注册,用户需要填写必要的个人信息并选择合适的用户名和密码。系统会对输入的信息进行验证,验证通过后即可完成注册。其界面展示如下图4-1所示。
图4-1用户注册界面图
4.1.2用户登录界面
用户登录界面用于已注册的用户进行账号登录,用户需要输入正确的用户名、密码和验证信息才能成功登录系统。系统会对输入的信息进行验证,验证通过后即可完成登录,同时,系统提供密码找回或重新注册的选项。其界面如下图4-2所示。
图4-2用户登录界面图
登录代码如下:
public Map<String, Object> login(Map<String, Object> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = (String) data.get("username");
String email = (String) data.get("email");
String phone = (String) data.get("phone");
String password = (String) data.get("password");
List resultList = null;
4.1.3首页界面
首页界面是用户访问该系统的入口页面,它展示系统的主要功能和特色。用户可以查看首页展示的导航栏、轮播图、新闻资讯、问卷信息等信息。其界面展示如下图4-3所示。

图4-3 首页界面图
4.1.4 网站公告界面
用户可以查看系统发布的网站公告、关于我们、联系方式、网站介绍等信息。例如,点击网站公告进入页面可以查看该公告的详细信息。其界面如下图4-4示。

图4-4 网站公告界面图
4.1.5 新闻资讯界面
用户可以查看新闻资讯列表中某个资讯的详情并可以点赞、收藏和评论。支持通过局部搜索、筛选等方式搜索查看相关资讯信息。其界面如下图4-5示。

图4-5 新闻资讯界面图
4.1.6问卷信息界面
在该界面用户可以查看问卷信息列表中某个问卷的详情,如标题、类型、发布日期等信息,并可以进行参与答题、点赞、收藏、分享和发表评论等操作。用户点击“下载文件”可以下载该问卷并填写,点击详情下方的“参与答题”进入页面填写相关信息后并上传已填写的问卷点击“确认”即可完成问卷参与。支持通过关键字搜索、下拉搜索等方式搜索查看相关问卷信息。其界面如下图4-6所示。

图4-6 问卷信息界面图
查询的代码如下:
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
4.1.7个人中心界面
用户点击我的头像的下拉菜单“个人中心”进入页面可以查看个人中心、问卷参与、问卷报告、反馈评价、收藏和评论管理并进行相关操作。如点击“问卷参与”可以查看列表中某个问卷参与的详情和下载问卷答题文件;点击“反馈评价”可以在线确认反馈评价信息,可以查看评价反馈列表中某个评价反馈的状态及处理详情等信息;点击“收藏”可以查看和删除收藏列表信息。其界面如下图4-7所示:

图4-6 个人中心界面图
删除的代码如下:
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
4.2管理员功能模块
4.2.1主页界面
后台主页界面为管理员提供了方便快捷地查看问卷信息、问卷参与、问卷报告、反馈评价统计图等重要信息的功能,帮助他们更好地了解和分析当前问卷调查的相关情况,以便制定相应的管理策略。其界面如下图4-8所示。

图4-8主页界面图
4.2.2公共管理界面
在公共管理界面,管理员对轮播图和网站公告进行管控。管理员可以对轮播图和网站公告信息进行增删改查操作。如点击“轮播图”进入页面点击“新增”填写标题、链接并上传轮播图片后点击“确认”即可完成轮播图的添加。其界面如下图4-9所示。

图4-9公共管理界面图
新增的代码如下:
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
4.2.3用户管理界面
管理员可以对所有用户信息(普通用户、管理员)进行增删改查操作。例如,勾选某个用户或多个用户信息后点击“删除”并确定删除即可删除所选中的用户信息;点击用户信息后面的详情可以查看该用户的详细信息并可以修改用户状态。支持通过用户名称来查找用户信息。其界面如下图4-10所示。

图4-10用户管理界面图
修改的代码如下:
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
4.2.4资讯管理界面
在资讯管理模块管理员对新闻资讯和资讯分类进行管控,可以对新闻资讯和资讯分类信息进行增删改查操作。如点击“新闻资讯”管理员可以查看资讯列表中某个资讯的详情和评论信息。点击资讯分类可以查看资讯分类列表信息,点击列表上方的“新增”进入页面填写类型名称信息后点击“确认”即可完成资讯分类的添加。以新闻资讯为例,其界面如下图4-11所示。

图4-11新闻资讯界面图
4.2.5问卷信息界面
管理员点击“问卷信息”可以查看问卷信息列表中某个问卷信息的详情和评论信息,点击“新增”进入页面填写问卷标题、问卷类型、问卷简介等信息并上传问卷文件后点击“确认”即可完成问卷信息的发布。其界面如下图4-12所示。

图4-12问卷信息界面图
文件上传的代码如下:
protected Map<String, Object> upload(HttpServletRequest request){
log.info("进入方法");
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(MEMORY_THRESHOLD);
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(MAX_FILE_SIZE);
upload.setSizeMax(MAX_REQUEST_SIZE);
upload.setHeaderEncoding("UTF-8");
String uploadPath = request.getSession().getServletContext().getRealPath("\\") +"\\static\\upload\\";
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
try {
FileItem item = upload.parseRequest(request).get(0);
String fileName = new File(item.getName()).getName();
int lastIndexOf = fileName.lastIndexOf(".");
String suffix = fileName.substring(lastIndexOf);
fileName = IdWorker.getId() + suffix;
String dest = uploadPath + fileName;
File storeFile = new File(dest);
item.write(storeFile);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/static/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
return error(30000, "上传失败");
}
4.2.6问卷参与界面
管理员点击“问卷参与”可以查看问卷参与列表中某个问卷参与信息的详情、下载答题文件和生成报告,点击“生成报告”进入页面填写评分日期、答题分数即可生成问卷报告。其界面如下图4-13所示。

图4-13问卷参与界面图
4.2.7问卷报告界面
管理员点击“问卷报告”可以查看问卷报告列表中某个问卷报告的详情,可以对问卷报告信息进行增删改查操作。其界面如下图4-14所示。

图4-14问卷报告界面图
4.2.8评价反馈界面
管理员点击“评价反馈”可以查看评价反馈列表中某个用户确认的评价反馈的详情并进行回复,支持通过输入用户姓名或反馈标题进行搜索相关评价反馈信息。其界面如下图4-15所示。

图4-15评价反馈界面图
5系统测试
5.1测试目的
为了保证可视化问卷调查系统的质量,使其能够稳定的运行,并排除其可能存在的未知隐患。解除软件可能存在的故障,理清楚测试与纠错的关系,如图5-1所示。

图5-1测试与纠错信息流程
5.2 系统功能测试
通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。系统功能测试包括:用户登录功能测试、用户参与答题功能测试、用户发布评论功能测试、管理员新增问卷信息功能测试、管理员删除网站公告功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1用户注册登录测试表
用户注册登录测试用例:
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
用户注册、登录 |
测试用户正确注册、登录 |
|
用户注册成功,登录成功 |
结果输出符合预期 |
通过 |
表5-2客户参与答题测试表
用户参与答题功能测试用例:
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
用户参与答题 |
测试普通用户参与答题功能 |
|
参与答题成功,在个人中心的问卷参与可以查看该问卷参与信息 |
结果输出符合预期 |
通过 |
表5-3用户发表评论测试表
用户发表评论测试用例:
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
用户发表评论 |
测试普通用户发表评论操作 |
|
用户发表评论成功,展示用户评论信息 |
结果输出符合预期 |
通过 |
表5-4管理员新增问卷信息测试表
管理员新增问卷信息测试用例:
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
问卷信息新增测试 |
测试管理员新增问卷信息 |
|
问卷信息新增成功,前台用户可以查看该问卷信息 |
结果输出符合预期 |
通过 |
表5-5网站公告删除测试表
网站公告删除测试用例:
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
网站公告删除测试 |
网站公告删除 |
|
网站公告删除成功,前端不在展示该网站公告信息 |
结果输出符合预期 |
通过 |
5.3 测试结果总结
通过编写可视化问卷调查系统的功能测试用例,已经检测完毕系统测试包括:用户登录功能测试、用户参与答题功能测试、用户发布评论功能测试、管理员新增问卷信息功能测试、管理员删除网站公告功能测试,通过这五大模块功能测试将为可视化问卷调查系统的后期推广运营提供了强力的技术支撑。
6 结论
在开发可视化问卷调查系统之前,需要对用户的实际需求进行全面分析。这不仅包括对系统的可行性研究,还包括对功能需求和其他需求的详细分析。在可行性分析阶段,本人从技术性、经济性等多个角度对系统实现的可能性进行了全面评估,结果表明,该系统的实施是完全可行的。
本文首先概述了可视化问卷调查系统开发的背景及其意义,接着详细阐述了系统的具体业务需求。根据这些需求,本文对系统的结构和功能模块进行了精细的设计。整个系统被划分为多个独特的功能模块,每个模块都具有其特定的功能和作用,以确保系统的高效运行和用户友好性。
在开发本系统的过程中,我收获颇丰,学到了许多书本上学不到的知识。尽管系统已经基本完成,但由于个人专业知识的局限,系统仍有许多需要改进的地方,例如界面布局的优化、代码编写的规范性等。未来,我将继续努力学习,不断提升自己的技术水平,对系统进行进一步的完善。同时,我衷心希望可视化问卷调查系统能够投入实际应用,期望通过该系统能够为教育评估、市场调研、用户反馈收集等提供强有力的支持,从而为相关领域的决策者带来更高的效益。
参考文献
- 李玉亮.基于Spring Cloud的多语言问卷系统的设计与实现[D].中央民族大学,2021.
- 崔艺,张颖,赵启然.Survey Solution电子问卷调查系统应用与展望[J].农业大数据学报,2023,5(04):81-85.
- 王晓晓.基于微服务架构的问卷调查系统的设计与实现[D].河北科技大学,2021.
- 朱晓妤,陈思,张恺,等.基于Vue.js前后端分离技术的问卷调查系统[J].电脑与电信,2020,(10):49-52.
- 王政山,陈江.基于QT与微服务架构的网上匿名问卷调查系统[J].电脑编程技巧与维护,2022,(04):32-33+59.
- 王卫东.数字时代的问卷调查[M].中国人民大学出版社:202306.398.
- 李芃森,曾茂春,朱丽莎,等.国内大学生心理问卷调查的前沿演变与热点领域——基于CSSCI数据库的可视化分析[J].心理月刊,2023,18(20):11-14+26.
- 杨晟.基于微服务的问卷调查系统设计[J].鞋类工艺与设计,2024,4(11):156-158.
- 丁艳华.基于大数据的热力网点问卷调查系统设计与实现[J].信息与电脑(理论版),2024,36(05):109-111.
- 王君.基于大数据技术的患者满意度问卷调查系统设计与实现[J].电脑知识与技术,2022,18(14):16-18+21.
- 李文渊,郭学志,王琦.中国警犬搜爆三十年之训练和使用现状实证研究——基于问卷调查及使用数据的可视化分析[J].北京警察学院学报,2021,(04):116-124.
- 李健鹏,谷天烨,林君健.基于B/S服务于工程教育专业认证的问卷调查系统[J].电子技术与软件工程,2020,(19):207-209.
- 孔敬.基于亲属关系网络的问卷调查系统[J].计算机系统应用,2020,29(07):123-130.
- 朱金波.Java编程语言在计算机软件开发中的应用优势分析[J].信息记录材料,2023,24(05):68-70.
- 王希,戴靓婕.MySQL数据库技术在Web动态网页设计中的运用研究[J].软件,2024,45(07):77-79.
- 左昊.基于MVC模式的可视化平台设计与开发[J].中国新通信,2021,23(19):46-48.
- 丁佩佩.基于JSP/Servlet技术的电商平台开发技术研究[J].科技视界,2021,(18):99-100.
- MUTWEB- A Testing Tool for Performing Mutation Testing of Java and Servlet Based Web Applications[J].International Journal of Innovative Technology and Exploring Engineering,2019,8(12):5406-5413.
- Jessica E L ,Sanoussi M A Y ,Mehdi E C , et al.A comprehensive review of State-of-The-Art methods for Java code generation from Natural Language Text[J].Natural Language Processing Journal,2023,3
- Sunday O B ,Nduka O S .MySQL Database Server: Deploying Software Application to Enhance Visibility and Accountability[J].Current Journal of Applied Science and Technology,2023,42(4):16-23.
致 谢
首先,我要向我的论文指导老师致以最深切的敬意和感谢。在整个论文创作的过程中,老师的指导如同明灯一般照亮了我的前行道路。他不仅耐心地解答我的疑问,还凭借其深厚的学识和敏锐的洞察力,提出了许多具有深远意义的建议。老师的严谨治学态度、敬业精神和高超的教学艺术,为我树立了追求卓越的榜样,对我未来的人生道路和学业成就产生了深远的影响。
同时,我要向我的同学们表达诚挚的感谢。你们不仅是我的亲密战友,也是我生活中的良师益友。正是你们的鼓励和支持,使我在大学期间的学习和生活变得丰富多彩。我要对所有在我求学路上给予我帮助的老师和同学们表示衷心的感谢,是你们的支持和帮助给了我继续前进的力量。
我还要向我的父母表达深深的感激之情。是你们用无尽的爱和关怀,将我抚养成人。你们的养育之恩,我将永生铭记在心。我将会用我的行动和成绩来回报你们的期望。在未来的日子里,我将继续努力,用实际行动来回报你们对我的付出和关爱。
再次感谢所有支持和帮助我的人,是你们让我在求学之路上不再孤单,让我有勇气面对一切挑战。谢谢你们!