摘 要
天文知识科普系统是一个全面而丰富的平台,旨在普及天文学知识。它涵盖了一系列功能,包括用户管理、名词速查、行星介绍、太阳科普、星空认知、天文现象解读、公告信息发布以及繁星论坛等。通过这个系统,用户可以快速查找专业术语,深入了解各个行星的特性,探索太阳的奥秘,提升对星空的认识,并解读各种天文现象。系统还会发布最新的天文活动和信息,提供一个论坛供天文爱好者交流和讨论。这是一个为天文爱好者和学习者提供一站式服务的平台。
本论文将总体分析天文知识科普需求,再从不同角度分析具体功能需求,运用Java相关技术,采用MySQL数据库,讨论如何设计并实现一个天文知识科普系统。分析和设计主要从管理员和用户二个角色上展开研究,介绍了各个功能模块的实现,并通过系统测试对天文知识科普系统进行调试,将各个功能的测试结果与期望设计进行逐一比对,找出BUG和欠缺之处,从而进一步优化改进系统。
本套基于Java的天文知识科普系统的设计与实现,希望能让用户通过互联网得到方便而快捷的系统管理体验,在此基础的同时提高工作效益。
关键词:Java;天文知识;科普;MySQL;
Abstract
The astronomical knowledge popularization system is a comprehensive and rich platform for the popularization of astronomical knowledge. It covers a series of functions, including user management, term quick search, planet introduction, sun science popularization, star cognition, astronomical phenomenon interpretation, announcement information release and star forum. Through this system, users can quickly find technical terms, gain insight into the characteristics of individual planets, explore the mysteries of the sun, improve their understanding of the starry sky, and interpret various astronomical phenomena. The system will also publish the latest astronomical events and information, providing a forum for astronomy enthusiasts to exchange and discuss. It is a one-stop platform for astronomy enthusiasts and learners.
This paper will analyze the demand for astronomical knowledge popularization in general, and then analyze the specific functional requirements from different angles, and discuss how to design and implement an astronomical knowledge popularization system by using Java related technology and MySQL database. The analysis and design mainly studied from the roles of administrator and user, introduced the implementation of each functional module, and debugged the astronomical knowledge popularization system through system testing, compared the test results of each function with the expected design one by one, found out bugs and shortcomings, and further optimized and improved the system.
This set of astronomy knowledge popularization system based on Java is designed and implemented in the hope that users can get convenient and fast system management experience through the Internet, and improve the work efficiency at the same time.
Key words: Java; Astronomical knowledge; Popularization of science; MySQL;
目录
第1章 绪论
1.1课题背景与意义
随着科技的进步和媒体的发展,人们对宇宙奥秘的好奇心被进一步激发,而天文科普便扮演了桥梁的角色,将专业的天文学知识以通俗易懂的方式传递给公众。在课题背景上,我们正处于信息爆炸的时代,尽管网络为人们提供了获取知识的便捷途径,但面对海量且碎片化的信息,人们往往难以辨识和吸收系统的科学知识。天文学作为一个专业领域,其学术语言和理论对于普通大众来说有一定的难度,这就使得天文学知识的传播需要借助有效的科普平台来实现。
天文知识科普系统的开发意义在于它提供了一个集准确性、系统性、互动性于一体的学习环境。它不仅帮助公众建立起对宇宙的基本认识,还通过论坛等互动环节激发学习者之间的讨论与合作,进一步促进了天文爱好者社群的成长。这个系统也有助于培养公众的科学素养,提高他们对科学现象的理解能力,从而能够更加理性地看待科技进步和社会发展中的各种问题。
天文知识科普系统不仅是传播科学知识的有效工具,也是提升公民科学素质、促进科学文化交流的重要平台。它的建立和应用对于普及天文学知识、满足人们对宇宙探索的渴望、以及推动科学普及事业的发展都具有深远的意义。
1.2国内外研究现状
在国外,天文科普工作起步较早,许多发达国家拥有成熟的天文科普体系,包括各种天文馆、观测站、科普活动和在线教育资源。例如,美国的国家航空暨太空总署(NASA)提供了大量的在线资源和工具,供全球用户了解宇宙和太空探索的最新发现。欧洲空间局(ESA)也通过其官方网站和社交媒体平台进行广泛的科普传播。国际天文学联合会(IAU)等组织也会定期举办天文科普活动和会议,推动全球范围内的知识共享。
在国内,天文科普研究与实践也在近年来得到了快速发展。随着中国科学技术的进步,特别是航天事业的蓬勃发展,公众对天文知识的兴趣日益浓厚。中国天文学会等机构积极开展科普工作,建立天文教育基地,举办各类讲座和活动。国内的一些大型天文望远镜和观测站,如FAST射电望远镜和紫金山天文台,也逐渐向公众开放,提供学习和体验的机会。随着网络技术的普及,国内也出现了一批优秀的天文科普网站和在线学习平台,如“天文网”和“中科院天文台”,它们提供了丰富的教育资源和互动式学习体验。
无论是国内还是国外,天文知识科普系统都在不断进步和完善,旨在通过多种渠道和方式,让更多的人能够接触和理解天文学,激发公众对宇宙探索的热情,并促进科学素养的提升。
1.3论文结构
本论文主要通过六个章节来展开研究,并在论文的最后会做出我的给个人总结。
第一章绪论主要介绍了本课题的研究背景与意义,以及国内外的研究现状并给出了本篇论文的结构。
第二章主要介绍了系统的相关技术和系统环境,主要涉及JAVA相关技术、MySQL数据库技术,使用MyEclipse作为开发工具等。
第三章主要进行了系统需求分析,先进行了总体分析,再分别从前台系统需求分析和后台系统需求分析两个方面展开分析。
第四章主要介绍了系统的总体设计以及详细系统的设计,包括数据库设计、前台功能设计和后台功能设计。
第五章主要介绍了系统各种功能的实现,通过展示相关功能截图,展示了本天文知识科普系统的具体实现细节。
第六章主要介绍了系统测试,分析了软件测试的意义并讲述了测试方法和测试环境。
最后,进行了论文的个人总结。
第2章 相关技术和系统环境
2.1 Java相关技术
Java语言是Sun公司开发的面向对象的程序设计语言,其目的是最小化其操作过程中的依赖关系。它是为了允许应用程序开发者立即编写并运行在任何地方,也就是说,编译后的Java代码可以在所有支持Java的平台上运行而不需要重新编译。
Java应用程序通常编译成字节码,可以在任何Java虚拟机上运行而不用考虑计算机的体系结构。直到如今,Java依然是所有编程语言中最流行的语言,特别是对于客户端—服务器Web应用程序。同时,Java软件的开发和维护需要很高的成本[3]。
Java具有以下特点:简单性;面向对象;编译和解释性;健壮性;可移植性;高性能。Java语言不仅应用于Web开发,同样广泛应用于移动APP开发、金融服务、大数据、科研等多个领域。根据上述特点,Java语言在系统的设计与实现方面具有许多优点。首先,Java语言从出世到发展至今,拥有众多的开发人员,具有强大的开源框架、成熟的设计模式和数据支持。其跨平台的特性和可移植性极大地便捷了开发工作。最后,从安全性和稳定性的角度来看,Java的健壮性决定了Java语言的体系结构适合企业系统体系结构所需的大规模的系统应用软件。
Java的语法在很大程度上受到C++的影响,C++是一种具有结构化、通用性和面向对象的编程语言,Java则大不相同地被设计成是完全面向对象的语言。Java是在类中编写的,除了一些初始的原始数据,如整数、浮点类型等,每个数据项都是一个对象,首先,为了使语言易于使用,指针等C++很少使用的特性不存在于JAVA中,从而使编程过程简单易行。再者,Java作为面向对象语言,是由类组成的,类是用Java操作数据的数据和方法的集合。它是按照一定的系统和层次组织起来的,这样子类就可以继承方法。在Java编程语言中,程序是由类创建的。从类的定义中,可以创建任意数量的对象,这些对象称为类的实例。如果把类看作为一个工作室,那么每个实例都可以通过设计计划来对应工作室创造的作品。一般类的成员主要是字段。字段是属于类本身或类的对象的数据边框;方法是对要操作的状态字段进行操作的语句的集合。这些方法可以为字段和其他变量赋值,计算算术表达式,调用方法,并控制执行流。另外,Java编译器生成字节码,而不是由通用编程语言生成的机器代码,它可以有效地传输到多个平台,并在任何平台上用Java解释器和运行系统执行。如果要运行Java程序,首先需要使用文本编辑器将源代码写入文件;然后运行编译器将源代码编译为字节码,这是相对于Java虚拟机的机器语言,可以直接在Java虚拟机上运行。在Java工作的全过程中,需要涉及到Java的类文件格式、Java虚拟机、Java语言和Java对应的应用程序接口。还有,在扩展编译期间可以检测到一些潜在的类型不匹配。Java不支持指针,消除了重写存储的可能性。异常处理机制还降低了恢复错误处理过程和任务的难度。Java语言具有实时编译程序的功能。它可以在运行时将Java字节码转换成CPU特定的机器代码,从而基本上实现了完全编译。这个简单的过程使Java具有高性能。明确地解释每个基本数据类型的大小和操作行为,运行系统需要用ANSIC语言编写,这使得Java语言本身具有很强的可移植性。
2.2 MyEclipse开发工具
MyEclipse是一款功能强大的Java EE集成开发环境(IDE),主要用于开发基于Java、J2EE的Web应用程序。它提供了丰富的工具和功能,包括代码编辑器、调试器、版本控制、构建工具等,帮助开发人员提高开发效率和质量。
MyEclipse支持多种编程语言,如Java、JavaScript、HTML、CSS等,同时还支持多种数据库和服务器平台,如MySQL、Oracle、Tomcat等。它还提供了丰富的插件和扩展,可以根据需要定制开发环境[6]。
MyEclipse还具有强大的代码自动完成和重构功能,可以帮助开发人员快速编写高质量的代码。它还提供了内置的调试器和性能分析工具,可以帮助开发人员快速定位和解决程序中的问题。
2.3 MySQL数据库
MySQL是一种开源的关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)作为其标准的数据管理语言。MySQL最初由瑞典的MySQL AB公司开发,后来被Sun Microsystems收购,再后来又被Oracle Corporation收购。
MySQL数据库技术具有高性能、稳定性强、易于使用和扩展等优点。它可以在多种操作系统上运行,包括Windows、Linux和Mac OS等。MySQL支持多线程处理和多用户访问,可以处理大量的并发请求。此外,MySQL还提供了丰富的功能和工具,如存储过程、触发器、视图、索引等,可以帮助开发人员快速构建复杂的应用程序。
MySQL广泛应用于各种领域,如Web应用程序、企业级应用、数据仓库等。它与PHP、Java、Python等编程语言配合使用非常方便,可以轻松地实现数据的增删改查操作。此外,MySQL还提供了多种不同的存储引擎,如InnoDB、MyISAM等,可以根据不同的应用场景选择合适的存储引擎[7]。
总之,MySQL数据库技术是一款非常优秀的关系型数据库管理系统,它具有高性能、稳定性强、易于使用和扩展等优点,是开发人员构建各种应用程序的理想选择。
2.4 springboot框架
Spring Boot是一个基于Spring框架的开源项目,它旨在简化Spring应用程序的创建、配置和部署过程。Spring Boot提供了一种快速开发的方式,使得开发者能够更专注于业务逻辑的开发,而无需过多关注底层的技术细节。
Spring Boot的主要特点包括:自动配置、内嵌Web服务器、简化Maven配置、独立运行等。通过自动配置功能,Spring Boot可以根据项目中的依赖关系自动配置相应的组件,大大减少了开发者的配置工作。内嵌Web服务器使得应用无需部署到外部Web服务器即可运行,简化了应用的部署过程。Spring Boot还支持简化Maven配置,使得项目的构建更加简单。Spring Boot应用可以独立运行,无需部署到外部应用服务器[9]。
总之,Spring Boot是一个非常实用的框架,它可以帮助开发者快速构建和部署Spring应用程序,提高开发效率。
2.5 Vue.js框架
Vue.js是一款渐进式的JavaScript框架,它基于HTML、CSS和JavaScript构建,同时提供了声明Vue.js是一款渐进式的JavaScript框架,它基于HTML、CSS和JavaScript构建,同时提供了声明式的、组件化的编程模型。这款框架的主要优势在于其易学易用,具有出色的性能,以及灵活的生态系统。Vue.js拥有容易上手的API和一流的文档,使得开发者可以快速上手并投入开发。此外,它也经过了编译器优化和完全响应式的渲染系统,因此在大多数情况下,开发者无需手动进行性能优化。值得一提的是,Vue.js提供了一个渐进增强的功能,这意味着开发者可以使用Vue来增强现有的HTML。这一特性使Vue可以作为jQuery等库的直接替代品使用,同时也支持编写完整的单页应用程序(SPA)。在处理复杂应用程序时,由Vue管理的标记可以提高开发人员的体验和性能[11]。
2.6 B/S架构
B/S结构(Browser/Server,浏览器/服务器模式)是一种网络应用程序架构模式,其中客户端通过Web浏览器访问服务器上的应用程序。在B/S结构中,用户不需要安装任何客户端软件,只需要使用标准的Web浏览器即可访问应用程序。服务器端负责处理用户的请求并返回相应的结果给客户端。这种模式具有跨平台、易于维护和升级等优点,因此在Web开发中得到广泛应用。
第3章 系统需求分析
本章节的主要内容是对开发的天文知识科普系统进行需求分析,包括总体上的需求分析、从管理员和用户二个角色进行功能上的需求分析。总体分析主要分析了当前天文知识科普的优势,为了进一步扩大天文知识科普的优势,进而进行管理员和用户二个功能需求分析。
3.1总体分析
需求分析是开发天文知识科普的一项重要的步骤,需求分析是面向用户的,不论是开发Web系统还是软件APP,都需要在正式操刀之前仔细分析用户需求和业务。在进行分析后,了解系统在整个环境中应该做什么,需要达成哪些条件,需要实现哪些功能,如何才能让满足用户的使用需求,因为需求分析说到底是面向用户,站在用户的角度进行分析是需求分析的关键环节,也只有这样才能真正确定天文知识科普需要具体实现的功能。
3.2功能需求分析
天文知识科普系统将从需求和现状中进行分析,使得本系统的设计实现具有可使用的价。做出一个实用性好的天文知识科普系统,使其能满足用户的需求,并可以让用户更方便快捷地管理天文知识科普信息。天文知识科普系统的设计开发,目的主要是为了简化天文知识科普信息的管理过程,使管理员更好地完成工作,在工作中实现高效快捷的管理效率。
本文从天文知识科普管理的实际需要出发,为降低系统的耦合性,完成了系统总体架构的设计,以提高系统的重用性、可适用性及可维护性。系统包括管理员和用户二个角色;
管理员负责对整个系统进行管理和监控,而其他用户则负责执行具体的管理工作。管理员和用户用例分别如下:
管理员用例如下所示:
图3-1 管理员用例图
用户用例如下所示:
图3-2 用户用例图
3.3 系统可行性分析
3.3.1技术可行性
在本次毕业设计中,我们选择了MySQL数据库、MyEclipse开发工具和Java作为主要的技术手段。这三种技术的配合使用能够有效地提高开发效率和代码质量,满足系统的需求。MySQL数据库是一款功能强大、性能稳定的关系型数据库管理系统,可以满足大量数据的存储和管理需求。
3.3.2经济可行性
本系统的设计基于当前流行的JAVA技术进行实现。数据存储方面使用了MySQL数据库。这些工具和项目框架都是在校期间所需掌握的专业知识,因此可以将所学的技术应用到该项目的开发中,从而不会占用大量的时间和资金。如果在实现过程中遇到困难,还可以与老师和同学进行技术上的交流。从经济角度来看,这是一个非常有意义的课题。由于开发成本不高且适用面广,该系统非常适合未来信息化社会中企业的发展,能够减少人力计算的成本。
3.3.3操作可行性
本天文知识科普系统采用B/S架构,用户无需安装其他软件即可轻松掌握和熟练应用。为了确保数据的一致性,数据库可以提供相应的支持。一旦对数据进行操作,工作将变得更加简单,工作量也会降低。所有操作都由系统自行完成。该系统大大减少了工作人员的工作量,并使工作人员能够更便捷地掌握具体操作过程。这不仅提高了工作效率,还降低了错误率。在实际操作中是可行的。
经过总结,该系统在经济、技术和操作方面都符合要求,并且是具有可行性的。
3.4系统流程分析
3.4.1 用户登录流程
登录流程实现了管理员和其他用户的登录,在登录页面需要用户填写自己的信息,前端页面会将信息传递给后端接口,然后查询数据库确定该身份有效后登录成功,否则此用户登录失败,需要重新填写信息,进行再次验证,如图3-3所示。
图3-3登录流程图
3.4.2 系统操作流程
系统操作流程分析是软件开发过程中的一个关键环节,它是整个系统整体的运行过程,必须保证其中的每一个步骤都是确定的,这样一个规范的流程图可以使开发者易于理解,快速的投入到接口开发中,从而提升系统开发效率。
同时,流程图还能减少开发者对系统操作流程产生歧义和降低沟通的成本,系统操作流程如图3-4所示。
图3-4系统操作流程图
3.4.3修改信息流程
管理人员或者其他用户找到需要修改的信息后,然后将要修改的数据对应的输入到修改框里面。当数据合法的时候,则提示信息为添加成功。这时候这条数据就会被添加到了数据对应的数据库表中。如果不合法,则提示信息为添加失败,这就要重新把数据在输入一次来验证。修改信息流程图如图3-5所示。
图3-5修改信息流程图
3.4.4删除信息流程
管理人员或者其他的用户选择自己想要删除一条信息后,点击后面的“删除”按钮,系统就会给管理人员或者其他的用户一个提示表明信息删除成功了,与此同时系统会从数据库中将管理人员或者其他的用户想要删除的这条信息给删除掉。删除信息流程图如图3-6所示。
图3-6删除信息流程图
第4章 系统设计
4.1 功能模块设计
系统整体模块分为管理员和用户二大用户角色,整体功能设计图如下所示:
图4-1 系统整体功能图
4.2 数据库设计
4.2.1 E-R模型结构设计
进行数据库概念设计就是设计数据库的概念结构,是把系统的需求抽象为信息结构的过程。实体、属性和联系是构成E-R图的三个基本要素,E-R图不仅非常直观,并且可以准确地反映各信息之间的联系,下面是天文知识科普系统中相关的E-R图。
将“管理员信息”作为实体,它的E-R图,如图4-2所示:
图4-2管理员信息的E-R图
将“管理员、用户、繁星论坛、公告信息、收藏表”等作为实体,它们的局部E-R图,如图4-3所示:
图4-3局部E-R图
4.2.2 数据库逻辑设计
数据库表是设计与实现天文知识科普系统的基础,下面将对各个重要的数据库表进行逐一讲解。下面是系统中重要数据库表的设计。数据表的详细情况如下表所示。
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xingzuomingcheng | varchar | 200 | 星座名称 | ||
yundongguiji | longtext | 4294967295 | 运动轨迹 | ||
fabushijian | date | 发布时间 | |||
xingzuoweizhi | varchar | 200 | 星座位置 | ||
liangduyuyanse | varchar | 200 | 亮度与颜色 | ||
fengmian | longtext | 4294967295 | 封面 | ||
guanxingjiqiao | varchar | 200 | 观星技巧 | ||
xiangxijieshao | longtext | 4294967295 | 详细介绍 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
discussnum | int | 评论数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
表4-2:名词速查
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
mingcimingcheng | varchar | 200 | 名词名称 | ||
tupian | longtext | 4294967295 | 图片 | ||
xiangxijieshi | longtext | 4294967295 | 详细解释 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
discussnum | int | 评论数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
表4-3:公告信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
jianjie | longtext | 4294967295 | 简介 | ||
fabushijian | date | 发布时间 | |||
fengmian | longtext | 4294967295 | 封面 | ||
neirong | longtext | 4294967295 | 内容 | ||
clicknum | int | 点击次数 | 0 |
表4-4:繁星论坛
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 帖子标题 | ||
content | longtext | 4294967295 | 帖子内容 | ||
parentid | bigint | 父节点id | |||
userid | bigint | 用户id | |||
username | varchar | 200 | 用户名 | ||
avatarurl | longtext | 4294967295 | 头像 | ||
isdone | varchar | 200 | 状态 | ||
istop | int | 是否置顶 | 0 | ||
toptime | datetime | 置顶时间 |
表4-5:行星介绍评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-6:星空认知评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-7:天文现象评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-8:管理员表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
image | varchar | 200 | 头像 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-9:太阳科普评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-10:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
userid | bigint | 用户id | |||
username | varchar | 100 | 用户名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密码 | ||
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表4-11:名词速查评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-12:天文现象
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xianxiangmingcheng | varchar | 200 | 现象名称 | ||
xianxiangleixing | varchar | 200 | 现象类型 | ||
guancefangfa | longtext | 4294967295 | 观测方法 | ||
fashengshijian | date | 发生时间 | |||
fengmian | longtext | 4294967295 | 封面 | ||
xingchengyuanyin | longtext | 4294967295 | 形成原因 | ||
yingxiangyiyi | longtext | 4294967295 | 影响意义 | ||
lishijilu | longtext | 4294967295 | 历史记录 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
discussnum | int | 评论数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
表4-13:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhanghao | varchar | 200 | 账号 | ||
mima | varchar | 200 | 密码 | ||
xingming | varchar | 200 | 姓名 | ||
xingbie | varchar | 200 | 性别 | ||
shouji | varchar | 200 | 手机 | ||
touxiang | longtext | 4294967295 | 头像 | ||
status | int | 状态 | 0 | ||
表4-14:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 | ||
url | varchar | 500 | url |
表4-15:太阳科普
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
jiegou | longtext | 4294967295 | 结构 | ||
zhijing | varchar | 200 | 直径 | ||
zhiliang | varchar | 200 | 质量 | ||
nianling | varchar | 200 | 年龄 | ||
fengmian | longtext | 4294967295 | 封面 | ||
taiyangyanjiu | longtext | 4294967295 | 太阳研究 | ||
taiyangguance | longtext | 4294967295 | 太阳观测 | ||
taiyanghuodong | longtext | 4294967295 | 太阳活动 | ||
xiangxishuoming | longtext | 4294967295 | 详细说明 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
discussnum | int | 评论数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
表4-16:行星介绍
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xingxingmingcheng | varchar | 200 | 行星名称 | ||
fenlei | varchar | 200 | 分类 | ||
wulitezheng | longtext | 4294967295 | 物理特征 | ||
guidaotezheng | longtext | 4294967295 | 轨道特征 | ||
daqiceng | varchar | 200 | 大气层 | ||
tansuolishi | longtext | 4294967295 | 探索历史 | ||
fabushijian | date | 发布时间 | |||
fengmian | longtext | 4294967295 | 封面 | ||
teshuxingzhi | longtext | 4294967295 | 特殊性质 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
discussnum | int | 评论数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
表4-17:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 商品id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 名称 | ||
picture | longtext | 4294967295 | 图片 | ||
type | varchar | 200 | 类型 | 1 | |
inteltype | varchar | 200 | 推荐类型 | ||
remark | varchar | 200 | 备注 |
第5章 系统功能实现
5.1前台功能实现
5.1.1系统首页页面
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。如图5-1所示:
图5-1 系统首页界面
在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。如图5-2所示:
图5-2 系统注册界面
行星介绍:在行星介绍页面的输入栏中输入行星名称、分类、物理特征进行查询,可以查看到行星介绍详细信息,并根据需要进行点赞或收藏等操作;如图5-3所示:
图5-3行星介绍详细页面
太阳科普:在太阳科普页面的输入栏中输入标题、结构进行查询,可以查看到太阳科普详细信息,并根据需要进行点赞或收藏等操作;如图5-4所示:
图5-4太阳科普详细页面
5.1.2个人中心
个人中心:在个人中心页面可以对个人中心、修改密码、我的发布、我的收藏进行详细操作;如图5-5所示:
图5-5个人中心界面
5.2后台管理员功能实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-6所示。
图5-6后台登录界面
管理员进入主页面,主要功能包括对人中心、用户、名词速查、行星介绍、太阳科普、星空认知、天文现象、公告信息、繁星论坛、轮播图管理等进行操作。如图5-7所示:
图5-7 管理员主界面
用户功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写用户信息表单。这些用户信息动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除用户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便用户功能可以看到最新的信息或相应的操作反馈。如图5-8所示:
图5-8用户界面
管理员点击名词速查,在名词速查页面输入名词名称、翻译要进行查询、添加或删除名词速查列表,并根据需要对名词速查详情信息进行查看、修改、查看评论或删除操作;如图5-9所示:
图5-9名词速查界面
管理员点击行星介绍,在练习课程页面输入行星名称、分类、物理特征进行查询、添加或删除行星介绍列表,并根据需要对行星介绍详情信息进行查看、修改、查看评论或删除操作;如图5-10所示:
图5-10行星介绍界面
管理员点击太阳科普,在太阳科普页面输入标题、结构进行查询、添加或删除太阳科普列表,并根据需要对太阳科普详情信息进行查看、修改、查看评论或删除操作;如图5-11所示:
图5-11太阳科普界面
管理员点击星空认知,在星空认知页面输入星座名称、运动轨迹进行查询、添加或删除星空认知列表,并根据需要对星空认知详情信息进行查看、修改、查看评论或删除操作;如图5-12所示:
图5-12 星空认知界面
第6章 系统测试
6.1 软件测试的意义
不论是什么类型的Web项目,在设计和开发完成后都少不了测试工作。对于天文知识科普系统来说,在开发完成后,BUG的产生无法避免,如果不进行系统的软件测试,BUG可能会影响系统的稳定性和安全性,有些BUG甚至会导致正常功能无法使用,无论如何都将大大影响用户的体验,对于软件开发来说,测试贯穿了整个开发过程,是天文知识科普系统开发不可缺少的一部分。
系统测试,就是验证系统实际功能的实现与设计的功能相比是否正确和完整,以及系统性能是否达到预期,其实,就是将实际输出与预期输出进行对比,观察结果是否相符。
进行系统测试,能够及时地发现、直接地找出在实际运行中的问题,排除基本功能的问题,提前解决影响用户基本使用的大问题,大大减少了用户遇到的各种问题,降低了二次开发的成本,不论是对用户的使用体验和日后的维护工作都有积极作用,在系统测试这一道保护伞之下,系统会得到越来越好的优化,变得越来越完善。
6.2 测试方法
测试方法主要有人工测试和机器测试两种测试方法。
(1)人工测试
人工测试又称代码复审,包括个人复查、走查、会审三种方法。
(2)机器测试
计算机检测有两种方式:黑盒测试和白盒测试。黑盒测试:从外观上找出它的缺点和错误。黑盒测试是在编程接口上进行的,它仅仅是为了检验样品的执行情况,而不是根据要求规范的要求进行;白盒测试:对软件的内在构造进行了剖析,即在编程接口上进行了试验,其目的仅仅在于检验样品的执行情况,而不能满足要求规范的要求,检测来寻找问题。
在最终的检测中,本研究采取了将后黑盒子检测与白盒子检测相融合的方式。黑箱试验是为了对系统的输入、输出性能进行测试,以发现其性能上的误差和潜在的不足。白箱试验的目的是为了检测程序和程序的运行路线,从而找出运行中的问题。该系统有两种方式:单位试验和综合试验。
为了保证用户的体验,本天文知识科普系统主要使用功能测试的方法,模拟用户的可能进行的各种基本操作,确保系统各项功能的正常实现,表6-1为本天文知识科普系统用户登录、注册和个人信息修改进行测试。
表6-1
序号 | 测试名称 | 测试步骤 | 期望结果 | 期望结果 |
1 | 注册 | 进入系统页面,完成注册 | 可以成功注册 | PASS |
2 | 登陆 | 在登陆界面用新注册的账号登陆 | 可以成功登陆 | PASS |
3 | 修改个人信息 | 在个人信息界面编辑个人信息 | 可以成功修改 | PASS |
总 结
本次毕业论文加上系统项目对一年前的我来说难如登天,在大三的下半学期,我进行了数月的实训。对我来说,从那时开始,我才真正地上手学习了Java和数据库相关技术,在实训基地近距离接触项目后,我开始切身实际地融入到了Java语言的学习中,开始从一个“小白”逐步向“码农”进行转变。
决定本次课题的原因是,纵观大三的实训和大四大半年的实习经历,接触到的项目总的来说仍然不算多,天文知识科普系统相较于其他项目算是我比较熟悉的一类项目,开始上手时感觉十分困难,对我来说,这样一个综合性已经比较高的动态Web项目,其中涉及的技术也非常多,Java,Java Web,MySQL等等,独立地完成这一个项目考验的综合水平对我来说是一个不小的挑战。本次天文知识科普系统的设计与开发,以Java作为开发基础,采用MySQL数据库,意在探索开发天文知识科普系统的道路上贡献一份小小的力量。
在实训期间,我请教实训老师的次数不多,于是在实习工作期间,每每遇到问题,我不断请教同事和师傅,不停地在论坛上寻找解决方法,在学习Java开发的崎岖道路上,我尽量通过多多学习去少走弯路,巩固自己的基础,我期望本次毕业论文能够作为自己一年来的实训实习生活的一份美好的答卷。
参考文献
[1]赵海鸥.Java编程课程的教学实践[J].电子技术,2023,52(02):284-285.
[2]闾枫.基于Java Web的办公自动化系统设计[J].电子技术,2023,52(02):319-321.
[3]徐海燕.JAVA编程在计算机应用软件中的应用特征与技术[J].电子技术与软件工程,2023(03):29-32.
[4]杜少波.基于OBE的Java程序设计教学模式实践[J].电子技术,2023,52(01):212-213.
[5]李华.Java软件开发问题分析[J].电子技术与软件工程,2023(02):43-46.
[6]文欣.以应用型人才培养为导向的“Java框架技术”课程改革的研究[J].南方农机,2022,53(24):188-191.
[7]索红升.基于Java的电子商务平台的设计与开发[J].软件,2022,43(11):138-140.
[8]郑歆.Java程序设计课程的教学实践[J].集成电路应用,2022,39(11):94-95.
[9]任浩然,刘丹,景永强.JAVA在计算机软件开发中的应用研究[J].信息记录材料,2022,23(11):83-85.
[10]周林,季松华,符欲梅.Java程序设计课程思政探究与实践[J].黑龙江科学,2022,13(19):149-151.
[11]李乐.Java语言应用研究[J].智慧中国,2022(09):80-81.
[12]欧阳桂秀.基于Java和MySQL的数据库管理系统的设计与实现[J].信息记录材料,2022,23(09):240-242.
[13]杜少波.BOPPPS教学模式在Java程序设计课程混合式教学中的应用研究[J].科教导刊,2022(22):99-101.
[14]Zerouali Ahmed,Mens Tom,Decan Alexandre,Gonzalez Barahona Jesus,Robles Gregorio.A multi-dimensional analysis of technical lag in Debian-based Docker images[J].Empirical Software Engineering,2021,26(2):34-39.
[15]Ilahi L, Martinho R. Towards a Business Process Management Governance ApproachUsing Process Model Templates and Flexibility[C]. IEEE World Congress on Services.IEEE, 2020:27-34.
致 谢
时间过的很快,大学四年转眼已经快要走到尽头,仿佛觉得自己才刚刚踏入常熟理工的校园,刚刚参加完新生培训,当年的画面真的历历在目。但是,我感觉这四年,过的虽快,但过的不虚。尤其是大三大四这两年,我不仅感受到校园时光的温暖,更体会到了学习知识和技能的充实。大学生涯的最后一份作业——毕业论文,也是我付出最多时间,完成最认真的一次作业了。
在此,我衷心感谢我的母校,是它为我提供了优良的学习环境和丰富的知识体系,让我在求学的道路上不断成长和进步。回顾这几年的求学历程,我深知自己能取得今天的成绩离不开母校的培养和关怀。
首先,我要感谢母校的领导和老师们。他们辛勤耕耘在教育的岗位上,用自己的智慧和爱心为我们筑起了一座座知识的桥梁。在课堂上,他们传授给我们专业知识和技能;在实践中,他们教会我们如何运用所学去解决实际问题。他们的教诲和指导让我受益匪浅,也让我明白了作为一名学生应有的担当和责任。
其次,我要感谢同学们。在这里,我结识了来自五湖四海的朋友,我们共同学习、共同进步,度过了许多难忘的时光。感谢他们在我遇到困难时给予的鼓励和支持,让我勇往直前;感谢他们在我失落时给予的安慰和关爱,让我重新找回自信。正是有了他们的陪伴,我的大学生活才如此丰富多彩。
最后,我要感谢我的家人。他们一直是我最坚实的后盾,为我提供了良好的家庭环境,让我能够全身心地投入到学业中。在我遇到挫折时,他们给予我关爱和鼓励;在我取得成绩时,他们为我感到骄傲和欣慰。正是有了他们的支持,我才能一路走来,勇敢地追求自己的梦想。
在未来的日子里,我将不忘初心,继续努力,为母校争光,回报母校的培养。再次感谢我的母校,愿我们的母校越来越好!