科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设学生学情预警系统。
本设计主要实现集人性化、高效率、便捷等优点于一身的学生学情预警系统,完成首页、系统用户、学籍信息、实践信息、考勤信息、成绩信息、课程学分、学期学分、学期绩点、班级信息等功能模块。采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对学生学情预警系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现学生学情预警系统和部署运行使用它。
关键字:学生学情预警系统 ; Java;数据库
Spring boot student learning situation warning system
Abstracts
The rapid development of technology has caused tremendous changes in people's daily lives, and the rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The arrival of the information age has become an unstoppable fashion trend, and the history of human development is entering a new era. In practical application, the working rules and development steps of the application software adopt Java technology to build a student learning situation warning system.
This design mainly implements a student learning situation warning system that combines the advantages of humanization, efficiency, and convenience. It completes functional modules such as homepage, system users, student status information, practice information, attendance information, grade information, course credits, semester credits, semester grade points, and class information. Adopting an object-oriented development model for software development and hardware installation can effectively meet practical usage needs, improve the corresponding software installation and program coding work, adopt MySQL as the main storage unit for backend data, and use Java and Ajax technologies for business system coding and development, achieving all functions of this system. This report first analyzes the background, role, and significance of the research, laying the foundation for the rationality of the research work. Analyze the various requirements and technical issues of the student learning situation early warning system, prove the necessity and technical feasibility of the system, and then provide a basic introduction to the technical software and design ideas required for designing the system. Finally, implement the student learning situation early warning system and deploy it for operation.
Key words: Student learning situation warning system; Java; database
目 录
摘 要
目 录
第1章 绪论 6
1.1研究背景 6
1.2研究目的 6
1.3系统设计思想 7
第2章 关键技术研究 8
2.1开发技术说明 8
2.2 Tomcat描述.....................................................................................................8
2.3springboot框架介绍.................................................................................................8
2.4 Mysql数据库...................................................................................................9
第3章 需求分析 10
3.1可行性分析 10
3.1.1 技术可行性 10
3.1.2经济可行性 11
3.1.3 操作可行性 11
3.1.4 法律可行性 11
3.2系统分析 12
3.3系统设计原则 12
3.4业务流程分析 12
3.4.1操作流程 13
3.4.2添加信息流程
3.4.3删除信息流程
第4章 系统总体设计
4.1系统功能模块
4.2数据库设计 22
4.2.1数据库简介 22
4.2.2数据库设计 22
第5章 系统实现 26
5.1管理员功能模块 26
5.2学生用户功能模块 26
第6章 系统测试 31
6.1系统测试的目的 31
6.2测试策略 31
6.3测试特性及分析 31
6.4功能测试 31
6.5测试结果 32
结 论 33
参考文献 34
致 谢 36
第1章 绪论
1.1研究背景
如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,組互联网上能传播的信息也很广,比如文字、图图、音视频等。从而,这种种好处使得互联网成了信息传播的主要途径,社会上各种各样的信息都想尽办法通过互联网进行传播,互联网对社会产生的影响越来越大。
随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的交换和信息流通显得特别重要。因此,开发合适的学生学情预警系统成为企业必然要走的一步棋。开发合适的学生学情预警系统,可以方便管理人员对学生学情预警系统的管理,提高信息管理工作效率及查询效率,有利于更好的为用户提供服务。
1.2研究目的
随着互联网技术的快速发展,网络时代的到来,网络信息也将会改变当今社会。各行各业在日常企业经营管理等面也在慢慢的向规范化和网络化趋势汇合。学生学情预警系统的信息化程度体现在将互联网与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使信息管理更先进、更高效、更科学,信息交流更迅速。
学校机构还用办法来管理各种信息,已经很落伍了,这样会导致了效率低下。且时间一长的话,积累下来的数据信息不容易保存,对于查询、更新还有维护会带来不少问题。对于数据交接也存在很大的隐患。如果采用电子化的存储方式就会带来很大的改善,而且给用户的查询带来了很大便利,因此设计一个学生学情预警系统刻不容缓,能够提高企业在信息技术方面的展示水平。
1.3系统设计思想
一个成功的网站应明确建设网站的目的,确定网站的功能,确定网站规模、投入费用,进行必要的市场分析等。只有详细的策划,才能避免在网站建设中出现的很多问题,使网站建设能顺利进行。同时,一个大型的计算机网站系统,必须有一个正确的设计指导思想,通过合理选择数据结构、网络结构、操作系统以及开发环境,构成一个完善的网络体系结构, 才能充分发挥计算机信息管理的优势。根据现实生活中网民的实际需求,本系统的设计按照下述原则进行。
1.有效性:实际上这里的有效性包括两个方面的意思:有用性和可用性。有用性是指站点潜在的能满足用户球的功能,而可用性是指能够通过站点的操作实现特定的目标。可以看出一个站点如果不能恰当运行或设计得非常槽糕就不是一个好站点。 可用站点的效益应该非常高,并易于学习,在实现用户目标时令人满意而不出错。
2.可靠性:一个实用的网站同时必须是可靠的, 本设计通过合理而先进的网络设计以及软、硬件的优化选型,可保证网站的可靠性与容错性。
3.高安全性:在设计中,将充分利用网络软、硬件提供的各种安全措施,既可以保证用户共享资源,充分考虑系统及数据资源的容灾备份、恢复的要求。为系统提供强大的数据库备份工具。可以保证关键数据的安全性。操作权限级,设置不同的角色确保每一步的操作权限,可以由管理员进行设置。
4.先进性:采用目前国际上最先进的开发技术,使用Java开发技术, MYSQL作为网站后台数据库。采用这些技术降低了以后的系统运营成本,提高了系统的稳定性和易维护性。
5.采用标准技术:本网站的所有设计遵循国际上现行的标准进行,以提高系统的开放性。
6.外观和技术平衡:系统采用Web风格的界面设计,界面友好、美观,使用方便,易学易用。网站设计的关键问题是外观和技术的平衡。外现不好的网站令人厌烦,站点可以运行很好,但却不能带动用户积极性,相反,如果外观非常有表现力,但技术有限,胪则会感到非常失望。在外观与技术之间需要确定一个清晰而连续的关系,即外观与站点的意图相关,对不同类型的网站处理方法不同。
第2章 关键技术研究
2.1开发技术说明
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的springboot框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库和Lay UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。
2.2 Tomcat描述
Tomcat是一个不收费的服务器。使用场景比较适合访问量比较少的情况下。意思就是,将Tomcat安装到电脑上的时候,前端HTML页面的访问请求可以通过它进行解析。实际上,Tomcat是对Apache的扩展,但它相对于Apache却是相对独立作业的,由此可以看作它与Apache 是相对独立进程运行的。
Tomcat最开始是sun公司的戴维森进行开发应用的,经过他的努力,不断地将其变为开源的服务器。还由sun公司将其交给了Apache软件基金会。不断发展的tomcat服务器在最近的一个版本中进行了大量的重构和梳理,使其使用起来更加的方便。基于Tomcat负载均衡算法是一种开源的软件,实现方式。不需要增加额外的硬件投入,实现起来也很方便,特别适用于一般的小企业网站服务器在现在和将来一段时间的扩展。从目前的实践来看,可作为需要进行类似应用的一个参考借鉴。
2.3springboot框架介绍
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。
数据库作为数据的存储地方是项目必须的,MySQL是一款非常优秀的关系型数据库,早期的MySQL并不是甲骨文公司的,后来才被他收购的。MySQL非常的小巧,安装包才几兆,sql语言的书写也比较容易学习,最重要的是MySQL同时也是一款开源的软件,所以不需要额外进行付费,本系统本身也是以学习总结所学知识为主,在系统的开发上最好尽量使用免费的软件,所以选用MySQL进行数据库管理。MySQL的容量也是非常大的,同时支持分库分表的操作,支持分布式,所以越来越多的中小企业选择该款数据库管理工具。另外值得一提的是,开源也有一个不好的地方,就是容易遭到破解和黑客攻击,所以MySQL在使用上还是更多的使用在中小项目中。
MySQL不会对平台有需求,所以任何一个程序员都可以通过 MySQL数据库来完成自己的系统开发,并且还可以节约大量的资源。因为它具有强大功能,所以可以用来储存这个系统的数据。
MySQL适合于各种应用,我们在运行数据库的时候,也很容易上手,我们只要编写一段代码,就可以完成相应的功能,并且可以在任何的平台上使用,而不需要再进行第二次的编译。MySQL数据库还具备在本地存储数据和允许结构化查询以方便管理的优势;MySQL是一个完全网络化的系统,它的数据库可以在互联网的任何位置被访问,它可以在任何地点与任何人分享;此外,MySQL也提供了存取控制的能力,可以阻止数据被非法使用,MySQL服务稳定,开发成本低,所以在开发过程中,MySQL数据库是最受欢迎的。
任何一个项目在开发研究前,都需要对研发系统本身的需求做一个认真的分析,市场的调研是不可忽视的,从而明确目标,对整个系统的开发有一个更加准确的定位。在这个章节,需要对系统的性能分析,业务流程分析,和数据等进行分析,学生学情预警系统的整体界面简单,功能完善。
需求的可行性是分析和讨论发达的系统能达到什么样的要求。开发的系统或网站是否符合之前的要求。只有在预先评估系统的开发中,才能在系统开发和实施之前完成需求。系统在开发和运用过程中,在技术可行性、操作可行性、经济可行性和法律可行性这几点展开的详细说明,证明了这几点是可行的。在技术可行性中主要说明Java是目前是较为通用、成熟的技术,具有较为强大的数据库开发功能、以及具有方便快捷的数据库接口设计功能。在现有的调研情况和所掌握的技术是必要可行的。在经济可行性中,主要说明了系统从调研时期的费用和后期维护和可节约的成本。操作可行性主要说明了系统和操作的简便性具有操作简便和上手快的特点。在法律可行性上,符合要求不涉及到侵权等问题在社会中能起到提高效率的作用。
从系统需求分析、功能分析、性能分析等进行了设计和说明。系统需求分析对于学生学情预警系统的需求进行了深入分析,证明了系统在市场中的需求。
学生学情预警系统完成设计,可能受到时间以及空间上的制衡。因此,在开始设计每一个项目的时候,必须对系统进行可行性分析,只有这样才能够降低项目所带来的危害,减少人力、物力以及财力方面的损耗。该系统的可行性分析主要集中在技术可行性、经济可行性、运行可行性和社会可行性四个方面。从以上几个方面讨论了该系统的可行性。
可行性分析目的是根据所开发系统的用户需求,明确研究方向和目标,通过可行性分析确定系统的框架和功能模块。
可行性分析是对任何管理系统的需求、技术和经济的分析。其中最重要的技术方面的可行性,技术可行性是分析软件开发技术的应用开发系统是可行的。其次,分析软件系统的需求,分析软件需求能否满足预先设计的功能需求。最后讨论了系统的操作可行性和经济可行性。
3.1.1 技术可行性
无论是台式机还是笔记本,计算机都以非常迅猛的速度占据着人们的工作与生活,那么能够辅助计算机帮助人们改变工作与生活状态的就是那些安装在计算机上的功能软件。本文所要设计的系统,从简单易懂的思想出发,将通过文字索引提示协助用户操作。
系统的开发环境和配置可以由我们自己安装。系统采用Java开发语言,根据技术语言修改和维护数据信息,并结合要求使系统运行更加稳定安全,从而完成实现系统的开发。网络技术的快速发展使网络传输速度越来越快,价格越来越低,安全性越来越高,其所有硬件平台都能完全满足学生学情预警系统开发的需要。
因此,我们从两个方面进行了可行性研究,可以看出系统的技术可行性发展没有问题。
3.1.2 经济可行性
任何软件系统在其发展将考虑后者经济可行性的一部分,也就是说软件的开发成本和设计所需的花费和随后的操作可能带来的经济效益是匹配,除了考虑这部分的软件是否可以给用户带来经济效益。
经济可行性包括系统实现过程中所需资源的研究。系统实现过程中所需资源主要包括人力资源、自然资源等。学生学情预警系统的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且学生学情预警系统的开发之前所做的市场调研及其他的学生学情预警系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于学生学情预警系统的开发在经济上是完全可行的,没有任何费用支出的。
使用Java是比较成熟的技术,所以学生学情预警系统的开发在经济上是没有问题的。
3.1.3 操作可行性
操作可行性是指系统不能有太复杂的操作和使用流程。学生学情预警系统基于Java框架,访问和操作界面简单、操作方便。用户只要连接到网络就可以访问和操作。系统在界面设计上就很有善意让人感觉心旷神怡,首先这就能给操作者一种好心情,可以让工作人员以更好的心态工作,其次也很美观,在系统的使用中要不光应用到了系统完善的功能还欣赏了系统简洁的外观。其次就是系统的功能方面了,在系统的日常使用中会一点简单电脑操作的工作人员也都可以应付自如。因此,它具有操作简单,管理方便,交互性强的特点,在操作上是非常可行的。
3.1.4 法律可行性
系统平台的设计与开发与国家政策法规之间不存在冲突。此外,平台的设计和开发采用的操作和工作模式符合用户的日常习惯,操作方便、灵活、易于管理,具有较高的实用性。开发过程中所采用的数据均来自开源代码,不存在知识产权的争议,在法律上也是行的通的。
综上所述,开发一个基于Java的学生学情预警系统是可行的。
学生学情预警系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。
系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除等信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以学生学情预警系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。
1、关于学生学情预警系统的基本要求
(1)功能要求:可以管理首页、系统用户、学籍信息、实践信息、考勤信息、成绩信息、课程学分、学期学分、学期绩点、班级信息等功能模块。
(2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。
(3)安全与保密要求:用户都必须通过注册、登录才能进入系统,并且用户的权限也需要根据用户的类型进行限定。
(4)环境要求:支持多种平台,可在Windows系列、Vista系统等多种操作系统下使用。
2、开发目标
学生学情预警系统的主要开发目标如下:
(1)实现为学生学情预警系统的系统化、规范化和自动化;
(2)实现用户对信息的控制和管理。
(3)方便查询信息及管理信息等;
(4)通过网络操作,改善处理问题的效率,提高操作人员利用率;
(5)考虑到用户多样性特点,要求界面简单,操作简便。
3、经济效益
设计系统的目的是为了更好的进行节省人员成本及各种开销,因此需要对系统开发的成本和效益进行考虑。
系统登录流程图,如图所示:
图3-1登录流程图
添加信息流程图,如图所示:
图3-2添加信息流程图
删除信息流程图,如图所示:
图3-3删除信息流程图
4.1系统功能模块
该系统的基本功能包括管理员、学生用户两个角色功能模块。
对于管理员可以使用的功能模块主要是系统用户、学籍信息、实践信息、考勤信息、成绩信息、课程学分、学期学分、学期绩点、班级信息等功能。
对于学生用户所使用的功能模块的操作主要是登录注册、学籍信息、实践信息、考勤信息、成绩信息、课程学分、学期学分、学期绩点、班级信息等功能。
(1)学生用户需求如图4-1所示:
图4-1学生用户用例图
(2)管理员功能需求如图4-2所示:
图4-2管理员用例图
4.2数据库设计
4.2.1数据库简介
数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。
4.2.2数据库设计
(1)系统的E-R图
概念模型是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。
(2)实体属性图
系统结构如图4-3。
图4-3系统结构图
学生用户实体图如图4-4。
图4-4学生用户实体图
学籍信息管理实体图如图4-5。
图4-5学籍信息管理实体图
学期学分实体图如图4-6。
图4-6学期学分实体图
(3)数据库设计表
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
attendance_information_id |
int |
10 |
0 |
N |
Y |
考勤信息ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
5 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
6 |
grade_name |
varchar |
64 |
0 |
Y |
N |
年级名称 |
|
7 |
semester_name |
varchar |
64 |
0 |
Y |
N |
学期名称 |
|
8 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 |
|
9 |
attendance_situation |
varchar |
64 |
0 |
Y |
N |
考勤情况 |
|
10 |
details_of_the_situation |
text |
65535 |
0 |
Y |
N |
情况详情 |
|
11 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
13 |
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 |
class_information_id |
int |
10 |
0 |
N |
Y |
班级信息ID |
|
2 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
3 |
headmaster |
varchar |
64 |
0 |
Y |
N |
班主任 |
|
4 |
class_size |
int |
10 |
0 |
Y |
N |
0 |
班级人数 |
5 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
6 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
course_credit_id |
int |
10 |
0 |
N |
Y |
课程学分ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
5 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
6 |
grade_name |
varchar |
64 |
0 |
Y |
N |
年级名称 |
|
7 |
semester_name |
varchar |
64 |
0 |
Y |
N |
学期名称 |
|
8 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 |
|
9 |
course_grades |
varchar |
64 |
0 |
Y |
N |
课程成绩 |
|
10 |
grade_level |
varchar |
64 |
0 |
Y |
N |
成绩等级 |
|
11 |
course_type |
varchar |
64 |
0 |
Y |
N |
课程类型 |
|
12 |
course_credit |
varchar |
64 |
0 |
Y |
N |
课程学分 |
|
13 |
course_gpa |
varchar |
64 |
0 |
Y |
N |
课程绩点 |
|
14 |
recommend |
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 |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
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 |
practical_information_id |
int |
10 |
0 |
N |
Y |
实践信息ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
5 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
6 |
grade_name |
varchar |
64 |
0 |
Y |
N |
年级名称 |
|
7 |
semester_name |
varchar |
64 |
0 |
Y |
N |
学期名称 |
|
8 |
graduation_internship |
int |
10 |
0 |
Y |
N |
0 |
毕业实习 |
9 |
social_practice |
int |
10 |
0 |
Y |
N |
0 |
社会实践 |
10 |
thesis_work |
int |
10 |
0 |
Y |
N |
0 |
论文工作 |
11 |
total_practice |
varchar |
64 |
0 |
Y |
N |
实践合计 |
|
12 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
13 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
14 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
score_information_id |
int |
10 |
0 |
N |
Y |
成绩信息ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
5 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
6 |
grade_name |
varchar |
64 |
0 |
Y |
N |
年级名称 |
|
7 |
semester_name |
varchar |
64 |
0 |
Y |
N |
学期名称 |
|
8 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 |
|
9 |
course_grades |
int |
10 |
0 |
Y |
N |
0 |
课程成绩 |
10 |
grade_level |
varchar |
64 |
0 |
Y |
N |
成绩等级 |
|
11 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
semester_gpa_id |
int |
10 |
0 |
N |
Y |
学期绩点ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
5 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
6 |
grade_name |
varchar |
64 |
0 |
Y |
N |
年级名称 |
|
7 |
semester_name |
varchar |
64 |
0 |
Y |
N |
学期名称 |
|
8 |
semester_gpa |
varchar |
64 |
0 |
Y |
N |
学期平均绩点 |
|
9 |
recommend |
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 |
semester_units_id |
int |
10 |
0 |
N |
Y |
学期学分ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
5 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
6 |
grade_name |
varchar |
64 |
0 |
Y |
N |
年级名称 |
|
7 |
semester_name |
varchar |
64 |
0 |
Y |
N |
学期名称 |
|
8 |
credits_taken |
varchar |
64 |
0 |
Y |
N |
所取学分 |
|
9 |
recommend |
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 |
student_message_id |
int |
10 |
0 |
N |
Y |
学生留言ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
N |
N |
学生学号 |
|
5 |
student_gender |
varchar |
64 |
0 |
Y |
N |
学生性别 |
|
6 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
7 |
submission_time |
datetime |
19 |
0 |
Y |
N |
提交时间 |
|
8 |
message_content |
longtext |
2147483647 |
0 |
Y |
N |
留言内容 |
|
9 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
10 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 |
|
11 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
student_registration_information_id |
int |
10 |
0 |
N |
Y |
学籍信息ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
5 |
student_gender |
varchar |
64 |
0 |
Y |
N |
学生性别 |
|
6 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
7 |
grade_name |
varchar |
64 |
0 |
Y |
N |
年级名称 |
|
8 |
credits_to_be_taken |
int |
10 |
0 |
Y |
N |
0 |
应取学分 |
9 |
graduation_internship |
int |
10 |
0 |
Y |
N |
0 |
毕业实习 |
10 |
social_practice |
int |
10 |
0 |
Y |
N |
0 |
社会实践 |
11 |
contact_number |
varchar |
16 |
0 |
Y |
N |
联系号码 |
|
12 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
13 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
14 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
student_users_id |
int |
10 |
0 |
N |
Y |
学生用户ID |
|
2 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
3 |
student_id |
varchar |
64 |
0 |
N |
N |
学生学号 |
|
4 |
student_gender |
varchar |
64 |
0 |
Y |
N |
学生性别 |
|
5 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
6 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
7 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
8 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
9 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
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 |
文件类型 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
warning_information_id |
int |
10 |
0 |
N |
Y |
预警信息ID |
|
2 |
student_account |
int |
10 |
0 |
Y |
N |
0 |
学生账号 |
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 |
|
4 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 |
|
5 |
student_gender |
varchar |
64 |
0 |
Y |
N |
学生性别 |
|
6 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 |
|
7 |
grade_name |
varchar |
64 |
0 |
Y |
N |
年级名称 |
|
8 |
warning_type |
varchar |
64 |
0 |
Y |
N |
预警类型 |
|
9 |
warning_details |
text |
65535 |
0 |
Y |
N |
预警详情 |
|
10 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
11 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
12 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
warning_type_id |
int |
10 |
0 |
N |
Y |
预警类型ID |
|
2 |
type_name |
varchar |
64 |
0 |
Y |
N |
类型名称 |
|
3 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
4 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
用户登录,通过输入用户名,密码,角色等信息进入学生学情预警系统,如图5-1所示。
图5-1登录界面图
登录系统主要代码如下。
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map
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
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}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
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
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());
tokenService.save(accessToken);
// 返回用户信息
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, "账号或密码不正确");
}
}
学生用户管理,在学生用户管理页面可以昵称、用户名、学生姓名、学生学号、学生性别、班级名称等进行维护,并可根据需要对用户进行查询、添加、删除等操作,如图5-2所示。
图5-2学生用户界面图
用户管理代码如下。
@PostMapping("/add")
@Transactional
public Map
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map
service.insert(map);
return success(1);
}
public Map
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append("`").append(table).append("`").append(" (");
for (Map.Entry
sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
}
sql.deleteCharAt(sql.length()-1);
sql.append(") VALUES (");
for (Map.Entry
Object value = entry.getValue();
if (value instanceof String){
sql.append("'").append(entry.getValue()).append("'").append(",");
}else {
sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
log.info("[{}] - 插入操作:{}",table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
学籍信息管理,在学籍信息页面可以对学生账号、学生姓名、学生学号、班级名称、年级名称、应取学分等内容,并可根据需要进行查看、添加、修改、下载导入文档或删除等操作,如图5-3所示。
实践信息管理,在实践信息页面可以对学生账号 、学生姓名、学生学号、班级名称、年级名称、学期名称、毕业实习等内容,并可根据需要进行查看、添加、修改或删除、下载导入文档、导入等操作,如图5-4所示。
图5-4实践信息管理界面图
实践信息管理逻辑代码如下所示。
@RequestMapping(value = {"/count_group", "/count"})
public Map
Query count = service.count(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
考勤信息管理,在考勤信息页面可以对学生账号、学生姓名、学生学号、班级名称、年级名称、学期名称、课程名称等内容,并可根据需要进行查看、添加、修改或删除等操作,如图5-5所示。
图5-5考勤信息管理界面图
成绩信息管理,在成绩信息页面可以对学生账号、学生姓名、学生学号、班级名称、年级名称、学期名称、课程名称等内容进行管理维护,并可根据需要进行修改、删除、查询或者导入、下载导入文档等操作,如图5-6所示。
成绩信息管理界面逻辑代码如下:
@RequestMapping(value = {"/avg_group", "/avg"})
public Map
Query count = service.avg(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
课程学分管理,在课程学分管理页面可以对学生账号、学生姓名、学生学号、班级名称、年级名称、学期名称、课程名称等进行维护管理,并可根据需要进行修改、删除、查询等操作,如图5-7所示。
学生学情预警系统注册界面,通过填写账号、密码、确认密码、昵称、邮箱、手机号、身份等信息进行注册,如图5-8所示。
图5-8注册界面图
注册关键代码如下所示。
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map
// 查询用户
Map
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
}
学生点击“个人信息”按钮,可以对个人的头像、昵称、手机号码等信息进行更新;个人信息界面如下图5-9所示。
图5-9个人信息界面图
学籍信息;在学籍信息页面中可以查看学生姓名、学生学号、班级名称、学生账号、学生性别、年级名称、应取学分等内容;如图5-10所示。
图5-10学籍信息界面图
系统测试主要是通过测试确定系统的可操作性,系统故障必须在规定的时间内纠正,否则会造成严重的经济损失。验证系统内的保护机制,以防止未经授权的入侵。在安全测试中,测试人员的作用是试图闯入系统并使用各种方法来试图突破防御。因此,系统安全设计的标准是找到一种使入侵系统更先进的方法。
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,在测试过程中发现问题并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题并对其进行修改,虽然耗时费力,但对于系统的开发长期使用而言是非常重要和必要的。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
学生学情预警系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在学生学情预警系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
测试系统主要针对以下三个方面进行测试:
1、基于Java的框架码的单元测试,集成测试,系统测试和验收测试结果;
2、测试对象中列出的可测试或不可接受的特征和功能;
3、分析并记录测试要求:日期的书面文件不影响测试的设计、开发和执行。
系统测试的特性如下:
(1)挑剔性:测试是为了找出系统的错误,在系统测试时我们要严格苛刻,十分挑剔。
(2)复杂性:测试是一个非常复杂的过程。
(3)不彻底性:虽然系统经过测试,但测试仍然会存在不够彻底的问题,测试不能保证系统后期运行完整无误,所以要在后期不断的检查、修改。
(4)经济性:通场这种测试称为“选择测试(Selective Testing)”。在测试时要遵守经济性的原则。
经过测试,产品的稳定性和成熟度可以大大提高,产品质量也可以得到保证。
系统测试方面,我们通常运用的是白盒测试以及黑盒测试这两种方法。白盒测试是指在了解系统内部工作流程的前提下,可以根据需求规范验证系统内部操作是否能够正常运行的测试;而黑盒测试指的是,倘若知道了这个系统的全部功能,可以进行测试检测系统中的每一个功能是否满足正常使用。
功能测试,主要是对系统的用户登录进行详细的测试,但是登录不可以是任何人都可以登录成功的,所以对登录进行详细测试。
用户登录测试:
模块名称 |
测试用例 |
预期结果 |
实际结果 |
是否通过 |
登录模块 |
用户名:001 密码:002 |
弹出错误提示,提示密码错误 |
弹出错误提示,提示密码错误 |
通过 |
登录模块 |
用户名:002 密码:001 |
弹出错误提示,提示用户名错误 |
弹出错误提示,提示用户名错误 |
通过 |
登录模块 |
用户名:001 密码:001 |
管理员登录成功 |
管理员登录成功 |
通过 |
添加班级测试:
模块名称 |
测试用例 |
预期结果 |
实际结果 |
是否通过 |
添加班级模块 |
班级名称:最新班级 |
添加成功、页面自动跳转 |
添加成功、页面自动跳转 |
通过 |
修改密码测试:
模块名称 |
测试用例 |
预期结果 |
实际结果 |
是否通过 |
修改密码模块 |
原密码:888 新密码:123 确认密码:123 |
弹出错误提示,提示原密码错误 |
弹出错误提示,提示原密码错误 |
通过 |
修改密码模块 |
原密码:888 新密码:123 确认密码:333 |
弹出错误提示,提示确认密码不一致 |
弹出错误提示,提示确认密码不一致 |
通过 |
修改密码模块 |
原密码:888 新密码:123 确认密码:123 |
密码修改成功 |
密码修改成功 |
通过 |
通过对功能的测试,学生学情预警系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。
经过对一系列测试结果的有效分析,本平台开发系统符合用户的要求和需求。所有的基本功能相对齐全,操作起来简单方便,测试系统性能良好,作为大众化系统使用是比较值得推广宣传的。
此时项目已经完成,即使实施的时间不是很长,但是在这个过程中需要准备很长的一段时间去对系统设计开发所实际用到的技术进行学习和巩固。在学习的过程中,我逐渐认识到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是掌握了常用的性能和控制方法,我觉得还是相对来说挺容易的。从该系统中,系统的分析和设计的调查数据,已经经历了几个月,并且努力了几个月,该系统现在已经完成。很显然,该系统仍有很多不成熟的地方,在系统设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多自己无法解决的问题,主要通过找专业的网站和论坛来解决这些问题,对于圆满完成我的毕业设计,他们也贡献了很大一部分力量。
系统的开发环境和配置都是可以自行安装的,系统使用Java框架开发工具,使用比较成熟的MySQL数据库进行对系统后台的数据交互,根据技术语言结合需求对数据库进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。
在设计系统的过程中还遇到了一个棘手的问题,那就是自己的英语水平还有待提高,很多关于网站技术开发的资料文献都是英文版的,关键词语以及技术性词汇不能很好的理解。只有在借助翻译软件的实时性翻译功能的辅助下才勉强看懂。显然英语水平的高低直接影响到系统的开发过程。
回顾毕业设计的整个过程,既付出了努力与汗水也收获了很多难以忘怀的美好经历。虽然在系统开发过程中经历了各种各样的困难,自己也在不断研究与探索,可是系统的实现仍有许多不足之处。但是经过系统编程工作的学习让我有了更多的信心,相信在未来的路上我会走的更好。
[1]王振江,练渺渺. 一种基于SpringBoot的轻量级权限认证方法及框架[P]. 北京市:CN115374415B,2023-04-07.
[2]赵将.Java语言在计算机软件开发中的应用[J].数字技术与应用,2023,41(03):160-162.DOI:10.19695/j.cnki.cn12-1369.2023.03.46.
[3]余鹏翔,石军锋.基于SpringBoot框架的群养母猪饲喂站管理系统设计与试验[J].中国农机化学报,2023,44(03):149-155+241.DOI:10.13733/j.jcam.issn.2095-5553.2023.03.021.
[4]苏佳旭,白燕,温晓东.基于Web前端与MySQL数据库的自然灾害应急信息共享平台设计与实现[J].电脑知识与技术,2023,19(05):74-77.DOI:10.14004/j.cnki.ckt.2023.0274.
[5]张一鸣.基于Java语言的基础编程平台设计[J].集成电路应用,2023,40(02):254-255.DOI:10.19339/j.issn.1674-2583.2023.02.116.
[6]佟羽齐,刘德华,张栎柯,李剑波,张俊杰.基于SpringBoot框架的钻前管理系统的设计与实现[J].信息与电脑(理论版),2023,35(02):111-113.
[7]穆莉莉,李傲寒,杨洪涛,许吉禅.线上线下高度融合的新型考核及学生预警系统改革研究与实践[J].电脑知识与技术,2022,18(35):25-27+36.DOI:10.14004/j.cnki.ckt.2022.2168.
[8]杨一帆.服务于MySQL数据库的在线监测系统设计[J].自动化技术与应用,2022,41(10):179-182.DOI:10.20033/j.1003-7241.(2022)10-0179-04.
[9]陈新府豪. 基于SpringBoot和Vue框架的创新方法推理系统的设计与实现[D].浙江理工大学,2022.DOI:10.27786/d.cnki.gzjlg.2022.000649.
[10]韩坤,林关成,安嘉豪,陈泽.基于B/S的高校学生学业预警系统设计与实现[J].信息技术,2021(08):53-58.DOI:10.13274/j.cnki.hdzj.2021.08.010.
[11]张冰珠,李浩,侯贺祥,于海涛,马星光.基于数据库和机器学习技术的高校学生成绩预警系统设计[J].中医教育,2021,40(03):63-67.
[12]刘欣,李亮亮,牛聪. 基于Vue和SpringBoot框架的流域监管平台的研究和应用[C]//《中国防汛抗旱》杂志社,中国水利学会减灾专业委员会,水利部防洪抗旱减灾工程技术研究中心(中国水利水电科学研究院防洪抗旱减灾研究中心).第十一届防汛抗旱信息化论坛论文集.第十一届防汛抗旱信息化论坛论文集,2021:118-122.DOI:10.26914/c.cnkihy.2021.024864.
[13]Witsarut Sriratana,Vittaya Khagwian,Sutham Satthamsakul. Analysis of Electric Current by Using MySQL Database on Web Server for Machine Performance Evaluation: A Case Study of Air Conditioning System[J]. 제어로봇시스템학회 국제학술대회 논문집,2020.
[14]涂旭东,蒲飞,赵正辉,陈苗.疫情期间高校学生不在校预警系统的设计与实现[J].电子测试,2020(12):62-64.DOI:10.16520/j.cnki.1000-8519.2020.12.022.
[15]Margaretha Ohyver,Jurike V. Moniaga,Iwa Sungkawa,Bonifasius Edwin Subagyo,Ian Argus Chandra. The Comparison Firebase Realtime Database and MySQL Database Performance using Wilcoxon Signed-Rank Test[J]. Procedia Computer Science,2019,157(C).
[16]王德东.大数据背景下高校学生成绩预警系统研究与实现[J].电脑编程技巧与维护,2019(10):94-96.DOI:10.16184/j.cnki.comprg.2019.10.034.
时间过得真快,眨眼之间,大学四年的学习生活即将结束,无论是在学习还是生活的这四年,老师们给了我很多帮助,让我终身受益匪浅。老师们不仅帮我树立了正确的人生观和价值观,还帮我养成了很多好习惯,树立了终身学习的意识。在此,我要对我的所有老师表示衷心的感谢。与此同时,我还要感谢陪伴我在这四年里一起成长的伙伴们。他们给了我无私的帮助和关怀,让我在人生最好的四年中获得许多真诚的友谊。
毕业设计是大学四年的最后一个答卷,我们正忙着这四年的美好结束。在毕业项目主题选择的早期阶段,我很紧张担心自己选择的主题很复杂,难以理解,觉得不能这样做会影响我的毕业。是指导老师给我们提供了毕业设计的主题和具体要求,让我们对毕业设计不要太模糊,如果对主题有任何异议,要及时跟他沟通,并且还帮我们介绍他带过的优秀学哥学姐,对我们进行指导,这样再设计上遇到的问题就可以及时得到解决,对我们完成毕业设计提供好的指导条件。
对于毕业设计项目主要是对我在大学所学的专业知识进行一次综合的考验,让我们通过所学的技术知识可以真正的运用到实际动手开发中,通过项目的开发让我意识到自己很多地方的不足,所学知识的不扎实,不能很好的将自己所学的知识运用到系统实际开发上。后来通过自己在图书馆查阅大量书籍,完成系统的设计大纲,阅读笔记和翻译,毕业设计不仅要考验我们的个人能力,还要测验我们的学习态度,做到细节的事情。对于指导老师的帮助,我的毕业设计才可以顺利的完成,我非常感谢。
最后要感谢我的同学们,是你们不断的帮助、鼓励、熬夜、保持调试,测试程序,最终完成学生学情预警系统的运行。我们在交流,谈论时间,将是我们未来的财富,我要深深地感谢你。
毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!
请关注点赞+私信博主,免费领取项目源码