数据库原理及应用课程设计报告课程设计题目:学生选课管理系统学生姓名专业学号班级指导教师学生姓名:班级:学号:课程设计题目:学生选课管理系统目录一、需求分析 (3)二、参与者用例图: (3)三、概念模型与E-R图 (7)四、数据库的设计与建立 (9)1、建立数据库 (11)1)建立表格 (11)2 使用T-SQL脚本建立教师信息数据表(teacher) (11)3 使用T-SQL脚本建立课程信息数据表(course) (11)4 使用T-SQL脚本建立学生-课程记录数据表(studentcourse) (11)5 使用T-SQL脚本建立教师-课程记录数据表(teachercourse) (12)6、使用T-SQL脚本建立用户信息数据表(Manger) (12)五、数据库的基本操作 (12)1)查询 (12)1、查询数据库课程的课程号和学分 (12)2)数据插入 (13)3)修改 (13)4)删除 (14)5)建立视图 (14)六、个人总结 (14)七、参考资料 (15)一、需求分析学生包含学号等属性,通过登记系统保存学生成绩的信息。
学生通过分组程序分出选修课的学生名单。
课程包含课程号,名称等属性。
分组信息分出选修课教师,教师包含名称,教师编号属性。
用户通过SQL SERVER的查询分析器直接输入各种操作代码,其中包括对系统管理员的创建,管理员可以创建其他管理员权限,当然,系统管理员可以对所有表进行修改,删除,增加。
具体需求分析如下:系统功能需求:1.开设课程管理——管理员对所开设的课程进行管理,允许对所开设的课程进行增加,修改,删除等。
2.查询——可以按课程名,教师名,学号等多种方式查询课程信息。
对于学生的选课信息,学生只能查询本人的。
3.学生选课管理——学生根据所查询的课程信息,选择自己所要选修的课程。
对于已经选择了,但不希望选修的课程,可以进行退选。
每个学生最多选修8个学分。
4.用户信息管理——能够使用系统的每个学生、教师和管理员每人都有一个ID,管理员可以对用户进行增加,删除,修改等操作。
5.学生成绩管理(1)成绩录入——管理员录入学生的成绩信息(2)成绩查询——学生可以查看自己所选各科课程成绩。
教师可以查询自己所教课程的成绩,并打印报表。
二、参与者用例图:分析参与者:学生、教师、管理员都是学校里的人员,有一些相同的属性,如ID,姓名,部门等,可以将三者的共性提取出来,形成一个抽象的参与者——用户。
系统可以识别三个参与者:学生,教师和管理员。
学生:查询课表、选课、查询考试成绩教师:查询课表、查询课程成绩管理员:管理所开设的课程、管理用户、录入成绩、执行各种查询功能1)数据项:以“学号”为例数据项名称:学号数据项含义:唯一标示每一个学生别名:学生编号数据类型:字符型长度:8取值含义:前2位为入学年份,后3位为顺序编号与其他数据项的逻辑关系学生选课的数据流程图:2)数据结构:以“学生”为例数据结构名:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系3)数据流:以“选课信息”为例数据流名:选课信息说明:学生所选课程信息数据流来源:“学生选课”处理数据流去向:“学生选课”存储组成:学号,课程号4)数据存储:以“学生选课”为例数据存储名:学生选课说明:记录学生所选课程的成绩编号:(无)流入的数据流:选课信息,成绩信息流出的数据流:选课信息,成绩信息组成:学号,课程号,成绩存取方式:随机存取5)处理过程:以“学生选课”为例处理过程名:学生选课说明:学生从可选修的课程中选出课程输入数据流:学生,课程输出数据流:学生选课根据系统需求中的描述,又可以将系统分为两个顶层用例:选课管理和成绩管理选课管理和成绩管理顶层用例图选课管理用例可以分解为:1.课程信息查询:提供按学生查询,按任课教师查询,按课程名查询等多种查询方式。
2.选课:学生对自己所选的课程进行管理,包括增加所选课程,删除所选课程等。
3.课程信息管理:管理员对学校所开设的课程进行管理,包括增加课程,删除课程,修改课程信息等。
4.用户管理:为简化处理,假设系统从学生管理系统中获取学生信息,从学校人事管理系统中获取教师信息。
选课管理用例图:成绩管理用例可以分解为以下用例:1.学生成绩查询-学生查询自己所选课程的成绩。
2.课程成绩查询-教师查询自己所教课程的学生成绩。
3.成绩管理-管理员录入或修改学生成绩。
选修课管理系统功能模块设计:通过对系统的数据流图进行分析,进一步进行功能分解,直到分解成含义明确,功能单一的功能模块,从而得到系统的功能模块结构图:三、概念模型与E-R图概念模型介绍:学生选修课管理系统的流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中。
有权限的人可以对这些数据库信息进行修改和删除。
所有用户均可以进行信息查询和统计。
数据流分析:学生选课管理系统的数据流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。
有权限的人可以对这些库信息进行修改和删除处理。
所有用户均可以进行信息查询和统计,结果可以报表打印。
选修课选课系统主要分为两大模块:管理员模块和一般用户模块,管理员可以是教师也可以是学生,不过管理员必须承担一定的责任。
管理员模块又分为对用户的管理和对选课的管理,对用户的管理模块应有的功能是对新用户的添加,对无用用户的删除;选课管理模块应有的功能包括新开设选修课信息的添加,对原有课程信息的修改,对学校不再开设的课程进行删除,一轮选课结束以后对各科选课人数归零。
一般用户模块既学生应用模块是该系统最基本的功能模块,因为此模块应完成访客登录的身份验证,学生选修公共选修课记录的添加,对公共选修课信息的查询,对教师信息的查询,学生对自己已经选修哪些课进行查询。
所以,按照需要完成的要求又分成了各具体执行模块。
学生实体E-R图教师实体E-R图管理员实体E-R图E-R模型转化成关系数据库四、数据库的设计与建立在系统中设立6张表:除了有学生、教师、课程基本表分别记录学生、教师、课程的基本信息外,考虑到便于系统管理员管理学生用户,设计了用户表,记录用户登录系统时的用户名、密码以及权限。
同时对于学生选课和教师教课都应该有记录,因此设计了学生选课和教师教课表,其中学生选课表里,包含了学生选课的内容和各门课的成绩,便于管理员对成绩的录入、修改以及用户对成绩的查询和检索:教师教课表的内容主要是包含教师所教课程的信息。
表1 用户信息数据表(manager)表2 学生信息数据表(Student)表3 教师信息数据表(teacher)表4教师-课程记录数据表(teacher course)表5课程信息数据表(course)表6 学生-课程记录数据表(studentcourse)在数据库系统中建立上面六个表,数据库名称为02371、建立数据库Create database 02371)建立表格Create table student(sno char(20) primary key,sname char(20) not null,ssex char(4) not null,sclassied char(50) not null,sage int not null,sdept char(20) not null)2 使用T-SQL脚本建立教师信息数据表(teacher)Create table teacher(tno char(5) primary key,tname char(10) not null,tclass char(20) not null,tdept char(20) not null)3 使用T-SQL脚本建立课程信息数据表(course)Create table course(cno char(10) primary key,cname char(20) not null,ctime char(40) not null,ccredit int not null,cdept char(50) not null)4 使用T-SQL脚本建立学生-课程记录数据表(student_course)Create table student_course(id char(10) primary key,sno char(10) not null,cno char(10)not null,sgrate int not null,cdept char(50) not null)5 使用T-SQL脚本建立教师-课程记录数据表(teacher-course)Create table teacher_course(id char() primary key,tno char()not null,cno char() not null,cmen int not null,tclass char() not null,cyear char() not null)6、使用T-SQL脚本建立用户信息数据表(Manger)Create table managermno char()primary key,mk char()not null,mp int not null)构建了数据库的表结构后,接下来创建负责表中信息查询、插入、修改、删除以及授权的相关存储过程(只举例关于表Student,Course,Student_Course之间的操作,同理可以对表teacher,Course,Student_Course进行相关操作)。
具体操作如下所示:五、数据库的基本操作1)查询1、查询数据库课程的课程号和学分Select cno,ccreditFrom courseWhere cname=’数据库’2、某些学生选修课程后没有参加考试,所以有选修课记录,但没有考试成绩。
查询缺少成绩的学生的学号和相应的课程号:Select sno,cnoFrom student_courseWhere sgrate is null2)数据插入在student表中插入一元组(20130206,周洁,男, 1,18,’计算机’)insertInto(sno,sname,ssex,sclassid,sage,sdept)Values(‘201302’,‘周洁’,‘男’,2013,1,18,’计算机’)3)修改修改某一个元组的值(以学生表为例)例:将学生20130102的年龄改称22岁Updata studentSet sage=22Where sno=’20130102’4)删除删除一个或多个元组例:删除学号为20130102的学生记录Delete from studentWhere sno=’201301’5)建立视图由课程信息数据表“course”建立一个视图,该视图由课程信息数据表的所有列构成Create view 课程信息AsSelect from course六、个人总结经过两天的努力,我的课程设计终于完成了。