学生学籍管理信息系统Word格式.docx

上传人:b****1 文档编号:309171 上传时间:2023-04-28 格式:DOCX 页数:44 大小:530.08KB
下载 相关 举报
学生学籍管理信息系统Word格式.docx_第1页
第1页 / 共44页
学生学籍管理信息系统Word格式.docx_第2页
第2页 / 共44页
学生学籍管理信息系统Word格式.docx_第3页
第3页 / 共44页
学生学籍管理信息系统Word格式.docx_第4页
第4页 / 共44页
学生学籍管理信息系统Word格式.docx_第5页
第5页 / 共44页
学生学籍管理信息系统Word格式.docx_第6页
第6页 / 共44页
学生学籍管理信息系统Word格式.docx_第7页
第7页 / 共44页
学生学籍管理信息系统Word格式.docx_第8页
第8页 / 共44页
学生学籍管理信息系统Word格式.docx_第9页
第9页 / 共44页
学生学籍管理信息系统Word格式.docx_第10页
第10页 / 共44页
学生学籍管理信息系统Word格式.docx_第11页
第11页 / 共44页
学生学籍管理信息系统Word格式.docx_第12页
第12页 / 共44页
学生学籍管理信息系统Word格式.docx_第13页
第13页 / 共44页
学生学籍管理信息系统Word格式.docx_第14页
第14页 / 共44页
学生学籍管理信息系统Word格式.docx_第15页
第15页 / 共44页
学生学籍管理信息系统Word格式.docx_第16页
第16页 / 共44页
学生学籍管理信息系统Word格式.docx_第17页
第17页 / 共44页
学生学籍管理信息系统Word格式.docx_第18页
第18页 / 共44页
学生学籍管理信息系统Word格式.docx_第19页
第19页 / 共44页
学生学籍管理信息系统Word格式.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生学籍管理信息系统Word格式.docx

《学生学籍管理信息系统Word格式.docx》由会员分享,可在线阅读,更多相关《学生学籍管理信息系统Word格式.docx(44页珍藏版)》请在冰点文库上搜索。

学生学籍管理信息系统Word格式.docx

其中:

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]

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2