学生学籍管理信息系统Word格式.docx
- 文档编号:309171
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:44
- 大小:530.08KB
学生学籍管理信息系统Word格式.docx
《学生学籍管理信息系统Word格式.docx》由会员分享,可在线阅读,更多相关《学生学籍管理信息系统Word格式.docx(44页珍藏版)》请在冰点文库上搜索。
其中:
1)(90-100、80-90、70-80、60-70、0-59)的人数及各自占实际考试人数的百分比数。
2)统计缺考人数。
3)统计及格、不及格人数。
(8)统计每个学生的综合测评总成绩:
1)总成绩=平均分*0.7+德体分*0.3
2)综合测评的排名。
3)根据总成绩评定奖学金等级(特等、一等、二等、三等)。
4)按学年根据学生学习情况确定升、留级人选(补考三门(以上)不及格或毕业补考一门(以上)不及格)。
(9)学生成绩查询(分别按学号、姓名、班级、课程、开设学期),显示信息自定。
(10)更改信息时,相关表的相应记录也应随之更改。
(如:
留级、补考等)
(11)触发器的应用:
如:
假设已存在“学生”、“成绩”、“课程”三个表,其中“学生”表包括学号,姓名等字段,“成绩”表包括学号,课程代码,成绩等字段,“课程”表包括课程代码,课程名称等字段。
当向“学生”表中添加一条新的学生信息后,在“成绩”表中添加该学生所学课程信息,并确保课程代码字段的取值是“课程”表中的已有数据。
(12)子查询的应用:
查找“计应041”班高于“计应042”班总评成绩最高分的学生记录。
(13)创建如下视图并显示对应的数据:
1)V_学生成绩:
包括学生姓名、课程名称、成绩
2)V_班级人数:
包括班级名称、系别、专业名称、班级人数
1.2分析过程
1.2.1本系统的数据流图
(1)学生学籍管理信息系统数据流图
(2)学生档案管理数据流图
(3)学生学籍管理数据流图
(4)学生成绩管理数据流图
(5)系统管理数据流图
1.2.2数据字典
(1)数据字典的用途
进行详细的数据收集和数据分析所获得的主要结果
(2)数据字典的内容
▪数据结构
▪数据项
▪数据流
▪数据存储
▪处理过程
(3)表关系说明
1)学生表
字段名
数据类型
含义说明
约束情况
sno
Char(10)
学号
主关键字
sname
姓名
可为空
ssex
Char
(2)
性别
sage
int
年龄
smz
民族
sjg
籍贯
szzmm
政治面貌
sdepart
系部
smajor
专业
sgrade
年级
sclass
班级
srxcj
smallint
入校成绩
ssfby
是否毕业
sbyrq
datetime
毕业日期
2)课程表
cno
课程号
cname
char(10)
课程名
cyear
开设学年
cterm
开设学期
3)成绩表
score
成绩
4)奖惩表
rtype
类型
rdate
data
日期
5)班级表
bh
编号
yx
Char(20)
院系
mc
名称
rs
人数
6)教师表
tno
教工号
tname
tsex
tprofess
职称
ttel
电话
2、数据库设计
2.1数据库概念设计
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
目标:
为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。
2.1.1表的建立
(1)学生表
(2)课程表
(3)成绩表
(4)奖惩表
(5)班级表
(6)教师表
2.1.2表的信息
2.1.3E-R图
(1)学生实体包含学号,姓名,性别,年龄,民族,籍贯,专业,年级,班级,政治面貌,入校成绩以及是否毕业等属性。
(2)课程实体包含课程号,课程名,开设学年以及开设学期四个属性。
(3)成绩实体有学号,课程号和成绩3个属性。
(4)奖惩实体包括学号,类型以及日期三个属性。
(4)班级实体包括编号,院系以及名称三个属性。
(5)教师实体包括教工号,姓名,性别,职称,电话等属性。
(6)学生实体与课程实体是一个多对多(m:
n)的选修关系,学生,课程和和成绩3个实体也是一个多对多(m:
n:
p)的考试关系。
2.2数据库的逻辑设计
2.2.1关系模型
将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:
一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体型间的联系则有以下不同的情况:
(1)一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的侯选码。
如果与某一端实体对应的关系模式合并,则需要在关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的个各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
(3)一个m:
n联系转换为一个关系模式。
与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(5)具有相同码的关系模式可合并。
将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:
1)学生(学号,姓名,性别,年龄,民族,籍贯,系部,专业,年级,班级,政治面貌,入校成绩,是否毕业,毕业日期)。
2)课程(课程号,课程名,开设学年,开设学期)。
3)成绩(学号,课程号,成绩)。
4)奖惩(学号,类型,日期)。
5)班级(编号,院系,名称)。
6)教师(教工号,姓名,性别,职称,电话)。
2.2.2创建视图
(1)V_学生成绩:
包括学生学号,姓名、课程名称、成绩
Createviewv_scoure
As
Selectsno,sname,cname,score
Fromstudent,coure,score
Wherestudent.sno=score.sno
(2)V_班级人数:
Createviewv_class
Selectcclass,sdepart,smajor,rs
2.2.3创建索引
(1)创建学生表的索引
学生表:
先点击右键,然后选择修改。
在弹出的界面中选择索引页面,索引名为index,类型为主索引,表达式为学号。
(2)创建课程表的索引
课程表:
在弹出的界面中选择索引页面,索引名为index1,类型为主索引,表达式为课程号。
(3)创建成绩表的索引
成绩表:
在弹出的界面中选择索引页面,索引名为index2,通索引,表达式为课程号;
索引名为xh,类型为主索引,表达式为学号。
(4)创建奖惩表的索引
奖惩表:
在弹出的界面中选择索引页面,索引名为index3,类型为主索引,表达式为学号。
(5)创建班级表的索引
(6)创建教师表的索引
2.2.4数据表之间的逻辑关系
3、系统实现
3.1数据库访问
(1)数据访问类及实现代码
1)触发器
触发器是用户定义在关系表上的一类由事件驱动的特殊过程。
一旦定义,任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制。
由于本系统的触发器比较多,在这里我只写出了其中的一部分触发器,具体如下所示。
数据更新:
CREATETRIGGERstudentupdateONdbo.studentFORUPDATE
AS
UPDATESTUDENT
SETSNO=(SELECTSNOFROMINSERTED)
WHERESNO=(SELECTSNOFROMDELETED);
CREATETRIGGERcourseupdateONdbo.course/
FORUPDATE
UPDATECOURSE
SETSNO=(SELECTCNOFROMINSERTED)
WHERESNO=(SELECTCNOFROMDELETED);
CREATETRIGGERscoreupdateONdbo.student
UPDATESCORE
CREATETRIGGERstudent1ONdbo.major
SETMNO=(SELECTMNOFROMINSERTED)
WHEREMNO=(SELECTMNOFROMDELETED);
CREATETRIGGERstudent2updateONdbo.depart
UPDATESTUDENT
SETDMPNO=(SELECTDMPNOFROMINSERTED)
WHEREDMPNO=(SELECTDMPNOFROMDELETED);
数据删除:
CREATETRIGGERteach1updateONdbo.teacher
FORDELETE
UPDATETEACH
SETTNO=NULL
WHERETNO=(SELECTTNOFROMDELETED);
CREATETRIGGERstu_majorupdateONdbo.major
SETMNO=NULL
CREATETRIGGERteacherupdateONdbo.depart
UPDATETEACHER
SETDMPNO=NULL
WHEREDMPNO=(SELECTDMPNOFROMDELETED)
2)java访问数据库及代码
packageDBCONN;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassConmysql{
//这是mysql的连接字符串
privatestaticStringurl="
jdbc:
mysql:
//127.0.0.1:
3306/finaltest?
useUnicode=true&
characterEncoding=UTF-8"
;
staticConnectionconn=null;
//定义一个空连接,后面用
staticStatementstmt=null;
//定义一个空查询语句,后面用
staticResultSetrs=null;
//定义一个空的返回结果集,后面用
staticObjectresult;
publicstaticObjectexqutesql(Stringsql){
try{
//注册mssql驱动
Class.forName("
com.mysql.jdbc.Driver"
);
//连接数据库
conn=DriverManager.getConnection(url,"
root"
"
//准备查询语句
stmt=conn.createStatement();
Stringbeginsql="
"
beginsql=sql.trim().substring(0,1);
//booleanexecute=stmt.execute(sql);
//判断sql的类型,是insert/select/delete/update
//注意:
只有select才能是executeQuery,其他三种都是executeUpdate
if(beginsql.equalsIgnoreCase("
i"
)){
result=stmt.executeUpdate(sql);
//
//System.out.println(result);
//
}
s"
result=stmt.executeQuery(sql);
//保存查询结果到result,下同
d"
u"
System.out.println(result);
//System.out.println(tag);
}catch(ClassNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SQLExceptione){
}finally{
最后的时候要关闭所有连接,首先是stmt,然后是conn
//try{
//stmt.close();
//conn.close();
//}catch(SQLExceptione){
////TODOAuto-generatedcatchblock
//e.printStackTrace();
//}
returnresult;
(2)SQL语句
USE[xsxjgl]
GO
/******对象:
Table[dbo].[student]脚本日期:
05/07/201411:
07:
39******/
SETANSI_NULLSON
SETQUOTED_IDENTIFIERON
SETANSI_PADDINGON
CREATETABLE[dbo].[student](
[sno][char](10)NOTNULL,
[sname][char](10)NULL,
[ssex][char]
(2)NULL,
[sage][int]NULL,
[smz][char](10)NULL,
[sjg][char](10)NULL,
[sdepart][char](30)NULL,
[smajor][char](30)NULL,
[sgrade][int]NULL,
[sclass][smallint]NULL,
[szzmm][char](10)NULL,
[srxcj][smallint]NULL,
[ssfby][char](10)NULL,
[sbyrq][datetime]NULL,
CONSTRAINT[PK_student]PRIMARYKEYCLUSTERED
(
[sno]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
SETANSI_PADDINGOFF
Table[dbo].[rewardpunish]脚本日期:
CREATETABLE[dbo].[rewardpunish](
[sno][int]NOTNULL,
[rtype][char](10)NULL,
[rdate][datetime]NULL
Table[dbo].[class]脚本日期:
CREATETABLE[dbo].[class](
[bh][int]NOTNULL,
[yx][char](20)NULL,
[mc][char](20)NULL,
[rs][int]NULL,
CONSTRAINT[PK_class]PRIMARYKEYCLUSTERED
[bh]ASC
Table[dbo].[teacher]脚本日期:
CREATETABLE[dbo].[teacher](
[tno][int]NOTNULL,
[tname][char](10)NULL,
[tsex][char]
(2)NULL,
[tprofess][char](10)NULL,
[ttel][char](10)NULL,
CONSTRAINT[PK_teacher]PRIMARYKEYCLUSTERED
[tno]ASC
Table[dbo].[score]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 管理信息系统