学生成绩管理系统设计与实现——毕业论文_第1页
学生成绩管理系统设计与实现——毕业论文_第2页
学生成绩管理系统设计与实现——毕业论文_第3页
学生成绩管理系统设计与实现——毕业论文_第4页
学生成绩管理系统设计与实现——毕业论文_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

学生成绩管理系统设计与实现XXXXXXXXXX学院毕 业 设 计课题名称:学生成绩管理系统设计与实现学生姓名: 学 号: 0000000000 专 业: 计算机软件应用班 级: XXXXXXXXXX指导教师: 年 月 摘要该学生成绩管理系统采用jsp,js,servlet和Mysql数据库等工具,在工作平台MyEclipse上开发而成。该学生成绩管理系统适用于大部分学校对学生成绩的管理,及时更新学生成绩以及其他信息,以及对登录前台系统进行管理的教师的信息进行及时更新,对这些信息进行增、删、改、查操作。本系统能提高了教务的管理效率,大大地减轻了教师的负担,教师可以随时对学生信息进行管理。关键字:JSP、学生成绩管理系统、成绩管理系统后台、mysqlAbstractThe server of the student achievement management system use the tools of jsp,js,servlet and Mysql and so on,on working platform MyEclipse development and make it successful.The student achievement management system is mainly used for all kinds of information on the school teachers to edit and initialization of the teachers login information at the same time; For students and teachers, curriculum, student performance management, as well as the initialization of the students login information at the same time. Students can query the course information and their own information.This system can improve the efficiency of educational administration management, greatly reduce teachers burden, enable students to query course and own score information anytime and anywhere.Key words: JSP, student performance management, information management system ,mysql.目录摘要IIAbstractIII目录IV第一章 选题的目的和意义11.1 项目开发的背景11.2 项目概述11.3 设计目的与意义1第二章 系统的开发技术及主要架构22.1 开发技术的选择22.2 项目开发的工具22.3 数据库的连接3第三章 可行性研究43.1经济可行性分析43.2 操作可行性分析43.3 技术可行性分析43.4 可行性综合分析4第四章 需求分析54.1 功能分析54.2 系统数据流程图5第五章 网站总体设计65.1登录流程65.2系统功能结构图7第六章 数据库设计86.1 系统实体E-R图86.2 实体联系图96.3 逻辑结构设计10第七章 系统主要功能模块详细设计127.1 前台用户登录127.2 通过身份登录后的前台管理界面137.3 制造者相关信息界面237.4 后台用户登录237.5 通过验证登录的后台界面25第八章 系统测试308.1 测试原则308.2 测试用例308.3 测试小结32第九章 总结33致谢34参考文献35III第一章 选题的目的和意义1.1 项目开发的背景几年前,各个学校对于学生成绩的管理还是停留在运用手工操作,随着各个学校的规模不断壮大,学生人数逐年增加。关于学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。但人工管理又有着许多缺陷,比如:效率底、易出错、检索信息慢、对学校的管理提供决策信息较为困难等。所以我想借本次毕业设计之际,开发一个适用于大部分学校的学生成绩管理系统,方便学校对各类信息的管理,减轻学校的负担。1.2 项目概述本管理系统主要内容是学生信息管理,以及后台教师管理人员信息管理。全文共分为概述、系统分析、系统总体设计、详细设计、开发总结、参考文献、附录等。1.3 设计目的与意义本系统是将现代化的计算机技术和传统的教学、教务工作相结合设计完成的系统,实现了工作过程的计算机化,提高工作效率和工作质量,该系统的完成将具有以下几点重要的意义:(1)系统具有较强的实用性、可靠性和适用性(2)对各个数据的输入进行了检测,大大减少了异常的发生。(3)能够按照用户输入的关键字进行查询 (4) 注意到了数据的安全性。(5)简化了用户的操作过程,尽量减少用户的工作量第二章 系统的开发技术及主要架构2.1 开发技术的选择由于JAVA面向对象,性能优异,跨平台,易移植,易掌握等特点,尤其是在性能和跨平台性两个方面非常显著。因此,最后我选择采用JAVA技术开发这个系统。2.2 项目开发的工具这个web系统的服务器采用开源的Tomcat7.0,数据库采用开源的MySQL。在MyEclipse 工作平台上使用Java、JavaScript与JSP技术,采用MVC模式开发。2.2.1 MyEclipe简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ),简称MyEclipse是对Eclipse IDE的扩展,利用它我们可以很方便地使用数据库和JavaEE开发和发布系统,提高了工作效率。2.2.2 MySql简介MySQL名字的来历是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.2.3 Tomcat简介Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。2.3 数据库的连接JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供一个标准的API。据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,本系统采用JDBC连接数据库。第三章 可行性研究3.1经济可行性分析本系统开发要耗去一定的时间,而所用的开发工具和软件基本是免费的。由于系统能够在未来一段时期内稳定地发挥作用,因此该系统对于管理学生成绩都有很大的帮助。由此可见,开发此系统在经济上是完全可行的。3.2 操作可行性分析如今的计算机已经进入各个家庭,硬件成本不断的下降,计算机价格不断降低。该系统具有友好的用户界面、良好的安全性设置等,使用户可以很快地掌握系统的操作方法,因此在操作上是可行的。3.3 技术可行性分析从目前IT业内使用比较广泛的数据库和管理软件来看,使用比较简单的中小型数据库Mysql和JSP开发该系统非常简单实用。该系统能为用户提供非常友好、操作简单的用户界面。因此,从技术可行性分析来看是可行的。3.4 可行性综合分析利用计算机实现学生管理系统势在必行。通过对当前的开发背景和上述几个可行性分析可以发现开发这个系统是可行的。本学生成绩管理向着规范化、简单化、有效化的方向发展。第四章 需求分析4.1 功能分析经过前期的深入调查和研究,总结出该系统需要完成的具体功能,分析如下:前台学生信息管理:能够实现登录的教师用户对学生信息添加,删除,修改和查询。初始化教师登录信息:用户ID为教师编号,初始密码为123456。后台教师信息管理: 能够实现对能够登录前台的教师的信息进行添加,删除,修改和查询操作,管理员ID为1000,初始密码为123456。 以上所有用户在登录后都不可以修改自己的密码。4.2 系统数据流程图由以上的功能分析,得出如图4-1的系统数据流程图,该数据流程图直观地反映了该系统的整体框架和设计要求。图4-1 数据流程图第五章 网站总体设计用户登录时,系统先判断用户名是否存在,密码和用户类型是否正确。如果正确,则进入用户首页,进行相关的管理操作。如果错误,则用户要重新输入用户名,密码和选择用户类型。用户登录后根据用户类型,从而拥有不同权限。登录流程图和系统功能结构图如下所示。5.1登录流程图5-1 登录流程图5.2系统功能结构图图5-2 系统功能结构图第六章 数据库设计6.1 系统实体E-R图图6-1 学生实体E-R图图6-2 教师管理实体E-R图6.2 实体联系图从上面的需求分析和总体设计得出教师管理员、学生以及系统各大模块之间的联系图如下图所示:图6-6 系统总体联系图6.3 逻辑结构设计根据系统的功能描述,设计要用的数据表。因为这些表之间相互关联,存储着系统的相关数据,所以在设计数据表的过程中,要求设计一个表只存储一个实体或对象的相关信息,不同实体存储在不同的表中。本系统需要设计的数据库表如以下各图。表6-7学生表 student字段字段名类型可否为空主键stu_id学号int否是stu_password初始化密码varchar是否stu_name姓名varchar是否stu_adr家庭住址varchar是否stu_class班级varchar是否stu_phone联系电话varchar是否stu_teacher班主任姓名varchar是否stu_zhuanye学生专业varchar是否stu_yuwen语文varchar是否stu_shuxue数学varchar是否stu_yingyu英语varchar是否stu_computer计算机基础varchar是否stu_yingjie是否应届生varchar是否stu_date入学日期varchar是否表6-8 教师管理员表 stuadmin字段字段名类型可否为空主键adm_idID号码int否是adm_name教师昵称varchar是否adm_password密码varchar是否honist_name真实姓名varchar是否phone联系电话varchar是否adm_root是否超级管理员varchar是否第七章 系统主要功能模块详细设计7.1 前台用户登录前台用户登录需要验证用户的用户名,密码和身份。如果登录成功,页面就会跳转到相关页面,如果登录失败登录界面就会显示提示信息,登录界面如下图7-1登录界面 前台用户登录界面核心代码如下:%String adm_id=request.getParameter(adm_id);if(adm_id.equals()out.print(alert(账号不能为空!);history.back(););String adm_password=request.getParameter(adm_password);if(adm_password.equals()out.print(alert(密码不能为空!);history.back(););Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/students,root,root);Statement stmt=conn.createStatement();String sql=select * from stuadmin where adm_id=+adm_id+ and adm_password=+adm_password+;ResultSet rs=stmt.executeQuery(sql);if(rs.isAfterLast()=rs.isBeforeFirst()out.print(alert(您输入的账号或密码不对!);window.location.href=login.jsp);elsesession.setAttribute(check,yes);session.setAttribute(adm_id,request.getParameter(adm_id);response.sendRedirect(main.jsp);rs.close();stmt.close();conn.close();%7.2 通过身份登录后的前台管理界面登录成功之后,跳转至前台主页,其界面如下所示:7.2.1 通过身份登录后的前台管理界面图7-2 成绩管理前台首页7.2.2 学生信息添删改查模块成绩管理有四大分支模块:学生信息添加,学生信息显示,学生信息修改和学生信息查询,其中学生信息显示界面包括修改窗口链接以及删除功能,如下所示:(1)信息显示图7-3 学生信息显示界面 (2)学生信息添加图7-4 信息添加界面图7-5学生信息添加界面学生信息添加界面核心功能代码如下:%request.setCharacterEncoding(utf-8);Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/students,root,root);Statement stmt=conn.createStatement();String stu_name=request.getParameter(stu_name);String stu_class=request.getParameter(stu_class);String stu_adr=request.getParameter(stu_adr);String stu_phone=request.getParameter(stu_phone);String stu_teacher=request.getParameter(stu_teacher);String stu_yuwen=request.getParameter(stu_yuwen);String stu_shuxue=request.getParameter(stu_shuxue);String stu_yingyu=request.getParameter(stu_yingyu);String stu_computer=request.getParameter(stu_computer);String stu_zhuanye=request.getParameter(stu_zhuanye);String stu_date=request.getParameter(stu_date);String stu_yingjie=request.getParameter(stu_yingjie);if(stu_yingjie=null)stu_yingjie=否;stmt.executeUpdate(insert into student(stu_name,stu_class,stu_adr,stu_phone,stu_teacher,stu_yuwen,stu_shuxue,stu_yingyu,stu_computer,stu_zhuanye,stu_date,stu_yingjie) values(+stu_name+,+stu_class+,+stu_adr+,+stu_phone+,+stu_teacher+,+stu_yuwen+,+stu_shuxue+,+stu_yingyu+,+stu_computer+,+stu_zhuanye+,+stu_date+,+stu_yingjie+);out.print(alert(您成功添加了一位学生的信息!);window.location.href=form2.jsp);conn.close();stmt.close();% (2)学生信息修改以及删除图7-6 学生信息添加界面图7-7 学生信息修改成功提示界面图7-8 学生信息修改成功提示界面学生信息修改界面核心功能代码如下:%request.setCharacterEncoding(utf-8);Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/students,root,root);Statement stmt=conn.createStatement();String stu_name=request.getParameter(stu_name);String stu_class=request.getParameter(stu_class);String stu_adr=request.getParameter(stu_adr);String stu_phone=request.getParameter(stu_phone);String stu_teacher=request.getParameter(stu_teacher);String stu_yuwen=request.getParameter(stu_yuwen);String stu_shuxue=request.getParameter(stu_shuxue);String stu_yingyu=request.getParameter(stu_yingyu);String stu_computer=request.getParameter(stu_computer);String stu_zhuanye=request.getParameter(stu_zhuanye);String stu_date=request.getParameter(stu_date);String stu_yingjie=request.getParameter(stu_yingjie);if(stu_yingjie=null)stu_yingjie=否;stmt.executeUpdate(update student set stu_name=+stu_name+,stu_class=+stu_class+,stu_adr=+stu_adr+,stu_phone=+stu_phone+,stu_teacher=+stu_teacher+,stu_yuwen=+stu_yuwen+,stu_shuxue=+stu_shuxue+,stu_yingyu=+stu_yingyu+,stu_computer=+stu_computer+,stu_zhuanye=+stu_zhuanye+,stu_date=+stu_date+,stu_yingjie=+stu_yingjie+where stu_id=+request.getParameter(stu_id)+);out.print(alert(你修改信息成功啦!);window.location.href=right.jsp);conn.close();stmt.close();% 删除功能代码如下:%Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/students,root,root);Statement stmt=conn.createStatement();String sql=delete from student where stu_id=+request.getParameter(stu_id)+;stmt.executeUpdate(sql);out.print(alert(该学生的所有信息已经删除啦!);window.location.href=right.jsp);stmt.close();conn.close();% (3)查询学生信息的界面如下图:图7-9 学生信息查询界面图7-10 学生信息查询结果界面学生信息查询界面核心代码如下:无标题文档 位置: 首页 单项查询 信息列表 添加 返回 信息表 学生信息     学号     学生姓名     班级     入学日期     班主任姓名     专业     语文     数学     英语     计算机基础 % if(rs.next() out.println(+rs.getString(stu_id)+); out.println(+rs.getString(stu_name)+); out.println(+rs.getString(stu_class)+); out.println(+rs.getString(stu_date)+); out.println(+rs.getString(stu_teacher)+); out.println(+rs.getString(stu_zhuanye)+); out.println(+rs.getString(stu_yuwen)+); out.println(+rs.getString(stu_shuxue)+); out.println(+rs.getString(stu_yingyu)+); out.println(+rs.getString(stu_computer)+); % % else out.println(*); out.println(*信*); out.println(*息*); out.println(*不*); out.println(*存*); out.println(*在*); out.println(*!*); out.println(*); out.println(*); out.println(*); rs.close(); stmt.close(); conn.close(); % 7.3 制造者相关信息界面图7-11 作者信息界面7.4 后台用户登录图7-12 后台系统登录界面 前台用户登录界面核心代码如下:%String adm_id=request.getParameter(adm_id);if(adm_id.equals()out.print(alert(账号不能为空!);history.back(););String adm_password=request.getParameter(adm_password);if(adm_password.equals()out.print(alert(密码不能为空!);history.back(););Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/students,root,root);Statement stmt=conn.createStatement();String sql=select * from stuadmin where adm_id=+adm_id+ and adm_password=+adm_password+;ResultSet rs=stmt.executeQuery(sql);if(rs.isAfterLast()=rs.isBeforeFirst()out.print(alert(您输入的账号或密码不对!);window.location.href=login.jsp);elsesession.setAttribute(check,yes);session.setAttribute(adm_id,request.getParameter(adm_id);response.sendRedirect(backstage.jsp);rs.close();stmt.close();conn.close();%7.5 通过验证登录的后台界面图7-13 后台主页界面(1)后台系统教师信息显示界面如下:图7-14 教师管理员信息界面(2) 后台教师管理员信息修改删除界面如下: 图7-15 教师管理员信息修改界面 图7-16 教师管理员信息修改成功提示界面 图7-17 教师管理员信息删除成功提示界面 后台教师管理员信息修改删除界面核心代码如下:/修改%request.setCharacterEncoding(utf-8);Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/students,root,root);Statement stmt=conn.createStatement();String adm_name=request.getParameter(adm_name);String adm_password=request.getParameter(adm_password);String honist_name=request.getParameter(honist_name);String phone=request.getParameter(phone);String adm_root=request.getParameter(adm_root);if(adm_root=null)adm_root=否;stmt.executeUpdate(update stuadmin set adm_name=+adm_name+,adm_password=+adm_password+,honist_name=+honist_name+,phone=+phone+,adm_root=+adm_root+ where adm_id=+request.getParameter(adm_id)+);out.print(alert(您成功修改了管理员信息!);window.location.href=adm_list.jsp);stmt.close();conn.close();%/删除%Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/students,root,root);Statement stmt=conn.createStatement();String sql=delete from stuadmin where adm_id=+request.getParameter(adm_id)+;stmt.executeUpdate(sql);out.print(alert(管理员信息被您删除啦!);window.location.href=adm_list.jsp);stmt.close();conn.close();%(3)后台教师管理员信息添加界面如下:图7-18 教师管理员信息添加界面图7-19 教师管理员信息添加成功提示界面后台教师管理员信息添加核心代码如下:%request.setCharacterEncoding(utf-8);Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/students,root,root);Statement stmt=conn.createStatement();String adm_name=request.getParameter(adm_name);String adm_password=request.getParameter(adm_password);String honist_name=request.getParameter(honist_name);String phone=request.getParameter(phone);String adm_root=request.getParameter(adm_root);stmt.executeUpdate(insert into stuadmin(adm_name,adm_password,honist_name,phone,adm_root) values(+adm_name+,+adm_password+,+honist_name+,+phone+,+adm_root+);out.print(alert(您成功添加了管理员信息!);window.location.href=adm_add.jsp);conn.close();stmt.close();%第八章 系统测试8.1 测试原则软件测试的基本原则是站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现问题,并负责跟踪和分析产品中的问题,具体测试原则有如下几点:第一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。第二,设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下不要制造极端状态和意外状态。第三,制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。第四,妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。8.2 测试用例根据系统的设计流程,一个一个模块地测试,要测试的模块如下:前台登录模块,前台学生信息添加模块,前台学生信息修改模块,前台学生信息显示模块和前台学生信息查询模块以及后台教师管理员信息添加模块等。具体的测试用例,预期结果如下详细介绍:表8-1前台系统测试用例测试用例场景测试用例预期结果实际结果 JT1用户登录打开前台登录页,输入用户ID,密码后点击登录,登录系统,跳转至前台主页。判断用户ID和密码是否正确和是否为空。如果正确,成功登录。否则,提示出错信息,要重新输入。同预期JT2显示学生信息登录进入前台系统数据列表页面后,看学生信息能否正常显示或者页面能否正常打开。页面学生信息正常显示。同预期JT3添加学生信息点击相应按钮,跳转到添加页面,输入学生信息后点击提交。页面正常显示并且添加学生信息成功并弹出警告框。同预期JT4修改和删除学生信息在相应界面修改或者删除学生信息。页面正常显示并且成功修改或者删除学生信息,同时,弹出相应警告框。同预期表8-2 后台系统测试用例测试用例场景测试用例预期结果实际结果 JT1用户登录打开后台登录页,输入用户ID,密码后点击登录,登录系统,跳转至前台主页。判断用户ID和密码是否正确和是否为空。如果正确,成功登录。否则,提示出错信息,要重新输入。同预期JT2显示教师管理员信息通过登录进入前台系统数据列表页面后,看学生信息能否正常显示或者页面能否正常打开。页面教师管理员信息正常显示。同预期JT3添加教师管理员信息点击相应按钮,跳转到添加页面,输入学生信息后点击提交。页面正常显示并且添加教师管理员信息成功并弹出警告。同预期JT4修改和删除学生信息在相应界面修改或者删除学生信息。页面正常显示并且可修

温馨提示

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

最新文档

评论

0/150

提交评论