打包源工程文件可在公众号“MengZeATY”回复“MySql学生成绩管理系统”获取。
第一章 概述
1.1 项目背景
在信息化愈发普遍的今天,各种系统相应而生,此系统着力于对学生各种信息的管理和对学生成绩的统计等,内容力图具有普遍性,但个人能力和想法有限,无法真正贴合社会实际要求,有不足之处望见谅。
1.2 编写目的
为方便学生系统的使用,本系统的设计初衷为嵌入到高级语言中开发一款winMFC应用程序,但时间有限,本报告仅涉及数据库方面,各种功能也由SQL语言代替。
1.3 开发环境
- 开发语言:MySQL
- 系统工具:Microsoft SQL Server 2013
- 运行环境:WindowsXp
- 数据库:StuInfo数据库
第二章 需求分析
2.1 信息要求
- 数据库系统保存学生基本信息
- 能够查询数据库内学生的各种信息,包括中英文及数字信息
- 能够查询课程的基本信息
- 能够修改各表内的各种信息,统计成绩
- 能够对数据库进行备份
2.2 处理要求
- 在SQL Server中,建立并初始化各表,
- 数据库备份
- 查询程序显示
- 查询程序说明文档
第三章 概念结构设计
3.1 数据库概念结构设计
3.1.1 系统ER图
3.1.2 数据表
3.1.3 数据库设计和操作
在表StuGrade中计算三科成绩平均值并插入到表中Ave列里1
2
3
4insert
into StuGrade(Ave)
select AVG(GradeA,GradeB,GradeSelect)
from StuGrade;
在多个表中查询学生的详细信息1
2
3
4
5select SInfo.StuNum,SInfo.StuName,StuSex,StuAge,StuClass,StuPhone,StuQQ,StuIntre,StuReward,Ave,AveLevel
from SInfo,SExInfo,StuGrade
where SInfo.StuNum=SExInfo.StuNum and
SInfo.StuNum=StuGrade.StuNum and
SExInfo.StuNum=StuGrade.StuNum;
更新学生姓名1
2
3update SInfo,SExInfo
set StuName="学生甲"
where StuNum="1508040101";
按平均成绩排序1
2
3select StuNum,StuName,Ave,AveLevel
from StuGrade**
order by Ave DESC;
删除学生一的所有信息1
2
3delete
from StuGrade
where StuNum=”1508040106”;
插入新的学生信息1
2
3insert
into StuGrade
values(‘1508040106’,’学生甲’,’10’,’20’,’30’);
修改平均成绩和等级1
2
3
4
5insert
into StuGrade(Ave)
select AVG(GradeA,GradeB,GradeSelect)
from StuGrade
where StuNum=”1508040101”;
第四章 逻辑结构设计
4.1 数据库关系模式
本系统ER图可转化为以下五个关系模式:
- 学生信息表(学号,姓名,性别,年龄,班级)
- 学生附加信息表(学号,姓名,手机号,QQ号,兴趣,获奖记录)
- 学生选课表(学号,选课A,选课B,选修课)
- 课程成绩表(课程号,学号,成绩)
- 学生成绩表(学号,成绩A,成绩B,选修课成绩,平均成绩,平均分等级)
4.2 数据库及表结构的创建及数据的插入
表SInfo1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18insert
into SInfo
values('1508040101','学生一','男',19,'集成');
insert
into SInfo
values('1508040102','学生二','男',20,'集成');
insert
into SInfo
values('1508040103','学生三','女',18,'集成');
insert
into SInfo
values('1508040104','学生四','男',20,'集成');
insert
into SInfo
values('1508040105','学生五','男',21,'集成');
insert
into SInfo
values('1508040106','学生六','女',21,'集成');
表SExInfo1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19insert
into SExInfo
values('1508040101','学生一','1787911','1357561','钢琴','省级钢琴大赛亚军');
insert
into SExInfo
values('1508040102','学生二','1787912','1357562','软件设计','ACM设计大赛亚军');
insert
into SExInfo
values('1508040103','学生三','1787913','1357563','影视后期','国家地理摄影大赛季军');
insert
into SExInfo
values('1508040104','学生四','1787914','1357564','声乐','高校好声音亚军');
insert
into SExInfo
values('1508040105','学生五','1787915','1357565','网页设计','市级前端设计三等奖');
insert
into SExInfo
values('1508040106','学生六','1787916','1357566','嵌入式','智能机器人大赛冠军');
表SCS1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18insert
into SCS
values('1508040101','A3','B2','S1');
insert
into SCS
values('1508040102','A1','B1','S1');
insert
into SCS
values('1508040103','A2','B1','S2');
insert
into SCS
values('1508040104','A1','B3','S1');
insert
into SCS
values('1508040105','A3','B2','S2');
insert
into SCS
values('1508040106','A2','B1','S1');
表StuGrade1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18insert
into StuGrade
values('1508040101','85','67','75','76','良好');
insert
into StuGrade
values('1508040102','32','45','61','46','不及格');
insert
into StuGrade
values('1508040103','88','89','92','90','优秀');
insert
into StuGrade
values('1508040104','64','70','65','66','及格');
insert
into StuGrade
values('1508040105','88','78','90','85','良好');
insert
into StuGrade
values('1508040106','78','76','80','78','良好');
4.3 数据库表关系图
第五章 总结
5.1 体会
一个完整并且可以面向用户的数据库系统绝非仅仅使用SQL语句编写这么简单,其中包括着用户,系统安全,各种模式间的级联调用以及在其他高级语言中的嵌入式编程。这次课程设计既可以归纳曾经所学的知识点,还可以将所学知识更完美的结合在一起,锻炼自己编写大型项目的能力,不断扩充自己的知识储存,理清设计时的通用的思路和解决问题的方法,积累经验。
5.2 不足及展望
本系统仅用数据库操作语言进行操作,并不涉及其他高级语言,因此在功能上有欠缺,在数据库系统安全上所作的工作也不是很到位,数据库内数据量也比较少,数据特征不太分散,各关系之间也没有太完备的联系。