教学管理系统
- 格式:doc
- 大小:104.00 KB
- 文档页数:3
一、系统要求:
(1)教师、学生由所在系部管理。
教师分别在各个教研室。
学生按专业分班。
(2)一个教师可以同时开出多门课程;多个教师可以同时开出同一门课程。
(3)学生可以自由选修当前开出的课程,如果成绩不及格可以再次选修该课程,只有考试及格的课程才计学分。
(4)系统要能够统计学生情况、修课学分等。
(5)课程的选修限制假定由人工判断。
二、实体导出
系(系编号,系名称)
教研室(教研室编号,所属系编号,教研室名称)
专业(专业编号,专业名称,修业年限)
班级(班级编号,所属系编号,专业编号)
教师(教师编号,所属教研室编号,姓名,出生日期,性别,学历,职称,籍贯)学生(学生编号,班级编号,姓名,出生日期,性别,籍贯)
课程(课程编号,课程名称,学分)
三、实体间的联系
授课(课程编号,任课教师编号,开课学期)
选课(课程编号,任课教师编号,选修学生编号,成绩)
成绩单(学生编号,课程编号,成绩,补考状态)
//0代表没有补考过,1代表补考一次,2代表两次,依次类推
四、系统E-R图
五、数据标准优化
学历(学历编号,学历名称)
职称(职称编号,职称名称)
籍贯(籍贯编码,籍贯名称)
六、系统数据整体结构设计
系(系编号,系名称)
教研室(教研室编号,所属系编号,教研室名称)
专业(专业编号,专业名称,修业年限)
班级(班级编号,所属系编号,专业编号)
教师(教师编号,所属教研室编号,姓名,出生日期,性别,学历编号,职称编号,籍
贯编号)学生(学生编号,班级编号,姓名,出生日期,性别,籍贯编号)
课程(课程编号,课程名称,学分,周学时)
授课(课程编号,任课教师编号,开课学期)
选课(课程编号,任课教师编号,选修学生编号,成绩)
成绩单(学生编号,课程编号,成绩,补考状态)
学历(学历编号,学历名称)
职称(职称编号,职称名称)
籍贯(籍贯编号,籍贯名称)
七、数据库的数据完整性
1、主键设计
……
2、外键设计
……
3、其他各类约束设计
……
八、表中数据的处理
……
九、数据查询
……
十、索引
……
十一、视图、
……
十二、T—SQL语句编程
……
十三、存储过程
1、统计某教师开出的课程门数,不同教师讲授课程的平均选课人数,选修人数最多和最少的课程以及老师。
……
2、统计各类职称的老师数,全体教师平均年龄,男女教师比例
……
3、统计任何一学生修课学分数及平均成绩,最高成绩,最低成绩,不及格次数
……
4、统计某一学生选修的全部课程
……
5、把某一时期之前的授课及选修课程信息备份到其他表中。
……
十四、触发器应用
1、对于“性别”字段,设计一个触发器,在实际插入记录之前检查性别项,如果输入的内容不是“男”“女”“NULL”,之一,则自动设输入值为“女”。
参考实现:
create trigger xb_sex on 学生
instead of insert
as
if exists (select * from insterted
where insterted.sex=null or (insterted.sex not in(’男’,’女’)) )
insert into 学生
select A.学生编号,A.班级编号,…,’女’,…
from insterted A
else
insert into 学生
select *
from insterted
go
2、在学生“选课”表插入记录时应检查指定学生是否已经选修了该课程(如果选修过该课程则在“成绩单”表中会有相应的记录),如果没有选修过,则在“选课”表插入记录的同时也该在“成绩单”表添加相应的记录。
参考实现:
create trigger xb_sex on选课
after insert
as
begin
declare @kcbh char(3),@xsbh char(8)
select @kcbh=课程编号from inserted //提取课程编号
select @xsbh=选修学生编号from inserted //提取选修学生编号
if not exists (select * from 成绩单
where 学生编号=@xsbh and 课程编号=@kcbh)
insert into 成绩单values(@xsbh,@kcbh,null,0)
end
3、在上面一题的基础上考虑以下问题:在“成绩单”表中,如果学生原来的成绩为不及格,要求在修改成绩的同时,“补考状态”字段的值应该在原来值的基础上自动加1。
……。