学生成绩管理系统的设计与实现_第1页
学生成绩管理系统的设计与实现_第2页
学生成绩管理系统的设计与实现_第3页
学生成绩管理系统的设计与实现_第4页
学生成绩管理系统的设计与实现_第5页
已阅读5页,还剩35页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论背景和意义自计算机诞生以来,它就在改变人类的生产工作方式,随着时间的推进,以及技术的精进,计算机已经深入到生活的方方面面,在教育行业内,人们已经发觉到传统成绩管理方式的低效,无法适应当下信息化时代的浪潮,学生成绩管理系统便应运而生,系统主要有三大部分组成,包括数据库,网站以及编译器调用部分,学生成绩管理系统是基于互联网的基础上建立的,学生成绩管理系统是用于进行学生成绩的统计,可视化,数据分析的系统。本题目为学生成绩管理系统,主要是用于教师进行成绩的存储与统计,本系统开发之前,学生成绩的统计与保存一直是一项繁琐的任务,在记录的过程中存在着大量的纠错与改错的过程,而这些都是可以采用计算机规避的,将老师从这种低效的工作中解放出来,老师成绩单的下发与查看也可以通过本系统达到,在与家长之间进行更快速的传递,家长对近期成绩有疑问时,可以随时查看既往的成绩达到及时了解学习进度和情况的目的,总的来说学生成绩管理系统符合时代的特性,可以在学习生涯中提供有效的帮助。国内外研究现状学生成绩管理系统(SGMS)已经成为教育管理的重要工具,随着信息化时代的到来,这种系统的应用已经得到了广泛的研究和实施。在国内,许多高校和中小学都已经开始实施在线的成绩管理系统。它们通常包括成绩输入、成绩查询、成绩统计以及相关的分析功能。例如,中国的许多大学已经建立了自己的教务管理系统,其中包括学生成绩管理。此外,有许多研究者正在探讨如何更有效地进行学生的学习评估和教学方法的优化。在国外,学生成绩管理系统的发展更为成熟。比如美国的许多学校已经使用了包括Blackboard,Canvas,GoogleClassroom等在内的多种在线平台来进行学生学习管理,其中就包括成绩管理。这些系统除了具备基本的成绩管理功能外,往往还有教学资源分享、在线互动等功能。无论是国内还是国外,学者们都在探讨如何通过数据挖掘技术对学生成绩数据进行深度分析,以便更好地理解和改善教育。目前的研究方向包括对学生的学习行为、学习风格的分析,对教育效果的预测等然而,随着云计算和大数据技术的发展,学生成绩管理系统也面临着新的挑战和发展机遇,如数据安全、隐私保护、数据分析技术的性能优化等问题需要更深入的研究。本文主要工作完成学生信息查询:包括输入输出学号,姓名,专业,等自身信息,再根据具体的学生信息查询和成绩,排名的统计结果学生信息的修改模块:包括对以前所有输入的信息进行修改和更新学生成绩录入模块:包括输入学生成绩和删除教学管理模块:每位老师的个人信息、上课时间系统技术介绍JAVA语言Java语言之所以能够成为企业开发中最常用的编程语言,是因为Java语言用作后端开发的适配性非常好,其次Java代码的运行效率和维护成本在同期的编程语言中也是佼佼者,在SpringBoot框架和MyBatis框架的配合开发下,Java语言的编程效率会得到质的提升。MySQL数据库MySQL是一个历史悠久的数据库,证明此系统的数据持久化工具是恰到好处的,MySQL的软件生态也是其生命力的重要延续,还有编程延伸出来的各种ORM框架,对MySQL起到了非常大的提升。SpringBoot框架Spring框架是\t"/item/Spring%20Boot/_blank"Java平台上的一种开源应用框架,提供具有\t"/item/Spring%20Boot/_blank"控制反转特性的容器Spring框架为开发提供了一系列的解决方案比如利用控制反转的核心特性,并通过\t"/item/Spring%20Boot/_blank"依赖注入实现控制反转来实现\t"/item/Spring%20Boot/_blank"管理对象生命周期容器化,利用面向切面编程进行声明式的\t"/item/Spring%20Boot/_blank"事务管理,整合多种持久化\t"/item/Spring%20Boot/_blank"技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的\t"/item/Spring%20Boot/_blank"反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。第三章系统需求分析系统需求分析功能需求分析学生成绩管理系统中包含学生,教师,管理三种角色。系统管理员需求分析系统管理员是整个系统中最高权限的拥有者,根据管理员的不同需求,将系统分为查询课程,管理用户以及管理成绩的三个模块,其中查询课程主要是针对课程的录入与课程编排,其次管理用户是指给不同的用户分配角色,将三种角色类型分配到位,最后管理成绩,主要通过成绩的管理和分析,对成绩管理系统中产生的数据进行统计。管理员流程图如图3.1所示图3.1管理员流程图学生需求分析学生通过管理员分配的账号登入系统,在系统中只具有查询的权限,具体分为查询课程表和查询成绩,查询课程表实现对管理员录入信息的查询,查询成绩对教师事先录入成绩的查询,该模块可以实现对成绩的导出与统计,配合可视化工具可以将成绩更加立体的展现。学生的用例图如图3.2所示图3.2学生用例图教师需求分析教师通过管理员分配的账登入系统,登陆后具有管理成绩的权限,并可以根据查询到的课程表进行授课,管理成绩主要是对学生的成绩进行录入与可视化分析。教师用例图如图3.3所示图3.3教师用例图系统设计结构学生成绩管理系统采用了SpringMVC的模式,其中有三层分别为视图层、业务层、数据层,SpringBoot与MySQL协同工作的方式实现了对数据的存储,数据的展示使用的是Sping以及采用MyBatisPlus实现数据的连接。系统结构设计图如图3.4所示图3.4系统结构设计图系统功能模块整个软件由四个模块组成分别是,课程管理、课程表管理、成绩管理、用户管理四大模块,其中创建课程:对新的课程进行录入;修改课程信息:对需要更正的课程信息进行修改;删除课程信息:对不需要的课程删除;检索课程信息:查询自己对应的课程;课程表录入:将课程表录入系统方便教师与学生的使用;课程表修改:按照实际情况对表单修改;录入成绩:教师将成绩上传至系统,提供给学生以及教师未来的分析与管理工作;修改成绩:对错误的成绩进行修改与更正,为达到数据的准确性;成绩统计:进行成绩分析的重要工具,可在系统中进行可视化;用户管理:添加学生教师的信息或者删除与修改。系统功能模块图如图3.5所示3.5系统功能模块图第四章系统设计系统设计系统设计的主旨是在分析和需求定义的基础上对系统进行详细设计,其主要目的是为了实现一个符合要求的、高效的、易于维护和扩展的系统。系统设计是一个高效、稳定和可靠的系统开发过程中不可或缺的一环,有助于明确系统的需求、提高开发效率、确保系统的可靠性和安全性、提高系统的可维护性。数据库设计数据库的概念设计是对系统需求的详细规划,根据实体之间的关系可以让设计者更加清晰明了各个实体之间的关系,系统的E-R图如下所示图4.1数据库E-R图数据库表设计学生成绩管理系统设计的数据库主要包括管理员信息表、课程基本信息表、课程扩展信息表、专业信息表、页面主题表、学生信息表、学生-课程关联表、教师信息表、教师-课程关联表、排课时间表、文件信息表、周课程表信息表等。(1)管理员信息表:管理员id、用户名、密码、姓名、级别、所属学校、邮箱、联系电话、性别、创建时间其数据如下表4.4所示表4.2管理员信息表数据名称数据类型数据描述能否为空键码IdInt管理员id否主键UsernameVarchar用户名否PasswordVarchar密码否Real_nameVarchar姓名否LevelTinyint级别否SchoolVarchar所属学校否EmailVarchar邮箱否PhoneVarchar联系电话否SexTinyint性别否Create_timetimestamp创建时间否(2)课程扩展信息表:课程扩展信息id、课程基本信息id、开始时间、结束时间、教室信息、专业其数据如下表4.5所示表4.3课程扩展信息表数据名称数据类型数据描述能否为空键码IdVarchar课程扩展信息id否主键Course_idVarchar课程基本信息id否StartInt开始时间否EndInt结束时间否RoomVarchar教室信息是ProfessionVarchar专业是(3)课程基本信息表:课程基本信息id、课程名称、学分、分数、课时、学年、学期、类型:1必修课2选修课、专业、创建时间其数据如下表4.6所示表4.4课程基本信息表数据名称数据类型数据描述能否为空键码IdVarchar课程基本信息id否主键NameVarchar课程名称否CreditsDecimal学分否ScoreInt分数否NumberInt课时否YearInt学年否TermTinyint学期否TypeTinyint类型。1必修课2选修课否ProfessionVarchar专业否Create_timeTimestamp创建时间否(4)专业信息表:专业信息id、专业名称其数据如下表4.7所示表4.5专业信息表数据名称数据类型数据描述能否为空键码IdVarchar专业信息id否主键NameVarchar专业名称否(5)页面主题表:页面主题信息id、主题标记:0正常模式1静默模式其数据如下表4.8所示表4.6页面主题表数据名称数据类型数据描述能否为空键码IdVarchar页面主题信息id否主键StateTinyint主题标记。0正常模式1静默模式否(6)学生信息表:学生信息id、用户名、密码、姓名、级别、学校、入校时间、电子邮箱、专业、年级其数据如下表4.9所示表4.7学生信息表数据名称数据类型数据描述能否为空键码IdVarchar学生信息id否主键UsernameVarchar用户名否PasswordVarchar密码否Real_nameVarchar姓名否LevelTinyint级别否SchoolVarchar学校否Admission_timeVarchar入校时间否EmailVarchar电子邮箱否ProfessionVarchar专业否GradeInt年级否(7)学生-课程关联表:关联id、学生id、课程id、课程名称、分数、绩点、学分、学期、学年其数据如下表4.10所示表4.8学生-课程关联表数据名称数据类型数据描述能否为空键码Idint关联id否主键Student_idvarchar学生id否Course_idVarchar课程id否NameVarchar课程名称否ScoreVarchar分数否PointDecimal绩点否CreditsDecimal学分否TermTinyint学期否YearInt学年否(8)教师信息表:教师信息id、用户名、密码、姓名、级别、学校名称、邮箱、联系电话、性别、创建时间其数据如下表4.11所示表4.9教师信息表数据名称数据类型数据描述能否为空键码IdVarchar教师信息id否主键UsernameVarchar用户名否PasswordVarchar密码否Real_nameVarchar姓名否LevelTinyint级别否SchoolVarchar学校名称否EmailVarchar邮箱否PhoneVarchar联系电话否SexTinyint性别否Create_timeTimestamp创建时间否(9)教师-课程关联表:关联id、教师id、教师用户名、课程名称、专业、年级、学期、课程id其数据如下表4.12所示表4.10教师-课程关联表数据名称数据类型数据描述能否为空键码Idint关联id否主键Teacher_idvarchar教师id否UsernameVarchar教师用户名否NameVarchar课程名称否ProfessionVarchar专业否GradeVarchar年级否TermTinyint学期否Course_idVarchar课程id否(10)排课时间表:排课时间id、周课程表id、专业、年级、学年、学期其数据如下表4.13所示表4.11排课时间表数据名称数据类型数据描述能否为空键码IdVarchar排课时间id否主键Week_idInt周课程表id否ProfessionVarchar专业否GradeVarchar年级否YearInt学年否TermTinyint学期否(11)文件信息表:文件信息id、上传用户id、级别、文件地址其数据如下表4.14所示表4.12文件信息表数据名称数据类型数据描述能否为空键码IdInt文件信息id否主键User_idVarchar上传用户id否LevelInt级别否urlVarchar文件地址否(12)周课程信息表:周课程表信息id、周一课程、周二课程、周三课程、周四课程、周五课程、周六课程、周日课程其数据如下表4.14所示表4.13周课程信息表数据名称数据类型数据描述能否为空键码IdVarchar周课程表信息id是主键MondayVarchar周一课程是TuesdayVarchar周二课程是WednesdayVarchar周三课程是ThurdayVarchar周四课程是FridayVarchar周五课程是SaturdayVarchar周六课程是SundayVarchar周日课程是系统流程设计系统流程设计是指在系统分析的基础上,根据业务需求和功能要求,为系统建立一套流程模型,包括数据流、控制流、文档流等,旨在实现系统的高效整合、快速运转和简洁易懂的操作。用户登录流程当用户需要登录系统时,首先需要进入登录授权页面才能够进入系统,登录系统需要用户输入预先注册好的账号密码,当用户是首次使用系统时,需要通过管理员进行账号的创建,当用户输入完账号密码时,系统会首先比对账号,在数据库中查询账号是否存在,接下来才会查验密码的正确性,当账号与密码都与数据库中预先注册的一致后,就可以成功进入系统。登录流程如图4.15所示图4.15用户登录流程图查询课程信息程序流程用户成功登录系统后,查询课程信息的程序的模块第一步会进入等待用户输入搜索信息状态。当用户成功入则,模块会自动获取用户输入的内容,并根据用户输入的关键字在课程信息表中检索相关的课程信息,并展示给用户。如果用户并未输入相关关键词,则该模块会处于等待状态,直到用户输入搜索信息或退出系统,查询课程信息程序流程如图4.16所示图4.16查询课程信息程序流程图录入课程表程序流程系统的管理员拥有课程表编辑和排课的权限,成功登录系统后,选择对应的学年和学期条件,系统会显示课程表信息,管理员选中对应的课程去进行课程安排,未选中课程会在对应课程表的位置中留空,录入完成后点击保存,就可以在页面中生成最终课程表,录入课程表程序流程如图4.17所示图4.17录入课程表程序流程图数据添加流程软件里的数据添加功能,是通过教师或者管理员角色在功能界面中点击相对应的录入按钮,在表单中输入相对应的数据,系统会自动检查数据的正确性,当数据正确时会通过接口调用录入后台数据库,反之则提示用户重新输入数据,数据添加流程图如图4.18所示。图4.18数据添加流程图数据流程修改在系统中需要修改一条数据或者多条数据时,第一步需要点击编辑或批量编辑按钮,将需要修改的数据显示在表单中,然后将需要修改的的数据填入至表单,系统会自动检查合法性,通过合法性检查后会将数据修改并保存到数据库,反之则需要重新输入数据,数据修改流程图如图4.19所示。图4.19数据修改流程图第五章系统实现系统实现系统环境搭建首先,选择相应的JDK8、Navicatpremium15、IDEA、MySQL等软件并根据对应的版本和软件安装使用手册进行下载和安装到本地pc机上;其次,对每个软件进行对应的环境变量配置,再将一些便于开发的工具配置到开发软件中;最后集中调试和开发环境,确保各软件能够协调进行开发工作,当完成上述所有的环境搭建后,才能开始进行系统的开发工作。系统的实现如图5.1所示表5.1系统软件环境配置软件工具配置信息操作系统Windows10开发工具IDEAWeb服务器Tomcat8.0数据库MySQL5.7浏览器MicrosoftEdge开发环境JDK1.8登录功能实现学生,老师以及管理员在未登录状态下进行系统的登录界面进行登录,通过在页面表单中输入注册的用户名以及设定的密码实现用户的登录,输入完成后点击登录按钮,登录信息将通过网络请求发送给服务器,后台会验证账号密码,当验证完成后会提示用户成功登录,反之则需重新输入正确的账号和密码。登录如图5.1所示。图5.1登录实现界面图登录代码如下所示:@GetMapping("/login")

@PassToken

publicUsergetStudentInfo(@RequestParamMap<String,Object>condition){

Map<String,Object>map=newHashMap<>();

map.put("username",condition.get("username").toString());

map.put("password",condition.get("password").toString());

map.put("level",condition.get("level"));

Useruser=userService.getStudentInfo(map);

Stringtoken=userService.getToken(user,24*60*60*1000);

StringrefreshToken=userService.getToken(user,24*60*60*1000);//有效期一天

user.setToken(token);

user.setRefreshToken(refreshToken);

returnuser;

}用户信息管理在系统中共有三种角色其中包括,学生,教师,管理员,管理员通过数据库中预先设定的账号登录,系统的管理员有分配角色和创建学生还有教师账号的权限,账号必须确保唯一性以保证信息的准确性,账号保存在表单数据中,其原理是通过后台的userSerice来进行账号的验证的,当账号已经存在,会进行报错并提示,当账号第一次进行创建时,角色功能会给账号分配角色,角色的管理通过角色菜单来实现,一个角色可以拥有多个菜单使用,用户登录后会根据自身的角色显示出对应角色的功能菜单。员工管理如下图5.2所示图5.2用户信息管理流程图课程表管理在成绩管理系统中,为了课程信息的明确与课程的统计,课程表的管理是不可或缺的,通过课程表的管理可以明了学生与教师的课程信息,同时管理员拥有课程的录入与删除的权限,可以进行修改课程、增加课程等操作。课程表管理图如图5.3所示。图5.3课程表管理流程图课程信息管理课程信息的管理也是后台管理员的权限,课程的管理可以实现对课程的添加,点击编辑按钮实现课程信息的录入,根据学校的教育课程的安排,管理员会根据实际课程进行添加以及删减课程的安排,修改中包含课程名、满分、届时、专业、学分、课时、学期、类型等功能,根据课程名称就可以进行快速的编辑,课程表管理图如图5.4、图5.5所示。图5.4课程信息管理流程图图5.5课程信息管理流程图课程管理代码如下所示:@PostMapping

publicvoidaddCourse(@RequestBodyCoursecourse){

courseService.addCourse(course);

}

@DeleteMapping("/{ids}")

publicvoiddelete(@PathVariable("ids")Integer[]ids){

List<Integer>idsList=Arrays.asList(ids);

courseService.delete(idsList);

}

@PutMapping

publicvoidupdate(@RequestBodyCoursecourse){

courseService.update(course);

}

@GetMapping("/getCourseList")

privatePagingResult<Course>getCourseList(@RequestParamMap<String,Object>condition,

@RequestParam(required=false,name="$limit",defaultValue="10")Integerlimit,

@RequestParam(required=false,name="$offset",defaultValue="0")Integeroffset){

RowBoundsrowBounds=newRowBounds(offset,limit);

returncourseService.getCourseList(rowBounds,condition);

}

@GetMapping("/getCourseByMap")

privateList<Course>getCourseByMap(@RequestParamMap<String,Object>condition){

returncourseService.getCourseByMap(condition);

}

成绩信息管理成绩信息管理是整个软件中最重要的的一个模块,在模块中包含学号、姓名、课程名、得分、绩点、类型、专业、班级等信息,其中还包含成绩的批量编辑,录入,导出等功能,根据系统管理员创建的信息,教师输入成绩后可以将信息与学生进行绑定,根据专业和班级,就可以达到快速检索学生成绩的目标,成绩信息管理图如图5.6所示图5.6课程信息管理流程图成绩管理代码如下所示:@GetMapping("/getCourseList")

publicPagingResult<Course>getCourseList(@RequestParamMap<String,Object>condition,

@RequestParam(required=false,name="$limit",defaultValue="10")Integerlimit,

@RequestParam(required=false,name="$offset",defaultValue="0")Integeroffset){

RowBoundsrowBounds=newRowBounds(offset,limit);

returnscoreService.getCourseList(rowBounds,condition);

}

@PostMapping

privatevoidaddEntry(@RequestBodyJSONArrayUserScore){

List<Score>list=JSONObject.parseArray(UserScore.toJSONString(),Score.class);

scoreService.addEntry(list);

}

@GetMapping("/export")

publicList<Course>getExportList(@RequestParamMap<String,Object>condition){

returnscoreService.getExportList(condition);

}

@GetMapping("/getUserNum")

publicList<Map<String,Object>>getUserNum(@RequestParamMap<String,Object>condition){

returnscoreService.getUserNum(condition);

}

@GetMapping("/getUserTotal")

publicMap<String,Object>getUserTotal(@RequestParamMap<String,Object>condition){

returnscoreService.getUserTotal(condition);

}成绩统计分析当教师需要对班级整体的教育质量进行复盘与反馈时,成绩统计分析模块可以进行三种方式的数据可视化包含饼状图,折线图,柱状图,并且会统计最高与最低分还有平均分。成绩统计分析图如图5.7所示图5.7成绩统计分析图文件管理代码如下所示:@PostMapping("/headImg")

@ResponseBody

publicStringupload(MultipartFilefile,HttpServletRequestrequest)throwsIOException{

if(!file.isEmpty()){

try{

byte[]bytes=file.getBytes();

//储存位置

StringstaticDir=ResourceUtil.getPath();

//图片名

StringImgName=file.getOriginalFilename();

Stringuid=UUID.randomUUID().toString();

assertImgName!=null;

//获取后缀名

Stringstr=ImgName.substring(ImgName.lastIndexOf("."));

//重定义文件名

StringnewName=uid+str;

//图片存储地址

Pathpath=Paths.get(staticDir+newName);

//写入文件

Files.write(path,bytes);

StringimgUrl="/files/"+newName;

StringuserId=request.getParameter("id");

intlevel=parseInt(request.getParameter("level"));

Uploadupload=newUpload();

upload.setUserId(userId);

upload.setLevel(level);

upload.setUrl(imgUrl);

uploadService.upload(upload);

//url去除"sms"

returnimgUrl;

}catch(IOExceptione){

e.printStackTrace();

}

}

return"";

}

@GetMapping("/getHeadImg")

@UserLoginToken

publicStringgetAdminList(@RequestParamMap<String,Object>condition,HttpServletRequesthttpServletRequest){

returnuploadService.getHeader(condition);

}第六章系统测试系统测试系统测试在软件的开发中是不可或缺的环节,在开发过程中与系统正式进入市场之前都需要进行多次多种的测试,为了确保软件的稳定性,安全性,正确性以及完整性,为了尽力提供给用户一个良好的使用环境,以及具有安全性的信息保护,所以进行系统测试是非常有必要的,本章节阐述的测试流程,选择在实现的功能层面上完成对系统的测试。系统测试目的与内容系统测试的目的为了学生成绩管理系统的能够流畅运行在客户端,提供在线服务的时候不出现错误,对系统的方方面面需要做到详尽的测试,在测试中需要对代码以及相对应的功能进行运行以及研究,对发现的问题出具测试报告,并将问题及时修补。系统测试的内容系统测试主要分为功能测试和界面测试,其中功能测试需要检查软件是否满足预期设计,并且要测试软件的质量与完整,这时测试中必不可少的环节,其次界面测试,是给用户提供一个舒适与简洁的操作界面为目的的,通过周密的测试,检查能否完整的给用户提供全方面的服务。系统测试的方法进行Junit单元测试,将系统内的最小单元摘出来进行测试,将系统内的模块进行分隔,通过这种形式可以达到测试的目的,可以观察到项目在运行过程中可能存在的问题,并且快速确认并找到问题的。登录测试登录是系统的第一步,学生成绩管理系统的登录分为三个角色,对三个角色的登录的测试如表6.1所示表6.1登录测试表功能点测试用例输出结果管理员用户登录选择管理员角色,输入管理员的用户名和密码,点击登录跳转到学生成绩管理系统首页,并展示管理员相关功能菜单教师用户登录选择教师角色,输入管理员的用户名和密码,点击登录跳转到学生成绩管理系统首页,并展示教师相关功能菜单学生用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论