1、排课系统数据库报告数据库课程设计 题 目 某中学排课管理系统 专业班级 姓 名 学 号 完成日期 2014-11-24 一、需求分析学生隶属班级,班级按照课程表上课,课程由老师教授,这些都要有管理人员来管理。总结出如下需求信息:1) 一个班级有多个学生;2) 一个学生有多门课,一门课对应多个学生;3) 一个教师可以教授多门课,一门课可以由多个教师来教授;4) 一个班级对应一张班级课程表,一个教师也对应一张教师课程表;5) 一个教师可以教授多个班级;经过对上述系统功能的分析和需求总结,设计总结如下:1.1数据字典 1)学生信息表字段名称数据类型默认值允许空主键studentIDint是namec
2、har(10)sexchar(2)是birthdaydatetime是classIDint是 2)班级信息表字段名称数据类型默认值允许空主键classIDint是classnamechar(20) 3)教师信息表字段名称数据类型默认值允许空主键teacherIDint是namechar(10)sexchar(2)是ageint是courseIDint是 4) 课程信息表字段名称数据类型默认值允许空主键courseIDint是classnamechar(20)teacherIDint是 5)课程表信息表字段名称数据类型默认值允许空主键星期char(20)是第一节char(20)是.第八节char
3、(20)是班级IDInt 6)用户信息表字段名称数据类型默认值允许空主键usersvarchar(50)是passwordvarchar(50)1.2全系统的数据项数据项:1) 学生信息:学生ID、姓名、性别、出生日期、所属班级。2) 班级信息:班级ID、所属年级。3) 教师信息:教师ID、姓名、性别、年龄。4) 课程信息:课程ID、课程名称、教师ID。5) 课程表信息:星期、第一节、第二节、第三节、第四节、第五节、第六节、第七节、第八节、班级ID。1.3数据流图 信息录入 排课系统 查询 信息文件二、概念结构设计2.1E-R图1) 学生实体E-R图 出生日期 2) 班级实体E-R图 班级名称
4、3) 教师实体E-R图4) 课程实体E-R图5) 课程表实体E-R图 班级ID 第一节 第二节 . 第八节6) 全局E-R图 2.2系统说明书1)系统要求某中学的排课管理系统 实现班级、课程等基本信息的管理; 实现学生、教师信息的管理; 实现班级课程及课程的任课教师和排课管理; 创建存储过程检测指定教师、指定节次是否有课; 创建存储过程生成指定班级的课程表; 创建存储过程生成指定老师的课程表; 建立数据库相关表之间的参照完整性约束。2)方案和概图 a)设计方案b)系统概图用户登录界面错误提示界面排课系统主界面教师信息主界面教师信息查询报错学生信息查询主界面学生信息查询报错课程信息查询主界面课程
5、信息查询班级信息查询报错 课表信息查询 班级课程表教师课程表查询学生课程表查询三、逻辑结构设计3.1关系模型1)学生(学生ID,姓名,性别,出生日期,班级ID) 主键:学生ID 外键:班级ID2)班级(班级ID,班级名称) 主键:班级ID 3)教师(教师ID,姓名,性别,年龄,) 主键:教师ID 4)课程(课程ID,课程名称,教师ID) 主键:课程名称 外键:教师ID 5)课程表1(星期,第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节) 主键:星期 外键:第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节 6)课程表2(星期,第一节,第二节,第三节,第四节,第五节,
6、第六节,第七节,第八节,课程名称) 主键:星期 外键:第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节3.2参照完整性约束条件学生班级 学生.班级ID=班级.班级ID教师课程 教师.课程ID=课程.课程ID课程表班级 课程表.班级ID=班级.班级ID课程表教师 课程表.教师ID=教师.教师ID3.3系统结构图排课管理系统 四、数据库实施4.1关系模式1)class表CREATE TABLE dbo.class( classID int NOT NULL, classname nchar(20) NOT NULL, CONSTRAINT PK_class PRIMARY KEY C
7、LUSTERED ( classID ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY2)course表CREATE TABLE dbo.course( courseID int NOT NULL, coursename nchar(20) NOT NULL, teacherID int NULL, CONSTRAINT PK_course PRIMAR
8、Y KEY CLUSTERED ( coursename ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYALTER TABLE dbo.course WITH CHECK ADD CONSTRAINT FK_course_teacher1 FOREIGN KEY(teacherID)REFERENCES dbo.teacher (teacherID)A
9、LTER TABLE dbo.course CHECK CONSTRAINT FK_course_teacher13)student表CREATE TABLE dbo.student( studentID int NOT NULL, name nchar(10) NOT NULL, sex nchar(2) NULL, birthday datetime NULL, classID int NULL, CONSTRAINT PK_student PRIMARY KEY CLUSTERED ( studentID ASC)WITH (PAD_INDEX = OFF, STATISTICS_NOR
10、ECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYALTER TABLE dbo.student WITH CHECK ADD CONSTRAINT FK_student_class FOREIGN KEY(classID)REFERENCES dbo.class (classID)ALTER TABLE dbo.student CHECK CONSTRAINT FK_student_class4)teacher表CREATE TABL
11、E dbo.teacher( teacherID int NOT NULL, name nchar(10) NULL, sex nchar(2) NULL, age int NULL, CONSTRAINT PK_teacher PRIMARY KEY CLUSTERED ( teacherID ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY5)cou
12、rselist1表CREATE TABLE dbo.courselist1( 第一节 nchar(20) NULL, 第二节 nchar(20) NULL, 第三节 nchar(20) NULL, 第四节 nchar(20) NULL, 第五节 nchar(20) NULL, 第六节 nchar(20) NULL, 第七节 nchar(20) NULL, 第八节 nchar(20) NULL, 星期 nchar(20) NULL) ON PRIMARYALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_cou
13、rse FOREIGN KEY(第一节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_courseALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course1 FOREIGN KEY(第二节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_cours
14、elist1_course1ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course2 FOREIGN KEY(第三节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course2ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course3 FOREIGN KEY(第四节
15、)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course3ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course4 FOREIGN KEY(第五节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course4ALTE
16、R TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course5 FOREIGN KEY(第六节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course5ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course6 FOREIGN KEY(第七节)REFERENCES dbo.co
17、urse (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course6ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course7 FOREIGN KEY(第八节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course76)courselist2表CREATE T
18、ABLE dbo.courselist2( 第一节 nchar(20) NULL, 第二节 nchar(20) NULL, 第三节 nchar(20) NULL, 第四节 nchar(20) NULL, 第五节 nchar(20) NULL, 第六节 nchar(20) NULL, 第七节 nchar(20) NULL, 第八节 nchar(20) NULL, 星期 nchar(20) NULL) ON PRIMARYALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course FOREIGN KEY(第
19、一节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_courseALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course1 FOREIGN KEY(第二节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course1ALT
20、ER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course2 FOREIGN KEY(第三节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course2ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course3 FOREIGN KEY(第四节)REFERENCES dbo.c
21、ourse (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course3ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course4 FOREIGN KEY(第五节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course4ALTER TABLE dbo.cours
22、elist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course5 FOREIGN KEY(第六节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course5ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course6 FOREIGN KEY(第七节)REFERENCES dbo.course (coursename)
23、ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course6ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course7 FOREIGN KEY(第八节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course77)用户user表CREATE TABLE dbo.users( userna
24、me varchar(50) NOT NULL, password varchar(50) NOT NULL, CONSTRAINT PK_users PRIMARY KEY CLUSTERED ( username ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY8)创建存储过程生成指定班级的课程表 create proc up_class(class
25、ID int)asselect * from courselist1 where courselist1.classID=classID execute up_class 11019)创建存储过程生成指定老师的课程表create proc up_teacher(teacherID int)asselect * from courlist1 where courselist1.teacherID=teacherID execute up_teacher 110)创建存储过程检测指定教师、指定节次是否有课 create proc up_teacheer(teacherID int,星期 nvarc
26、har(50)asselect * from coueselist1 where courselist1.teacherID=teacherID and courselist1.星期=星期execute up_teacher 1,第一节4.2程序编码(C#语言)添加头文件:using System.Data.SqlClient;1)用户登录关键代码if (textBox1.Text = ) MessageBox.Show(用户名不能为空!); return; if (textBox2.Text = ) MessageBox.Show(密码不能为空!); return; string const
27、r = server=.;database=中学排课系统;uid=sa;pwd=sa; SqlConnection conn = new SqlConnection(constr); conn.Open(); try string login = select * from users where username = + textBox1.Text.Trim() + and password = + textBox2.Text + ; SqlCommand sqlCmd = new SqlCommand(login, conn); SqlDataReader sqlReader = sqlCmd.ExecuteReader(); sqlReader.Read(); if (sqlReader.HasRows) sqlReader.Close(); start start = new start(); start.Show(); this.Hide(); else MessageBox.Show(用户名或密码错误!); catch (Exception ex) Messa
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1