学生成绩管理系统.docx
《学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统
软件工程实验报告
学生成绩管理系统
组长:
组员:
1可行性分析
1引言
1.1标识
本条应包含本文档适用的系统和软件的完整标识,(若适用)包括标识号、标题、缩略词语、版本号和发行号。
1.2背景
随着计算机技术的飞速发展和网络时代的到来,我们已经进入了信息化的时代,有人也称之为数字化的时代。
在这个数字化时代里,各个高校在各方面的信息管理工作都受到了极大的挑战。
随着各个高校的教育规模不断的发展扩大,学生人数急剧的增加,有关学生的各种信息量也成倍增长。
也带来了各个高校教育发展过程中的一个重要的问题,就是学生信息的管理问题。
面对庞大的信息量就需要有一个学生信息管理系统来提高学生信息管理工作的效率,做到信息的规范管理、科学统计和快速查询,以减少查询工作方面的工作量。
学生信息管理系统是一个人机系统,以计算机为基础的,但这并不意味着一切都是自动化的。
人机系统的概念说明有些任务最好由人完成,而另一些任务由机器代替。
因此,需要很好的分析把什么工作交给人做比较合适,什么工作交给机器比较合适,充分发挥人和机器的特长,组成一个和谐、有效的系统。
近年来,越来越多的用户认识到管理信息的重要性,纷纷开始选择适合自己的信息管理系统。
学生信息管理系统就是根据这些因素来设计和开发的。
1.3供需双方
软件用户方:
信息工程学院
软件开发方:
软件孵化中心
2软件定义
2.1软件名称
学生成绩管理系统
2.2项目提出的背景
每学期都会产生大量学生文档,纸质文档保存不便,统计分析困难,浪费资源。
迫切需要对这些纸质文档电子化,实现管理规范,节约资源。
2.3软件目标
能够实现学生成绩的输入与查询方便管理教师对学生信息的输入和统计分析。
2.4软件类型
专业软件。
2.5软件服务范围
软件先在信息工程学院实验使用,随后可以扩展到其他院系。
2.6基本需求
能够对学生,学期,选课等之类的记录进行管理,能够多人同时使用,反应速度快,界面整洁,易于操作,每天能够持续工作24小时。
2.7软件环境
软件服务端可以在windows,linux,UNIX,等平台下运行,web服务器tomcat7.0,数据库SqlServer,客户端采用chrome或360浏览器。
2.8主要技术
软件开发采用结构化方法。
可以采用访谈和实地调研获得分析,建模采用Visio工具辅助建立功能模型,数据模型和动态模型;设计采用成熟的B/S体系结构和SSH框架;编程阶段采用CVS进行统一管理,测试采用Winrunner和loadrunner进行功能和性能测试。
2.9基础条件
软件由信息工程学院软件孵化中心开发,用户方式教师和学生。
3经济可行性(成本----效益分析)
软件市场前景好,预期收益大,经济上可行。
4技术可行性(技术风险评价)
软件开发需要的硬件环境已经具备,软件环境已经搭建,网络环境已经配置。
现有资源可以满足软件实施,具备技术可行性。
5法律可行性
软件开发不存在违法行为。
6用户使用可行性
学生:
信息工程学院所有学生
教师:
信息工程学院所有教师
管理员:
开发负责人,学校领导。
7结论
鉴于以上分析,学生管理系统投资较少,具有较高的经济效益和社会效益。
该项目在经济,技术,法律,用户使用上都是可行的,可以立即立项开发。
(每章插入分节符)
2软件需求分析
1引言
1.1编写目的
帮助使用者更好的掌握此系统的使用。
1.2背景
说明:
a、学习成绩管理系统;
b、本项目的任务信息工程学院、软件孵化中心、用户及实现该软件的计算中心或计算机网络;
c、基础系统其他教务系统是基于此系统开发。
1.3定义
UML:
统一建模语言
1.4参考资料
[1]}姚巍,VisualBasic从入门到精通[M],北京,人民邮电出版社,2006:
1~50.
[2]张光妲,VisualBasic程序设计方法[M],北京,清华出版社,2010:
192~226.
[3]王春才,高春艳,李俊民等,VisualBasic完全手册[M],北京,人民邮电出版社,2006:
13~48.
[4]莫举德,夏涛,VisualBasic程序设计[M],北京,北京邮电大学出版社,2008:
148~174.
[5]卢湘鸿,Access数据库与程序设计[M],北京,电子工业出版社,2006:
23~110.
[6]何博,Access完全剖析[M],北京,中国电力出版社,2006:
36~93.
[7]梁灿,赵艳泽,Access数据库应用基础教程[M],北京,清华大学出版社,2005:
54~92.
2业务需求
信息工程学院的学生平时考试成绩,选修课程等每学期都会产生大量学生文档,纸质文档保存不便,统计分析困难,浪费资源。
迫切需要对这些纸质文档电子化,实现管理规范,节约资源。
3用户需求
系统主要分为三个角色:
管理员,教师,学生。
管理员主要功能包括:
学生管理,教师管理等。
教师主要功能包括:
个人信息管理,师生交流,学生成绩管理,批该报告等。
学生主要功能包括:
个人信息,师生交流,实验报告,成绩查询等。
4功能需求
(1)学生注册:
姓名,性别,民族,出生年月,出生地,身体状况,
政治面貌,所在班级,所在院系,电话,QQ。
(2)学生:
学生可以查询本人基本信息情况,查询本人所学课程成绩情况,修改本人的基本情况以及对本人登录密码进行编辑等权利。
(3)教师注册:
姓名,性别,民族,出生年月,出生地,身体状况,
政治面貌,所授班级,办公室,电话。
(4)教师:
教师具有查询教师本人的基本信息,所教课程成绩,所教课程的基本信息,成绩的发布与录入以及本人信息的修改,登录密码的编辑等权限
(5)管理员:
具有新增学生,修改学生,查询学生,删除学生的功能,管理员登录可以查看登录人员的账户信息,对学生信息进行管理,对教师信息进行管理,对课程进行各种管理。
5功能模型
5.1总用例图
5.2各子系统用例图
出库单管理用例图:
5.3用例说明
表1-1新增学生表用例描述表
用例名称
新增学生表
用例描述
增加一个学生表
参与者
管理员
前置条件
管理员进入系统
后置条件
如果这个用例成功,在系统中增加一个学生表
基本操作流程
1.管理员录入学生信息
2.检查学生信息必填项是否符合要求
3.将学生表保存到学生管理里面
可选操作流程
1.学生信息填写不完全,不予保存
2.学生数据有重叠需要进行修改,用例终止,不能增加新的学生表
3.选择保存学生表,保存完成。
4.选择打印学生表,打印当前录入的数据。
5.选择新增学生表,添加新学生信息。
6.选择返回,跳转到学生信息管理页面
表1-2删除学生表用例描述表
用例名称
删除学生表
用例描述
删除一个学生表
参与者
管理员
前置条件
管理员进入系统
后置条件
如果这个用例成功,在系统中减少一个学生表
基本操作流程
1.管理员查看要删除学生信息
2.单击删除
3.从学生表中找出选中的记录,并删除
4.提示删除成功
5.返回到学生信息管理页面
可选操作流程
直接点击删除,系统提示要选择数据
6.对象模型
6.1实体类
学生院系,学生班级,学生宿舍,教师信息类
6.2控制类
修改信息,增加信息,删除信息,查询信息
6.3边界类
信息管理页面,新增页面,修改页面,删除页面,查询页面
6.4类图
7其他需求
3软件设计
1概述
1.1系统简述
对学生的信息进行网络化存储,方便教师及学校领导查看和对纸张的节约。
1.2软件设计目标
实现学生网络化查询自己的成绩和选课内容以及教师对学生成绩的输入和修改管理员对学生的增加和删除。
1.3参考资料
[1]}姚巍,VisualBasic从入门到精通[M],北京,人民邮电出版社,2006:
1~50.
[2]张光妲,VisualBasic程序设计方法[M],北京,清华出版社,2010:
192~226.
[3]王春才,高春艳,李俊民等,VisualBasic完全手册[M],北京,人民邮电出版社,2006:
13~48.
[4]莫举德,夏涛,VisualBasic程序设计[M],北京,北京邮电大学出版社,2008:
148~174.
[5]卢湘鸿,Access数据库与程序设计[M],北京,电子工业出版社,2006:
23~110.
[6]何博,Access完全剖析[M],北京,中国电力出版社,2006:
36~93.
[7]梁灿,赵艳泽,Access数据库应用基础教程[M],北京,清华大学出版社,2005:
54~92.
2术语表
简单的系统设计术语
3体系结构设计
客户层:
用户通过客户层系统与系统交互。
该层可以是各种类型的客户端。
表示层:
用户通过表示层访问应用程序,表示层有用户界面和控制器。
业务层:
负责确认和执行业务规则和事物,并管理业务对象。
集成层:
负责建立和维护与数据源的连接。
资源层:
即数据库,可以分布在多个服务器上
4界面设计
5数据库设计
在数据库和表创建成功后,需要添加字段名。
在“admin”表中添加‘idx’,‘name’,‘sex’,‘bir’,‘class’,‘qq’,‘email’,‘tel’,‘address’,‘join_time’.‘lik,info’等字段名,其中设置‘idx’为关键字段。
在“stu_info”表中添加‘idx’,‘name’,‘pwd’,‘age’,‘sex’,‘adress’等字段名,其中设置‘idx’为关键字段名
6算法设计
(每章插入分节
4软件实现
1编码规范
(1)<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
登录页面
functionchecksubmit(){
with(document.logform){
varuid=userid.value;
varpwd=upass.value;
if(uid==null||uid==""){
alert("请填写登录账号");
return;
}elseif(pwd==null||pwd==""){
alert("请填写登录密码");
return;
}else
document.logform.submit();
}
}
请登录
18px">用户账号
160px"/> |
18px">密 码
160px"/> |
18px'onClick="checksubmit()"/>
18px'/>
|
(2)<%@pageimport="java.sql.ResultSet"%>
<%@pageimport="javax.naming.spi.DirStateFactory.Result"%>
<%@pageimport="java.beans.Statement"%>
<%@pageimport="java.sql.Connection"%>
<%@pageimport="java.sql.PreparedStatement"%>
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
添加成绩<%request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PreparedStatementps=null;
Connectionconn=null;
Statementst=null;
Stringtid=session.getAttribute("uid").toString().trim();
Stringtpass=session.getAttribute("upass").toString().trim();
Stringsid=null,cid=null;
int
usualResults=0,examResults=0,experimentalResults=0,totalScore=0;
if(request.getParameter("addSid")!
=null)
sid=newString(request.getParameter("addsid")).trim();
if(request.getParameter("addCid")!
=null)
cid=newString(request.getParameter("addCid")).trim();
if(request.getParameter("addUsualResults")!
=null)
usualResults=Integer.parseInt(newString(request.getParameter("addUsualResults")).trim());
if(request.getParameter("addExamResults")!
=null)
examResults=Integer.parseInt(newString(request.getParameter("addExamResults")).trim());
if(request.getParameter("addExperimentalResults")!
=null)
examrimentalResults=Integer.parseInt(newString(request.getParameter("addExperimentalResults")).trim());
if(request.getParameter("addTotalScore")!
=null)totalScore=Integer.parseInt(newString(request.getParameter("addTotalScore")).trim());
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:
sqlserver:
//localhost:
1433;DatabaseName=ssms","sa","123456");
Stringsql="select*fromscorewheresid='"+sid+"'andcid='"+cid+"'andtid='"+tid+"'";
st=conn.createStatement();
ResultSetrs=st.executeQuery();
if(rs.next()==true)out.print("");
else{sql="insertintoscore(sid,cid,usualResults,examResults,experimentalResults,totalScore,tid)values(?
?
?
?
?
?
?
)";
ps=conn.prepareStatement(sql);
ps.setString(1,sid);
ps.setString(2,cid);
ps.setInt(3,usualResults);
ps.setInt(4,examResults);
ps.setInt(5,experimentalResults);
ps.setInt(6,totalScore);
ps.setString(7,tid);
introw=ps.executeUpdate();
if(row>0)out.print("");
elseout.print("");
}
}
catch(SQLExceptione){
out.print("");
}
finally{if(ps!
=null)
ps.close();
if(conn!
=null)
conn.close();}
%>
2.环境搭建
在编写一个JavaBean驱动后,使用jdbc:
mysql:
//localhost:
3306/jspdev来编写URL,使其将jsp页面与数据库相连,使用户等够成功登录系统,并在登录之后可以在系统中进行对数据的添加,删除,修改,查询等各项操作。
3.主要功能实现
(1)
<%@pageimport="java.sql.Statement"%>
<%@pageimport="java.util.concurrent.locks.StampedLock"%>
<%@pageimport="java.sql.Connection"%>
<%@pageimport="java.sql.DriverManager"%>
<%@pageimport=".ConnectException"%>
<%@pageimport="java.sql.ResultSet"%>
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
登录验证<%
Stringuserid=request.getParameter("userid").trim();
Stringupass=request.getParameter("upass").trim();
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connectionconn=DriverManager.getConnection("jdbc:
sqlserver:
//localhost:
1433;DatabaseName=ssms","sa","123456");
Statementstmt=conn.createStatement();
Stringsql="select*fromteacherwheretid='"+userid+"'andtPassword="+upass;
ResultSetrs=stmt.executeQuery(sql);
if(rs.next()==true){
session.setAttribute("uid",userid);
session.setAttribute("upass",upass);
out.print("");
}else{
out.print("");
}
rs.