基于springboot的Java学习论坛平台
基于springboot的Java学习论坛平台
摘 要
在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括学习平台的网络应用,在外国学习平台已经是很普遍的方式,不过国内的管理平台可能还处于起步阶段。学习平台具有学习信息管理功能的选择。学习平台采用java技术,基于springboot框架,mysql数据库进行开发,实现了首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信息管理,资料信息管理,签到信息管理,成绩统计管理,学生作业管理,试卷管理,试题管理,校园论坛,系统管理等内容进行管理,本系统具有良好的兼容性和适应性,为用户提供更多的学习信息,也提供了良好的平台,从而提高系统的核心竞争力。
本文首先介绍了设计的背景与研究目的,其次介绍系统相关技术,重点叙述了系统功能分析以及详细设计,最后总结了系统的开发心得。
关键词:java技术;学习平台;mysql
Abstract
With the rapid development of Internet today, every field of our life involves
the application of computers, including the network application of learning
platform. Learning platform has been a very common way in foreign countries, but
the domestic management platform may still be in its infancy. The learning
platform has the choice of learning information management functions. Learning
platform USES Java technology, based on springboot framework, mysql database
development, realize the home page, personal center, student management, teacher
management, curriculum information management, type management, information
management, information management, sign in information management, performance
statistics management, student management, test management and test question
management, Campus forum, system management and other content management, the
system has good compatibility and adaptability, to provide users with more
learning information, but also provides a good platform, so as to improve the
core competitiveness of the system.
This paper first introduces the design background and research purpose, then
introduces the system related technology, focuses on the system function
analysis and detailed design, and finally summarizes the development experience
of the system.
Key words: Java technology; Learning platform; mysql
目 录
1 绪 论 5
1.1课题背景与意义 5
1.2系统实现的功能 5
1.3课题研究现状 5
2系统相关技术 7
2.1Java技术 7
2.2B/S架构 7
2.3MySQL 介绍 7
2.4MySQL环境配置 8
2.5SpringBoot框架 8
3系统需求分析 9
3.1系统功能 9
3.2可行性研究 10
3.2.1经济可行性 10
3.2.2技术可行性 10
3.2.3运行可行性 11
3.2.4时间可行性 11
3.3系统业务过程分析 11
3.4系统用例图 11
4系统设计 12
4.1数据库设计 12
4.2系统整体设计 23
4.2.1系统设计思想 23
4.2.2系统流程图 23
5系统详细设计 25
5.1系统功能模块 25
5.2管理员功能模块 27
5.3学生功能模块 33
5.4教师功能模块 34
6系统测试 36
7总结与心得体会 37
7.1总结 37
7.2心得体会 37
参考文献 39
致谢 40
1 绪 论
1.1课题背景与意义
在Internet高速发展的今天,计算机的应用几乎完全覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管理的兴起也同时飞速发展着。为了适应现代人类强烈的时间观念,对于学习传统管理方式的缺点,互联网的出现打破了这种局限性,给了广大用户更大的选择空间,促进了平台的管理,有效的避免了学习信息缭乱的局面,方便用户。本平台中,管理员可以以最方便的形式,在最短的时间内查找最多的学习信息。因此,系统无疑给人们的生活带来了极大的方便,网络的应用让时间和距离不再是局限。
通过学习平台的研究可以更好地理解系统开发的意义,而且也有利于发展更多的智能系统,解决了人才的供给和需求的平衡问题,学习平台的开发建设,由于其开发周期短,维护方便,所以它可以适应学习体系基本要求。
1.2系统实现的功能
本次设计任务是要设计一个学习平台,通过这个系统能够满足学习信息的管理及学生和教师的学习管理功能。系统的主要功能包括首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信息管理,资料信息管理,签到信息管理,成绩统计管理,学生作业管理,试卷管理,试题管理,校园论坛,系统管理等功能。
管理员可以根据系统给定的账号进行登录,登录后可以进入学习平台,对学习平台所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。
该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看学习信息及对个人信息进行修改等功能。
1.3课题研究现状
现今,越来越多的人乐于选择一项合适的管理方案,但是普通用户往往受到管理经验地限制,这时各类学习平台作为新型产业崛起,大量学习平台制度进入人们生活,而学习平台制无疑是学习信息管理的最好制度,在这样成功的管理模式背景下,学习信息也越来越多。但是随着学习平台信息的增多,学习平台的管理成为了一个难题。高效便捷地管理学习成为了转变管理模式,与时代兼容的当务之急。
学习平台,为用户随时随地查看学习信息提供了便捷的方法,更重要的是大大的简化了管理员管理学习信息的方式方法,更提供了其他想要了解学习信息及运作情况以及挑选方便快捷的可靠渠道。相比于传统学习管理方法,这样的电子信息管理更为简洁方便,在学习平台维护信息反馈和处理学习信息意见方面也有得天独厚的优势。
学习平台能做到的不仅是大大简化管理员的信息管理工作,在提高学习管理效率的同时还能缩减开支,更能在数字化的平面网络上将学习平台最好的一面展示给用户和潜在用户,而这个系统在带给学习管理全新用户信息管理统计和分类的同时,还成为日后学习平台制定管理思路的重要数据参考。过程永远比结果重要。毕业设计是大学生活中最为浓墨重彩的一笔,在这个过程中不仅学到更为全面的书本和实践知识,更让我感受到了浓浓的同窗之情及师生情。这个系统成为学习管理者最不可或缺的内容。尽管目前大部分已经将学习平台投入使用,但是人们对于系统要求也变得越来越高,大部分系统已经能完美处理各类信息,但是为了更好地契合学习平台管理思路,不同用户有不同的要求,个性化也是管理系统十分重要的一点,所以都希望自己能有一个个性化定制的学习平台,但这又涉及到成本控制问题,目前定制一个系统价值不菲,但是如果有这样一个可以根据需求自己制定页面和内容的学习平台就可以大大缩减开支,但是凭借目前自身技术恐怕难以实现,不过让系统可二次设计却是有可能实现的。随着学习平台规模的不断扩大,用户信息共享也成一种趋势。学习平台的发展也证明了系统管理在不断发展进步,各种理念也越来越先进,对各方面的要求也变得越来越高,学习平台完全可以在进入页面时发布各类信息进行推荐交流。
2系统相关技术
2.1Java技术
Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。
Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持用户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。
2.2B/S架构
B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说用户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。
图2-1 B/S结构图
2.3MySQL 介绍
在软件项目,通过经营性数据的数据库,可以保证其安全,独立和数据一致,访问数据的系统来提供,所以有效减少时间程序员开发应用程序。
MySQL可以支持多线程,可以方便使用系统的资源,提高运行的速度。并提供odbc、jdbc和tcp/
ip,以各种形式连接到MySQL; 功能方面表现欠缺,规模小,但对于这个系统就足够了。
因为MySQL是源代码对外开放的,所以任何人都可以通过相应的方法下载,并根据个性化需求进行修改。
由于MySQL的速度,可靠性和适应性,MySQL受到重视。
MySQL虽然功能可能不是很强大,但由于其开源,广泛传播,导致很多人都意识到这个数据库。
2.4MySQL环境配置
本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program
Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program
Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install
the service 安装此服务,再左击这个图标->winnt->start the service
启动MySQL服务。
修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码.
刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。
2.5SpringBoot框架
SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原本的Spring中由于随着项目的扩大导入的jar包数量越来越大,随之出现了jar包版本之间的兼容性问题,而此时SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性问题得到了很好的解决。
SpringBoot可以看做是Spring的加强版本,但实质上都是Spring的相关技术,有了这些优秀的开源框架,程序员在开发过程中将事半功倍。
3系统需求分析
3.1系统功能
通过前面的功能分析可以将学习平台的功能分为管理员,学生和教师三个部分,系统的主要功能包括首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信息管理,资料信息管理,签到信息管理,成绩统计管理,学生作业管理,试卷管理,试题管理,校园论坛,系统管理等内容。任何用户只要进入平台不需登录也可浏览到的信息,后台管理是针对已登录的用户看到满意的学习信息而设计的。
1、一般用户的功能及权限
所谓一般用户就是指还没有注册的过客,他们可以浏览主页面上的信息。但如果要进入后台进行信息管理时,要登录注册,只有注册成功才有的权限。
2、管理员的功能及权限
用户信息的添加和管理,学习详细信息的添加和管理,文档信息的添加和管理以及平台信息管理,这些都是管理员的功能。
3、系统功能结构图
系统功能结构图是系统设计阶段,系统功能结构图只是这个阶段一个基础,整个系统的架构决定了系统的整体模式,是系统的根据。学习平台的整个设计结构如图3-1所示。
图3-1系统功能结构图
3.2可行性研究
通过对系统研究目标及内容的分析审察后,提出可行性方案,并对其进行论述。主要从技术可行性出发,再进一步分析经济可行性和操作可行性等方面。
3.2.1经济可行性
开发系统所涉及到的资料,一般是在图书馆查阅,或是在网上进行查找收集。所需要的一些应用软件也都是在网上可以免费下载的,因此,开发成本是几乎为零。但是开发出来的系统,还是具有高效率,低成本,较高质量的。所以,从经济可行性的角度,该系统符合标准。
3.2.2技术可行性
技术可行性是考虑在现有的技术条件下,能否顺利完成开发任务。以及判断现有的软硬件配置是否能满足开发的需求。而本系统采用的是java技术开发,并非十分困难,所以在技术上是绝对可行的。此外,计算机硬件配置是完全符合发展的需要。
3.2.3运行可行性
当前计算机信息化的知识已经十分普及了,现在的操作人员也都是对系统环境有很强的适应性,各类操作人员大都是有过培训补充的,因此完全不影响组织结构,所以在运行上也是可行的。
3.2.4时间可行性
从时间上看,在大四的最后一个学期,在实习工作与完成毕设两件大事相交叉的时间里,结合之前学习的相关知识,并开发系统,时间上是有点紧,但是也不是完全没可能实现,通过这段时间的努力功能基本实现。
3.3系统业务过程分析
学习平台是三种身份的用户,主要涉及管理员,学生和教师。每个身份都是操作起来都是清楚方便的。对于一些学习信息,这是任何人都可以查看的,但是如果用户想进入后台进行操作,则必须是已经进行登录的用户,或者想修改学习信息的话,也是需要用户为登录状态。这些用户的基本信息都由管理员对其统一管理。
根据学习实际过程的分析,平台有以下几个部分,其中用户注册,发布个人信息,修改个人信息;用户注册登录,发布学习信息;管理员管理用户信息;一般用户只可以浏览不可以发布信息。以上业务过程从用户角度可以分为三类使用本系统的用户角色,包括管理员,学生和教师。以下针对各类用户说明相应的业务过程。
3.4系统用例图
系统用例图如下图3-2所示:
图3-2 系统业务用例图
4系统设计
4.1数据库设计
信息管理系统的效率和实现的效果完全取决于数据库结构设计的好坏。为了保证数据的完整性,提高数据库存储的效率,那么统一合理地设计数据库结构是必要的。数据库设计一般包括如下几个步骤:
(1)根据用户需求,确定数据库信息进行保存
对用户的需求分析是数据库设计的第一阶段,用户的需求调研,熟悉学习运作流程,系统要求,这些都是以概念模型为基础的。
(2)设计数据的概念模型
概念模型与数据建模用户的观点一致,用于信息世界的建模工具。通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
用户注册实体图如图4-1所示:
图4-1用户注册实体图
成绩统计管理实体图如图4-2所示:
图4-2成绩统计管理实体图
(3)数据库逻辑结构分析
数据库概念结构设计后,可以数据库概念转化实际的数据模型,这是一种数据库的逻辑结构,就是将概念结构与支持数据库管理系统的模型相符合。具体的表设计如下所示:
表4-1:考试记录表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
username | varchar | 200 | 用户名 | ||
paperid | bigint | 试卷id(外键) | |||
papername | varchar | 200 | 试卷名称 | ||
questionid | bigint | 试题id(外键) | |||
questionname | varchar | 200 | 试题名称 | ||
options | longtext | 4294967295 | 选项,json字符串 | ||
score | bigint | 分值 | 0 | ||
answer | varchar | 200 | 正确答案 | ||
analysis | longtext | 4294967295 | 答案解析 | ||
myscore | bigint | 试题得分 | 0 | ||
myanswer | varchar | 200 | 考生答案 |
表4-2:资料信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
ziliaomingcheng | varchar | 200 | 资料名称 | ||
ziliaofengmian | varchar | 200 | 资料封面 | ||
leixing | varchar | 200 | 类型 | ||
ziliaojianjie | longtext | 4294967295 | 资料简介 | ||
ziliaowenjian | varchar | 200 | 资料文件 | ||
gonghao | varchar | 200 | 工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
faburiqi | date | 发布日期 |
表4-3:试题表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
paperid | bigint | 所属试卷id(外键) | |||
papername | varchar | 200 | 试卷名称 | ||
questionname | varchar | 200 | 试题名称 | ||
options | longtext | 4294967295 | 选项,json字符串 | ||
score | bigint | 分值 | 0 | ||
answer | varchar | 200 | 正确答案 | ||
analysis | longtext | 4294967295 | 答案解析 | ||
type | bigint | 试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空) | 0 | ||
sequence | bigint | 试题排序,值越大排越前面 | 100 |
表4-4:学生作业
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
leixing | varchar | 200 | 类型 | ||
zuoyemingcheng | varchar | 200 | 作业名称 | ||
gonghao | varchar | 200 | 工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
faburiqi | varchar | 200 | 发布日期 | ||
xueshengzuoye | varchar | 200 | 学生作业 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
tijiaoriqi | date | 提交日期 | |||
crossuserid | bigint | 跨表用户id | |||
crossrefid | bigint | 跨表主键id |
表4-5:试卷表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
name | varchar | 200 | 试卷名称 | ||
time | int | 考试时长(分钟) | |||
status | int | 试卷状态 | 0 |
表4-6:学生
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
mima | varchar | 200 | 密码 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
xingbie | varchar | 200 | 性别 | ||
youxiang | varchar | 200 | 邮箱 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
xiangpian | varchar | 200 | 相片 |
表4-7:资料信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-8:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-9:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 收藏id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 收藏名称 | ||
picture | varchar | 200 | 收藏图片 | ||
type | varchar | 200 | 类型(1:收藏,21:赞,22:踩) | 1 | |
inteltype | varchar | 200 | 推荐类型 |
表4-10:课程信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-11: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-12:签到信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
leixing | varchar | 200 | 类型 | ||
shangkeshijian | varchar | 200 | 上课时间 | ||
shangkedidian | varchar | 200 | 上课地点 | ||
gonghao | varchar | 200 | 工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
qiandaoleixing | varchar | 200 | 签到类型 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
qiandaobeizhu | varchar | 200 | 签到备注 | ||
qiandaoshijian | datetime | 签到时间 |
表4-13:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表4-14:公告信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | varchar | 200 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-15:成绩统计
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kaoshimingcheng | varchar | 200 | 考试名称 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
chengji | int | 成绩 | |||
tongjibeizhu | varchar | 200 | 统计备注 | ||
tongjiriqi | date | 统计日期 |
表4-16:类型
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
leixing | varchar | 200 | 类型 |
表4-17:课程信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
kechengfengmian | varchar | 200 | 课程封面 | ||
leixing | varchar | 200 | 类型 | ||
shangkeshijian | datetime | 上课时间 | |||
shangkedidian | varchar | 200 | 上课地点 | ||
kechengjianjie | longtext | 4294967295 | 课程简介 | ||
kechengneirong | longtext | 4294967295 | 课程内容 | ||
zhongdiannandian | varchar | 200 | 重点难点 | ||
gonghao | varchar | 200 | 工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 |
表4-18:教师
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
gonghao | varchar | 200 | 工号 | ||
mima | varchar | 200 | 密码 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
xingbie | varchar | 200 | 性别 | ||
youxiang | varchar | 200 | 邮箱 | ||
lianxishouji | varchar | 200 | 联系手机 | ||
xiangpian | varchar | 200 | 相片 |
表4-19:校园论坛
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 帖子标题 | ||
content | longtext | 4294967295 | 帖子内容 | ||
parentid | bigint | 父节点id | |||
userid | bigint | 用户id | |||
username | varchar | 200 | 用户名 | ||
isdone | varchar | 200 | 状态 |
表4-20:作业信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
leixing | varchar | 200 | 类型 | ||
zuoyemingcheng | varchar | 200 | 作业名称 | ||
zuoyefengmian | varchar | 200 | 作业封面 | ||
zuoyeneirong | longtext | 4294967295 | 作业内容 | ||
gonghao | varchar | 200 | 工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
faburiqi | date | 发布日期 |
4.2系统整体设计
4.2.1系统设计思想
系统确定了各项需求,完成了系统的分析和数据库的设计,它就可以根据平台的特点决定平台的发展模式,才能实现代码。通过对平台的分析,这个平台是属于一个小项目,所完成的功能相对简单,就是对数据的基本操作。从而决定采用B/S开发模式。该模型的基本过程是:当用户访问平台的浏览器,或从用户向服务器发送请求时,通过接收请求,然后调用数据访问逻辑运算如比,将结果返回给将结果返回到用户通过浏览器。
使用开发的模型时,我们要把一些常用的,可以重复使用了java技术。当用户浏览网页,很多网页上的信息是从数据库动态删除,这就要求网页必须有数据库操作的能力,如连接数据库和数据表,更新。一个平台包含多个相同的网页,实现数据库操作功能的、代码就需要在不一样的网页中重复的被使用,这样不仅降低了工作的效率,一般也会给维护带来较大的麻烦。为了弥补这一缺陷,功能代码应该在java中完整的数据库操作,可以使用在每一个页面上。
4.2.2系统流程图
下图是用户进入这个学习平台后,基本的操作流程。一进入首页便可以进行各种学习信息的浏览,用户可以根据自身的需求来找适合自己的学习信息,如果有合适的学习信息时,就能进行相应的操作,但前提是必须是登录的用户,不然系统会提示需重新登录才可操作。用户也可通过公告的消息,了解实时的情况,这样有助于结合自身,更好的适应学习的管理需求,最后用户可以根据自己获得信息的满意程度来进行操作。
图4-3系统操作流程图
5系统详细设计
5.1系统功能模块
学习平台,在平台首页可以查看首页,课程信息,作业信息,资料信息,校园论坛,试卷,公告信息,个人中心,后台管理等内容进行详细操作,如图5-1所示。
图5-1平台首页界面图
用户注册,在用户注册页面通过填写学号,密码,确认密码,学生姓名,邮箱,手机号码等信息完成用户注册,如图5-2所示。
图5-2用户注册界面图
课程信息,在课程信息页面可以查看课程名称,类型,上课时间,上课地点,课程简介,重点难点,工号,教师姓名等详细内容,并进行评论和收藏操作,如图5-3所示。
图5-3课程信息界面图
作业信息,在作业信息页面可以查看作业名称,课程信息,类型,工号,教师姓名,发布日期等详细内容,并进行收藏操作;如图5-4所示。
图5-4作业信息界面图
资料信息,在资料信息页面可以查看资料名称,类型,资料简介,工号,教师姓名,发布日期,资料文件等内容并进行点赞和评论操作;如图5-5所示。
图5-5资料信息界面图
个人中心,在个人中心页面通过填写学号,密码,学生姓名,性别,邮箱,手机号码等信息进行更新信息,根据需要对我的发布,我的收藏,考试记录,错题本等内容进行详细操作,如图5-6所示。
图5-6个人中心界面图
5.2管理员功能模块
管理员登录系统后,可以对首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信息管理,资料信息管理,签到信息管理,成绩统计管理,学生作业管理,试卷管理,试题管理,校园论坛,系统管理等功能模块进行相应操作,如图5-7所示。
图5-7管理员功能界面图
学生管理,在学生管理页面可以对索引,学号,学生姓名,性别,邮箱,手机号码,相片等信息进行详情,修改和删除等操作,如图5-8所示。
图5-8学生管理界面图
教师管理,在教师管理页面可以对索引,工号,教师姓名,性别,邮箱,联系电话,相片等内容进行详情,修改和删除等操作,如图5-9所示。
图5-9教师管理界面图
课程信息管理,在课程信息管理页面可以对索引,课程名称,课程封面,上课时间,上课地点,重点难点,工号,教师姓名等内容进行详情,修改,查看评论和删除操作,如图5-10所示。
图5-10课程信息管理界面图
类型管理,在类型管理页面可以对索引和类型等内容进行详情,修改或删除等操作,如图5-11所示。
图5-11类型管理界面图
作业信息管理,在作业信息管理页面可以对索引,课程名称,类型,作业名称,作业封面,工号,教师姓名,发布日期等内容进行详情和删除等操作,如图5-12所示。
图5-12作业信息管理界面图
资料信息管理,在资料信息管理页面可以对索引,资料名称,资料封面,类型,资料文件,工号,教师姓名,发布日期等内容进行详情,查看评论和删除等操作,如图5-13所示。
图5-13资料信息管理界面图
签到信息管理,在签到信息管理页面可以对索引,课程名称,类型,上课时间,上课地点,工号,教师姓名,签到类型,学号,学生姓名,签到备注,签到时间等内容进行详情和删除等操作,如图5-14所示。
图5-14签到信息管理界面图
成绩统计管理,在成绩统计管理页面可以对索引考试名称,学号,学生姓名,成绩,统计备注,统计日期等内容进行详情,修改和删除等操作,如图5-15所示。
图5-15成绩统计管理界面图
学生作业管理,在学生作业管理页面可以对索引,课程名称,类型,作业名称,工号,教师姓名,发布日期,学生作业,学号,学生姓名,提交日期等内容进行详情和删除等操作,如图5-16所示。
图5-16学生作业管理界面图
试卷管理,在试卷管理页面可以对索引,试卷名称,考试时长(分钟),试卷状态等内容进行详情,修改和删除等操作,如图5-17所示。
图5-17试卷管理界面图
校园论坛,在校园论坛页面可以对索引,贴子标题,用户名,状态等内容进行详情,查看评论和删除等操作,如图5-18所示。
图5-18校园论坛界面图
5.3学生功能模块
学生登录进入系统,可以对首页,个人中心,签到信息管理,学生作业管理,校园论坛,我的收藏管理,考试管理等功能模块进行相应操作,如图5-19所示。
图5-19学生功能界面图
签到信息管理,在签到信息管理页面可以对索引,课程名称,类型,上课时间,上课地点,工号,教师姓名,签到类型,学号,学生姓名,签到备注,签到时间等内容进行详情,修改和删除等操作,如图5-20所示。
图5-20签到信息管理界面图
5.4教师功能模块
教师登录进入学习平台,可以对首页,个人中心,课程信息管理,作业信息管理,资料信息管理,签到信息管理,成绩统计管理,学生作业管理等功能进行相应操作,如图5-21所示。
图5-21教师功能界面图
个人中心,在个人中心页面通过填写工号,性别,联系手机,相片,教师姓名,邮箱等内容进行个人信息修改操作,如图5-22所示。
图5-22个人中心界面图
6系统测试
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码,权限,点击登录按钮,会出现两种情况:登录成功进入用户具有权限的功能界面和提示登录失败。
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码,权限,点击登录按钮,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。
相关文章:

基于springboot的Java学习论坛平台
基于springboot的Java学习论坛平台 摘 要 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括学习平台的网络应用,在外国学习平台已经是很普遍的方式,不过国内的管理平台可能还处于起步阶段。学习平台具…...
Python离线环境搭建
引言 在软件开发过程中,我们常常会遇到内网环境无法直接访问外网的情况,这就需要我们通过一些特殊手段来搭建Python开发环境。本文将详细介绍如何利用U盘在内网机与外网机之间迁移Python环境及其依赖包。 工具准备 1台内网机1台外网机1个U盘 操作步骤…...

windows下kafka使用出现的问题
kafka启动 启动kafka需要先启动zookeeper,在kafka根目录下先启动zookeeper .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties启动kafka 另开一个cmd命令行 .\bin\windows\kafka-server-start.bat .\config\server.propertieskafka与jdk版…...

ctfshow文件包含web78~81
目录 web78 方法一:filter伪协议 方法二:input协议 方法三:data协议 web79 方法一:input协议 方法二:data协议 web80 方法一:input协议 方法二:日志包含getshell web81 web78 if(isset($_GET[file]…...
鸿蒙生态认识
好的,让我们更深入地探讨鸿蒙生态的发展机遇、面临的挑战,以及未来的潜力。 对鸿蒙生态的认知与分析 鸿蒙系统作为一种新兴的操作系统,旨在打破设备之间的壁垒,打造一个更加连通的生态环境。以下是对其崛起的进一步分析…...

Hadoop-004-Big Data Tools插件的使用
一、Big Data Tools插件配置流程 1、安装Big Data Tools插件 以IntelliJ IDEA 2024.2.3为例打开setting, 搜索安装Big Data Tools插件后重启IDEA 2、Windows系统基础配置 Windows系统需要做一些基础设置,配合插件使用,将之前下载的hadoop-3.2.4.tar.gz 解压到D…...
linux8在线扩容/home目录
虚机新增1T磁盘 [rootrsb ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.8 (Ootpa) [rootrsb ~]# vgs VG #PV #LV #SN Attr VSize VFree ol 2 3 0 wz--n- <2.00t 0 [rootrsb ~]# lvs LV VG Attr LSize Pool Origin Dat…...

【C/C++】模拟实现strcpy
学习目标: 使用代码模拟实现strcpy。 逻辑: strcpy 函数的返回类型是 void 即不返回数据。strcpy 函数的参数类型是 char* ,用于接收数组。strcpy 函数要把一个数组复制到另一个数组。 代码: #define _CRT_SECURE_NO_WARNINGS …...
网络编程番外——IO多路复用的应用说明
一、IO多路复用与多线程 IO多路复用,IO Multiplexing,其实就是在IO上进行监听处理导致线程被阻塞(如果非阻塞就必须不断的轮询,仍然是占用此线程),如果一个IO对应一个线程是不是太浪费了。而且在诸如网络I…...

【Java爬虫的淘宝寻宝记】—— 淘宝商品类目的“藏宝图”
引言: 在淘宝这个广袤的“商品宇宙”中,每一件商品都是一颗璀璨的星球,而商品类目就是连接这些星球的星际航道。今天,我们将派遣一位勇敢的Java爬虫宇航员,去揭开这些星际航道背后的秘密——商品类目。准备好了吗&…...

探索Python文档自动化的奥秘:揭开docxtpl库的神秘面纱
文章目录 探索Python文档自动化的奥秘:揭开docxtpl库的神秘面纱1. 背景介绍2. 库简介3. 安装指南4. 基础函数介绍5. 实际应用场景6. 常见问题及解决方案7. 总结 探索Python文档自动化的奥秘:揭开docxtpl库的神秘面纱 1. 背景介绍 在日常工作中…...
RabbitMQ的解耦、异步、削峰是什么?
RabbitMQ在分布式系统和微服务架构中起到了重要的作用,其特性可以实现解耦、异步以及削峰,下面是对这三个概念的详细解释: 1. 解耦 解耦是指使系统的不同组件间的依赖关系减少或消失。在使用RabbitMQ时,生产者(发送消…...
4:arm汇编语言4:bits/byte的介绍(ASCII码)与二进制补位
4.2 bits/byte的介绍与ASCII码的引入 这个是详细介绍计算机内部原理的基础,bits与byte其实这两个是计算机中非常重要的单位。首先看一下bits,它是一个基础的计算机单位。计算机单位?像长度单位是米,体重的单位是kg,你…...
C++实现仿安卓线程Handler、Message、Looper的功能
在java开发中,习惯使用Handler、Message来处理同步,比如对相机的操作(open、setParamters、start、stop、clost)全部抛到同一个线程处理,防止并发操作导致异常,这样保留给外部的统一接口就是安全的,无论外部哪些线程来…...
构建安全的用户登录API:从请求验证到JWT令牌生成
构建安全的用户登录API:从请求验证到JWT令牌生成 为了实现这个后端POST /api/users/login端点,我们可以使用Node.js和Express框架,并结合一些常用的库如jsonwebtoken、bcrypt和express-validator来处理验证和密码校验。下面是一个完整的示例…...
状态模式:封装对象状态并改变行为的设计模式
1. 引言 在软件开发中,某些对象的行为会随着其内部状态的变化而变化。传统的实现方式可能需要使用大量的条件语句,导致代码复杂且难以维护。状态模式(State Pattern)提供了一种有效的方法,通过将状态行为封装在状态类…...

备战“双11”丨AI+物流:你的快递会有什么变化?
背景 在中国,每天有数以亿计的包裹在运输,尤其在电商促销季如“双十一”、“618”期间,快递量更是激增。快递物流行业面临人员短缺、配送效率低下和物流承载能力有限等问题。快瞳科技提供的AI识别解决方案通过智能化手段提高工作效率和配送准…...
理解为什么要有C++设计模式
什么时设计模式? 每一个模式描述了一个在我们周围不断重复的问题以及该问题的解决方案的核心,这样,就能一次有一次地使用该方案,而不必做重复劳动。 如何解决复杂性? 分解:人们面对复杂性有一个常见的做法…...

模式匹配类型
一、匹配常量 在scala中,模式匹配可以匹配所有的字面量,包括字符串,字符,数字,布尔值等等 def describeConst(x:Any):String x match {case "str" > "匹配字符串"case > "匹配字符&…...
每天10个vue面试题(七)
1、Vue如何监听页面url中hash变化? 监听 $route 的变化:在Vue中,你可以使用watch属性来监听$route的变化。当路由发生变化时,会执行相应的处理函数。使用 window.location.hash:直接读取window.location.hash的值。这…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...