O_MySql学生成绩管理系统


打包源工程文件可在公众号“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图

数据库ER图1数据库ER图2

3.1.2 数据表

imgimgimgimgimg

3.1.3 数据库设计和操作

在表StuGrade中计算三科成绩平均值并插入到表中Ave列里

1
2
3
4
insert
into StuGrade(Ave)
select AVG(GradeA,GradeB,GradeSelect)
from StuGrade;

在多个表中查询学生的详细信息

1
2
3
4
5
select 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;

img

更新学生姓名

1
2
3
update SInfo,SExInfo
set StuName="学生甲"
where StuNum="1508040101";

按平均成绩排序

1
2
3
select StuNum,StuName,Ave,AveLevel
from StuGrade**
order by Ave DESC;

删除学生一的所有信息

1
2
3
delete
from StuGrade
where StuNum=”1508040106”;

插入新的学生信息

1
2
3
insert
into StuGrade
values(‘1508040106’,’学生甲’,’10’,’20’,’30’);

修改平均成绩和等级

1
2
3
4
5
insert
into StuGrade(Ave)
select AVG(GradeA,GradeB,GradeSelect)
from StuGrade
where StuNum=”1508040101”;

第四章 逻辑结构设计

4.1 数据库关系模式

本系统ER图可转化为以下五个关系模式:

  • 学生信息表(学号,姓名,性别,年龄,班级)
  • 学生附加信息表(学号,姓名,手机号,QQ号,兴趣,获奖记录)
  • 学生选课表(学号,选课A,选课B,选修课)
  • 课程成绩表(课程号,学号,成绩)
  • 学生成绩表(学号,成绩A,成绩B,选修课成绩,平均成绩,平均分等级)

4.2 数据库及表结构的创建及数据的插入

表SInfo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
insert
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,'集成');

img

表SExInfo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
insert
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','嵌入式','智能机器人大赛冠军');

img

表SCS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
insert
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');

img

表StuGrade

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
insert
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','良好');

img

4.3 数据库表关系图

img

第五章 总结

5.1 体会

​  一个完整并且可以面向用户的数据库系统绝非仅仅使用SQL语句编写这么简单,其中包括着用户,系统安全,各种模式间的级联调用以及在其他高级语言中的嵌入式编程。这次课程设计既可以归纳曾经所学的知识点,还可以将所学知识更完美的结合在一起,锻炼自己编写大型项目的能力,不断扩充自己的知识储存,理清设计时的通用的思路和解决问题的方法,积累经验。

5.2 不足及展望

  本系统仅用数据库操作语言进行操作,并不涉及其他高级语言,因此在功能上有欠缺,在数据库系统安全上所作的工作也不是很到位,数据库内数据量也比较少,数据特征不太分散,各关系之间也没有太完备的联系。