软件工程 学生成绩管理系统_第1页
软件工程 学生成绩管理系统_第2页
软件工程 学生成绩管理系统_第3页
软件工程 学生成绩管理系统_第4页
软件工程 学生成绩管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

软件工程学生成绩管理系统一、项目概述(一)项目背景在学校的教学管理中,学生成绩管理是一项至关重要且繁杂的工作。传统的手工记录和管理方式效率低下、易出错,且难以进行全面、深入的数据分析。随着学校规模的扩大和学生数量的增加,开发一个高效、便捷的学生成绩管理系统迫在眉睫。

(二)项目目标1.实现学生成绩的电子化录入、存储和查询,提高成绩管理的效率和准确性。2.能够方便地进行成绩的统计分析,如平均分、排名等,为教学决策提供数据支持。3.具备完善的用户权限管理,确保不同角色(教师、学生、管理员)只能访问和操作其权限范围内的功能。4.系统应具有良好的稳定性和易用性,减少用户的操作成本和学习时间。

二、需求分析(一)用户需求1.教师-能够录入、修改和删除所教课程学生的成绩。-查看学生的成绩明细,包括平时成绩、考试成绩等。-生成课程的成绩统计报表,如平均分、最高分、最低分、排名等。2.学生-可以查询自己的各科成绩。-了解自己在班级中的排名情况。3.管理员-负责系统的用户管理,包括添加、删除和修改教师、学生账号信息。-进行系统数据的备份和恢复操作。-查看系统的操作日志,以便监控和审计系统使用情况。

(二)功能需求1.成绩录入-教师可以通过系统界面录入学生的成绩,包括课程名称、学生学号、平时成绩、考试成绩等信息。-支持批量导入成绩数据,提高录入效率。2.成绩查询-教师能够按课程、学生学号等条件查询成绩。-学生可根据自己的学号查询个人成绩。3.成绩修改与删除-教师有权限修改和删除自己录入的学生成绩,但需记录操作日志。4.成绩统计-自动生成课程的成绩统计报表,如平均分、总分、排名等。5.用户管理-管理员可以添加、删除和修改教师、学生的账号信息,包括用户名、密码、权限等。6.数据备份与恢复-提供数据备份功能,可按指定时间间隔或手动进行备份。-具备数据恢复功能,在数据丢失或损坏时能够恢复到最近一次备份状态。7.操作日志查看-管理员可以查看系统的操作日志,包括操作时间、操作人员、操作内容等。

(三)性能需求1.系统响应时间:在并发用户数较少时,系统操作响应时间应控制在1秒以内;当并发用户数增加到一定数量时(如50人),系统响应时间不应超过3秒。2.数据准确性:成绩数据的录入、查询、统计等操作应保证数据的准确性,错误率应低于0.1%。3.系统稳定性:在正常使用情况下,系统应保证7×24小时不间断运行,故障率低于0.01%。

(四)安全性需求1.用户认证:采用用户名和密码的方式进行用户认证,确保只有合法用户能够登录系统。2.权限管理:不同角色具有不同的操作权限,防止越权操作。3.数据加密:对用户的敏感信息(如密码)进行加密存储,防止数据泄露。4.操作日志记录:详细记录系统的操作日志,以便进行安全审计和追踪。

三、总体设计(一)系统架构学生成绩管理系统采用B/S(浏览器/服务器)架构,主要由表示层、业务逻辑层和数据访问层组成。1.表示层:负责与用户进行交互,提供系统的操作界面。采用HTML、CSS和JavaScript技术实现页面的布局和样式设计,以及与用户的交互功能。2.业务逻辑层:处理系统的业务逻辑,如成绩录入、查询、统计、用户管理等功能。使用Java的Servlet和JSP技术实现业务逻辑的处理和控制。3.数据访问层:负责与数据库进行交互,实现数据的存储和读取。采用JDBC技术连接数据库,执行SQL语句进行数据操作。

(二)功能模块划分1.成绩管理模块-成绩录入-成绩查询-成绩修改与删除-成绩统计2.用户管理模块-用户添加-用户删除-用户修改3.数据备份与恢复模块-数据备份-数据恢复4.操作日志查看模块

(三)数据库设计1.学生表(student)-字段:学号(student_id)、姓名(student_name)、性别(gender)、班级(class)等。2.课程表(course)-字段:课程编号(course_id)、课程名称(course_name)、教师编号(teacher_id)等。3.成绩表(score)-字段:学号(student_id)、课程编号(course_id)、平时成绩(usual_score)、考试成绩(exam_score)等。4.教师表(teacher)-字段:教师编号(teacher_id)、教师姓名(teacher_name)、密码(password)等。5.用户表(user)-字段:用户名(username)、密码(password)、角色(role)等。6.操作日志表(operation_log)-字段:日志编号(log_id)、操作时间(operation_time)、操作人员(operator)、操作内容(operation_content)等。

各表之间通过关联字段建立关系,如学生表与成绩表通过学号关联,课程表与成绩表通过课程编号关联,教师表与课程表通过教师编号关联等。

四、详细设计(一)成绩管理模块1.成绩录入-教师在系统界面输入课程名称、学生学号、平时成绩、考试成绩等信息,点击提交按钮。-系统首先验证输入的合法性,如学号是否存在、成绩是否在合理范围内等。-验证通过后,将成绩数据插入到成绩表(score)中,并记录操作日志。2.成绩查询-教师可按课程名称、学生学号等条件进行查询。-系统根据输入的条件构建SQL查询语句,从成绩表、学生表和课程表中获取相关数据。-将查询结果显示在页面上,包括学生姓名、课程名称、平时成绩、考试成绩等。3.成绩修改与删除-教师选择要修改或删除的成绩记录,点击相应按钮。-系统验证教师权限后,执行修改或删除操作,并记录操作日志。修改成绩时更新成绩表中的相应记录,删除成绩时删除成绩表中的对应记录。4.成绩统计-根据课程编号从成绩表中获取该课程所有学生的成绩数据。-计算该课程的平均分、总分、最高分、最低分等统计信息。-根据总分对学生进行排名。-将统计结果生成报表显示在页面上或导出为文件。

(二)用户管理模块1.用户添加-管理员在系统中输入新用户的用户名、密码、角色等信息。-系统验证输入的合法性,如用户名是否唯一等。-验证通过后,将新用户信息插入到用户表(user)中,并记录操作日志。2.用户删除-管理员选择要删除的用户记录,点击删除按钮。-系统验证管理员权限后,删除用户表中的对应记录,并记录操作日志。3.用户修改-管理员选择要修改的用户记录,修改其用户名、密码、角色等信息。-系统验证输入的合法性后,更新用户表中的相应记录,并记录操作日志。

(三)数据备份与恢复模块1.数据备份-管理员点击数据备份按钮。-系统使用数据库的备份工具(如MySQL的mysqldump命令)将数据库中的相关表数据备份到指定的文件中。-记录备份操作的时间和相关信息到操作日志表中。2.数据恢复-管理员上传备份文件。-系统首先验证备份文件的合法性。-验证通过后,使用数据库的恢复工具(如MySQL的mysql命令)将备份文件中的数据恢复到数据库中,并记录操作日志。

(四)操作日志查看模块1.管理员登录系统后,进入操作日志查看页面。2.系统从操作日志表(operation_log)中读取所有操作日志记录。3.将操作日志按时间顺序显示在页面上,包括日志编号、操作时间、操作人员、操作内容等信息。4.支持按操作人员、操作时间等条件进行过滤查询,方便管理员快速定位所需的操作日志。

五、编码实现(一)开发环境1.服务器:Tomcat8.02.数据库:MySQL5.73.开发语言:Java4.开发工具:EclipseIDEforJavaDevelopers

(二)关键代码示例1.成绩录入Servlet```java@WebServlet("/scoreAdd")publicclassScoreAddServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringstudentId=request.getParameter("studentId");StringcourseId=request.getParameter("courseId");StringusualScore=request.getParameter("usualScore");StringexamScore=request.getParameter("examScore");

//验证输入合法性if(!isValidScore(usualScore)||!isValidScore(examScore)){response.getWriter().print("成绩输入不合法");return;}

Scorescore=newScore();score.setStudentId(studentId);score.setCourseId(courseId);score.setUsualScore(Double.parseDouble(usualScore));score.setExamScore(Double.parseDouble(examScore));

ScoreDaoscoreDao=newScoreDao();intresult=scoreDao.addScore(score);if(result>0){//记录操作日志LogUtil.logOperation(request,"添加成绩");response.getWriter().print("成绩添加成功");}else{response.getWriter().print("成绩添加失败");}}

privatebooleanisValidScore(Stringscore){try{doubled=Double.parseDouble(score);returnd>=0&&d<=100;}catch(NumberFormatExceptione){returnfalse;}}}```2.成绩查询Servlet```java@WebServlet("/scoreQuery")publicclassScoreQueryServletextendsHttpServlet{protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringcourseId=request.getParameter("courseId");StringstudentId=request.getParameter("studentId");

ScoreDaoscoreDao=newScoreDao();List<Score>scores=scoreDao.queryScores(courseId,studentId);

request.setAttribute("scores",scores);RequestDispatcherdispatcher=request.getRequestDispatcher("scoreQueryResult.jsp");dispatcher.forward(request,response);}}```3.数据备份方法```javapublicvoidbackupDatabase(StringbackupFilePath){try{Stringmand="mysqldump-uusername-ppassworddatabasename>"+backupFilePath;Processprocess=Runtime.getRuntime().execmand);intexitValue=process.waitFor();if(exitValue==0){LogUtil.logOperation(null,"数据库备份成功");}else{LogUtil.logOperation(null,"数据库备份失败");}}catch(IOException|InterruptedExceptione){e.printStackTrace();LogUtil.logError(null,"数据库备份出错",e);}}```

六、测试(一)测试计划1.测试目标:验证系统是否满足需求规格说明书中的各项功能、性能、安全性等要求。2.测试范围:包括成绩管理模块、用户管理模块、数据备份与恢复模块、操作日志查看模块等。3.测试方法:采用黑盒测试方法,包括功能测试、性能测试、安全性测试等。4.测试人员:由开发人员、测试人员和用户代表组成测试团队。5.测试进度安排:在系统开发的各个阶段进行相应的测试,如单元测试、集成测试、系统测试等,具体时间安排根据项目进度确定。

(二)测试用例1.成绩管理模块测试用例-成绩录入-输入合法的学号、课程编号、成绩,点击提交,验证成绩是否成功录入。-输入不合法的学号(如不存在的学号),点击提交,验证是否提示错误信息。-输入超出范围的成绩(如105分),点击提交,验证是否提示错误信息。-成绩查询-按课程编号查询,验证查询结果是否正确显示该课程所有学生的成绩。-按学生学号查询,验证查询结果是否正确显示该学生的所有成绩。-输入不存在的课程编号或学号进行查询,验证是否提示无记录信息。-成绩修改与删除-修改一条成绩记录,验证修改后数据是否正确更新。-删除一条成绩记录,验证记录是否被成功删除。-无权限的用户进行成绩修改或删除操作,验证是否提示权限不足。-成绩统计-选择一门课程进行成绩统计,验证统计结果(平均分、总分、排名等)是否正确。2.用户管理模块测试用例-用户添加-输入合法的用户名、密码、角色等信息,点击添加,验证用户是否成功添加。-输入已存在的用户名,点击添加,验证是否提示用户名已存在。-输入不合法的密码(如长度过短),点击添加,验证是否提示错误信息。-用户删除-选择一个用户进行删除,验证用户是否被成功删除。-无权限的用户进行用户删除操作,验证是否提示权限不足。-用户修改-修改一个用户的信息,验证修改后数据是否正确更新。-输入不合法的信息(如修改后的用户名已存在),点击修改,验证是否提示错误信息。3.数据备份与恢复模块测试用例-数据备份-点击数据备份按钮,验证是否成功生成备份文件,备份文件路径是否正确记录。-在备份过程中中断操作,验证是否提示备份失败。-数据恢复-上传合法的备份文件进行恢复,验证数据是否成功恢复到数据库中。-上传不

温馨提示

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

评论

0/150

提交评论