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名字来历是一种小型关系型数据库管理系统,开发者为瑞典MySQ
5、LAB公司,在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”后,提示输入格式不对,请重新数字,当输入不不大于或等于分页总数数字时,跳转到最后一页点击“首页”回到第一页,点击“尾页”回到最后一页点击“上一页”回到上一页,点击“下一页”回到下一页这个页面实现了教师对学生基本信息管理(添加,删除,修改,查询),同步添加了一条学生登录记录,初始密码为学生学号,添加学生信息核心代码(学生信息管理添加实现类)如下:p
14、ublic 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,stu.getSe
15、x();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();this.pst2.s
16、etString(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=this.conn.prepareS
18、tatement(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.pst2=this.conn.prepareSta
19、tement(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 学生信息更新界面只要不修改主键“学号”,年龄为整数,每一项都不为空,就能成功修改记录。点击图7-5
20、列表中要删除数据后“删除”删除一条记录。删除学生信息核心代码(学生信息管理删除实现类)如下: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 where id=?;this.pst2=this.
21、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文本框中输入学生姓名(可输入模糊信息),查询学生信息核心代码(学生信息管理查询实现类)如下:publ
22、ic 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 Stu();stu.setIno(rs.getString
23、(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 课程信息管理界面点击图7-2中“成绩信息管理”进入成绩管理
24、模块,界面如下:图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与否存在,密码和顾客类型与否对的若对的。如果对的,成功登录。否则,提示出错信息,要重新输入。同预期TC2修改密码进入系统管理页面后,点击“修改密码”后输入新密码和确
27、认密码判断新密码与否为空,如果为空,提示修改失败,新口令不能为空;再判断新密码和旧密码与否相似,若相似则修改成功,若不同则修改失败同预期TC3退出系统点击“退出系统”后在弹出提示框中选取“拟定”或“取消”如果选取“拟定”则退出系统,如果选取“取消”则退出系统失败,返回原界面同预期教师管理页面测试用例测试用例场景测试用例预期成果实际成果TC1学生信息管理进入教师管理,点击学生信息管理,测试添加,删除,修改,查询功能,测试添加学生记录信息登录系统效果对学生信息添加,删除,修改操作达到了预期效果;添加学生能以学号登录系统,当删除该学生记录后,该学生则不能登录系统同预 期TC2课程信息管理进入教师管理
28、,测试添加,删除,修改,查询功能对课程信息添加,删除,修改操作达到了预期效果同预期TC3成绩信息管理进入教师管理,分别测试添加,删除,修改,查询功能对成绩信息添加,删除,修改操作达到了预期效果同预期管理员管理页面测试用例测试用例场景测试用例预期成果实际成果TC1教师信息管理进入管理员管理首页,点击教师信息管理,分别测试添加,删除,修改,查询功能,并且测试以编辑学生记录信息登录系统效果对教师信息添加,删除,修改操作达到了预期效果,并且能查询到效果添加教师能以教师编号登录系统,当删除该教师记录后,该教师不能登录系统同预期学生管理页面测试用例测试用例场景测试用例预期成果实际成果TC1课程信息查询以任
29、意学生身份登录系统,点击课程信息,核对课程信息查询成果是学校所有课程,无误同预期TC2成绩信息查询以任意学生身份登录系统,点击成绩信息,查询个人成绩查询到成绩是自己个人考试成绩,无误同预期8.3 测试小结本章重要测试了学生成绩管理系统可行性,并且简介了专门针对本系统测试方式,描述了某些简朴测试用例。此外,还简介了对系统进行测试预期成果和最后实际成果。从总体上来说,整个系统设计都比较符合规定,圆满地完毕了开题报告中所提出设计规定,基本上达到了这次系统开发预期效果。9 总结毕业设计是大学本科教诲最后一种重要实践环节,重培养学生综合运用本学科基本理论、专业知识和基本技能,提高分析与解决实际问题能力。
30、在使用java开发这个系统过程中,我深刻地结识到需求分析在整个软件开发流程中重要性,没有做好需求分析就开发系统,问题发现地越晚,所付出代价就越大。同步,我也感受到了在整个软件开发流程中,也许会遇到某些难以预料问题,这时就需要多在网上或书上找资料,多向教师和同窗谋求协助,不断思考,寻找各种解决方案。系统总体上实现了预期中效果,以便了管理员管理教师信息,教师管理学生信息,课程信息和成绩信息。顾客在添加记录时又进行了数据检测,避免数据库中浮现无效数据。管理员在添加教师和教师在添加学生时都同步添加了登录信息,初始化了登录密码,以便了顾客管理。学生只能查询自己成绩信息,提高了学生顾客隐私。由于个人能力和时间有限,系统尚有某些局限性,有待改进,但愿教师们提出宝贵意见,我会竭力去改进。在次,多亏了指引教师和同窗们协助,使我成功完毕了这个系统。在这里,我表达衷心感谢