学生成绩管理系统大数据库项目设计报告材料.docx

上传人:b****8 文档编号:9601138 上传时间:2023-02-05 格式:DOCX 页数:19 大小:267.67KB
下载 相关 举报
学生成绩管理系统大数据库项目设计报告材料.docx_第1页
第1页 / 共19页
学生成绩管理系统大数据库项目设计报告材料.docx_第2页
第2页 / 共19页
学生成绩管理系统大数据库项目设计报告材料.docx_第3页
第3页 / 共19页
学生成绩管理系统大数据库项目设计报告材料.docx_第4页
第4页 / 共19页
学生成绩管理系统大数据库项目设计报告材料.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统大数据库项目设计报告材料.docx

《学生成绩管理系统大数据库项目设计报告材料.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统大数据库项目设计报告材料.docx(19页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统大数据库项目设计报告材料.docx

学生成绩管理系统大数据库项目设计报告材料

计算机1403

学生成绩管理系统项目设计报告

作者:

……………

2015/11/23

 

 

 

1项目背景及需求分析

1.1项目背景

高校是教学和科研的重要基地,同时还是培养人才的重要场所。

随着计算机技术的发展和互联网时代的到来,学校的教学管理受到了极大的挑战。

Internet技术持续迅猛的发展为传统的教学管理提出了新的模式。

以现在计算机技术、网络技术为基础的数字化教学管理要依靠自身的人才优势,加强对信息资源的开发和利用,做好学校信息化的基础教学工作,是学校朝着信息化、网络化、现代化的目标迈进。

这种新的管理模式,对于管理极为宝贵的特性,可以为新型管理模式的建构提供理想的基础。

系统由授课教师来完成成绩录入,而学生可以自行查询成绩。

这样除了减轻教学管理部门人员的工作负担,还可以减少信息错误的发生,同时为其他部门甚至全校教职工提供信息服务。

开发的学生成绩管理系统则是以校园网为基础的管理系统,利用网络能快速、及时、准确的传递信息的作用,使部门的“信息孤岛”过渡到紧密相关并在全校范围内都可用的数据。

通过网络可以使管理部门能够更方便的管理学生的成绩系统;也使得教师能够方便的上传、校队学生成绩;还可以使学生能够快速查询成绩。

这样管理部门对信息的管理和控制方式变成双向的,不但减少管理方面的工作量,而且可以做到信息管理规范化,从而得到科学的统计和快速的查询。

1.2需求分析

针对河北工程大学的成绩管理工作量大、繁杂,人工处理非常困难。

学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。

学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。

2概念结构设计

2.1抽象出系统实体

课程(课程编号、课程教师编号、课程名称);

成绩(学号、课程编号、分数);

学生(班级、姓名、学号、性别、专业);

教师(教师号、姓名、所属专业、性别)。

2.2局部E-R图

2.3全局E-R图

 

3逻辑结构设计

E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。

设计学生成绩管理数据库,包括课程(course)、学生(student)、成绩(sc)、教师(teacher)四个关系,其关系模式中对每个实体定义的属性如下:

course表:

(课程号(cno),教师号(tno),课程名(cname))

此为联系“course表”所对应的关系模式。

课程号和教师号为该关系的候选码,满足第三范式。

student表:

((学号(sno),班级(sclass),姓名(sname),性别(ssex),专业(smajor))

此为联系“student表”所对应的关系模式。

学号为该关系的候选码,满足第三范式。

sc表:

(学号(sno),课程号(cno),成绩(degree))

此为联系“sc表”所对应的关系模式。

学号和课程号为该关系的候选,满足第三范式。

teacher表:

(教师姓名(tname)、性别(tsex)、教师号(tno)、专业(tmajor))

此为联系“teacher表”所对应的关系模式。

教师号为该关系的候选码,满足第三范式。

数据库中包含4个表,即课程信息(course),学生信息(student),成绩信息(sc),教师信息(teacher)。

 

course表的表结构

列名

数据类型

长度

小数位数

是否允许NULL值

说明

cno

char

5

主码

cname

varchar

20

tno

char

3

student表的表结构

列名

数据类型

长度

小数位数

是否允许NULL值

说明

sno

char

9

主码

sname

char

8

ssex

char

2

取值:

男或女

smajor

char

20

sclass

char

10

sc表的表结构

列名

数据类型

长度

小数位数

是否允许NULL值

说明

sno

char

10

组合主码,外码

degree

decimal

4

1

取值1-100

cno

char

5

组合主码,外码

teacher表的表结构

列名

数据类型

长度

小数位数

是否允许NULL值

说明

tno

char

3

主码

tname

varchar

8

tsex

char

2

取值:

男或女

tdept

char

16

4创建数据库及相关操作

4.1创建数据库

CREATEdatabasetest;/*创建test数据库*/

4.1.1创建表

CREATETABLEcourse(//创建课程信息表

cnochar(5)NOTNULL,

cnamevarchar(20)NOTNULL,

tnochar(3)NOTNULL,

CONSTRAINTC1PRIMARYKEY(cno)

);

CREATETABLEstudent(//创建学生信息表

snochar(9)PRIMARYKEY,

snamechar(8),

ssexchar

(2),

smajorchar(20),

sclasschar(10)

);

CREATETABLEsc(//创建成绩表

snochar(10)NOTNULL,

degreedecimal(4,1),

cnochar(5)NOTNULL,

CONSTRAINTA1PRIMARYKEY(sno,cno),

CONSTRAINTA2CHECK(degree>=0anddegree<=100)

);

CREATETABLEteacher(//创建教师表

tnochar(3)NOTNULL,

tnamevarchar(8),

tsexchar

(2),

tdeptchar(16),

CONSTRAINTC1PRIMARYKEY(tno)

);

4.1.2添加记录

course表添加示例:

INSERTINTOcourse

VALUES(’C01’,’科学导论’,’101’);

为了简化,其余用Navicat添加

student表添加示例:

INSERTINTOstudent

VALUES(’140210316’,’叶何斌’,’男’,’计算机科学与技术’,’计算机1403’);

为了简化,其余用Navicat添加。

sc表添加示例:

INSERTINTOsc

VALUES(’140210316’,’87’,’C01’);

为了简化,其余用Navicat添加

teacher表添加示例:

INSERTINTOteacher

VALUES(’140210316’,’叶何斌’,’男’,’计算机科学与技术’,’计算机1403’);

为了简化,其余用Navicat添加

4.2建立视图

4.2.1

定义视图v_student,查询所有选修科学导论的课程的学生的学号(sno),姓名(sname),成绩(degree)。

代码:

CREATEVIEWv_student

AS

SELECTA.sno,sname,degree

FROMstudentA,courseB,scC

WHEREA.sno=C.snoANDB.cno=C.cnoANDcname='科学导论';

查询定义视图v_student

代码:

SELECT*FROMv_student;

结果:

4.2.2

利用视图向表sc中插入一条数据。

view_sc是创建的视图

代码:

CREATEVIEWview_sc//创建

AS

SELECTsno,degree,cno

FROMsc;

INSERTINTOview_sc//执行

VALUES('140210321','88','C01');

SELECTsno,degree,cno//查看结果

FROMsc;

结果:

在sc表中已经正确插入。

DELETEFROMview_scWHEREsno=’140210321’;//删除

结果:

已经正确删除。

4.2.3

修改视图view_sc的代码为:

ALTERVIEWview_scASSELECTsno,degree,cno;

删除视图view_sc的代码为:

DROPVIEWview_sc;

4.3建立存储过程

4.3.1

创建一个存储过程,从student表中检索出所有班级为“计算机1403”的学生的学号,姓名。

代码:

DELIMITER///*将MYSQL的结束符设置为//*/

CREATEPROCEDUREproc_stud()

READSSQLDATA

BEGIN

SELECTsno,sname,smajorFROMstudent

WHEREsclassLIKE'%计算机1403%'ORDERBYsno;

END//

DELIMITER;/*将结束符恢复成分号*/

执行存储过程:

CALLproc_stud;

结果:

4.3.2

创建一个num_sc的存储过程,统计一个同学的课程成绩个数。

代码:

DELIMITER///*将MYSQL的结束符设置为//*/

CREATEPROCEDUREnum_sc(INtmp_snochar(9),OUTcount_numINT)

READSSQLDATA

BEGIN

SELECTCOUNT(*)INTOcount_numFROMsc

WHEREsno=tmp_sno;

END//

DELIMITER;/*将结束符恢复成分号*/

4.4建立触发器

在数据库的student表中,定义一个触发器,当一个学生被删除时,把该学生的学号和姓名添加到delstudent表中。

代码:

CREATETABLEdelstudentSELECTsno,snameFROMstudentWHERE1=0;//创建一个空表用于接受删除后的数据

CREATETRIGGERtrig_student//创建student表的触发器

AFTERDELETEONstudentFOREACHR0W

INSERTINTOdelstudent(sno,sname)values(old.sno,old.sname);

DELETEFROMstudentWHEREsname='李甜甜';//删除一个学生,验证触发器是否触发。

select*fromdelstudent;//查看接受删除数据表

结果:

触发器已经触发。

4.5查询问题及查询结果

4.5.1

查询所有学生的学号、姓名、性别和专业

代码:

selectsno,sname,ssex,smajor

fromstudent;

结果:

4.5.2

计算“C01”课程的平均成绩。

代码:

SELECTAVG(degree)FROMsc

WHEREcno='C01';

结果:

 

4.5.3

查询选修课程名为“高等数学”的学生学号和姓名。

代码:

SELECTA.sno,sname

FROMstudentAINNERJOINscBONA.sno=B.sno

INNERJOINcourseCONB.cno=C.cno

WHEREC.cname='高等数学';

结果:

4.5.4

查询“C03”课程不及格的学生信息

代码:

SELECTA.sno,sname,ssex,smajor,sclass

FROMstudentAINNERJOINscBONA.sno=B.sno

INNERJOINcourseCONB.cno=C.cno

WHEREC.cno='C03'ANDB.degree<60;

结果:

4.5.5

查询不讲授“C01”课程的教师姓名。

代码:

SELECTtname

FROMteacher

WHEREtno=ANY(SELECTtnoFROMcourseWHEREcno!

='C01');

结果:

4.5.6

插入学号为“140210322”、姓名为“曾淑亮”、性别为“男”的学生信息。

代码:

INSERTINTOstudent(sno,sname,ssex)

VALUES('140210322','曾淑亮','男');

结果:

5项目设计总结

 这次学生成绩管理系统设计,我们主要采用的是命令行,然后Navicat图形界面辅助操作的方式完成设计。

通过这次程序设计,加深了对课程设计的理解。

在这次课程设计中,我们回顾了很多以前的东西,也发现了很多的问题,以前都没遇见过的,收获很大。

在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的。

看着自己做的系统,我们自己就会又欣慰又难过,欣慰的是终于把它做出来了,虽然遇到很多困难,难过的是自己知道还有很多的不足,但是由于知识的有限,无法去完善,才知道“书到用时方恨少”。

此次成绩管理系统的设计让我们对Mysql数据库的了解更加深入,在整个是设计过程中,通过对把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力,对网络资源的利用能力和与其他同学的交流沟通能力。

而且经历这次课程设计,我们也学会了自学和分工合作。

我们觉得每一次的课程设计,都是让我们对原有知识从了解表面到深入本质,从个体学习到整体把握的跳跃,更是让我们把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。

总之,通过这次课程设计,我们获益匪浅。

也感受到了和同学合作开发的乐趣,同时验证了一句话“团结就是力量”。

最后感谢老师的悉心教导,为我们的程序开发之路打下了扎实的基础。

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

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1