1、郑州科技学院数据库原理及应用课程设计 设计(论文)题目: 某中学的排课管理系统 所 在 院: 信息工程学院 专 业 班 级: 物联网工程 学 生 姓 名: 学 号: 指 导 教 师: 2016年9月9日摘 要20世纪以来,社会生产力迅速发展,科学技术突飞猛进,人们进行信息交流的深度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变化的社会环境,特别是企业间日趋剧烈的竞争形势,一个人、一个企业要在现代社会中求生存,求发展,必须具备足够的信息和强有力的信息收集与处理手段。对于一个学校来说,大量教
2、师课程安排难于通过传统的方法进行管理;这就迫切需要利用计算机技术来帮助学校管理者来处理教师课程安排的日常管理,合理安排课程,防止课程冲突.排课管理系统可以很好的解决以上问题.排课管理系统是管理信息系统的一个典型用例. 开发学校排课管理系统的过程就是要实现数据处理方式由人工管理向计算机管理的转变,它在计算机技术和教师管理实践活动两者之间架设桥梁。数据库原理及应用课程是设计目录一、需求分析11.1研究的目的和意义11.2数据字典21.3全系统的数据项31.4数据流图4二、概念结构设计42.1E-R图42.2系统说明书6三、逻辑结构设计153.1关系模型153.2参照完整性约束条件153.3系统结构
3、图16四、数据库实施164.1关系模式164.2程序编码22添加头文件:22五、课程设计的感想和心得体会28六、参考文献29一、需求分析学生隶属班级,班级按照课程表上课,课程由老师教授,这些都要有管理人员来管理。总结出如下需求信息:1) 一个班级有多个学生;2) 一个学生有多门课,一门课对应多个学生;3) 一个教师可以教授多门课,一门课可以由多个教师来教授;4) 一个班级对应一张班级课程表,一个教师也对应一张教师课程表;5) 一个教师可以教授多个班级;1.1研究的目的和意义教务管理系统是学校最为核心的信息系统,排课系统又是教务管理系统中非常重要的一个子系统。学校的日常教学管理工作均围绕着它展开
4、。排课系统体现了各学校不同于其它学校的个性化的特点,又将随着学校的人才培养模式的改革而变化。它不仅可以从侧面反映出学校领导的办学思想,也能体现出学校教育教学管理的能力和水平。随着Internet和信息技术的发展,我国高校教育信息化建设成为信息化建设的前沿阵地和信息时代的弄潮先锋。在国家对高等教育大力发展政策的刺激下,高校教育事业得到了迅速发展,在新的教务管理模式和管理体制下,如何利用有限的资源,以最优化的形式满足教务管理的需要成为了目前急需要解决的重要课题。通过建立一个以网络应用为基础、高性能、高可靠性、高安全性的云南大学排课系统,并将管理思想与计算机技术、网络技术有机结合,开发出真正符合现代
5、教育管理理念与学习规律、更稳定、功能更强,服务更全面的校院两级排课系统,才能更好地为学生和教学服务,让教务管理人员真正的将精力花在提高教学教务管理质量上,而不是简单和繁重的日常事务处理上。经过对上述系统功能的分析和需求总结,设计总结如下:1.2数据字典 1)学生信息表字段名称数据类型默认值允许空主键studentIDint是namechar(10)sexchar(2)是birthdaydatetime是classIDint是 2)班级信息表字段名称数据类型默认值允许空主键classIDint是classnamechar(20) 3)教师信息表字段名称数据类型默认值允许空主键teacherIDi
6、nt是namechar(10)sexchar(2)是ageint是courseIDint是 4) 课程信息表字段名称数据类型默认值允许空主键courseIDint是classnamechar(20)teacherIDint是 5)课程表信息表字段名称数据类型默认值允许空主键星期char(20)是第一节char(20)是.第八节char(20)是班级IDInt 6)用户信息表字段名称数据类型默认值允许空主键usersvarchar(50)是passwordvarchar(50)1.3全系统的数据项数据项:1) 学生信息:学生ID、姓名、性别、出生日期、所属班级。2) 班级信息:班级ID、所属年级
7、。3) 教师信息:教师ID、姓名、性别、年龄。4) 课程信息:课程ID、课程名称、教师ID。5) 课程表信息:星期、第一节、第二节、第三节、第四节、第五节、第六节、第七节、第八节、班级ID。1.4数据流图排课系统用户用户信息录入 排课系统 查询查询结果查询结果有效信息信息文件二、概念结构设计2.1E-R图学生1) 学生实体E-R图出生日期姓名学生ID班级ID性别2) 班级实体E-R图班级班级ID班级名称3) 教师实体E-R图教师教师ID姓名性别 年龄课程ID4) 课程实体E-R图教师ID课程课程ID课程名称5) 课程表实体E-R图班级ID 第一节第二节.课程表第八节6) 全局E-R图被包含包含
8、被教授教授课程表教师被学习学习包含属于课程班级学生2.2系统说明书1) 系统要求某中学的排课管理系统l 实现班级、课程等基本信息的管理;l 实现学生、教师信息的管理;l 实现班级课程及课程的任课教师和排课管理;l 创建存储过程检测指定教师、指定节次是否有课;l 创建存储过程生成指定班级的课程表;l 创建存储过程生成指定老师的课程表;l 建立数据库相关表之间的参照完整性约束。2) 方案和概图 a)设计方案学生注册班级设置课程信息设置班级信息输入排课信息录入学生信息输入课程信息输入班级信息管理学生信息管理课程表信息管理课程信息管理教师注册教师信息录入教师信息管理b)系统概图用户登录界面错误提示界面
9、排课系统主界面教师信息主界面教师信息查询报错学生信息查询主界面学生信息查询报错课程信息查询主界面课程信息查询班级信息查询报错 课表信息查询 班级课程表教师课程表查询学生课程表查询三、逻辑结构设计3.1关系模型1)学生(学生ID,姓名,性别,出生日期,班级ID) 主键:学生ID 外键:班级ID2)班级(班级ID,班级名称) 主键:班级ID 3)教师(教师ID,姓名,性别,年龄,) 主键:教师ID 4)课程(课程ID,课程名称,教师ID) 主键:课程名称 外键:教师ID 5)课程表1(星期,第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节) 主键:星期 外键:第一节,第二节,第三节,
10、第四节,第五节,第六节,第七节,第八节 6)课程表2(星期,第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节,课程名称) 主键:星期 外键:第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节3.2参照完整性约束条件学生班级 学生.班级ID=班级.班级ID教师课程 教师.课程ID=课程.课程ID课程表班级 课程表.班级ID=班级.班级ID课程表教师 课程表.教师ID=教师.教师ID3.3系统结构图排课管理系统教师信息管理学生信息管理课程信息管理班级信息管理系统用户管理课程表管理教室课程表管理班级课程表管理用户管理密码管理班级信息修改班级信息查询班级信息添加课程信息修改课
11、程信息查询课程信息添加学生信息查询教师信息添加学生信息添加学生信息修改教师信息修改教师信息查询教师课程修改教师课程添加教师课程查询班级课程修改班级课程查询班级课程添加四、数据库实施4.1关系模式1) class表CREATE TABLE dbo.class(classID int NOT NULL,classname nchar(20) NOT NULL, CONSTRAINT PK_class PRIMARY KEY CLUSTERED (classID ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_K
12、EY = 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 PRIMARY KEY CLUSTERED (coursename ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNOR
13、E_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)ALTER TABLE dbo.course CHECK CONSTRAINT FK_course_teacher13) student表CREATE TABLE dbo.studen
14、t(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_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) O
15、N 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 TABLE dbo.teacher(teacherID int NOT NULL,name nchar(10) NULL,sex nchar(2) NULL,age int NULL, CONSTR
16、AINT 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) courselist1表CREATE TABLE dbo.courselist1(第一节 nchar(20) NULL,第二节 nchar(20) NULL,第三节 nchar(20) NULL,第四节
17、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_course FOREIGN KEY(第一节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_course
18、list1_courseALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course1 FOREIGN KEY(第二节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course1ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course2 FOREIGN KEY(第三节)R
19、EFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course2ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course3 FOREIGN KEY(第四节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course3ALTER
20、TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course4 FOREIGN KEY(第五节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course4ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course5 FOREIGN KEY(第六节)REFERENCES dbo.cour
21、se (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course5ALTER TABLE dbo.courselist1 WITH CHECK ADD CONSTRAINT FK_courselist1_course6 FOREIGN KEY(第七节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course6ALTER TABLE dbo.courseli
22、st1 WITH CHECK ADD CONSTRAINT FK_courselist1_course7 FOREIGN KEY(第八节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist1 CHECK CONSTRAINT FK_courselist1_course76) courselist2表CREATE TABLE dbo.courselist2(第一节 nchar(20) NULL,第二节 nchar(20) NULL,第三节 nchar(20) NULL,第四节 nchar(20) NULL,第五节 nchar(
23、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(第一节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_courseALTER TABLE d
24、bo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course1 FOREIGN KEY(第二节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course1ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course2 FOREIGN KEY(第三节)REFERENCES dbo.course (cou
25、rsename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course2ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course3 FOREIGN KEY(第四节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course3ALTER TABLE dbo.courselist2 WIT
26、H CHECK ADD CONSTRAINT FK_courselist2_course4 FOREIGN KEY(第五节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course4ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course5 FOREIGN KEY(第六节)REFERENCES dbo.course (coursename)ALTER TABL
27、E dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course5ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTRAINT FK_courselist2_course6 FOREIGN KEY(第七节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course6ALTER TABLE dbo.courselist2 WITH CHECK ADD CONSTR
28、AINT FK_courselist2_course7 FOREIGN KEY(第八节)REFERENCES dbo.course (coursename)ALTER TABLE dbo.courselist2 CHECK CONSTRAINT FK_courselist2_course77) 用户user表CREATE TABLE dbo.users(username varchar(50) NOT NULL,password varchar(50) NOT NULL, CONSTRAINT PK_users PRIMARY KEY CLUSTERED (username ASC)WITH
29、(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(classID int)asselect * from courselist1 where courselist1.classID=classID execute up_class 11019)创建存储过程生成指定老师的课程表create pro
30、c up_teacher(teacherID int)asselect * from courlist1 where courselist1.teacherID=teacherID execute up_teacher 110)创建存储过程检测指定教师、指定节次是否有课 create proc up_teacheer(teacherID int,星期 nvarchar(50)asselect * from coueselist1 where courselist1.teacherID=teacherID and courselist1.星期=星期execute up_teacher 1,第一节
31、4.2程序编码添加头文件:using System.Data.SqlClient;1) 用户登录关键代码if (textBox1.Text = ) MessageBox.Show(用户名不能为空!); return; if (textBox2.Text = ) MessageBox.Show(密码不能为空!); return; string constr = server=.;database=中学排课系统;uid=sa;pwd=sa; SqlConnection conn = new SqlConnection(constr); conn.Open(); try string login =
32、 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(); th
33、is.Hide(); else MessageBox.Show(用户名或密码错误!); catch (Exception ex) MessageBox.Show(ex.Message); MessageBox.Show(用户名或密码错误!); finally conn.Close(); 2) 查询关键代码(以教师信息查询为例)private void chaxun_Click(object sender, EventArgs e) if (ID.Text.Trim() = ) MessageBox.Show(请填写教师编号!); return; string constr = server=.
34、;database=中学排课系统;uid=sa;pwd=sa; SqlConnection conn = new SqlConnection(constr); conn.Open(); string str = select * from teacher where teacherID=+ID.Text.Trim(); SqlCommand command = new SqlCommand(str, conn); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = command; DataSet dat
35、aSet = new DataSet(); adapter.Fill(dataSet, type); dataGridView1.DataSource = dataSet.Tables0; conn.Close(); ID.Text = ; 3) 添加关键代码(以教师信息添加为例)private void tianjia_Click(object sender, EventArgs e) if (ID.Text.Trim() = | na.Text.Trim() = | se.Text.Trim()= | ag.Text.Trim()=) MessageBox.Show(请填写完整信息!);
36、return; string constr = server=.;database=中学排课系统;uid=sa;pwd=sa; SqlConnection conn = new SqlConnection(constr); conn.Open(); try string str = insert into teacher values ( + ID.Text.Trim() + , + na.Text.Trim() + , + se.Text.Trim() + , + ag.Text.Trim() + ); SqlCommand sqlCommand = new SqlCommand(); sq
37、lCommand.Connection = conn; sqlCommand.CommandText = str; sqlCommand.CommandType = CommandType.Text; sqlCommand.ExecuteNonQuery(); MessageBox.Show(添加成功!); catch (Exception ex) MessageBox.Show(添加失败!); finally conn.Close(); teacherinformation_Load(sender, e); 4) 删除关键代码(以教师信息删除为例)private void shanchu_Click(object sender, EventArgs e) if (ID.Text.Trim() = ) MessageBox.Show(请填写教职工号!);
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100