🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示(需要演示视频可以私信我)
项目展示
1 绪论
本文主要是针对线下传统管理方式中管理不便与效率低的缺点,将电子商务和计算机技术结合起来,开发出管理便捷,效率高的贫困生管理系统。作者开发了以java技术语言为基础的在线贫困生管理系统。本系统能够提供管理员在线管理,管理主页、个人中心、学生管理、学院管理、贫困生名额管理、贫困生申请管理、助学金等级管理、评定规则管理、申请上报管理、助学金管理、勤工助学管理、岗位申请管理、岗位工时管理、岗位薪金管理等功能。而第一部分主要介绍了贫困生管理系统的项目背景以及课题研究现状和课题研究目标。
1.1项目背景介绍
近几年来,网络事业,特别是Internet发展速度之快是任何人都始料不及的。目前,由于Internet表现出来的便捷,快速等诸多优势,已经使它成为社会各行各业,甚至是平民大众工作,生活不可缺少的一个重要组成部分。
随着社会的发展线下管理的方式已经不可避免的显示出它在时间与空间等方面的局限性,广大的人民群众迫切的需要打破这种局限性。在这种要求下,基于网络的电子商务产生了。它的出现不但解决了传统管理方式的缺点,而且给了广大用户更大的选择空间,促进了贫困生的优化管理,有效的避免了贫困生管理缭乱的局面。所以像贫困生管理系统这种电子商务的发展壮大也是不可避免的。
贫困生管理系统作为一种典型的电子商务系统也迅速的发展并深入人们的日常生活中,它使用户足不出户就可以管理自己的贫困生信息等,最大化减缩了用户的管理时间,提高了管理效率。
1.2课题研究现状
在国外很多发达国家,管理系统早已得到全面普及,但我国经济已不断发展,不断引进国外信息化建设,使国内管理系统得以不断发展,在摸索中进步,最终也得到一些成果,我国的管理系统迎来了高速的发展,使更多的管理系统得以开发出来,从此逐渐地改变人们的生活工作方式。但是,对于信息化的建设,与很多发达国家相比,由于信息化程度的落后以及经费的不足,我国的线上管理系统开发方面还是相对落后的,因此,要不断的努力探索,争取开发出一个实用的信息化的管理系统,来实现贫困生管理的信息化。因此本课题以贫困生管理为例,目的是开发一个实用的贫困生管理系统。
贫困生管理系统的开发运用jsp技术,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该系统的开发,实现了贫困生管理的信息化,使用户体验到更优秀的贫困生管理系统,管理员管理操作将更加方便,实现目标。
1.3本论文的研究内容
本文主要探讨了贫困生管理系统。针对线下管理方式中管理不便与效率低的缺点,本文将电子商务和计算机技术结合起来,开发出管理更便捷,效率更高的贫困生管理系统。本文并对其详细的设计方案,实现技术和运行情况做了分析和研究,最后对未来的工作做了研究与探讨。本文重点研究了以下几个方面:
(1)系统的体系结构,主要功能模块,主要数据的工作流程,后台数据库的设计,数据库配置与连接;
1.4本论文的组织结构
全文主要包括以下几个部分:
第一部分主要介绍了项目背景以及课题研究现状和论文的主要内容等。
第二部分介绍了系统设计与实现涉及到的技术知识和相关开发工具,主要包括jsp技术,B/S架构和mysql 数据库管理系统。
第三部分在系统设计目标,系统功能需求,系统性能需求,开发环境等方面对系统进行了详细的论述分析。
第四部分对系统总体设计,数据库设计等几个方面进行了详细的论述。
第五部分主要对系统的主要功能模块的实现细节进行了详细的阐述。
第六部分对系统的功能测试以及测试结果进行了描述。
最后得出了结论,说明了系统的功能完整性和实用性以及系统的不足之处和对系统的进一步展望。
2系统关键技术及工具简介
系统开发过程中设计的关键技术是系统的核心,而开发工具则会影响的项目开发的进程和效率。第二部分便描述了系统的设计与实现等相关开发工具。
2.1 Java技术
JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言,便于结构的分离,支持多种浏览器可以在多平台下运行。它具有三个不同的体系,分别为J2SE、J2EE、J2ME。Java 语言比较容易理解,而且也容易学习和上手,其语法与C语言和C++语言很相似,它可以自动的处理废料,而且不会受到内存的影响。
Java 程序被编译后形成的class 文件,这样就能够实现在多系统中正常运行。Java语言支持多个线程同吋执行,Java程序所需要的类能够动态的或者通过网络被载入到运行环境。Java开发工具支持JavaJDK7\8。
2.2 JSP技术介绍
Java Server Pages技术是由Sun公司发布的,Sun公司利用jsp技术来开发动态Web应用的一项技术。它的特征是简单易学又可跨平台操作,在众多动态Web应用程序设计语言中最为合适,利用短短几年的时间就已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。在国内,JSP已经得到了大家的重视,有了很好的发展,越来越多的动态网站开始采用JSP技术。下面就对JSP及其相关技术进行简单的介绍。JSP技术能以一种简单方便而且快速的方法生成Web页面。使用JSP技术的Web页面可以很轻松地显示动态内容。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。
2.3 MySQL数据库简介
利用MYSQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。
MYSQL的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;MYSQL的功能相对弱小、规模也小,但本系统要求不高,MYSQL完全可以满足本网站使用。
利用MYSQL建立系统数据库,不仅有利于数据处理业务的早期整合,还能利于发展后两种数据扩展的操作。
2.4 MySQL环境配置
本系统的数据使用的是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.5 B/S架构
B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说客户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。
图2-1 B/S结构图
3系统需求分析
本章节主要是对系统设计目标,系统功能需求,系统性能需求,开发环境等方面对系统进行了详细的论述分析。
3.1系统设计的目标
本系统主要是针对线下管理方式中管理不便与效率低的缺点,将电子商务和计算机技术结合起来,开发出管理便捷,效率高的贫困生管理系统。该系统操作简单方便,界面友好,容易管理和维护;而且对贫困生信息和管理具有较强的针对性,实用性和可操作性,可初步解决线下管理因各种因素限制,高成本等因素造成的一系列不便。
3.2系统功能性需求
对功能需求的定义,一个管理系统或组件的功能,也是网页所需提供的功能和服务。本系统的功能需求按模块进行分析,主要有管理员、学生和学院三大模块。
3.2.1 功能需求
本系统的用户可分为管理员、学生和学院三个用户角色组成。管理员可以管理系统内所有功能,主要有主页、个人中心、学生管理、学院管理、贫困生名额管理、贫困生申请管理、助学金等级管理、评定规则管理、申请上报管理、助学金管理、勤工助学管理、岗位申请管理、岗位工时管理、岗位薪金管理等功能;学生登录系统主要有主页、个人中心、贫困生名额管理、贫困生申请管理、助学金等级管理、评定规则管理、申请上报管理、助学金管理、勤工助学管理、岗位申请管理、岗位工时管理、岗位薪金管理等功能;学院登录系统主要有主页、个人中心、贫困生名额管理、贫困生申请管理、助学金等级管理、评定规则管理、申请上报管理等功能
3.2.2 系统用例
本系统有主要分为三大部分组成,有登录,管理员、学生和学院等用例。
- 登录模块用例中用户包括管理员、学生和学院三种角色,分别可以进行其对应的身份登录或取消登录,关闭系统。登录模块用例图如图3-1所示。
实时性:为了展示实时性这一特点,贫困生管理系统采用精确的时间,信息及时更新等。
针对性:本系统是针对贫困生管理系统,操作简单,具有一定的针对性。
3.4对功能的总体规定
软件系统的优劣很大程度上是由系统设计的完善与否决定的。世间万物都必须遵循生老病死的法则,这是大自然的规则不能违反,软件设计也一样需要遵循系统设计规则。因此,在设计过程中必须遵循系统设计规则。
规则如下:
方便性:操作方便,操作流程合理;尽量从用户角度出发,以方便使用。如:光标移动到可点击区域时显示提示信息;操作按钮后伴随提示信息等。还支持没有计算机使用经验,使用经验较少及有较多使用经验的用户均能方便地使用本系统。
针对性:一个系统针对性越强,所能提供的功能必然越完善,用户体验肯定更好,所以应该明确指定系统针对性。
实用性:实用永远是检验一个系统是否成功的唯一标准,使用的语言再高端,使用的结构再新颖但不能满足管理员、学生和学院的要求那就是失败。
3.5对运行环境的总体规定
系统需要在Windows XP、Win7或更新版本Windows10操作系统平台上运行,并需要安装2.0或以上版本的。
3.6开发环境
硬件需求:
CPU:Pentium以上计算机
内存: 512M以上
软件需求:
操作系统版本:Windows 7 浏览器:谷歌浏览器
开发语言:java
数据库:MYSQL。
4系统设计
这章节主要是对系统总体设计,数据库设计等几个方面进行了详细的论述。
4.1系统总体设计
系统总体设计即对有关系统全局问题的设计,也就是设计系统总的处理方案,又称系统概要设计。它包括系统规划与系统功能设计等内容。
贫困生管理系统主要有三类用户。分别是管理员、学生和学院,详细规划如图4-1所示。
4、主页内容管理:管理员登录以后,可以对主页、个人中心、学生管理、学院管理、贫困生名额管理、贫困生申请管理、助学金等级管理、评定规则管理、申请上报管理、助学金管理、勤工助学管理、岗位申请管理、岗位工时管理、岗位薪金管理进行详细操作。
4.2数据库设计
数据库是一个软件项目的根基,它决定了整个项目代码的走势,同时也决定了整个项目在后期的维护以及升级的难易程度。
4.2.1 数据库概念设计
根据贫困生管理系统的功能需求,对数据库进行分析,得到相应的数据,设计用户需要的各种实体,以及相互之间的关联,为逻辑结构设计铺好路。根据所实体内的各种具体信息得于实现。
1. 学生管理实体
学生管理实体包括学号、学生姓名、性别、邮箱、手机号码、专业、年级、相片等属性。学生管理实体图如图4-2所示:
3. 申请上报管理实体
申请上报管理实体包括申请编号、名额名称、数量、学院账号、学院名称、学号、学生姓名、性别、联系手机、专业、年级、申请材料、贫困等级、上报备注、上报日期、是否审核、审核回复等属性。申请上报管理实体图如图4-4所示:
表4-3:学生
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
mima | varchar | 200 | 密码 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
xingbie | varchar | 200 | 性别 | ||
youxiang | varchar | 200 | 邮箱 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
zhuanye | varchar | 200 | 专业 | ||
nianji | varchar | 200 | 年级 | ||
zhaopian | varchar | 200 | 照片 |
表4-4:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-5:助学金
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shenqingbianhao | varchar | 200 | 申请编号 | ||
mingemingcheng | varchar | 200 | 名额名称 | ||
shuliang | varchar | 200 | 数量 | ||
xueyuanzhanghao | varchar | 200 | 学院账号 | ||
xueyuanmingcheng | varchar | 200 | 学院名称 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
xingbie | varchar | 200 | 性别 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
zhuanye | varchar | 200 | 专业 | ||
nianji | varchar | 200 | 年级 | ||
zhuxuejindengji | varchar | 200 | 助学金等级 | ||
fafangjigou | varchar | 200 | 发放机构 | ||
jine | int | 金额 | |||
fafangriqi | date | 发放日期 |
表4-6:岗位申请
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
gangweimingcheng | varchar | 200 | 岗位名称 | ||
gongzuodidian | varchar | 200 | 工作地点 | ||
xinchoudaiyu | varchar | 200 | 薪酬待遇 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
zhuanye | varchar | 200 | 专业 | ||
nianji | varchar | 200 | 年级 | ||
shenqingyuanyin | varchar | 200 | 申请原因 | ||
shenqingriqi | date | 申请日期 | |||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-7:岗位工时
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
gangweimingcheng | varchar | 200 | 岗位名称 | ||
gongzuodidian | varchar | 200 | 工作地点 | ||
xinchoudaiyu | varchar | 200 | 薪酬待遇 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
zhuanye | varchar | 200 | 专业 | ||
nianji | varchar | 200 | 年级 | ||
gongshi | int | 工时 | |||
dengjiriqi | date | 登记日期 |
表4-8:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表4-9: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-10:申请上报
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shenqingbianhao | varchar | 200 | 申请编号 | ||
mingemingcheng | varchar | 200 | 名额名称 | ||
shuliang | varchar | 200 | 数量 | ||
xueyuanzhanghao | varchar | 200 | 学院账号 | ||
xueyuanmingcheng | varchar | 200 | 学院名称 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
xingbie | varchar | 200 | 性别 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
zhuanye | varchar | 200 | 专业 | ||
nianji | varchar | 200 | 年级 | ||
shenqingcailiao | varchar | 200 | 申请材料 | ||
pinkundengji | varchar | 200 | 贫困等级 | ||
shangbaobeizhu | varchar | 200 | 上报备注 | ||
shangbaoriqi | date | 上报日期 | |||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-11:勤工助学
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
gangweimingcheng | varchar | 200 | 岗位名称 | ||
gongzuodidian | varchar | 200 | 工作地点 | ||
xinchoudaiyu | varchar | 200 | 薪酬待遇 | ||
jibenyaoqiu | varchar | 200 | 基本要求 | ||
gongzuoneirong | longtext | 4294967295 | 工作内容 | ||
faburiqi | date | 发布日期 |
表4-12:贫困生申请
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shenqingbianhao | varchar | 200 | 申请编号 | ||
mingemingcheng | varchar | 200 | 名额名称 | ||
shuliang | int | 数量 | |||
xueyuanzhanghao | varchar | 200 | 学院账号 | ||
xueyuanmingcheng | varchar | 200 | 学院名称 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
xingbie | varchar | 200 | 性别 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
zhuanye | varchar | 200 | 专业 | ||
nianji | varchar | 200 | 年级 | ||
shenqingcailiao | varchar | 200 | 申请材料 | ||
zhengmingcailiao | varchar | 200 | 证明材料 | ||
shenqingriqi | date | 申请日期 | |||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-13:贫困生名额
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
mingemingcheng | varchar | 200 | 名额名称 | ||
shuliang | int | 数量 | |||
shenqingxuzhi | longtext | 4294967295 | 申请须知 | ||
xueyuanzhanghao | varchar | 200 | 学院账号 | ||
xueyuanmingcheng | varchar | 200 | 学院名称 | ||
lianxishouji | varchar | 200 | 联系手机 | ||
faburiqi | date | 发布日期 |
表4-14:评定规则
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
guizemingcheng | varchar | 200 | 规则名称 | ||
zhuyishixiang | varchar | 200 | 注意事项 | ||
guizejianjie | varchar | 200 | 规则简介 | ||
guizeneirong | longtext | 4294967295 | 规则内容 | ||
xueyuanzhanghao | varchar | 200 | 学院账号 | ||
xueyuanmingcheng | varchar | 200 | 学院名称 | ||
faburiqi | date | 发布日期 |
表4-15:岗位薪金
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
gangweimingcheng | varchar | 200 | 岗位名称 | ||
gongzuodidian | varchar | 200 | 工作地点 | ||
xinchoudaiyu | varchar | 200 | 薪酬待遇 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
zhuanye | varchar | 200 | 专业 | ||
nianji | varchar | 200 | 年级 | ||
gongshi | int | 工时 | |||
shixin | int | 时薪 | |||
gongzi | float | 工资 | |||
beizhu | varchar | 200 | 备注 | ||
faburiqi | date | 发布日期 |
5系统实现
系统实现是新系统开发工作的最后一个阶段。它是将结构化系统设计的成果变成可实际运行的系统的过程。这一部分主要对系统的主要功能模块的实现细节进行了详细的阐述。
5.1功能页面实现
按照不同功能模块,在此对系统所涉及的关键页面的实现细节进行阐述,包括页面功能描述,页面涉及功能分析,介绍以及界面展示。
系统登录: 运行系统,首先进入登录界面,按照登录界面的要求填写相应的“账号”和“密码”以及用户类型,点击“登录”然后系统判断填写是否正确,若正确进入相应的界面,否则给出要求先注册信息。具体流程如图5-1所示。
图5-4学生管理界面图
贫困生名额管理;在贫困生名额管理页面可以对名额名称、数量、申请须知、学院账号、学院名称、联系手机、发布日期进行申请、查看等操作,如图5-5所示。
图5-5贫困生名额管理界面图
助学金等级管理;在助学金等级管理页面可以对助学金等级、等级简介等内容进行查看、删除等操作,如图5-6所示。
图5-7评定规则管理界面图
申请上报管理;在申请上报管理页面可以对申请编号、名额名称、数量、学院账号、学院名称、学号、学生姓名、性别、联系手机、专业、年级、申请材料、贫困等级、上报备注、上报日期、是否审核、审核回复等内容进行审核、发放、查看或删除等操作,如图5-8所示。
图5-8申请上报管理界面图
助学金管理;在助学金管理页面可以对申请编号、名额名称、数量、学院账号、学院名称、学号、学生姓名、性别、联系手机、专业、年级、助学金等级、发放机构、金额、发放日期等内容进行查看,修改或删除等操作,如图5-9所示。
勤工助学管理;在勤工助学管理页面可以对岗位名称、工作地点、薪酬待遇、基本要求、发布日期等内容进行查看,修改或删除等操作,如图5-10所示。
图5-11岗位申请管理界面图
岗位工时管理;在岗位工时管理页面可以对岗位名称、工作地点、薪资待遇、学号、学生姓名、联系手机、专业、年级、工时、登记日期等内容进行薪金、查看、修改或删除等操作,如图5-12所示。
图5-13岗位薪金管理界面图
5.3学生功能模块
学生登录进入系统,可以对主页、个人中心、贫困生名额管理、贫困生申请管理、助学金等级管理、评定规则管理、申请上报管理、助学金管理、勤工助学管理、岗位申请管理、岗位工时管理、岗位薪金管理等功能进行相应操作,如图5-14所示。
图5-15贫困生名额管理界面图
评定规则管理;在评定规则管理页面可以对规则名称、注意事项、规则简介、学院账号、学院名称、发布日期等内容进行查看等操作,如图5-16所示。
图5-16评定规则管理界面图
申请上报管理;在申请上报管理页面可以对申请编号、名额名称、数量、学院账号、学院名称、学号、学生姓名、性别、联系手机、专业、年级、申请材料、贫困等级、上报备注、上报日期、是否审核、审核回复等内容进行查看等操作,如图5-17所示。
图5-18助学金管理界面图
勤工助学管理;在勤工助学管理页面可以对岗位名称、工作地点、薪酬待遇、基本要求、发布日期等内容进行申请查看等操作,如图5-19所示。
岗位申请管理;在岗位申请管理页面可以对岗位名称、工作地点、薪酬待遇、学号、学生姓名、联系手机、专业、年级、申请原因、申请日期、是否审核、审核回复等内容进行查看、修改和删除等操作,如图5-20所示。
5.4学院能模块
学院登录进入系统,可以对主页、个人中心、贫困生名额管理、贫困生申请管理、助学金等级管理、评定规则管理、申请上报管理等功能进行相应操作,如图5-21所示。
个人中心;在个人中心页面通过填写学院账号、学院名称、负责人、性别、邮箱、联系手机、相片等信息进行提交,如图5-22所示。
图5-22个人中心界面图
贫困生名额管理;在贫困生名额管理页面可以对名额名称、数量、申请须知、学院账号、学院名称、联系手机、发布日期等内容进行查看、修改和删除等操作,如图5-23所示。
图5-24贫困生申请管理界面图
6系统测试
系统测试是软件开发过程中最后一步,但也是不可或缺的重要的一步,没有人可以保证一次性编写完成的系统不会出错,而系统测试就是将自己开发的系统成为成品前的最后一步。在测试过程中需要进行严谨细致的测试,要尽可能全面地在不同情况下运行该系统,排除一切出现错误的可能。
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码,权限,然后单击登录进行操作,会出现两种情况:一种情况是登录成功,进入用户相应的功能界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码,权限,然后单击登录进行操作,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。一种情况是登录成功,进入管理员界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;
经过对上述测试结果分析,本系统能够在不同电脑上使用运行,具备一定安全性,用户信息不易泄露,能够日后再增删功能,能够实现所有功能,产品运行性能良好,能达到毕业设计要求。
7总结与展望
经过三个月的努力,终于完成了贫困生管理系统。有成功,引以为豪的地方,也有失败的诸多环节。
整个毕设工作从研究现状出发,了解了系统所需技术,查阅了相关文献,熟悉系统领域知识与相关软件环境,找出了系统开发所遇到的难点和重点。结合自身水平,进行了系统需求分析,总体规划,数据库设计,详细设计与编码测试等各项工作,最终实现了一个具有较完整功能的贫困生管理系统。
贫困生管理系统对用户,管理员管理等基本模块进行了设计,在今后具体的工作中,还应添加更多的功能模块,并加强现有模块的细化工作,使系统能够真正实现。
系统的开发和完善是一个长期的过程,需要在实际应用中不短积累和完善。根据课题研究现状以及社会实际需求,对于本系统,在一下几方面可以进行进一步的改进和完善:
1、随着计算机的发展,管理网站的普及,贫困生管理系统要增加更多的功能模块,特别是管理员模块,可以让更多的管理员入驻。
2、管理方面的多功能性也是需要扩展的,因为时间关系,管理的功能不能被满足,以后可以进一步对贫困生的分类等进行补充与完善。
3、系统提供的搜索功能比较简单,还可以进一步的完善。
[1] 李兴华. JavaWeb开发实战经典基础篇(第1版)[M].北京:清华大学出版社,2010.8
[2] 程志艳, 张亮. JSP实用简明教程[M].北京:清华大学出版社,2005.12
[3] 陈刚. Eclipse从入门到精通[M].北京:清华大学出版社,2005.6
[4] 李勇平.JSP应用开发详解[M].电子工业出版社,2005.10
[5] 郑自国,邹丰义.Java案例开发集锦[M].北京:电子工业出版社,2005.2
[6] 张孝祥. 深入Java Web开发内幕——核心基础[M]. 北京:电子工业出版社. 2006
[7] 李安渝. Web Services技术与实现[M]. 北京:国防工业出版社,2003
[8] 孙卫琴,李洪成.Tomcat 与 Java Web 开发技术详解[M].电子工业出版社,2003.6:1-205
[9] 曹广鑫 编著.JSP数据库项目开发宝典[M].北京:电子工业出版社,2006
[10] 王剑,邓武.基于Web服务面向服务的动态电子商务应用框架研究[J].科学技术与工程,2008,2(3):65-90
[11] 周旌恒.JSP应用开发详解(第三版)[M].北京:电子工业出版社,2004
[12] Shanliang Xue;Qing Yan Wei;Guang Ming Jiao;Dun Wen Zuo. Research Code Management System Based on J2EE[J]. Key Engineering Material.2010,Vol.431-432(188-191)
[13] Yan Ming Li;Li Feng Wan. Design On Framework Structure of College English Learning Management System Based on Struts2[J].Advanced Materials Research.2013,Vol.846-847(1558-1561)
[14] Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA: Prentice Hall, 2006
[15] Joshua Bloch. Effective Java[M]. Piscataway, N.J: IEEE Press, 2009
[16] Juan Lipson Vuong.A semantics-based routing scheme for grid resource discovery[M].E-Science: First
International Conference on E-Science and GridComputing,2005:58-70,90
致谢
过程永远比结果重要。毕业设计是大学生活中最为浓墨重彩的一笔,在这个过程中不仅学到更为全面的书本和实践知识,更让我感受到了浓浓的同窗之情及师生情。虽然大学四年间做过不少实验作业,但是独立完成这样一个操作系统还是第一次,遇到困难时理所当然,我也有所心理准备,但是超出自身能力的部分还是需要寻求教师及同学的帮助。在此,我衷心地感谢我的指导教师,可以说,没有教师我就不能顺利完成这次设计。他总是在一筹莫展的时候为我指引方向。比如在开题报告,我的指导教师就细致地指导我该怎么有逻辑地将自己的想法和做法表达清楚,在此由衷感谢他。在设计的过程中,教师百忙之中也乐于给予我指导,不管多晚给教师发消息,不管是不是上班时间去教师办公室寻求帮助,他总能在第一时间对我施以援手,由于我在设计期间需要离校实习,不能及时到教师办公室检查设计进度,当时已经是晚上6点多,我匆匆赶到办公室时,教师依然在伏案办公,桌上是同学们的中期检查报告,检查完毕业设计后,他又继续查看同学们的中期报告,并督促我及时上交报告。教师给的意见总是一针见血地指出我设计及论文中的不足,并举例详细说明我的改进方法,不得不佩服他的学术水平及教学水平。在我开始着手实现这个设计的时候,通过需求分析及可行性分析对该系统有了较为浅显的认识;但是在我真正开始实现时发现事情并没有这么简单。任何成功都不是一蹴而就的,就算是一个简单的毕业设计也需要日积月累的知识和经验。于是,我便去寻求老师和同学的帮助,这也使得我得以从不同的角度重新考虑我的设计。终于,这个系统在我内心有了雏形。在真正实现这个设计的过程中,学习新知识是必定的,同时那些由于时间关系或者本来就没有掌握牢固的知识也有了进一步巩固的机会。然而最重要的是了解到如何作为一个开发人员,以开发人员的思维来看待软件开发的步骤和方法策略。
本次毕业设计的完成预示着大学时代的句号,在这个设计过程中,我收获到的绝不仅仅是做项目过程中要到的知识,更多的是同窗情谊和师生情谊,最重要的是做任何事情都要具备的认真态度,以及真正职业的思考方式方法。
最后真心祝愿同学们,教师们前程无忧,工作顺利,祝学校越办越好!
核心代码展示
/**
* 公告通知
* 后端接口
* @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);
}
}