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

下载本文档

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

文档简介

学生管理系统软件工程课程设计一、课程设计目标本次软件工程课程设计旨在开发一个学生管理系统,通过该系统实现对学生基本信息、课程信息、成绩信息等的有效管理,提高学校教学管理的效率和准确性,为学校教学管理提供有力的支持。具体目标如下:1.实现学生基本信息的录入、查询、修改和删除功能。2.实现课程信息的录入、查询、修改和删除功能。3.实现学生成绩的录入、查询、修改和统计功能。4.具备友好的用户界面,方便用户操作。5.保证系统的稳定性和可靠性,能够处理常见的错误和异常情况。二、需求分析(一)用户需求1.管理员能够管理学生基本信息,包括添加、修改、删除学生信息。能够管理课程信息,包括添加、修改、删除课程信息。能够录入和管理学生成绩,包括添加、修改成绩。能够查询学生基本信息、课程信息和成绩信息。能够统计学生的平均成绩、总成绩等。2.教师能够查询所教授课程的学生成绩。能够录入所教授课程学生的成绩。3.学生能够查询自己的基本信息和成绩信息。(二)功能需求1.学生信息管理添加学生信息:输入学生的学号、姓名、性别、出生日期、专业等信息,将其保存到系统中。查询学生信息:根据学号、姓名等条件查询学生的基本信息。修改学生信息:根据学号查询学生信息,对其进行修改并保存。删除学生信息:根据学号删除学生的基本信息。2.课程信息管理添加课程信息:输入课程编号、课程名称、学分、授课教师等信息,将其保存到系统中。查询课程信息:根据课程编号、课程名称等条件查询课程的基本信息。修改课程信息:根据课程编号查询课程信息,对其进行修改并保存。删除课程信息:根据课程编号删除课程的基本信息。3.成绩信息管理添加成绩信息:输入学生学号、课程编号、成绩等信息,将其保存到系统中。查询成绩信息:根据学生学号、课程编号等条件查询学生的成绩信息。修改成绩信息:根据学生学号和课程编号查询成绩信息,对其进行修改并保存。成绩统计:统计学生的平均成绩、总成绩等。(三)性能需求1.系统响应时间:在用户操作后,系统应在短时间内给出响应,一般不超过3秒。2.数据准确性:保证学生信息、课程信息和成绩信息的准确性,数据录入错误时应给出相应提示。3.系统稳定性:系统应能够稳定运行,在长时间使用过程中不出现崩溃等异常情况。(四)安全性需求1.对不同用户角色设置不同的权限,如管理员具有所有权限,教师只有部分权限,学生权限最少。2.用户登录时进行身份验证,防止非法用户登录系统。三、总体设计(一)系统架构设计本系统采用三层架构设计,即表示层、业务逻辑层和数据访问层。1.表示层:负责与用户进行交互,接收用户输入并显示系统输出。包括用户界面的设计和实现,如登录界面、学生信息管理界面、课程信息管理界面、成绩信息管理界面等。2.业务逻辑层:处理系统的业务逻辑,如学生信息的添加、查询、修改、删除,课程信息的管理,成绩信息的管理等。它对表示层传来的数据进行验证和处理,并调用数据访问层获取或保存数据。3.数据访问层:负责与数据库进行交互,实现数据的存储和读取。包括数据库连接、SQL语句的执行等操作。(二)模块划分1.用户管理模块:负责用户的登录验证和权限管理。2.学生信息管理模块:实现学生基本信息的录入、查询、修改和删除功能。3.课程信息管理模块:实现课程基本信息的录入、查询、修改和删除功能。4.成绩信息管理模块:实现学生成绩的录入、查询、修改和统计功能。(三)数据库设计1.学生表(Student)学号(StudentID):主键,唯一标识学生。姓名(StudentName):学生姓名。性别(Gender):学生性别。出生日期(BirthDate):学生出生日期。专业(Major):学生专业。2.课程表(Course)课程编号(CourseID):主键,唯一标识课程。课程名称(CourseName):课程名称。学分(Credit):课程学分。授课教师(Teacher):授课教师姓名。3.成绩表(Score)学号(StudentID):外键,关联学生表。课程编号(CourseID):外键,关联课程表。成绩(Grade):学生该课程的成绩。四、详细设计(一)用户管理模块1.登录功能用户输入用户名和密码。业务逻辑层验证用户名和密码是否正确,并根据用户角色赋予相应权限。如果验证成功,跳转到相应的主界面;否则提示登录失败。2.权限管理根据用户角色,设置不同的操作权限。例如,管理员可以进行所有操作,教师只能进行成绩查询和录入,学生只能查询自己的信息和成绩。(二)学生信息管理模块1.添加学生信息表示层获取用户输入的学生信息。业务逻辑层验证输入信息的合法性,如学号是否唯一等。数据访问层将合法的学生信息插入到学生表中。2.查询学生信息表示层获取查询条件。业务逻辑层根据查询条件构造SQL查询语句。数据访问层执行查询语句并返回查询结果给业务逻辑层。业务逻辑层将查询结果传递给表示层进行显示。3.修改学生信息表示层获取要修改的学生学号和新的学生信息。业务逻辑层验证学号是否存在,并验证新信息的合法性。数据访问层根据学号更新学生表中的相应信息。4.删除学生信息表示层获取要删除的学生学号。业务逻辑层验证学号是否存在。数据访问层根据学号删除学生表中的相应记录,并同时删除成绩表中该学生的相关成绩记录。(三)课程信息管理模块1.添加课程信息表示层获取用户输入的课程信息。业务逻辑层验证输入信息的合法性,如课程编号是否唯一等。数据访问层将合法的课程信息插入到课程表中。2.查询课程信息表示层获取查询条件。业务逻辑层根据查询条件构造SQL查询语句。数据访问层执行查询语句并返回查询结果给业务逻辑层。业务逻辑层将查询结果传递给表示层进行显示。3.修改课程信息表示层获取要修改的课程编号和新的课程信息。业务逻辑层验证课程编号是否存在,并验证新信息的合法性。数据访问层根据课程编号更新课程表中的相应信息。4.删除课程信息表示层获取要删除的课程编号。业务逻辑层验证课程编号是否存在。数据访问层根据课程编号删除课程表中的相应记录,并同时删除成绩表中该课程的相关成绩记录。(四)成绩信息管理模块1.添加成绩信息表示层获取学生学号、课程编号和成绩信息。业务逻辑层验证学号和课程编号是否存在,以及成绩是否在合法范围内。数据访问层将合法的成绩信息插入到成绩表中。2.查询成绩信息表示层获取查询条件。业务逻辑层根据查询条件构造SQL查询语句。数据访问层执行查询语句并返回查询结果给业务逻辑层。业务逻辑层将查询结果传递给表示层进行显示。3.修改成绩信息表示层获取学生学号、课程编号和新的成绩信息。业务逻辑层验证学号和课程编号是否存在,以及新成绩是否在合法范围内。数据访问层根据学号和课程编号更新成绩表中的相应成绩记录。4.成绩统计业务逻辑层根据学生学号或课程编号构造统计SQL语句。数据访问层执行统计语句并返回统计结果,如平均成绩、总成绩等。业务逻辑层将统计结果传递给表示层进行显示。五、编码实现(一)开发环境1.编程语言:采用Java语言进行开发。2.开发工具:使用EclipseIDE作为开发工具。3.数据库:选用MySQL数据库来存储学生信息、课程信息和成绩信息。(二)关键代码示例1.数据库连接代码```javaimportjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBUtil{privatestaticfinalStringURL="jdbc:mysql://localhost:3306/student_management";privatestaticfinalStringUSER="root";privatestaticfinalStringPASSWORD="123456";publicstaticConnectiongetConnection()throwsSQLException{returnDriverManager.getConnection(URL,USER,PASSWORD);}}```2.学生信息添加代码```javaimportjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;publicclassStudentDAO{publicvoidaddStudent(Studentstudent)throwsSQLException{Stringsql="INSERTINTOStudent(StudentID,StudentName,Gender,BirthDate,Major)VALUES(?,?,?,?,?)";try(Connectionconn=DBUtil.getConnection();PreparedStatementpstmt=conn.prepareStatement(sql)){pstmt.setString(1,student.getStudentID());pstmt.setString(2,student.getStudentName());pstmt.setString(3,student.getGender());pstmt.setDate(4,newjava.sql.Date(student.getBirthDate().getTime()));pstmt.setString(5,student.getMajor());pstmt.executeUpdate();}}}```3.学生信息查询代码```javaimportjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;publicclassStudentDAO{publicList<Student>queryStudents(Stringcondition)throwsSQLException{List<Student>students=newArrayList<>();Stringsql="SELECT*FROMStudent"+condition;try(Connectionconn=DBUtil.getConnection();PreparedStatementpstmt=conn.prepareStatement(sql);ResultSetrs=pstmt.executeQuery()){while(rs.next()){Studentstudent=newStudent();student.setStudentID(rs.getString("StudentID"));student.setStudentName(rs.getString("StudentName"));student.setGender(rs.getString("Gender"));student.setBirthDate(rs.getDate("BirthDate"));student.setMajor(rs.getString("Major"));students.add(student);}}returnstudents;}}```六、测试与调试(一)测试计划1.功能测试对学生信息管理、课程信息管理、成绩信息管理等各个功能模块进行测试,验证其是否能正确实现相应功能。检查不同用户角色的权限是否设置正确,如管理员能否进行所有操作,教师和学生能否进行相应的有限操作。2.边界值测试测试输入数据的边界值,如学号、课程编号、成绩等的最大值、最小值、边界值附近的值,检查系统是否能正确处理。3.异常测试输入非法数据,如学号重复、成绩超出范围等,检查系统是否能给出相应提示并进行正确处理。(二)测试用例1.添加学生信息测试用例输入合法信息:学号:2023001,姓名:张三,性别:男,出生日期:19900101,专业:计算机科学与技术。预期结果:成功添加学生信息到数据库。输入学号重复信息:学号:已存在的学号,其他信息合法。预期结果:提示学号重复,未添加成功。2.查询学生信息测试用例按学号查询:输入学号:2023001。预期结果:显示学号为20

温馨提示

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

最新文档

评论

0/150

提交评论