学生选课系统用例图,以及部分代码实现

1 篇文章 0 订阅

上学期软件导论做的文档,学生选课系统,在文档的基础上,再代码实现以下

背景——用例图:一个基础的学生选课系统


ER图设计如下:(学生和课程是n - m的关系,可修改的原图找不到了,悉知)


库表设计:

---专业表

CREATE TABLE major(

major_id INT PRIMARY KEY AUTO_INCREMENT,

major_name VARCHAR(20)

);

 

---学生表

CREATE TABLE student(

student_id INT PRIMARY KEY AUTO_INCREMENT,

student_name VARCHAR(20),

grade VARCHAR(10),

pwd VARCHAR(20),

major_id INT,

CONSTRAINT FOREIGN KEY(major_id) REFERENCES major(major_id) ON DELETE CASCADE

);

 

---教师表

CREATE TABLE teacher(

teacher_id INT PRIMARY KEY AUTO_INCREMENT,

teacher_name VARCHAR(20),

major_id INT,

grade VARCHAR(10),

pwd VARCHAR(20),

CONSTRAINT FOREIGN KEY(major_id) REFERENCES major(major_id) ON DELETE CASCADE

);

 

---课程表

CREATE TABLE course(

course_id INT PRIMARY KEY AUTO_INCREMENT,

course_name VARCHAR(20),

grade VARCHAR(10),

start int,

end int,

deadline DATE,

teacher_id INT,

stu_number int,

CONSTRAINT FOREIGN KEY (teacher_id) REFERENCES teacher(teacher_id) ON DELETE CASCADE

);

 

---选课表

CREATE TABLE choose(

student_id INT,

course_id INT,

score INT,

CONSTRAINT FOREIGN KEY (student_id) REFERENCES student(student_id) ON DELETE CASCADE,

CONSTRAINT FOREIGN KEY (course_id) REFERENCES course(course_id) ON DELETE CASCADE

);


触发器设计:

/*

   ----当学生选择课程时,自动给该课程的人数加1

   名称: incre_trigger_SC

*/

create trigger incre_trigger_SC on choose for insert

as

declare @num int;

declare @teacher_id char(12);

declare @courseno char(4);

set @courseno  = (select course_id from inserted);

set @num = 0;

set @num =(select stu_number from course where course_id = @courseno)+1;

update course set stu_number=@num where course_id = @courseno ;


/*

   ----当学生退选课程时,自动给该课程的人数减1

   名称: decre_trigger_SC

*/

create trigger decre_trigger_SC on choose for delete

as

declare @num int;

declare @teacherno char(12);

declare @courseno char(4);

set @teacherno =  (select teacher_id from inserted);

set @courseno  = (select course_id from inserted);

set @num = 0;

set @num =(select stu_number from course where course_id = @courseno)-1;

update course set stu_number=@num where course_id = @courseno;

  • 6
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
用例名称:查看选课 用例描述:查看学生自己的选课信息 前置条件:学生登录进入系统 后置条件:显示选课信息 基本操作流程: 1. 学生点击学生选课情况 2. 通过条件筛选选课信息(如什么学年什么学期) 3. 显示相对应的课程 可选操作流程:学生没有选课,筛选的信息为空。 用例名称:修改选课 用例描述:修改学生自己的选课信息 前置条件:学生登录进入系统 后置条件:选课信息发生改变 基本操作流程: 1. 学生点击学生选课情况 2. 对现有的选课进行删除或新添加选课 3. 保存修改 可选操作流程: 1. 退出时提示是否保存更改; 2. 学生没有选课时提示没有对应记录; 3. 选课科目满员、学生已选此科目时提示课程不可选; 4. 选课时间已过时提示不可修改 用例名称:个人信息修改 用例描述:修改登录用户的个人信息 前置条件:用户登录进入系统 后置条件:个人信息发生改变 基本操作流程: 1. 用户点击个人信息栏目 2. 对个人信息进行相应修改 3. 保存修改 可选操作流程:退出时提示是否保存更改 用例名称:查看课程信息 用例描述:查看教师本人的授课信息 前置条件:教师登录进入系统 后置条件:显示授课信息 基本操作流程: 1. 教师点击教师授课情况 2. 通过条件筛选授课信息(如什么学年什么学期) 3. 显示相对应的课程 可选操作流程:课程未分配,提示没有相应课程 用例名称:提交学生成绩 用例描述:提交学生相应的科目成绩 前置条件:教师登录进入系统 后置条件:数据库录入学生成绩 基本操作流程: 1. 教师点击学生成绩管理栏目 2. 选定需录入成绩的科目 3. 输入学生姓名和成绩 4. 提交成绩 可选操作流程: 1. 退出时提示是否提交成绩 2. 输入的成绩为0-100之外的数据时提示输入的数据有误 用例名称:学生管理 用例描述:对学生信息进行添加,修改,删除和查询操作 前置条件:管理员登录进入系统 后置条件:学生信息发生改变 基本操作流程: 1. 管理员点击学生管理栏目 2. 通过系统检索相关的学生信息 3. 对学生信息进行修改 4. 保存修改 可选操作流程: 1. 检索结果为空时,提示没有相关的学生信息 2. 退出时提示是否保存修改过的信息 用例名称:教师管理 用例描述:对教师信息进行添加,修改,删除和查询操作 前置条件:管理员登录进入系统 后置条件:教师信息发生改变 基本操作流程: 1. 管理员点击教师管理栏目 2. 通过系统检索相关的教师信息 3. 对教师信息进行修改 4. 保存修改 可选操作流程: 1. 检索结果为空时,提示没有相关的教师信息 2. 退出时提示是否保存修改过的信息 用例名称:课程管理 用例描述:对学校课程进行添加,修改,删除和查询操作 前置条件:管理员登录进入系统 后置条件:系统课程信息发生改变 基本操作流程: 1. 教师点击课程管理栏目 2. 点击添加选项添加课程 3. 填写所分配的任课教师,上课时间和地点 4. 提交保存 可选操作流程: 1. 退出时提示是否提交添加的信息 2. 当添加的课程中的任课教师,上课时间和地点有所冲突时,提示管理员添加失败及原因

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值