1、学生成绩管理系统1. 背景( 1)项目名称。学生成绩管理系统2. 目提出者广州康大职业技术学院( 3)项目承接者。15 软件 2 班( 4)用户。15 软件 2 班内容摘要:学生成绩管理系统采取java,jsp,servlet和Mysql数据库等工具,在工作MyEclipse上开发而成。学生成绩管理系统关键用于各类高校对老师管理,同时初始化老师登录信息;和老师对学生,课程,学生成绩信息管理,同时初始化了学生登录信息。学生能够查询课程信息和自己成绩信息。本系统能提升了教务管理效率,大大地减轻了老师负担,使学生能随时随地查询课程信息和自己成绩。关键字:Java Web ,学生成绩管理系统,信息管理
2、系统1.选题目标和意义1.1 项目开发背景几年前,各个学校对于学生成绩管理还是停留在利用手工操作,伴随各个学校规模不停壮大,学生人数逐年增加。相关学生成绩管理工作所包含数据量越来越大,有学校不得不靠增加人力、物力来进行学生成绩管理。但人工管理又有着很多缺点,比如:效率底、易犯错、检索信息慢、对学校管理提供决议信息较为困难等。所以我想借此次毕业设计之际,开发一个适适用于高校学生成绩管理系统,方便学校对各类信息管理,减轻学校负担。1.2 项目概述本管理系统关键内容是学生信息管理,课程信息管理,学生成绩管理和老师信息管理,管理员添加老师统计,初始化老师登录信息,老师添加学生统计,初始化学生登录信息等
3、等。全文共分为概述、系统分析、系统总体设计、具体设计、开发总结、参考文件、附录等。1.3 设计目标和意义本系统是将现代化计算机技术和传统教学、教务工作相结合设计完成系统,实现了工作过程计算机化,提升工作效率和工作质量,该系统完成将含有以下几点关键意义:(1)系统含有较强实用性、可靠性和适用性(2)对各个数据输入进行了检测,大大降低了异常发生。(3)能够根据用户输入关键字进行查询 (4) 注意到了数据安全性。(5)简化了用户操作过程,尽可能降低用户工作量2 系统开发技术及关键架构2.1 开发技术选择因为JAVA面向对象,安全性高,跨平台,易移植,易掌握等特点,尤其是在安全性和跨平台性两个方面很显
4、著。所以,最终我选择采取Java技术开发这个系统。2.2 项目开发工具这个web系统服务器采取开源Tomcat6.0,数据库采取开源MySQL。在MyEclipse 工作平台上使用Java、JavaScript和JSP技术,采取MVC模式开发。2.2.1 MyEclipe介绍MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ),简称MyEclipse是对Eclipse IDE扩展,利用它我们能够很方便地使用数据库和JavaEE开发和公布系统,提升了工作效率。2.2.2 MySql介绍MySQL名字来历是一个小型关系型数据库管理系统,开发者为瑞典My
5、SQLAB企业,在1月16号被Sun企业收购。MySQL被广泛地应用在Internet上中小型网站中。因为其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,很多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.2.3 Tomcat介绍Tomcat是Apache 软件基金会(Apache Software Foundation)Jakarta 项目中一个关键项目,由Apache、Sun 和其它部分企业及个人共同开发而成。因为Tomcat 技术优异、性能稳定,而且无偿,所以深受Java 爱好者喜爱并得到了部分软件开发商认可,成为现在比较流行Web 应用服务器。2.3
6、数据库连接JDBC(Java Data数据库连接)是一个用于实施SQL语句Java API,能够为多个关系数据库提供一个标准API。据此能够构建更高级工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,本系统采取JDBC连接数据库。3 可行性研究3.1经济可行性分析本系统开发要耗去一定时间,而所用开发工具和软件基础是无偿。因为系统能够在未来一段时期内稳定地发挥作用,所以该系统对于管理学生成绩全部有很大帮助。由此可见,开发此系统在经济上是完全可行。3.2 操作可行性分析现在计算机已经进入各个家庭,硬件成本不停下降,计算机价格不停降低。该系统含有友好用户界面、良好安全性设置
7、等,使用户能够很快地掌握系统操作方法,所以在操作上是可行。3.3 技术可行性分析从现在IT业内使用比较广泛数据库和管理软件来看,使用比较简单中小型数据库Mysql和Java开发该系统很简单实用。该系统能为用户提供很友好、操作简单用户界面。所以,从技术可行性分析来看是可行。3.4 可行性综合分析利用计算机实现学生管理系统势在必行。经过对目前开发背景和上述多个可行性分析能够发觉开发这个系统是可行。本学生成绩管理向着规范化、简单化、有效化方向发展。4 需求分析4.1 功效分析经过前期深入调查和研究,总结出该系统需要完成具体功效,分析以下:管理员管理:能够实现管理员对老师信息添加,删除,修改和查询。初
8、始化老师登录信息:用户ID为老师编号,初始密码也为老师编号,用户类型为老师。老师管理: 能够实现老师对学生信息,课程信息和成绩信息添加,删除,修改和查询等功效;初始化学生登录信息:用户ID为学号,初始密码也为学号,用户类型为学生。学生查询: 学生能够查询课程信息和自己成绩信息。 以上全部用户在登录后全部能够修改自己密码。4.2 系统数据步骤图由以上功效分析,得出图4-1系统数据步骤图,该数据步骤图直观地反应了该系统整体框架和设计要求。图4-1 数据步骤图5 网站总体设计用户登录时,系统先判定用户名是否存在,密码和用户类型是否正确。假如正确,则进入用户首页,进行相关管理操作。假如错误,则用户要重
9、新输入用户名,密码和选择用户类型。用户登录后依据用户类型,从而拥有不一样权限。登录步骤图和系统功效结构图以下所表示。图5-1 登录步骤图5.2系统功效结构图图5-2 系统功效结构图6 数据库设计6.1 系统实体E-R图图6-1 学生实体E-R图图6-2 课程实体E-R图图6-3 成绩实体E-R图图6-4 老师实体E-R图图6-5 系统用户实体E-R图6.2 实体联络图从上面需求分析和总体设计得出管理员,老师,学生,课程和成绩实体之间联络图以下图所表示:图6-6 系统总体联络图6.3 逻辑结构设计依据系统功效描述,设计要用数据表。因为这些表之间相互关联,存放着系统相关数据,所以在设计数据表过程中
10、,要求设计一个表只存放一个实体或对象相关信息,不一样实体存放在不一样表中。本系统需要设计数据库表如以下各图。表6-7学生表 studb字段字段名类型可否为空主键ino学号varchar(10)否是name姓名varchar(10)否sex性别varchar(5)age年纪intsys所在系varchar(20)grade班级varchar(20)表6-8 课程表 couinfo字段字段名类型可否为空主键cno课程编号varchar(10)否是cname课程名称varchar(10)否tname任课老师varchar(10)credit学分float表6-9 成绩表 scoinfo字段字段名类型
11、可否为空主键ino学号varchar(10)否是cno课程编号varchar(10)否是type成绩类型varchar(10)否是score分数int否表6-10 老师表 teainfo字段字段名类型可否为空主键tno老师编号varchar(10)否是tname老师姓名varchar(10)否tsex老师性别varchar(5)tsys所在系varchar(10)表6-11 用户信息表 user字段字段名类型可否为空主键id用户IDvarchar(10)否是name用户姓名varchar(10)否password密码varchar(10)否job用户身份varchar(10)否7 系统关键功效
12、模块具体设计7.1 用户登录用户登录需要验证用户用户名,密码和身份。假如登录成功,页面就会跳转到相关页面,假如登录失败登录界面就会显示提醒信息,登录界面以下图7-1 登录界面7.2 网站管理老师,管理员和学生登录系统后拥有不一样权限,具体介绍以下所表示:7.2.1 老师身份登录后管理界面图7-2 老师管理首页老师管理三个模块:学生信息管理,课程信息管理和成绩信息管理,老师登录后能够点击“修改口令”修改自己口令,点击“退出系统”返回登录界面,修改口令界面以下图图7-3 密码修改界面假如新密码为空,则提醒“修改失败,新口令不能为空!”,假如新密码和确定密码不一样,则提醒“口令修改失败”,相同则提醒
13、“口令修改成功”,口令修改失败界面以下图图7-4 密码修改失败界面学生信息管理模块:在图7-2中点击“学生信息管理”后进入学生信息管理,界面,点击后界面以下图图7-5 学生信息管理界面在“跳到”后输入2,点击“Go”后,列表跳转到第2页,当输入小于0数,点击“Go”后,提醒输入格式不对,请重新数字,当输入大于或等于分页总数数字时,跳转到最终一页点击“首页”回到第一页,点击“尾页”回到最终一页点击“上一页”回到上一页,点击“下一页”回到下一页这个页面实现了老师对学生基础信息管理(添加,删除,修改,查询),同时添加了一条学生登录统计,初始密码为学生学号,添加学生信息关键代码(学生信息管理添加实现类
14、)以下:public boolean doCreate(Stu stu,User user) throws Exception boolean flag=false;String sql1=insert into studb(ino,name,sex,age,sys,grade)values(?,?,?,?,?,?);this.pst1=this.conn.prepareStatement(sql1);this.pst1.setString(1,stu.getIno();this.pst1.setString(2, stu.getName();this.pst1.setString(3, st
15、u.getSex();this.pst1.setInt(4, stu.getAge();this.pst1.setString(5, stu.getSys();this.pst1.setString(6, stu.getGrade();String sql2=insert into user(id,name,password,job)values(?,?,?,?);this.pst2=this.conn.prepareStatement(sql2);this.pst2.setString(1,user.getId();this.pst2.setString(2, user.getName();
16、this.pst2.setString(3, user.getPassword();this.pst2.setString(4, user.getJob();if(this.pst1.executeUpdate()0&this.pst2.executeUpdate()0)flag=true;this.pst1.close();this.pst2.close();return flag;点击“添加”添加学生信息后界面以下图:图7-6 学生信息添加界面学号为数字或字母,假如是其它特殊符号,系统提醒犯错并清空学号后文本框,年纪是2位数整数,不然提醒犯错清空年纪后文本框。每一个文本框全部要填,假如有其
17、中一个文本框没有填就提交,提醒没有填文本框不能为空。老师添加一条学生信息统计,就同时添加了一条学生登录统计,该学生登录ID为学号,登录密码也为学号,用户姓名为学生姓名,用户类型为学生,学生登录后能够修改自己登录密码。修改学生信息关键代码(学生信息管理修改实现类)以下:public boolean doUpdate(Stu stu,User user) throws Exception boolean flag=false;String sql1=update studb set name=?,sex=?,age=?,sys=?,grade=? where ino=?;this.pst1=thi
18、s.conn.prepareStatement(sql1);this.pst1.setString(1, stu.getName();this.pst1.setString(2, stu.getSex();this.pst1.setInt(3, stu.getAge();this.pst1.setString(4, stu.getSys();this.pst1.setString(5, stu.getGrade();this.pst1.setString(6, stu.getIno();String sql2=update user set name=? where id=?;this.pst
19、2=this.conn.prepareStatement(sql2);this.pst2.setString(1, user.getName();this.pst2.setString(2, user.getId();if(this.pst1.executeUpdate()0&this.pst2.executeUpdate()0)flag=true;this.pst1.close();this.pst2.close();return flag;点击图7-5列表中要修改数据后“修改”修改学生信息,比如点击第一条统计后“修改”,界面以下图图7-7 学生信息更新界面只要不修改主键“学号”,年纪为整数
20、,每一项全部不为空,就能成功修改统计。点击图7-5列表中要删除数据后“删除”删除一条统计。删除学生信息关键代码(学生信息管理删除实现类)以下:public boolean doDelete(Stu stu,User user) throws Exception boolean flag=false;String sql1=delete from studb where ino=?;this.pst1=this.conn.prepareStatement(sql1);this.pst1.setString(1, stu.getIno();String sql2=delete from user
21、where id=?;this.pst2=this.conn.prepareStatement(sql2);this.pst2.setString(1, user.getId();if(this.pst1.executeUpdate()0&this.pst2.executeUpdate()0)flag=true;this.pst1.close();this.pst2.close();return flag;比如点击任意一条统计后“删除”,弹出以下图提醒框图7-8 统计删除提醒框点击“确定”后统计删除成功,点击“取消”后返回原界面,删除失败在图7-5文本框中输入学生姓名(可输入模糊信息),查询学
22、生信息关键代码(学生信息管理查询实现类)以下:public List findAll(String keyWord) throws Exception List all=new ArrayList();String sql=select * from studb where name like ?;this.pst=this.conn.prepareStatement(sql);this.pst.setString(1, %+keyWord+%);ResultSet rs=this.pst.executeQuery();Stu stu=null;while(rs.next()stu=new S
23、tu();stu.setIno(rs.getString(1);stu.setName(rs.getString(2);stu.setSex(rs.getString(3);stu.setAge(rs.getInt(4);stu.setSys(rs.getString(5);stu.setGrade(rs.getString(6);all.add(stu);this.pst.close();return all;在图7-5文本框中输入学生姓名(可模糊查询),比如输入“01”,点击“查询”后界面以下:图7-9 信息查询结果图点击图7-2中“课程信息管理”进入课程管理模块,界面以下:图7-10 课
24、程信息管理界面点击图7-2中“成绩信息管理”进入成绩管理模块,界面以下:图7-11 成绩信息管理界面图这两个模块和学生信息管理系统模块类似,编辑过程一样7.2.2 管理员身份登录后管理界面图7-12 管理员首页图点击“老师管理”进入老师管理模块,以下图所表示图7-13 老师信息管理界面这个模块和学生信息管理系统模块类似,编辑过程一样管理员添加一条老师信息统计,就同时添加了一条老师登录统计,该老师登录ID为老师编号,登录密码也为老师编号,用户姓名为老师姓名,用户类型为老师,老师登录后能够修改自己登录密码。7.2.2 学生身份登录后查询界面图7-14 学生查询首页点击“修改口令”修改自己登录密码,
25、点击“退出系统”返回到登录界面,学生登录后能够查询课程信息和自己成绩信息点击“课程信息”查询课程信息,界面以下图所表示:图7-15 课程信息查询点击“成绩信息”查询自己成绩信息,界面以下图所表示:图7-16 成绩信息查询8 系统测试8.1 测试标准软件测试基础标准是站在用户角度,对产品进行全方面测试,尽早、尽可能多地发觉问题,并负责跟踪和分析产品中问题,具体测试标准有以下几点:第一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重错误不外乎是系统不能满足用户需求。第二,设计测试用例时应考虑到正当输入和不正当输入和多种边界条件,特殊情况下不要制造极端状态和意外状态。第三,制订严格测试计划。
26、一定要制订测试计划,而且要有指导性。测试时间安排尽可能宽松,不要期望在极短时间内完成一个高水平测试。第四,妥善保留测试计划、测试用例、犯错统计和最终分析汇报,为维护提供方便。8.2 测试用例依据系统设计步骤,一个一个模块地测试,要测试模块以下:登录模块,密码修改模块,老师管理模块,管理员管理模块和学生查询模块等。具体测试用例,预期结果以下具体介绍:用户登录和密码修改测试用例测试用例场景测试用例预期结果实际结果 TC1用户登录打开系统,输入用户ID,密码和选择身份后点击登录,登录系统判定用户用户ID是否存在,密码和用户类型是否正确若正确。假如正确,成功登录。不然,提醒犯错信息,要重新输入。同预期
27、TC2修改密码进入系统管理页面后,点击“修改密码”后输入新密码和确定密码判定新密码是否为空,假如为空,提醒修改失败,新口令不能为空;再判定新密码和旧密码是否相同,若相同则修改成功,若不一样则修改失败同预期TC3退出系统点击“退出系统”后在弹出提醒框中选择“确定”或“取消”假如选择“确定”则退出系统,假如选择“取消”则退出系统失败,返回原界面同预期老师管理页面测试用例测试用例场景测试用例预期结果实际结果TC1学生信息管理进入老师管理,点击学生信息管理,测试添加,删除,修改,查询功效,测试添加学生统计信息登录系统效果对学生信息添加,删除,修改操作达成了预期效果;添加学生能以学号登录系统,当删除该学
28、生统计后,该学生则不能登录系统同预 期TC2课程信息管理进入老师管理,测试添加,删除,修改,查询功效对课程信息添加,删除,修改操作达成了预期效果同预期TC3成绩信息管理进入老师管理,分别测试添加,删除,修改,查询功效对成绩信息添加,删除,修改操作达成了预期效果同预期管理员管理页面测试用例测试用例场景测试用例预期结果实际结果TC1老师信息管理进入管理员管理首页,点击老师信息管理,分别测试添加,删除,修改,查询功效,而且测试以编辑学生统计信息登录系统效果对老师信息添加,删除,修改操作达成了预期效果,而且能查询到效果添加老师能以老师编号登录系统,当删除该老师统计后,该老师不能登录系统同预期学生管理页
29、面测试用例测试用例场景测试用例预期结果实际结果TC1课程信息查询以任意学生身份登录系统,点击课程信息,查对课程信息查询结果是学校全部课程,无误同预期TC2成绩信息查询以任意学生身份登录系统,点击成绩信息,查询个人成绩查询到成绩是自己个人考试成绩,无误同预期8.3 测试小结本章关键测试了学生成绩管理系统可行性,而且介绍了专门针对本系统测试方法,描述了部分简单测试用例。另外,还介绍了对系统进行测试预期结果和最终实际结果。从总体上来说,整个系统设计全部比较符合要求,圆满地完成了开题汇报中所提出设计要求,基础上达成了这次系统开发预期效果。9 总结毕业设计是大学本科教育最终一个关键实践步骤,重培养学生综
30、合利用本学科基础理论、专业知识和基础技能,提升分析和处理实际问题能力。在使用java开发这个系统过程中,我深刻地认识到需求分析在整个软件开发步骤中关键性,没有做好需求分析就开发系统,问题发觉地越晚,所付出代价就越大。同时,我也感受到了在整个软件开发步骤中,可能会碰到部分难以预料问题,这时就需要多在网上或书上找资料,多向老师和同学寻求帮助,不停思索,寻求多种处理方案。系统总体上实现了预期中效果,方便了管理员管理老师信息,老师管理学生信息,课程信息和成绩信息。用户在添加统计时又进行了数据检测,避免数据库中出现无效数据。管理员在添加老师和老师在添加学生时全部同时添加了登录信息,初始化了登录密码,方便了用户管理。学生只能查询自己成绩信息,提升了学生用户隐私。因为个人能力和时间有限,系统还有部分不足,有待改善,期望老师们提出宝贵意见,我会尽力去改善。在次,多亏了指导老师和同学们帮助,使我成功完成了这个系统。在这里,我表示衷心感谢