🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示
摘要
三省学堂-学习辅助系统是学校是学习辅助管理必不可少的一个部分。在学校学习辅助管理的整个过程中,学习辅助系统担负着最重要的角色。为满足如今日益复杂的管理需求,各类学习辅助管理程序也在不断改进。本课题所设计的三省学堂-学习辅助系统,使用java技术进行开发,它的优点代码不能从浏览器查看,保密性非常好,比其他的系统更具安全性。java还容易修改和调试,毕竟学校是在不断发展过程中,难免有更多需求,这点很重要。而且,本系统对学习辅助的管理,是为了满足学校更深层次的需求。除了上述优势外,本系统还具有查询迅速,搜索资料方便,可靠性强等特点。
关键词:三省学堂-学习辅助系统;java;可靠性
1.绪论
1.1开发背景
随着社会的发展,线下管理的方式已经不可避免的显示出它在时间与空间等方面的局限性,广大的人民群众迫切的需要打破这种局限性。在这种要求下,基于SSM框架的三省学堂-学习辅助系统产生了。它的出现不但解决了传统学习辅助管理方式的缺点,而且给了广大用户更大的选择空间,促进了学习辅助的优化管理,有效的避免了学习辅助管理缭乱的局面。所以像学习辅助系统这种管理方式的发展壮大也是不可避免的。
三省学堂-学习辅助系统作为一种典型的管理系统也迅速的发展并深入人们的日常生活中,它使用户足不出户就可以查看作业信息,在家学习等,最大化减缩了用户的管理时间,提高了管理效率。
1.2开发意义
计算机技术在管理中成为人们的重要工具。可以有效快捷的解决想要获取的信息,提高工作效率。
1.3课题研究现状
在国外很多发达国家,软件产业早已得到全面普及,但我国经济已不断发展,不断引进国外信息化建设,使国内软件行业得以不断发展,在摸索中进步,最终也得到一些成果,我国的软件业迎来了高速的发展,使更多的软件系统得以开发出来,从此逐渐地改变人们的生活工作方式。但是,对于信息化的建设,与很多发达国家相比,由于信息化程度的落后以及经费的不足,我国的网上管理系统开发方面还是相对落后的,因此,要不断的努力探索,争取开发出一个实用的信息化的学习辅助系统,来实现行学习辅助管理的信息化。因此本课题以学习辅助管理为例,目的是开发一个实用的三省学堂-学习辅助系统。
三省学堂-学习辅助系统的开发运用java技术,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该系统的开发,实现了学习辅助管理的信息化,使用户体验到更优秀的学习辅助管理,管理员管理操作将更加方便,实现目标。
1.4项目研究内容与结构
学习辅助管理方面的任务繁琐,以至于学校每年都在学习辅助管理这方面投入较多的精力却效果甚微,三省学堂-学习辅助系统的目标就是为了能够缓解学习辅助管理工作方面面临的压力,让学习辅助管理方面的工作变得更加高效准确。
本项目在开发和设计过程中涉及到原理和技术有:B/S架构、java技术、SSM框架和MySQL数据库等。将按以下章节进行开发设计;
- 绪论;剖析项目背景,说明研究的内容。
- 开发技术。系统主要使用了java技术,SSM框架、b/s模式和myspl数据库,并对此做了介绍。
- 系统分析;包括了系统总体结构、对系统的性能、功能、流程图进行了分析。
- 系统设计;对软件功能模块和数据库进行详细设计。
- 系统总体设计;对系统管理员,教师,家长和学生的功能进行描述。
- 对系统进行测试。
- 系统维护。
- 总结;在论文最后结束章节总结了开发这个系统和撰写论文时候自己的总结、感想,包括致谢。
2.开发技术介绍
2.1B/S架构
随着软件系统的不断改进和升级,B/S结构产品更为方便的特征体现得十分明显。对于一个中等偏大的公司来说,如果系统管理员每天要在很多台电脑之间来回查看,不断奔走,那么效率和工作量就会变得很低,但是如果使用了B/S结构,那么管理员只要对服务器进行管理就够了。
B/S结构最大的优点它不需要安装任何的软件,它所有的客户端就只是浏览器,所以只要有一台电脑并且可以上网就可以解决所有问题,客户端可以完全地不用管理员维护。无论使用系统的使用者是什么样的规模,也不管分支有多么的庞大,都不会对维护和升级的工作量造成影响,所有的维护和升级只需要操作服务器。随着B/S结构的不断发展,使用的人也不断增加,从而带动了AJAX技术的发展,和B/S结构一样,它也能在客户端上处理程序,这便缓解了服务器的负担,提高了交互性,而且实现了局部实时刷新。
2.2Java语言简介
Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。
Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。Java的主要特性有以下几个:
1.面向对象
面向对象有四个特点:封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分,关注主要部分。多态是指对同一种消息做出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法,而不改变原来父类。
2.平台无关性
Java编译出来的是字节码,直接由虚拟机执行。在任何平台上,只要有Java虚拟机,Java代码都能运行。
3.可靠性和安全性
Java对内存的访问都必须通过对象的实例变量来实现,避免了指针中出现的错误。
4.多线程
Java提供了多线程功能,利用编程实现同一时间同时工作的功能。
2.3 SSM框架
开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。
2.4 MySql数据库
在软件项目,通过经营性数据的数据库,可以保证其安全,独立和数据一致,访问数据的系统来提供,所以有效减少时间程序员开发应用程序。
MySQL可以支持多线程,可以方便使用系统的资源,提高运行的速度。并提供odbc、jdbc和tcp/ip,以各种形式连接到MySQL;功能方面表现欠缺,规模小,但对于这个系统就足够了。
因为MySQL是源代码对外开放的,所以任何人都可以通过相应的方法下载,并根据个性化需求进行修改。由于MySQL的速度,可靠性和适应性,MySQL受到重视。
MySQL虽然功能可能不是很强大,但由于其开源,广泛传播,导致很多人都意识到这个数据库。
2.5MySQL环境配置
本系统的数据使用的是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服务。
3系统分析
3.1可行性分析
在开发系统之前要进行系统可行性分析,目的是在用最简单的方法去解决最大的问题,程序一旦开发出来满足了用户的需要,所带来的利益也很多。下面我们将从技术、操作、经济等方面来选择这个系统最终是否开发。
3.1.1技术可行性
本系统开发选择Java技术,SSM框架,大大减少了使用windows编程的难度,减少开发人员在设计算法上的难度,作为java开发 Visual Studio更是一个必不可少的角色,它友好的界面,以及强大的功能,给程序开发人员带来了很多方便,加上环境简单,转移方便,无疑是此系统最佳的选择。所以后台设计选择使用MySQL数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
依据上述目标来分析本系统的硬件如下:
奔腾3的处理器;
内存是 2G;
硬盘是50G;
操作系统是Window 10;
在软件方面的话,安装了Visul Studio 0 和MySQL数据库开发工具。根据以上的软件与硬件要求,得到这个系统的技术是可行的。
3.1.2经济可行性
基于SSM框架的三省学堂-学习辅助系统,该系统软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的学习辅助管理,同时还能实现对人力资源和管理资源的有效节约,该三省学堂-学习辅助系统在经济上完全可行。
3.1.3操作可行性
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.1.4 运行可行性
本系统作为以java作为开发语言的系统,而且选用B/S结构则决定了要操作本系统仅需要占用很小的资源,并没有过多地硬件配置要求,目前市面上只要能正常运行浏览器的个人电脑都可以正常运行使用该系统。
经过总结,本系统在经济方面、技术方面、操作方面和运行方面的条件都得以满足,为此系统的开发具备了可行性条件。
3.2系统性能需求分析
对系统性能进行分析,可对系统反应度、界面简洁清晰度、储存能性、易学性和稳定性进行分析:
系统反应度:同时上万人在线时反应时间应该在两三秒以内。
界面简洁清晰:系统界面要求简单明了,操作简单,用户操作容易上手。
储存性能高:三省学堂-学习辅助系统中需要存储的信息有很多,所以对系统的存储量要求很高,因此数据库就应该很强大,才能保证信息能安全稳定的进行存储;
易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
稳定性:要求三省学堂-学习辅助系统运行要稳定,界面清楚、字体清晰等。
3.3系统功能分析
考虑到实际生活中学习辅助管理方面的需要以及对该平台认真的分析,将系统权限按管理员,教师,家长和学生这四类涉及用户划分。
(a) 管理员;管理员使用本系统涉到的功能主要有:首页,个人中心,学生管理,家长管理,教师管理,作业信息管理,选择作业管理,完成作业管理,错题反馈管理,错题练习管理,教师提醒管理,家校留言板,系统管理等功能。管理员用例图如图3-1所示。
图3-1管理员用例图
(b)教师;教师进入系统可以实现首页,个人中心,作业信息管理,选择作业管理,完成作业管理,错题反馈管理,错题练习管理,教师提醒管理等功能。教师用例图如图3-2所示。
图3-2教师用例图
(c)家长;家长进入系统可以实现首页,个人中心,选择作业管理,完成作业管理,错题反馈管理,错题练习管理,教师提醒管理等功能。家长用例图如图3-3所示。
图3-3家长用例图
(d)学生;学生进入系统可以实现首页,个人中心,选择作业管理,完成作业管理,错题反馈管理,错题练习管理,教师提醒管理等功能。学生用例图如图3-4所示。
图3-4学生用例图
3.4系统流程的分析
由于不同的系统实际使用用户角色的不同,他们的业务分析也会变得有所不一样,为了论述方便接下来都将以用户权限下的系统业务流程来分析,如下图所展示:
3.4.1 用户管理的流程
图3-5 用户管理流程
3.4.2个人中心管理流程
图3-6 个人中心管理流程
3.4.3登录流程
4系统设计
4.1 软件功能模块设计
系统整体功能如下图所示:
图 4-1 系统总体功能模块图
4.2数据库设计与实现
在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。
4.2.1概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
通知公告实体图如图4-2所示:
图4-2通知公告实体图
错题练习实体图如图4-3所示:
图4-3错题练习实体图
4.2.2数据库逻辑结构设计
根据E-R得出数据库包含了以下几张数据表来实现了对数据库的存储、调用。以下分别列出数据表的每个字段名、数据类型、主外键及备注。
4-1:错题练习
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
cuotibianhao | varchar | 200 | 错题编号 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
zuoyemingcheng | varchar | 200 | 作业名称 | ||
lianxishijian | date | 练习时间 | |||
lianxijieguo | longtext | 4294967295 | 练习结果 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 |
4-2:完成作业
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zuoyebianhao | varchar | 200 | 作业编号 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
zuoyemingcheng | varchar | 200 | 作业名称 | ||
zuoyefujian | varchar | 200 | 作业附件 | ||
tijiaoshijian | date | 提交时间 | |||
zuoyebeizhu | varchar | 200 | 作业备注 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
4-3:错题反馈
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
cuotibianhao | varchar | 200 | 错题编号 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
zuoyemingcheng | varchar | 200 | 作业名称 | ||
faburiqi | date | 发布日期 | |||
cuotileixing | varchar | 200 | 错题类型 | ||
cuotineirong | longtext | 4294967295 | 错题内容 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 |
4-4:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
4-5:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
4-6: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-7:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-8:通知公告
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | varchar | 200 | 图片 | ||
content | longtext | 4294967295 | 内容 |
4-9:家长
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jiazhangzhanghao | varchar | 200 | 家长账号 | ||
mima | varchar | 200 | 密码 | ||
jiazhangxingming | varchar | 200 | 家长姓名 | ||
xingbie | varchar | 200 | 性别 | ||
jiazhangdianhua | varchar | 200 | 家长电话 | ||
touxiang | varchar | 200 | 头像 |
4-10:教师提醒
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
tixingbianhao | varchar | 200 | 提醒编号 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
biaoti | varchar | 200 | 标题 | ||
fabushijian | date | 发布时间 | |||
fabuneirong | longtext | 4294967295 | 发布内容 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 |
4-11:教师
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
mima | varchar | 200 | 密码 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
xingbie | varchar | 200 | 性别 | ||
jiaoshidianhua | varchar | 200 | 教师电话 | ||
touxiang | varchar | 200 | 头像 |
4-12:作业信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zuoyebianhao | varchar | 200 | 作业编号 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
zuoyemingcheng | varchar | 200 | 作业名称 | ||
tupian | varchar | 200 | 图片 | ||
zuoyeyaoqiu | varchar | 200 | 作业要求 | ||
zuoyeneirong | longtext | 4294967295 | 作业内容 | ||
faburiqi | date | 发布日期 | |||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 |
4-13:学生
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
mima | varchar | 200 | 密码 | ||
xingming | varchar | 200 | 姓名 | ||
xingbie | varchar | 200 | 性别 | ||
xueshengdianhua | varchar | 200 | 学生电话 | ||
touxiang | varchar | 200 | 头像 |
4-14:家校留言板
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-15:作业信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
4-16:选择作业
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zuoyebianhao | varchar | 200 | 作业编号 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
zuoyemingcheng | varchar | 200 | 作业名称 | ||
xuanzeriqi | date | 选择日期 | |||
zuoyeyaoqiu | varchar | 200 | 作业要求 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
zhuangtai | varchar | 200 | 状态 | ||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
5 系统详细设计
5.1系统功能模块
三省学堂-学习辅助系统,在系统首页可以查看首页,作业信息,家校留言板,通知公告,个人中心,后台管理等内容,并进行详细操作;如图5-1所示。
图5-1系统首页界面图
学生注册,在学生注册页面通过填写学号,密码,确认密码,姓名,学生电话等信息进行注册操作,如图5-2所示。
图5-2学生注册界面图
作业信息,在作业信息页面可以查看作业编号,教师工号,教师姓名,作业要求,发布日期,点击次数等内容,并进行选择作业,评论和收藏等操作,如图5-3所示。
图5-3作业信息界面图
个人中心,在个人中心页面通过填写学号,密码,姓名,性别,学生电话,上传图片等内容进行更新信息,还可以根据需要对我的发布,我的收藏进行相对应操作,如图5-4所示。
图5-4个人中心界面图
5.2管理员功能模块
管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图5-5所示。
图5-5管理员登录界面图
管理员登录系统后,可以对首页,个人中心,学生管理,家长管理,教师管理,作业信息管理,选择作业管理,完成作业管理,错题反馈管理,错题练习管理,教师提醒管理,家校留言板,系统管理等功能进行相应的操作管理,如图5-6所示。
图5-6管理员功能界面图
学生管理,在学生管理页面可以对索引,学号,姓名,性别,学生电话,头像等内容进行详情,修改和删除等操作,如图5-7所示。
图5-7学生管理界面图
教师管理,在教师管理页面可以对索引,教师工号,教师姓名,性别,教师电话,头像等内容进行详情,修改和删除等操作,如图5-8所示。
图5-8教师管理界面图
完成作业管理,在完成作业管理页面可以对索引,作业编号,教师工号,教师姓名,作业名称,作业附件,提交时间,作业备注,学号,姓名,审核回复,审核状态等内容进行详情,修改和删除操作;如图5-9所示。
图5-9完成作业管理界面图
5.3学生功能模块
学生登录进入三省学堂-学习辅助系统可以对首页,个人中心,选择作业管理,完成作业管理,错题反馈管理,错题练习管理,教师提醒管理等功能进行相应操作,如图5-10所示。
图5-10学生功能界面图
选择作业管理,在选择作业管理页面可以对索引,作业编号,教师工号,教师姓名,作业名称,选择日期,作业要求,学号,姓名,状态,审核回复,审核状态等内容进行详情,完成作业,修改和删除等操作,如图5-11所示。
图5-11选择作业管理界面图
错题反馈管理,在错题反馈管理页面可以对索引,错题编号,教师工号,教师姓名,作业名称,发布日期,错题类型,学号,姓名等内容进行详情和错题练习操作;如图5-12所示。
图5-12错题反馈管理界面图
5.4家长功能模块
家长登录进入三省学堂-学习辅助系统可以对首页,个人中心,选择作业管理,完成作业管理,错题反馈管理,错题练习管理,教师提醒管理等功能进行相应操作,如图5-13所示。
图5-13家长功能界面图
选择作业管理,在选择作业管理页面可以对索引,作业编号,教师工号,教师姓名,作业名称,选择日期,作业要求,学号,姓名,状态,审核回复,审核状态等内容进行详情操作,如图5-14所示。
图5-14选择作业管理界面图
错题练习管理,在错题练习管理页面可以对索引,错题编号,教师工号,教师姓名,作业名称,练习时间,学号,姓名等内容进行详情操作;如图5-15所示。
图5-15错题练习管理界面图
5.5教师功能模块
教师登录进入三省学堂-学习辅助系统可以对首页,个人中心,作业信息管理,选择作业管理,完成作业管理,错题反馈管理,错题练习管理,教师提醒管理等功能进行相应操作,如图5-16所示。
图5-16教师功能界面图
完成作业管理,在完成作业管理页面可以对索引,作业编号,教师工号,教师姓名,作业名称,作业附件,提交时间,作业备注,学号,姓名,审核回复,审核状态,审核等内容进行详情,错题反馈,修改和删除等操作,如图5-17所示。
图5-17完成作业管理界面图
教师提醒管理,在教师提醒管理页面可以对索引,提醒编号,教师工号,教师姓名,标题,发布时间,学号,姓名等内容进行详情,修改和删除操作;如图5-18所示。
图5-18教师提醒管理界面图
6 系统测试
6.1 测试目的
6.2 测试的步骤
与开发的步骤差不多,测试的步骤也一定要一步一步的进行,每一个步骤在逻辑上面都是紧接上一步的。主要对本系统进行了数据测试和功能测试。
功能测试
功能测试首先测试系统的所有功能页面,以确保每个功能可以实现所需的功能。例如,用户提交的数据是否准确,管理员对信息的添加,删除,修改是否正确,用户的各功能是否能成功等等。
数据测试
三省学堂-学习辅助系统,数据的正确性是十分重要的,主要测试的是用户注册时用户信息的有效性测试,搜索功能是否准确,以及用户提交的内容是否一致等等。
6.3测试结论
本三省学堂-学习辅助系统经测试和调试后能够按照需求正常运行,基本没有错误,能够满足开发者和用户的需求。在系统整体测试过程中,系统功能相对来说比较简单,数据源的配置,需进一步改善。
7 系统维护
为了清除系统在运行过程中发生的错误,必须定期的对系统进行完善和维护;这是为了使系统适应用户环境的变化,满足用户新提出的新要求。系统维护的任务是修复软件在运行过程中发现的错误,补充用户在使用过程中提出的新的功能需求。所以,为了保证计算机系统能够正常的运行,必须对系统进行定期检查。
维护内容有:
(1)病毒防范与系统安全:当今社会,学校里最严重的安全威胁就是--木马与黑客。这些都会严重影响到学校的正常工作和发展,会对学校造成难以估量的危害。所以,必须加强系统安全,定期查杀木马,以及对系统漏洞进行修补。
(2)数据维护。根据学校的需要对数据的需求有时候会发生变化,除了系统中的主要数据的定期更新外,还需根据学校需要进行变化调整,包括增加数据内容等等。除此之外,还必须对数据进行定期的备份等。
(3)代码维护。如果系统应用范围扩大,当前系统无法满足新的需求,那么必须大于系统中的代码进行必要的增加、修改、删除等等。
(4)硬件维护。主要就是指对主机以及外设的一些基本维护和管理,如对部件的保养清理,老化部件进行更换等,以此来保证三省学堂-学习辅助系统能够正常地工作。
8 结论
通过完成该三省学堂-学习辅助系统和本论文的撰写让我更加明白了软件开发过程中软件工程思想的重要性。在项目的前期由于对需求分析做的不够谨慎和明确,导致了后面在设计甚至编码时候造成了许多不必要的麻烦。由此在今后的学习和工作开发之中必须要牢牢把握住软件工程的设计思想和方法,这样可以进一步保证项目开发的健壮性和准确性。
本网站所实现的是一个三省学堂-学习辅助系统,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还能改善。
本系统具有以下优点:该系统具有较高的适用性,选用B/S结构,可以在绝大部分个人平台上使用该系统;系统将用户权限进行划分,管理员,教师,家长和学生能看到及操作的信息不一样,四者具备不同的操作权限;该系统操作界面简单明了,大部分人都可以正常使用。
但也存在以下问题需要改进:运行时窗口不能被刷新,可以改进;系统过于简单,显示的信息有限;不能添加多个管理员账号,如果可以则将利于发展学习辅助系统规模,便于学习辅助信息集中管理;不能实时预约接待消息和学习辅助系统反馈建议,容易被忽视,不利于管理员服务客户。
参考文献
[1] 李盛恩,王珊.数据库基础与应用(第二版)[M].北京:人民邮电出版社,2009:14-78.
[2]孙卫琴:《精通Hibernate:Java对象持久化技术详解[M].电子工业出版社出版
[3]王珊,萨师煊.数据库系统概论[M].高等教育出版社,2016.5:198-235.
[4]张孝祥.深入Java Web开发内幕——核心基础[M].北京:电子工业出版社.北京.2016.10.
[5] 舒红平.Web 数据库编程-java[M],西安电子科技大学出版社,2005:97-134.
[6] 雷文华, 薛小文. MATLAB和Servlet在网络数据处理中的应用[J]. 电子测试, 2010, (11):81-86.
[7]黄艳峰. 在Java语言中实施“案例教学”的研究与探索[J]. 电脑知识与技术, 2017, 6(5):1148-1149
[8] 王玉英. 基于JSP的SQL数据库访问技术[J]. 现代计算机:专业版, 2010, 19(14):63-66
[9] 赵钢. JSP Servlet+EJB的Web模式应用研究[J]. 电子设计工程, 2013, 21(13):47-49
[10] 肖英. 解决JSP/Servlet开发中的中文乱码问题[J]. 科技传播, 2011, (1)11-25
[11]石正喜. SQL数据库实用教程. 北京:北京师范大学出版社 2016
[12]孙卫琴. 基于MVC的JavaWeb设计与开发. 北京: 电子工业出版社 2014.
核心代码展示
/**
* 公告通知
* 后端接口
* @author
* @email
* @date 2021-03-09 11:33:59
*/
@RestController
@RequestMapping("/news")
public class NewsController {
@Autowired
private NewsService newsService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( NewsEntity news){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
return R.ok().put("data", newsService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(NewsEntity news){
EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
NewsView newsView = newsService.selectView(ew);
return R.ok("查询公告通知成功").put("data", newsView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody NewsEntity news, HttpServletRequest request){
//ValidatorUtils.validateEntity(news);
newsService.updateById(news);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
newsService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = newsService.selectCount(wrapper);
return R.ok().put("count", count);
}
}