目 录
摘 要
本文旨在设计与实现一个基于springboot的疫苗接种系统的设计与实现,该系统的设计与实现将涵盖从需求分析、系统设计、开发实现到测试部署的整个过程。通过对现有的疫苗接种流程进行深入分析,我们将构建一个高效、安全、易用的系统,以提高疫苗接种工作的效率和准确性。
首先,我们将进行需求分析,明确系统的功能和特点。疫苗接种系统需要支持用户注册、登录、疫苗信息展示、接种预约、接种记录查询等功能。同时,系统还需要具备数据安全性、可靠性和可扩展性等特点,以确保用户数据的保密性和系统的稳定性。采用Spring Boot框架,结合前端技术如HTML、CSS、Java等,构建一个前后端分离的系统架构。数据库方面,我们将选择MySQL作为数据存储方案,设计合理的表结构和字段,以满足系统的数据存储需求。完成开发后,我们将进行系统的测试部署。通过编写测试用例,对系统的各项功能进行全面的测试,确保系统的稳定性和准确性。同时,我们还将对系统进行性能测试和压力测试,以评估系统的性能和承载能力。最终,我们将将系统部署到服务器上,供用户使用。
通过本文的介绍,我们可以了解到基于SpringBoot的疫苗接种系统的设计与实现过程。该系统的实现将有助于提高疫苗接种工作的效率和准确性,为人们的健康保驾护航。
关键词:Java;疫苗接种系统;MySQL
Abstract
This paper aims to design and implement the design and implementation of a springboot based vaccination system that will cover the whole process from requirements analysis, system design, development implementation to test deployment. Through an in-depth analysis of existing vaccination processes, we will build an efficient, safe, and easy-to-use system to improve the efficiency and accuracy of vaccination efforts.
First, we will conduct a requirements analysis to clarify the functions and characteristics of the system. The vaccination system needs to support user registration, login, vaccine information display, vaccination reservation, vaccination record query and other functions. At the same time, the system also needs to have the characteristics of data security, reliability and scalability, so as to ensure the confidentiality of user data and the stability of the system. Using the Spring Boot framework, combined with front-end technologies such as HTML, CSS, Java, to build a system architecture separating the front and rear ends, etc. In terms of database, we will select MySQL as the data storage scheme, and design a reasonable table structure and fields to meet the data storage requirements of the system. After completing the development, we will conduct the test and deployment of the system. By writing test cases, all the functions of the system are comprehensively tested to ensure the stability and accuracy of the system. At the same time, we will also conduct performance tests and stress tests of the system to evaluate its performance and carrying capacity. Eventually, we will deploy the system to the server for the users to use.
Through the introduction of this paper, we can learn about the design and implementation process of the SpringBoot-based vaccination system. The implementation of this system will help to improve the efficiency and accuracy of vaccination work, and protect people's health.
Key words: Java; vaccination system; MySQL
1 绪论
随着全球健康意识的提升和医疗技术的进步,疫苗接种已成为预防和控制传染病的重要手段。然而,传统的疫苗接种管理方式存在一些问题,如信息录入繁琐、数据更新不及时、查询统计困难等,这些问题影响了疫苗接种工作的效率和质量。因此,开发一套基于Spring Boot的疫苗接种系统具有重要的现实意义和应用价值。
该系统旨在通过信息化手段,实现疫苗接种信息的快速录入、实时更新和准确查询,提高疫苗接种工作的效率和质量。同时,该系统还可以提供数据分析和统计功能,帮助卫生部门更好地了解疫苗接种情况,为制定科学的免疫策略提供有力支持。
具体而言,该系统的设计与实现具有以下意义:
首先,该系统可以提高疫苗接种工作的效率。通过自动化、智能化的信息处理方式,减少人工操作,缩短信息录入和更新时间,提高疫苗接种工作的效率。
其次,该系统可以提高疫苗接种工作的质量。通过数据校验和审核机制,确保疫苗接种信息的准确性和完整性,避免信息错误和遗漏,提高疫苗接种工作的质量。
最后,该系统可以为卫生部门提供有力的数据支持。通过数据分析和统计功能,帮助卫生部门了解疫苗接种情况,发现存在的问题和短板,为制定科学的免疫策略提供数据支持。
总之,基于Spring Boot的疫苗接种系统的设计与实现具有重要的现实意义和应用价值,将为提高疫苗接种工作的效率和质量,促进全球公共卫生事业的发展做出积极贡献。
基于Spring Boot的疫苗接种系统的设计与实现在国内外的研究现状呈现出积极的发展趋势。随着全球对公共卫生领域的关注度不断提升,疫苗接种作为预防传染病的重要手段,其管理系统的智能化、高效化、便捷化需求也日益凸显。
在国内,随着信息技术的快速发展,基于Spring Boot的疫苗接种系统设计与实现受到了广泛的关注。Spring Boot作为一种轻量级、易上手的开源框架,为开发者提供了快速构建Web应用的便利。许多研究机构和企业纷纷投入研发力量,利用Spring Boot框架开发疫苗接种系统,以提高疫苗接种工作的效率和质量。在系统设计方面,国内研究者注重系统的功能性、稳定性和可扩展性。他们通过深入研究疫苗接种的业务流程,设计出符合实际需求的系统架构,确保系统能够高效处理疫苗接种的各个环节。同时,他们还关注系统的用户体验,力求为用户提供简洁、直观的操作界面,降低使用难度。在实现技术方面,国内研究者充分利用了Spring Boot框架的优势,结合数据库、Web前端等相关技术,实现了疫苗接种系统的各项功能。他们不断优化系统性能,提高系统的并发处理能力和稳定性,确保系统能够在高负载下稳定运行。
在国际上,基于Spring Boot的疫苗接种系统设计与实现同样受到关注。许多国家和地区的卫生部门、研究机构和企业都在积极探索利用信息技术提高疫苗接种工作的效率和质量。他们借鉴国内的成功经验,结合本地实际情况,设计出各具特色的疫苗接种系统。
总体来说,基于Spring Boot的疫苗接种系统设计与实现在国内外都呈现出良好的发展态势。未来,随着技术的不断进步和应用场景的不断拓展,相信这一领域的研究和实践将会取得更加丰硕的成果。
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
2 疫苗接种系统分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
2.1 可行性分析
系统可行性分析是对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
疫苗接种系统存储所使用的mysql数据库以及开发中所使用的IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用springboot框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前springboot框架也是很多企业选择的框架之一。
从经济可行性上看项目在开发阶段需要一台开发PC,在生产阶段需要web服务器和数据库服务器。一台个人PC从经济上来看也不是太多问题,在后期的系统部署生产上来说,服务器的投入也不会过高,在经济层面上是一个比较可行的。
系统从法律层面上来没有对第三方有其他放有法律层面的问题,系统数据库采用的Mysql 开源社区数据库、框架采用的是开源的springboot。系统资讯和相关内容也是法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。
2.2 系统功能分析
疫苗接种系统我划分为了管理员模块、普通用户模块两大部分。
普通用户管理模块:
1. 首页:普通用户访问网站时,首先会看到的是首页。首页通常会展示网站的核心功能和最新动态,以及疫苗资讯的概览。用户可以在首页上快速了解到疫苗的种类、接种点、接种时间等基本信息,以及网站提供的服务和功能。
2. 疫苗资讯:在疫苗资讯板块,普通用户可以查看各种与疫苗相关的新闻、公告和科普知识。这些内容通常由专业的医疗团队撰写和审核,旨在帮助用户更好地了解疫苗的重要性和接种的必要性。用户可以通过浏览这些资讯,增加对疫苗的认知和了解。
3. 疫苗信息:疫苗信息板块是用户获取具体疫苗信息的关键区域。在这里,用户可以查看各种疫苗的详细介绍,包括疫苗名称、疫苗类型、接种账号、疫苗价格等。用户还可以根据自己的需求,筛选出符合自己条件的疫苗信息,以便更好地进行接种决策。
4. 我的账户:我的账户是用户管理个人信息和接种记录的重要平台。普通用户可以在这里注册和登录账户,填写个人信息和接种意愿,以便网站能够为用户提供更加个性化的服务。同时,用户还可以在我的账户中查看自己的接种记录、预约接种时间、提醒接种等功能,确保自己能够按时、安全地接种疫苗。
5.个人中心:用户可以在个人中心查看个人首页、接种记录、收藏信息。
6.网站公告:用户可以在此页面查看网站相关的公告信息,可以及时了解网站公告信息。
管理员管理模块:
1. 后台首页:管理员登录后台后,首先看到的是直观易用的后台首页。这里汇集了系统的核心数据概览,包括疫苗库存、接种记录等关键信息,帮助管理员迅速了解系统整体运行状态。
2. 系统用户管理:在此模块,管理员可以全面管理系统的用户信息,包括用户注册、登录、权限分配等。通过精细化的权限控制,确保不同用户只能访问其权限范围内的功能模块。
3. 疫苗信息管理:管理员可以添加、编辑、删除疫苗信息,包括疫苗名称、疫苗类型、疫苗价格、疫苗封面等关键数据。同时,系统支持对疫苗信息进行分类管理,便于快速查询和统计。
4. 接种记录管理:此模块详细记录了每位用户的疫苗接种情况,包括接种时间、疫苗种类、接种账号等信息。管理员可以按需查询、导出接种记录,为疫情防控提供有力数据支持。
5. 疫苗入库管理:管理员可以在此模块进行疫苗的入库操作,记录疫苗入库的时间、数量、名称等信息。系统支持批量导入入库数据,提高工作效率。
6. 疫苗出库管理:当疫苗需要从仓库中出库时,管理员可以在此模块进行操作。出库记录包括出库时间、数量、价格等详细信息,确保疫苗流向清晰可追溯。
7. 系统管理:管理员可以在此进行前台发布的轮播图日常维护和管理。并支持增删改查的操作。
8. 网站公告管理:管理员可以在此发布系统公告,通知用户关于系统的更新、维护或其他重要信息。公告支持多种格式和样式,确保信息传达清晰准确。
9. 资源管理:此模块用于管理系统的各类疫苗资讯、新闻分类列表信息,如图片、文档、视频等。管理员可以上传、下载、删除资源文件,确保系统资源的完整性和安全性。
基于springboot的疫苗接种系统的非功能性需求比如基于springboot的疫苗接种系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表2-1基于springboot的疫苗接种系统非功能需求表
安全性 | 主要指基于springboot的疫苗接种系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指基于springboot的疫苗接种系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响基于springboot的疫苗接种系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着基于springboot的疫苗接种系统的页面展示内容进行操作,就可以了。 |
可维护性 | 基于springboot的疫苗接种系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
疫苗接种系统的完整UML用例图分别是图2-2和图2-3。
图2-2就是管理员角色的用例展示。
图2-2疫苗接种系统管理员角色用例图
图2-3就是普通用户角色的用例展示。
图2-3疫苗接种系统普通用户角色用例图
2.4 系统流程分析
2.4.1 数据流程
开发疫苗接种系统最主要的一个目的就是实现用户对疫苗的接种申请,图2-4就是系统的数据流图。
图2-4疫苗接种申请操作展开图
2.4.2 业务流程
分析完疫苗接种系统的数据流,那么接下来我们来看系统的业务流程,图2-5就是业务流程图:
本章主要通过对疫苗接种系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个疫苗接种系统要实现的功能。同时也为疫苗接种系统的代码实现和测试提供了标准。
3 疫苗接种系统总体设计
本章主要讨论的内容包括疫苗接种系统的功能模块设计、数据库系统设计。
3.1 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本疫苗接种系统中的用例。那么接下来就要开始对本疫苗接种系统的架构、主要功能和数据库开始进行设计。疫苗接种系统根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。
图3-1 疫苗接种系统功能模块图
3.1.2用户模块设计
本系统的用户包括管理员和普通用户两种模块的功能基本是相同的,用户比管理员多了一个注册功能,所以以用户模块的结构图为例进行分析,用户模块结构图为例进行分析,如下图:
图3-2用户模块结构图
3.1.3 评论管理模块设计
疫苗接种系统是一个交流性质的公开平台,用户在平台上提交评论,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,给予管理员删除不合适的评论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:
图3-3评论管理模块结构图
3.1.4疫苗管理模块设计
疫苗接种系统是中需要存储不少疫苗工信息,其模块功能结构,具体的结构图如下:
图3-4疫苗信息模块结构图
3.1.5接种申请管理模块设计
疫苗接种系统最重要的一个功能就是接种申请,其模块功能结构,具体的结构图如下:
图3-5接种申请模块结构图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1 数据库概念结构设计
下面是整个疫苗接种系统中主要的数据库表总E-R实体关系图。
图3-6 疫苗接种系统总E-R关系图
3.2.2 数据库逻辑结构设计
通过上一小节中疫苗接种系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | number_verification | varchar | 64 | 0 | Y | N | 号码验证 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vaccination_records_id | int | 10 | 0 | N | Y | 接种记录ID | |
2 | vaccine_number | varchar | 64 | 0 | Y | N | 疫苗编号 | |
3 | vaccine_name | varchar | 64 | 0 | Y | N | 疫苗名称 | |
4 | vaccine_type | varchar | 64 | 0 | Y | N | 疫苗类型 | |
5 | vaccine_prices | int | 10 | 0 | Y | N | 0 | 疫苗价格 |
6 | vaccination_account | int | 10 | 0 | Y | N | 0 | 接种账号 |
7 | vaccination_time | datetime | 19 | 0 | Y | N | 接种时间 | |
8 | situation_notes | varchar | 64 | 0 | Y | N | 情况备注 | |
9 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
10 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
11 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vaccine_information_id | int | 10 | 0 | N | Y | 疫苗信息ID | |
2 | vaccine_number | varchar | 64 | 0 | Y | N | 疫苗编号 | |
3 | vaccine_name | varchar | 64 | 0 | Y | N | 疫苗名称 | |
4 | vaccine_type | varchar | 64 | 0 | Y | N | 疫苗类型 | |
5 | vaccine_prices | int | 10 | 0 | Y | N | 0 | 疫苗价格 |
6 | remaining_inventory | int | 10 | 0 | Y | N | 0 | 剩余库存 |
7 | vaccine_cover | varchar | 255 | 0 | Y | N | 疫苗封面 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vaccine_outbound_id | int | 10 | 0 | N | Y | 疫苗出库ID | |
2 | vaccine_number | varchar | 64 | 0 | N | N | 疫苗编号 | |
3 | vaccine_name | varchar | 64 | 0 | Y | N | 疫苗名称 | |
4 | vaccine_type | varchar | 64 | 0 | Y | N | 疫苗类型 | |
5 | vaccine_prices | varchar | 64 | 0 | Y | N | 疫苗价格 | |
6 | remaining_inventory | varchar | 64 | 0 | Y | N | 剩余库存 | |
7 | outbound_quantity | int | 10 | 0 | Y | N | 0 | 出库数量 |
8 | outbound_time | datetime | 19 | 0 | Y | N | 出库时间 | |
9 | reason_for_outbound | text | 65535 | 0 | Y | N | 出库缘由 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vaccine_storage_id | int | 10 | 0 | N | Y | 疫苗入库ID | |
2 | vaccine_number | varchar | 64 | 0 | N | N | 疫苗编号 | |
3 | vaccine_name | varchar | 64 | 0 | Y | N | 疫苗名称 | |
4 | vaccine_type | varchar | 64 | 0 | Y | N | 疫苗类型 | |
5 | vaccine_prices | varchar | 64 | 0 | Y | N | 疫苗价格 | |
6 | remaining_inventory | varchar | 64 | 0 | Y | N | 剩余库存 | |
7 | inventory_quantity | int | 10 | 0 | Y | N | 0 | 入库数量 |
8 | storage_time | datetime | 19 | 0 | Y | N | 入库时间 | |
9 | reason_for_procurement | text | 65535 | 0 | Y | N | 采购缘由 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
整个疫苗接种系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 疫苗接种系统详细设计与实现
疫苗接种系统的详细设计与实现主要是根据前面的疫苗接种系统的需求分析和疫苗接种系统的总体设计来设计页面并实现业务逻辑。主要从疫苗接种系统界面实现、业务逻辑实现这两部分进行介绍。
4.1用户功能模块
4.1.1 前台首页界面
当进入的疫苗接种系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是公告信息,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
疫苗接种系统的用户和医护人员可以进行注册登录,当用户左上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号,选择身份,然后填写身份信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可注册成功。其用注册界面展示如下图4-2所示。
图4-2注册界面图
注册关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
疫苗接种系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到疫苗接种系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
登录关键代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.1.4 疫苗资讯界面
当访客点击疫苗接种系统中导航栏上的“疫苗资讯”后将会进入到该“疫苗资讯”列表的界面,然后选择想要看的疫苗资讯信息,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作,疫苗资讯界面如下图4-4所示。
图4-4疫苗资讯界面图
4.1.5疫苗信息详情界面
用户可以查看疫苗信息,在查询到自己想要了解的疫苗的时候,可以进入查看详细的介绍,点击“接种申请”这一按钮以后会跳转到接种申请信息填写的界面,根据提示填写好接种申请的信息,点击“提交”以后接种申请就完成了,在疫苗信息详情这个界面,同时支持用户对喜欢的疫苗进行收藏、点赞的功能,疫苗信息详情展示页面如图4-5所示。
图4-5疫苗信息详情界面图
4.2管理员功能模块
4.2.1用户管理界面
管理员点击“用户管理”这一菜单会显示管理员、普通用户两个子菜单,管理员可以对这两个角色的信息进行增删改查操作。界面如下图4-6所示。
图4-6用户管理界面图
用户管理关键代码如下:
@PostMapping("/add")
@Transactional
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.2 疫苗信息管理界面
点击“疫苗信息”按钮会显示自己添加的疫苗信息,如果想要添加新的疫苗信息,点击“添加”按钮根据提示输入疫苗信息,点击“提交”后在疫苗信息界面就可以显示了,如果信息有错可以对疫苗信息进行更新维护,也可以直接删除某一疫苗信息,还可以管理评论信息,界面如下图4-7所示。
图4-7疫苗信息管理界面图
管理员点击“接种记录”会显示出所有的接种记录信息,支持输入接种针剂或者申请用户对接种记录信息进行查询,同时可以选择某一条接种记录信息,点击“删除”进行删除,也可以点击后面的“异常登记”按钮对接种记录的异常登记信息进行更新维护。界面如下图4-8所示。
图4-8接种记录管理界面图
5系统测试
5.1 系统测试用例
系统测试包括:用户登录功能测试、疫苗资讯展示功能测试、疫苗信息添加、疫苗信息搜索、密码修改、疫苗信息功能测试,如表5-1、5-2、5-3、5-4、5-5、5-6所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
疫苗资讯查看功能测试:
表5-2 疫苗资讯查看功能测试表
用例名称 | 疫苗资讯查看 |
目的 | 测试疫苗资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击疫苗资讯列表 |
预期结果 | 可以查看到所有疫苗资讯信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加疫苗信息管理界面测试:
表5-3 管理员添加疫苗信息管理界面测试表
用例名称 | 添加疫苗信息测试用例 |
目的 | 测试疫苗信息添加功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员点击疫苗信息,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的疫苗信息 |
实际结果 | 实际结果与预期结果一致 |
疫苗信息搜索功能测试:
表5-4疫苗信息搜索功能测试表
用例名称 | 疫苗信息搜索测试 |
目的 | 测试疫苗信息搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的疫苗信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
疫苗信息功能测试:
表5-6疫苗信息功能测试表
用例名称 | 疫苗信息测试用例 |
目的 | 测试用户疫苗信息功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)搜索查看疫苗信息,点击疫苗信息。 2)填写疫苗信息,点击进行提交。 |
预期结果 | 疫苗信息成功 |
实际结果 | 实际结果与预期结果一致 |
5.2 系统测试结果
通过编写疫苗接种系统的测试用例,已经检测完毕用户登录模块、疫苗资讯展示模块、疫苗信息添加模块、疫苗信息搜索模块、密码修改模块、疫苗信息模块功能测试,通过这6大模块为疫苗接种系统的后期推广运营提供了强力的技术支撑。
6结论
本文介绍了一个疫苗接种系统的设计与实现过程。该系统使用了Spring Boot框架作为后台开发工具,Tomcat服务器作为中间件,Mysql作为数据库管理平台,前端采用了JQuery框架,并结合Validate校验框架来减少前端代码的输入量。
在开始开发之前,我们进行了大量的准备工作。通过阅读和学习相关文献资料,我们获得了许多宝贵的方法和设计思路,对系统的开发起到了重要的作用。在技术选型方面,我们选择了自己比较熟悉的Web、SpringBoot和MYSQL等技术。这些技术都是在之前的学习中积累的经验。虽然开发工作量较大,但正是由于之前的积累和准备,我们才能够顺利地完成这个项目。因此,经验的积累和充分的准备是非常重要的。
当然,在系统的设计与实现过程中,我们也离不开老师和同学们的帮助。正是由于他们的指导和帮助,我们才能够按时完成这个系统。在这个过程中,我们也收获了很多,并意识到系统还有改进的空间。由于专业知识的限制,我们无法做到完美,希望将来有机会能够真正投入使用并不断改进。
[1]Mustain M ,Ariyanti D A .Increasing Globalization Business and Ecotourism Branding on the Beach of Delegan, Gresik, East Java[J].IOP Conference Series: Earth and Environmental Science,2024,1298(1):
[2]Wahyudi ,Tiffany K V ,Mulyadi Y , et al.Morpho-dynamic Induced Rip Currents in Klayar Beach, Pacitan, East Java, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1298(1):
[3]王海玲,翁智峰. 疫苗接种效应影响下的SVEIR模型的动力学分析 [J]. 厦门大学学报(自然科学版), 2024, 63 (02): 329-334.
[4]刘娜,王华庆,栾琳,等. 我国先天性心脏病患儿预防接种现状研究的系统综述 [J/OL]. 上海预防医学, 1-8[2024-04-10].
[5]Febriyanti M R ,Saefullah K ,Susanti D R , et al.Knowledge, attitude, and utilization of traditional medicine within the plural medical system in West Java, Indonesia.[J].BMC complementary medicine and therapies,2024,24(1):64-64.
[6]韩小龙,司珍,吕晓峰等.基于面向对象编程的Java语言程序设计方法分析[J].集成电路应用,2024,41(01):228-229
[7]郭子傲,杨凯江.基于Java的在线音乐系统的设计与实现[J].工业控制计算机,2023,36(10):66-67+70.
[8]丁玉青,孙逸飞,朱敏.基于JAVA的共享蓝牙耳机小程序设计[J].科技与创新,2023,(20):152-154.
[9]刘红鸽.基于Java Web的远程数学实验教学系统设计与实现[J].办公自动化,2023,28(19):31-34.
[10]尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023,(05):45-47.
[11]唐型基,柴群,杨光临.基于Java平台的远程线上教学系统设计[J].信息与电脑(理论版),2023,35(18):75-77.
[12]赖凌辉.基于Java的工厂综合管理系统设计与实现[J].信息与电脑(理论版),2023,35(18):107-109+113.
[13]张娜,杨贺.基于iRFID的疫苗运输实时监测管理系统[J].科技资讯,2023,21(09):9-12.
[14]王铎霖,刘钧玉,陈新等.疫苗接种全流程管理系统的设计与应用[J].中国数字医学,2022,17(12):72-76+111.
[15]张国明,汤奋扬,王俊淑等.江苏省成人预防接种管理系统设计[J].医疗卫生装备,2022,43(10):45-50.
[16]余凯玲.公立医院疫苗接种管理系统的设计与实现[J].福建电脑,2022,38(10):79-82.
[17]马金凤,林坤,李佳琦等.社区医院疫苗接种管理系统设计[J].福建电脑,2022,38(07):59-65.
[18]贾黎,刘忠超,李英玲.基于SpringBoot+Vue新冠疫苗接种全过程管理系统[J].西南民族大学学报(自然科学版),2022,48(02):181-189.
[19]杨天帅,疫苗接种智能管理系统.河南省,河南宏力医院有限公司,2021-04-01.
[20]庞龙龙,杨威,杜国明等.张家港市疫苗管理信息系统的设计、应用与扩展[J].职业与健康,2020,36(22):3154-3159.
眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。尤其感谢我的指导老师,在选题的过程中与我进行了深入的交流,在毕业设计期间给我提供了一些指导。四年的学习生活让我受益良多,老师们的丰富的学术知识、认真负责的学习态度让我受益匪浅。在此,我深深地感谢那些曾经给予我帮助和指导的老师!
我们的论文得益于许多学者的贡献,他们的研究成果为我们提供了宝贵的指导,使我们能够更好地完成这篇文章。感谢我的同学和朋友在我的写作以及排版过程中给予热情的帮助,才使得我比较顺利的完成了这篇论文。
感谢大学里遇见的朋友,你们在我这四年里留下无数的温暖和快乐,让我对这个校园多了一份留念。最后,感谢我的父母、辅导员、班长,以及室友们对我大学生活上的关心和理解,让我能保持乐观和追求我所热爱的。尽管我的能力有限,但我仍然尽力去完善这篇论文,并且诚挚地希望各位老师和学友能够给予宝贵的指导与意见!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~