学生成绩管理系统总结.docx
《学生成绩管理系统总结.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统总结.docx(26页珍藏版)》请在冰点文库上搜索。
学生成绩管理系统总结
学生成绩管理系统
系(部)电子与信息工程系
班级2013级计算机科学与技术1班
组员
指导教师
2016年1月9日
学生成绩管理系统
摘要:
随着科学技术的快速发展、高校内部学生的增多以及学生学习科目的繁杂,以往的学生管理方式已经无法满足各个高校的需求,所以构建一个高效、方便的学生管理系统已经迫在眉睫。
开发本系统可以减轻教职工的工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,从而提高了保密性,加快查询速度,提高了管理效率。
本文采用java,使用SQLServer2012数据库实现了学生成绩管理系统。
该系统共分为三个模块:
管理员模块、教师模块和学生模块。
每个模块可以进行相应的操作。
关键字:
java;sqlserver2012;学生成绩管理系统
1.学生成绩管理系统概述
学生成绩管理系统主要为高校解决教务、教学的管理,该系统中管理员主要包括查询、修改、删除、添加信息等功能;教师包括查询、修改和添加功能;学生包括查询和修改功能。
2.需求分析
2.1可行性分析
由于本系统管理的对象单一,均为在校学生与教师,并且每个数据内容具有较强的关联性,涉及到的计算过程不是很复杂,所以比较适合于采用sqlserver数据库作为数据存储工具,再利用java作为系统开发语言,实现学生成绩管理系统的主要功能。
这样即能实现需求,又能够节约成本。
2.2功能模块需求分析
根据分析与调查得出本系统共包含3个模块:
管理员模块、教师模块、学生模块,其具体功能描述如下:
(一)学生模块功能主要包括:
登录、修改密码、查询个人信息、查询个人成绩等。
(二)教师模块功能主要包括:
登录、修改密码、查询个人信息、查询自己教授学生的成绩、添加自己所教授学生成绩等。
(三)管理员模块功能主要包括:
登录、修改密码、查询、修改、删除、添加教师信息、学生信息以及学生成绩等。
2.3系统开发环境
(1)操作系统:
Windows7
(2)数据库软件:
SQLServer2012
(3)Java开发工具:
eclipse
2.4数据描述
2.4.1学生成绩管理系统数据流程图
图2.1学生成绩管理系统顶层数据流图
图2.2学生成绩管理系统第1层数据流图
图2.3学生成绩管理系统第2层数据流图
图2.4学生成绩管理系统第3层数据流图
图2.5学生成绩管理系统第4层数据流图
2.4.2数据字典
1)加工描述
(1)加工编号:
2
名称
信息查询
描述
身份合法的用户做信息查询操作
输入数据流
有效的查询请求
输出数据流
学生基本信息、学生成绩、教师基本信息
加工逻辑
接受有效的查询请求后,用户进行相应的查询操作
(2)加工编号:
3
名称
信息管理
描述
身份合法的用户做信息管理操作
输入数据流
有效的管理请求
输出数据流
添加、修改、删除信息等操作
加工逻辑
接受有效的管理请求后,用户进行相应的管理操作
2)数据流描述
(1)数据流名称:
添加信息
名称
添加信息
描述
将数据添加到信息表、成绩表中
定义
学生基本信息+教师基本信息+学生成绩
(2)数据流名称:
删除信息
名称
删除信息
描述
将信息表成绩表中的数据进行删除
定义
学生基本信息+教师基本信息+学生成绩
(2)数据流名称:
修改信息
名称
修改信息
描述
修改信息表、成绩表中的数据
定义
学生基本信息+教师基本信息+学生成绩表
3)文件描述
(1)文件名称:
学生信息表
名称
学生信息表
别名
描述
存放所有学生的基本信息
数据文件组成
学生+姓名+年龄+性别+籍贯+专业
(2)文件名称:
学生成绩表
名称
学生成绩表
别名
描述
存放所有学生的单科成绩以及总分、平均分
数据文件组成
单科所得成绩+总分+成绩
(3)文件名称:
教师信息表
名称
教师信息表
别名
描述
存放所有教师的基本信息
数据文件组成
教师编号+姓名+性别+年龄+任课情况+学历
4)主要元素描述
a)学生主要元素描述
(1)元素名称:
xuehao
名称
xuehao
别名
学生学号
描述
在学校中学生身份的唯一标志
定义
10位有规律的数字字符
类型
字符串型
来源
学生
去向
学生基本信息表
(2)元素名称:
jiguan
名称
Jiguan
别名
籍贯
描述
学生家庭住址信息
定义
最多30个汉字
类型
字符串型
来源
学生
去向
学生基本信息表
(3)元素名称:
zhuanye
名称
zhuanye
别名
专业
描述
学生学习课程类别
定义
最多30个汉字
类型
字符串型
来源
学生
去向
学生基本信息表
(4)元素名称:
sum
名称
sum
别名
总成绩
描述
学生所有成绩的总和
定义
大于等于0的数字
类型
float
来源
学生
去向
学生成绩表
(5)元素名称:
avg
名称
avg
别名
平均分
描述
学生成绩平均分
定义
大于等于0的数字
类型
float型
来源
学生
去向
学生成绩表
b)教师主要元素描述
(1)元素名称:
教师编号
名称
教师编号
别名
描述
在学校中教师身份的唯一标识
定义
10位有规律的数字字符
类型
字符串型
来源
教师
去向
教师基本信息表
(2)元素名称:
renke
名称
renke
别名
任课
描述
教师在学校中所教授的课程
定义
最多20个汉字
类型
字符串型
来源
教师
去向
教师基本消息表
(3)元素名称:
xueli
名称
xueli
别名
学历
描述
教师的文化程度
定义
最多10个汉字
类型
字符串型
来源
教师
去向
教师基本信息表
c)课程主要元素描述
(1)元素名称:
coursenum
名称
coursenum
别名
课程编号
描述
学生学习课程的唯一标识
定义
8位有规律的数字
类型
字符串型
来源
学生
去向
学生课程信息表
(2)元素名称:
xueshi
名称
xueshi
别名
学时
描述
课程的学习时长
定义
大于0的正整数
类型
整型
来源
学生
去向
学生课程信息表
(2)元素名称:
xuefen
名称
xuefen
别名
学分
描述
通过课程考核所得学分
定义
大于0的正整数
类型
整型
来源
学生
去向
学生课程信息表
2.4.3学生成绩管理系统E-R图
图2.6学生成绩管理系统E-R图
3.概要设计
3.1软件体系结构
系统共分为三个模块:
学生模块,教师模块以及管理员模块。
图3.1系统功能模块图
3.2系统总体模块框架图
图3.2系统总体模块框架图
3.3子功能描述
子系统编号
子系统名称
功能简述
S1
管理员子系统
(1)管理员查询学生、教师信息
(2)管理员添加、删除、修改教师信息
(3)管理员添加、删除、修改学生信息
(4)管理员添加、删除、修改学生成绩
S2
教师子系统
(1)教师查询个人信息
(2)教师查询自己学生的个人信息
(3)教师查询自己学生的单科成绩及其总分等
S3
学生子系统
(1)学生查询个人信息
(2)学生查询自己的个人成绩信息
3.4系统的软件结构
学生成绩管理系统输入控制为登录验证,通过不同用户输入的登录信息,系统将进行验证;变换控制为查询和管理操作,不同的用户验证通过后将可以进行相应的查询与管理操作;输出控制为查询结果和更新文件,用户进行查询操作后系统将给出相应的查询结果,进行管理操作后,系统将更新文件,从而保存管理结果。
图3.3学生成绩管理系统软件结构图
4.系统数据结构设计
4.1逻辑结构设计
学生成绩管理系统中的主要数据库表及所含字段如下所示:
表4.1AdminKey
列名
数据类型
zhanghao
nchar(10)
sakey
nchar(10)
表4.2TeaPassword
列名
数据类型
bianhao
nchar(10)
teapassword
nhar(10)
表4.3Stupassword
列名
数据类型
xuehao
nchar(10)
password
nchar(10)
表4.4TeaMessage
列名
数据类型
bianhao
nchar(10)
xingming
nvarchar(10)
xingbie
nchar(10)
age
int
xueli
nchar(10)
renke
nchar(10)
表4.5Student
列名
数据类型
xuehao
nchar(10)
name
nchar(10)
age
int
xingbie
nchar
(1)
jiguan
nvarchar(20)
zhuanye
nvarchar(50)
表4.6StuScore
列名
数据类型
xuehao
nchar(10)
name
nvachar(10)
english
Float
Math
float
chinese
Float
java
float
computer
float
oracle
float
表4.7StuCourse
列名
数据类型
cousenum
nchar(10)
coursename
nchar(10)
xueshi
int
xuefen
int
4.2物理结构设计
学生成绩管理系统采用SQLServer2012作为其数据库管理系统,数据库命名为StuDatabase,数据库中含有7张表,其中英文对照表如下所示:
序号
中文表名
英文表名
序号
中文表名
英文表名
1
管理员密码表
AdminKey
5
学生信息表
Student
2
教师密码表
TeaPassword
6
学生成绩表
StuScore
3
学生密码表
Stupassword
7
课程信息表
StuCourse
4
教师信息表
TeaMessage
5.详细设计
5.2系统总体功能说明
图5.1学生成绩管理系统流程图
5.1学生成绩管理系统模块功能详细说明
(一)学生模块详细说明
(1)学生登录:
学生学号及初始密码由管理员统一提供,根据管理员提供的学号以及密码,可以登录系统进行相应操作。
(2)修改密码:
学生通过学号和密码登录系统后,可以修改自己的登录密码(注:
学生学号由管理员统一编制,不可修改)。
(3)查询个人信息:
学生可以通过登录系统,查询自己的个人信息。
(4)查询个人成绩:
学生登录系统后,可以查询自己的各科成绩,总成绩,平均分,班级排名等。
学生模块详细流程图如下所示:
图5.2学生模块流程图
(二)教师模块详细说明
(1)教师登录:
教师编号及初始密码由管理员统一提供,根据管理员提供的编号以及密码,可以登录系统进行相应操作。
(2)修改密码:
教师通过编号和密码登录系统后,可以修改自己的登录密码(注:
教师编号由管理员统一编制,不可修改)。
(3)查询个人信息:
教师可以登录系统,查询自己的个人信息。
(4)查询自己所教授学生的成绩:
教师可以进入系统查看自己所教授学生的成绩等信息。
(5)添加自己教授学生成绩:
教师可以将自己所教授学生的成绩录入系统。
教师模块详细流程图如下所示:
图5.3教师模块流程图
(三)管理员用户功能主要包括:
登录、修改密码、查询、修改、删除、添加教师信息、学生信息以及学生成绩等。
(三)管理员模块详细说明
(1)登录:
管理员可以通过管理员账号和密码登录系统,对教师和学生信息进行管理。
(2)修改密码:
管理员可以对自己的登录密码进行修改。
(3)查询:
管理员登录系统后,可以对数据库中的信息进行查询。
(4)修改:
管理员登录系统后,可以对数据库中的信息进行修改。
(5)删除:
管理员登录系统后,可以对数据库中的信息进行删除。
(6)添加:
管理员登录系统后,可以对数据库中的信息进行添加。
管理员模块详细流程图如下所示:
图5.4管理员模块流程图
6.性能需求
6.1易用性:
对于系统的使用,提示信息足够详细,用户在访问系统时,很少的输入便可以对系统的功能进行操作。
6.2安全性:
(1)该系统为每位用户设置了独有的账号,初始密码为888888;用户在进入系统时,必须输入账号和密码才能够访问系统,同时系统为用户提供了修改密码的功能,以保证用户信息的绝对安全。
(2)对于系统信息访问权限有明确的设置。
例如:
学生成绩只有管理员和教师可以进行修改,学生不能对自己的成绩进行修改。
6.3数据精确性
要求保证能及时正确保存相关信息,能够查询到所要查询的相关信息并保证其正确率;
6.4时间特性
要求一般操作的响应时间应在3秒内完成。
6.5适应性
要求系统能够支持多种操作系统的运行环境,并且保证系统的运行不会对其他应用软件造成影响。
7.运行需求
7.1接口
该系统运行基于windows平台下的xp,win7等多种操作系统;并使用SqlServer2012作为数据存储工具。
7.2故障处理
在用户的输入有误的情况下,对用户输入的错误信息能给出适当的改正提示信息,若运行时遇到不可恢复的系统错误,也必须要能够保证数据库完好无损。
8.对系统总结评价
该学生成绩管理系统,运用软件工程面向结构的程序化设计思想,首先进行需求分析,确定数据流图和数据字典。
将系统划分为几个部分,并根据数据流向展开分析、概要设计和详细设计,概要设计确定了接口,设计数据库,并制定了概要设计说明书。
详细设计确定系统模块,并用流程图将程序结构化,并在编码阶段进行编码。
学生成绩管理系统能够实现学生的基本信息,教师的基本信息以及学生的成绩查询,统计等功能,但是由于软件工程知识和编码程序设计的水平不足,导致软件存在诸多不合理的地方,因此在未来希望能够更加完善这个系统,并且做到可维护性。
参考资料:
[1]张月平.JAVA基础教程(第二版)[M].北京:
科学出版社.2007年5月
[2]雍俊海.JAVA程序设计[M].北京:
科学出版社.2004年8月
[3]孙风栋.数据库基础教程[M].电子工业出版社.2011
[4]余玖玖.软件工程简明教程[M].北京:
清华大学出版社.2013年6月
[5]冯凤娟.数据库原理及oracle应用[M].北京:
北京交通大学出版社.2006
附录:
编码设计(部分)
(1)学生查询个人信息模块
publicstaticvoidStuCahxun(){//学生查询个人信息模块
Connectionct=null;//连接数据库
Statementsm=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:
odbc:
sqlserver","sa","zh940126");
sm=ct.createStatement();
System.out.println("学号"+"\t\t姓名"+"\t年龄"+"\t性别"+"\t籍贯"+"\t\t专业");
ResultSetrs=sm.executeQuery("select*fromStudentwherexuehao='"+name+"'");
while(rs.next()){
Stringxuehao=rs.getString
(1);//括号中的1表示第一个字段,字段类型必须与定义类型相同
Stringname=rs.getString
(2);
intage=rs.getInt(3);
Stringxingbie=rs.getString(4);
Stringjiguan=rs.getString(5);
Stringzhuanye=rs.getString(6);
System.out.println(xuehao+"\t"+name+"\t"+age+"\t"+xingbie+"\t"+jiguan+"\t"+zhuanye);
}
}catch(Exceptione){
}finally{
try{
if(sm!
=null){
sm.close();
}
if(ct!
=null){
ct.close();
}
}catch(Exceptione){
}
}
}
(2)管理员登录模块
publicstaticvoidAdminPass(Stringadmi,Stringadminpassword){//管理员登录模块
Connectionct=null;//连接数据库
Statementsm=null;
Stringpw=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:
odbc:
sqlserver","sa","zh940126");
sm=ct.createStatement();
ResultSetrs=sm.executeQuery("select*fromAdminKeywherezhanghao='"+admi+"'");
while(rs.next()){
pw=rs.getString
(2);
}
if(adminpassword.equals(pw)){
System.out.println("登陆成功!
");
Administrator.admini();
}
else{
Scannerin=newScanner(System.in);
System.out.println("***********************************************");
System.out.println("**警告!
!
账号或密码输入错误,请重新输入账号和密码**");
System.out.println("***********************************************");
System.out.println("请输入管理员账号。
");
Stringname1=in.next();
System.out.println("请输入管理员密码。
");
Stringpassword1=in.next();
Administrator.AdminPass(name1,password1);
}
}catch(Exceptione){}
finally{
try{
if(sm!
=null){
sm.close();
}
if(ct!
=null){
ct.close();
}
}catch(Exceptione){}
}
}