基于JSP的学生成绩管理系统的开发Word格式.docx
- 文档编号:18129804
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:23
- 大小:478.69KB
基于JSP的学生成绩管理系统的开发Word格式.docx
《基于JSP的学生成绩管理系统的开发Word格式.docx》由会员分享,可在线阅读,更多相关《基于JSP的学生成绩管理系统的开发Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
由于JAVA面向对象,安全性高,跨平台,易移植,易掌握等特点,尤其是在安全性和跨平台性两个方面非常显著。
因此,最后我选择采用Java技术开发这个系统。
2.2项目开发的工具
这个web系统的服务器采用开源的Tomcat6.0,数据库采用开源的MySQL。
在MyEclipse工作平台上使用Java、JavaScript与JSP技术,采用MVC模式开发。
2.2.1MyEclipe简介
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench),简称MyEclipse是对EclipseIDE的扩展,利用它我们可以很方便地使用数据库和JavaEE开发和发布系统,提高了工作效率。
2.2.2MySql简介
MySQL名字的来历是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。
MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2.2.3Tomcat简介
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
2.3数据库的连接
JDBC(JavaData数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供一个标准的API。
据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,本系统采用JDBC连接数据库。
3可行性研究
3.1经济可行性分析
本系统开发要耗去一定的时间,而所用的开发工具和软件基本是免费的。
由于系统能够在未来一段时期内稳定地发挥作用,因此该系统对于管理学生成绩都有很大的帮助。
由此可见,开发此系统在经济上是完全可行的。
3.2操作可行性分析
如今的计算机已经进入各个家庭,硬件成本不断的下降,计算机价格不断降低。
该系统具有友好的用户界面、良好的安全性设置等,使用户可以很快地掌握系统的操作方法,因此在操作上是可行的。
3.3技术可行性分析
从目前IT业内使用比较广泛的数据库和管理软件来看,使用比较简单的中小型数据库Mysql和Java开发该系统非常简单实用。
该系统能为用户提供非常友好、操作简单的用户界面。
因此,从技术可行性分析来看是可行的。
3.4可行性综合分析
利用计算机实现学生管理系统势在必行。
通过对当前的开发背景和上述几个可行性分析可以发现开发这个系统是可行的。
本学生成绩管理向着规范化、简单化、有效化的方向发展。
4需求分析
4.1功能分析
经过前期的深入调查和研究,总结出该系统需要完成的具体功能,分析如下:
管理员管理:
能够实现管理员对教师信息添加,删除,修改和查询。
初始化教师登录信息:
用户ID为教师编号,初始密码也为教师编号,用户类型为教师。
教师管理:
能够实现教师对学生信息,课程信息和成绩信息的添加,删除,修改和查询等功能;
初始化学生登录信息:
用户ID为学号,初始密码也为学号,用户类型为学生。
学生查询:
学生能够查询课程信息和自己的成绩信息。
以上所有用户在登录后都可以修改自己的密码。
4.2系统数据流程图
由以上的功能分析,得出如图4-1的系统数据流程图,该数据流程图直观地反映了该系统的整体框架和设计要求。
图4-1数据流程图
5网站总体设计
用户登录时,系统先判断用户名是否存在,密码和用户类型是否正确。
如果正确,则进入用户首页,进行相关的管理操作。
如果错误,则用户要重新输入用户名,密码和选择用户类型。
用户登录后根据用户类型,从而拥有不同权限。
登录流程图和系统功能结构图如下所示。
图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逻辑结构设计
根据系统的功能描述,设计要用的数据表。
因为这些表之间相互关联,存储着系统的相关数据,所以在设计数据表的过程中,要求设计一个表只存储一个实体或对象的相关信息,不同实体存储在不同的表中。
本系统需要设计的数据库表如以下各图。
表6-7学生表studb
字段
字段名
类型
可否为空
主键
ino
学号
varchar(10)
否
是
name
姓名
sex
性别
varchar(5)
age
年龄
int
sys
所在系
varchar(20)
grade
班级
表6-8课程表couinfo
cno
课程编号
cname
课程名称
tname
任课老师
credit
学分
float
表6-9成绩表scoinfo
type
成绩类型
score
分数
表6-10教师表teainfo
tno
教师编号
教师姓名
tsex
教师性别
tsys
表6-11用户信息表user
id
用户ID
用户姓名
password
密码
job
用户身份
7系统主要功能模块详细设计
7.1用户登录
用户登录需要验证用户的用户名,密码和身份。
如果登录成功,页面就会跳转到相关页面,如果登录失败登录界面就会显示提示信息,登录界面如下
图7-1登录界面
7.2网站管理
教师,管理员和学生登录系统后拥有不同权限,详细介绍如下所示:
7.2.1教师身份登录后的管理界面
图7-2教师管理首页
教师管理三个模块:
学生信息管理,课程信息管理和成绩信息管理,教师登录后可以点击“修改口令”修改自己的口令,点击“退出系统”返回登录界面,修改口令的界面如下图
图7-3密码修改界面
如果新密码为空,则提示“修改失败,新口令不能为空!
”,如果新密码和确认密码不同,则提示“口令修改失败”,相同则提示“口令修改成功”,口令修改失败的界面如下图
图7-4密码修改失败界面
学生信息管理模块:
在图7-2中点击“学生信息管理”后进入学生信息管理,界面,点击后的界面如下图
图7-5学生信息管理界面
在“跳到”后输入2,点击“Go”后,列表跳转到第2页,
当输入小于0的数,点击“Go”后,提示输入格式不对,请重新数字,当输入大于或等于分页总数的数字时,跳转到最后一页
点击“首页”回到第一页,点击“尾页”回到最后一页
点击“上一页”回到上一页,点击“下一页”回到下一页
这个页面实现了教师对学生基本信息的管理(添加,删除,修改,查询),同时添加了一条学生登录记录,初始密码为学生的学号,添加学生信息的关键代码(学生信息管理的添加实现类)如下:
publicbooleandoCreate(Stustu,Useruser)throwsException{
booleanflag=false;
Stringsql1="
insertintostudb(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.getSex());
this.pst1.setInt(4,stu.getAge());
this.pst1.setString(5,stu.getSys());
this.pst1.setString(6,stu.getGrade());
Stringsql2="
insertintouser(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.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();
returnflag;
}
点击“添加”添加学生信息后的界面如下图:
图7-6学生信息添加界面
学号为数字或字母,如果是其他的特殊符号,系统提示出错并清空学号后的文本框,年龄是2位数的整数,否则提示出错清空年龄后的文本框。
每一个文本框都要填,如果有其中一个文本框没有填就提交,提示没有填的文本框不能为空。
教师添加一条学生信息记录,就同时添加了一条学生登录记录,该学生的登录ID为学号,登录密码也为学号,用户姓名为学生姓名,用户类型为学生,学生登录后可以修改自己的登录密码。
修改学生信息的关键代码(学生信息管理的修改实现类)如下:
publicbooleandoUpdate(Stustu,Useruser)throwsException{
booleanflag=false;
Stringsql1="
updatestudbsetname=?
sex=?
age=?
sys=?
grade=?
whereino=?
"
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());
updateusersetname=?
whereid=?
this.pst2.setString(1,user.getName());
this.pst2.setString(2,user.getId());
if(this.pst1.executeUpdate()>
点击图7-5的列表中的要修改的数据后的“修改”修改学生信息,例如点击第一条记录后的“修改”,界面如下图
图7-7学生信息更新界面
只要不修改主键“学号”,年龄为整数,每一项都不为空,就能成功修改记录。
点击图7-5的列表中的要删除的数据后的“删除”删除一条记录。
删除学生信息的关键代码(学生信息管理的删除实现类)如下:
publicbooleandoDelete(Stustu,Useruser)throwsException{
Stringsql1="
deletefromstudbwhereino=?
this.pst1.setString(1,stu.getIno());
deletefromuserwhereid=?
this.pst2.setString(1,user.getId());
例如点击任意一条记录后的“删除”,弹出如下图的提示框
图7-8记录删除提示框
点击“确定”后记录删除成功,点击“取消”后返回原界面,删除失败
在图7-5的文本框中输入学生姓名(可输入模糊信息),查询学生信息的关键代码(学生信息管理的查询实现类)如下:
publicList<
Stu>
findAll(StringkeyWord)throwsException{
List<
all=newArrayList<
();
Stringsql="
select*fromstudbwherenamelike?
this.pst=this.conn.prepareStatement(sql);
this.pst.setString(1,"
%"
+keyWord+"
);
ResultSetrs=this.pst.executeQuery();
Stustu=null;
while(rs.next()){
stu=newStu();
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();
returnall;
在图7-5的文本框中输入学生姓名(可模糊查询),例如输入“01”,点击“查询”后的界面如下:
图7-9信息查询结果图
点击图7-2中的“课程信息管理”进入课程管理模块,界面如下:
图7-10课程信息管理界面
点击图7-2中的“成绩信息管理”进入成绩管理模块,界面如下:
图7-11成绩信息管理界面图
这两个模块和学生信息管理系统模块类似,编辑过程一样
7.2.2管理员身份登录后的管理界面
图7-12管理员首页图
点击“教师管理”进入教师管理模块,如下图所示
图7-13教师信息管理界面
这个模块和学生信息管理系统模块类似,编辑过程一样
管理员添加一条教师信息记录,就同时添加了一条教师登录记录,该教师的登录ID为教师编号,登录密码也为教师编号,用户姓名为教师姓名,用户类型为教师,教师登录后可以修改自己的登录密码。
7.2.2学生身份登录后的查询界面
图7-14学生查询首页
点击“修改口令”修改自己的登录密码,点击“退出系统”返回到登录界面,学生登录后可以查询课程信息和自己的成绩信息
点击“课程信息”查询课程信息,界面如下图所示:
图7-15课程信息查询
点击“成绩信息”查询自己的成绩信息,界面如下图所示:
图7-16成绩信息查询
8系统测试
8.1测试原则
软件测试的基本原则是站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现问题,并负责跟踪和分析产品中的问题,具体测试原则有如下几点:
第一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
第二,设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下不要制造极端状态和意外状态。
第三,制定严格的测试计划。
一定要制定测试计划,并且要有指导性。
测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
第四,妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
8.2测试用例
根据系统的设计流程,一个一个模块地测试,要测试的模块如下:
登录模块,密码修改模块,教师管理模块,管理员管理模块和学生查询模块等。
具体的测试用例,预期结果如下详细介绍:
用户登录和密码修改的测试用例
测试用例
场景
预期结果
实际结果
TC1
用户登录
打开系统,输入用户ID,密码和选择身份后点击登录,登录系统
判断用户的用户ID是否存在,密码和用户类型是否正确若正确。
如果正确,成功登录。
否则,提示出错信息,要重新输入。
同预期
TC2
修改密码
进入系统管理页面后,点击“修改密码”后输入新密码和确认密码
判断新密码是否为空,如果为空,提示修改失败,新口令不能为空;
再判断新密码和旧密码是否相同,若相同则修改成功,若不同则修改失败
TC3
退出系统
点击“退出系统”后在弹出的提示框中选择“确定”或“取消”
如果选择“确定”则退出系统,如果选择“取消”则退出系统失败,返回原界面
教师管理页面的测试用例
TC1
学生信息管理
进入教师管理,点击学生信息管理,测试添加,删除,修改,查询功能,测试添加的学生记录信息登录系统的效果
对学生信息的添加,删除,修改操作达到了预期效果;
添加的学生能以学号登录系统,当删除该学生记录后,该学生则不能登录系统
同预期
课程信息管理
进入教师管理,测试添加,删除,修改,查询
功能
对课程信息的添加,删除,修改操作达到了预期效果
成绩信息管理
进入教师管理,分别测试添加,删除,修改,查询功能
对成绩信息的添加,删除,修改操作达到了预
期效果
管理员管理页面的测试用例
教师信息管理
进入管理员管理首页,点击教师信息管理,分别测试添加,删除,修改,查询功能,并且测试以编辑的学生记录信息登录系统的效果
对教师信息的添加,删除,修改操作达到了预期效果,并且能查询到效果
添加的教师能以教师编号登录系统,当删除该教师记录后,该教师不能登录系统
学生管理页面的测试用例
课程信息查询
以任意学生身份登录系统,点击课程信息,核对课程信息
查询的结果是学校所有的课程,无误
成绩信息查询
以任意学生身份登录系统,点击成绩信息,查询个人的成绩
查询到的成绩是自己个人的考试成绩,无误
8.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JSP 学生 成绩管理系统 开发