软件工程学生选课系统概要设计Word格式文档下载.docx
《软件工程学生选课系统概要设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件工程学生选课系统概要设计Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。
![软件工程学生选课系统概要设计Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/e9e83120-fc5e-4587-b141-73334cd6e3c1/e9e83120-fc5e-4587-b141-73334cd6e3c11.gif)
学生用户必须登录进系统。
然后他们可以进行选课操作并可以查看选课信息,个人信息以及成绩信息。
教师用户可以对学生进行成绩录入,查看学生信息等操作。
没有登陆的用户不能进入系统。
3.选课模块
学生用户在选课期间对课程进行查看,开始进行选课操作(查看、修改、删除)等。
图4总体结构图
2.概念结构
2.1总E-R图
2.2实体图
管理员
系部
班级
学生
教师:
课程
3.逻辑结构设计
1)管理员(用户名,密码)
主键为用户名
2)系部(系部代码,系部名称,系主任)
主键为系部代码
3)班级(班级代码,班级名称,备注,系部代码)
主键为班级代码
4)课程(课程号,课程名称,学分,开始周,结束周,备注,系部代码)
主键为课程号,外键为系部代码
5)学生(学号,姓名,性别,出生日期,入学时间,密码,班级代码)
主键为学号,外键为班级代码
6)教师(教师编号,姓名,性别,出生日期,学历,职务,密码,备注,系部代码)
主键为教师编号,外键为系部代码
7)教师任课(教师编号,课程号,教师姓名,课程名称,系部名称,学生数,开始周,结束周)
主键为教师编号,课程号,外键为教师编号,课程号
8)学生选课(学号,课程号,教师编号,学生姓名,课程名称,教师姓名,开课系部,
开始周,结束周,成绩)
主键为学号,课程号,教师编号,外键为学号,教师编号,课程号
4.物理设计
4.1表设计
--
(1)“管理员”表
Usestudent
GO
createtable管理员
(
用户名varchar(12)constraintpk_glyPRIMARYKEYNOTNULL,
密码varchar(12)NULL,
)
--
(2)"
系部“表
Usestudent
createtable系部
系部代码char
(2)CONSTRAINTpk_xbdmPRIMARYKEYNOTNULL,
系部名称varchar(30)notnullconstraintuk_xbmcuniquenonclustered,
系主任varchar(8)notnull
--(4)"
班级"
表
createtable班级
班级代码char(9)constraintpk_bjdmPRIMARYKEYNOTNULL,
班级名称varchar(20),
系部代码char
(2)constraintfk_bjxbdmreferences系部(系部代码),
备注varchar(50)
--(5)“学生表”
createtable学生
学号char(12)CONSTRAINTpk_xhPRIMARYKEYNOTNULL,
姓名varchar(8),
性别char
(2),
出生日期datetime,
入学时间datetime,
班级代码char(9)constraintfk_xsbjdmreferences班级(班级代码)
--(6)"
教师"
createtable教师
教师编号char(12)constraintpk_jsbhprimarykey,
姓名varchar(8)notnull,
学历varchar(10),
职务char(10),
职称char(10),
系部代码char
(2)constraintfk_jsxbdmreferences系部(系部代码),
专业char(20),
--(7)"
课程"
createtable课程
课程号char(4)constraintpk_kchprimarykey,
课程名称varchar(20)notnull,
Go
--(8)"
教师任课"
createtable教师任课
教师编号char(12)constraintfk_jsrkbhreferences教师(教师编号),
课程号char(4)constraintfk_jsrkkchreferences课程(课程号),
教师姓名varchar(8),
课程名称varchar(20),
系部名称varchar(30),
学生数smallint,
开始周tinyint,
结束周tinyint,
primarykey(教师编号,课程号)
--(9)"
课程注册"
createtable学生选课
学号char(12)references学生(学号),
课程号char(4)references课程(课程号),
教师编号char(12)references教师(教师编号),
学生姓名varchar(8),
开课系部varchar(30),
成绩tinyint,
primarykey(学号,教师编号,课程号)
4.2存储过程设计
/*
*功能--查看一门课程也没有选修的学生的学号和姓名。
*参数--无
存储过程名:
st_noxk
*/
Createprocedurest_noxk
As
Select学号,姓名from学生
Where学号notin(select学号from学生选课)
-----------------------------------------------------
2:
/*功能-----输入任意一个成绩,查询大于等于该成绩的学号、姓名、课程名、成绩
参数---成绩
st_chengjichaxun
*/
Createprocedurest_chengjichaxun@chengjitinyint
Select学号,姓名,课程名,成绩from学生选课
Where成绩>
=@chengji
Orderby学号
3:
/*功能-----输入任意一个存在的课程名称,统计改门课程的平均成绩、最高成绩和最低成绩
参数---课程名称(输入参数)平均成绩、最高成绩和最低成绩(输出参数)
st_dkcjfx
Createprocedurest_dkcjfx@kechengmingvarchar(20),
@avgchengjitinyintOUTPUT,@maxchengjitinyintOUTPUT,@minchengjitinyintOUTPUT
As
Select@avgchengji=AVG(成绩),@maxchengji=MAX(成绩),@minchengji=MIN(成绩)
From学生选课where课程名称=@kechengming
过程名
功能
入口参数
查询没有选课的学生
无
查询大于某一成绩的学生
成绩
查询某一课程的平均、最高、最低分
课程名称
4.3触发器设计
1:
/*功能-----当插入一个学生信息时,自动给该学生赋一个与学号相同的密码
名称:
passwd_trigger_student
createtriggerpasswd_trigger_studenton学生forinsert
as
declare@passwordchar(13);
set@password=NULL;
set@password=(select密码frominserted);
if@passwordisNULL
update学生set密码=学号;
2./*
功能-----当插入一个教师信息时,自动给该教师赋一个与教师编号相同的密码
名称:
passwd_trigger_jiaoshi
createtriggerpasswd_trigger_jiaoshion教师forinsert
update教师set密码=教师编号;
3./*
功能-----当学生选择课程时,自动给该课程的人数加1
numadd_trigger_xuanke
createtriggernumadd_trigger_xuankeon学生选课forinsert
declare@numint;
declare@teachernochar(12);
declare@coursenochar(4);
set@teacherno=(select教师编号frominserted);
set@courseno=(select课程号frominserted);
set@num=0;
set@num=(select学生数from教师任课where教师编号=@teachernoand课程号=@courseno)+1;
update教师任课set学生数=@numwhere教师编号=@teachernoand课程号=@courseno;
4./*
功能-----当学生退选课程时,自动给该课程的人数减1
numjianshao_trigger_xuanke
createtriggernumjianshao_trigger_xuankeon学生选课fordelete
set@num=(select学生数from教师任课where教师编号=@teachernoand课程号=@courseno)-1;
update教师任课set学生数=@numwhere教师编号=@teachernoand课程号=@courseno;
触发器名
类型
作用表
passwd_trigger_student
当插入一个学生信息时,自动给该学生赋一个与学号相同的密码
Insert
学生表
passwd_trigger_jiaoshi
当插入一个教师信息时,自动给该教师赋一个与教师编号相同的密码
insert
教师表
numadd_trigger_xuanke
当学生选择课程时,自动给该课程的人数加1
学生选课表
numjianshao_trigger_xuanke
当学生退选课程时,自动给该课程的人数减1
delete