排课系统数据库报告.docx

上传人:b****4 文档编号:24132305 上传时间:2023-05-24 格式:DOCX 页数:31 大小:243.57KB
下载 相关 举报
排课系统数据库报告.docx_第1页
第1页 / 共31页
排课系统数据库报告.docx_第2页
第2页 / 共31页
排课系统数据库报告.docx_第3页
第3页 / 共31页
排课系统数据库报告.docx_第4页
第4页 / 共31页
排课系统数据库报告.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

排课系统数据库报告.docx

《排课系统数据库报告.docx》由会员分享,可在线阅读,更多相关《排课系统数据库报告.docx(31页珍藏版)》请在冰豆网上搜索。

排课系统数据库报告.docx

排课系统数据库报告

数据库课程设计

 

题目某中学排课管理系统

专业班级

姓名

学号

完成日期2014-11-24

 

 

一、需求分析

学生隶属班级,班级按照课程表上课,课程由老师教授,这些都要有管理人员来管理。

总结出如下需求信息:

1)一个班级有多个学生;

2)一个学生有多门课,一门课对应多个学生;

3)一个教师可以教授多门课,一门课可以由多个教师来教授;

4)一个班级对应一张班级课程表,一个教师也对应一张教师课程表;

5)一个教师可以教授多个班级;

经过对上述系统功能的分析和需求总结,设计总结如下:

1.1数据字典

1)学生信息表

字段名称

数据类型

默认值

允许空

主键

studentID

int

name

char(10)

sex

char

(2)

birthday

datetime

classID

int

2)班级信息表

字段名称

数据类型

默认值

允许空

主键

classID

int

classname

char(20)

3)教师信息表

字段名称

数据类型

默认值

允许空

主键

teacherID

int

name

char(10)

sex

char

(2)

age

int

courseID

int

4)课程信息表

字段名称

数据类型

默认值

允许空

主键

courseID

int

classname

char(20)

teacherID

int

5)课程表信息表

字段名称

数据类型

默认值

允许空

主键

星期

char(20)

第一节

char(20)

......

第八节

char(20)

班级ID

Int

6)用户信息表

字段名称

数据类型

默认值

允许空

主键

users

varchar(50)

password

varchar(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图

 

班级名称

 

3)教师实体E-R图

 

4)

课程实体E-R图

 

5)课程表实体E-R图

班级ID第一节第二节

......

第八节

6)全局E-R图

 

2.2系统说明书

1)系统要求

某中学的排课管理系统

●实现班级、课程等基本信息的管理;

●实现学生、教师信息的管理;

●实现班级课程及课程的任课教师和排课管理;

●创建存储过程检测指定教师、指定节次是否有课;

●创建存储过程生成指定班级的课程表;

●创建存储过程生成指定老师的课程表;

●建立数据库相关表之间的参照完整性约束。

2)方案和概图

a)设计方案

b)系统概图

用户登录界面

错误提示界面

排课系统主界面

教师信息主界面

教师信息查询

报错

学生信息查询主界面

学生信息查询

报错

课程信息查询主界面

课程信息查询

 

班级信息查询

报错课表信息查询

班级课程表

教师课程表查询

学生课程表查询

三、逻辑结构设计

3.1关系模型

1)学生(学生ID,姓名,性别,出生日期,班级ID)

主键:

学生ID外键:

班级ID

2)班级(班级ID,班级名称)

主键:

班级ID

3)教师(教师ID,姓名,性别,年龄,)

主键:

教师ID

4)课程(课程ID,课程名称,教师ID)

主键:

课程名称外键:

教师ID

5)课程表1(星期,第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节)

主键:

星期外键:

第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节

6)课程表2(星期,第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节,课程名称)

主键:

星期外键:

第一节,第二节,第三节,第四节,第五节,第六节,第七节,第八节

3.2参照完整性约束条件

学生——班级学生.班级ID=班级.班级ID

教师——课程教师.课程ID=课程.课程ID

课程表——班级课程表.班级ID=班级.班级ID

课程表——教师课程表.教师ID=教师.教师ID

3.3系统结构图

排课管理系统

 

 

 

四、数据库实施

4.1关系模式

1)class表

CREATETABLE[dbo].[class](

[classID][int]NOTNULL,

[classname][nchar](20)NOTNULL,

CONSTRAINT[PK_class]PRIMARYKEYCLUSTERED

[classID]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

2)course表

CREATETABLE[dbo].[course](

[courseID][int]NOTNULL,

[coursename][nchar](20)NOTNULL,

[teacherID][int]NULL,

CONSTRAINT[PK_course]PRIMARYKEYCLUSTERED

[coursename]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

ALTERTABLE[dbo].[course]WITHCHECKADDCONSTRAINT[FK_course_teacher1]FOREIGNKEY([teacherID])

REFERENCES[dbo].[teacher]([teacherID])

ALTERTABLE[dbo].[course]CHECKCONSTRAINT[FK_course_teacher1]

3)student表

CREATETABLE[dbo].[student](

[studentID][int]NOTNULL,

[name][nchar](10)NOTNULL,

[sex][nchar]

(2)NULL,

[birthday][datetime]NULL,

[classID][int]NULL,

CONSTRAINT[PK_student]PRIMARYKEYCLUSTERED

[studentID]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

ALTERTABLE[dbo].[student]WITHCHECKADDCONSTRAINT[FK_student_class]FOREIGNKEY([classID])

REFERENCES[dbo].[class]([classID])

ALTERTABLE[dbo].[student]CHECKCONSTRAINT[FK_student_class]

4)teacher表

CREATETABLE[dbo].[teacher](

[teacherID][int]NOTNULL,

[name][nchar](10)NULL,

[sex][nchar]

(2)NULL,

[age][int]NULL,

CONSTRAINT[PK_teacher]PRIMARYKEYCLUSTERED

[teacherID]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

5)courselist1表

CREATETABLE[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[PRIMARY]

ALTERTABLE[dbo].[courselist1]WITHCHECKADDCONSTRAINT[FK_courselist1_course]FOREIGNKEY([第一节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist1]CHECKCONSTRAINT[FK_courselist1_course]

ALTERTABLE[dbo].[courselist1]WITHCHECKADDCONSTRAINT[FK_courselist1_course1]FOREIGNKEY([第二节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist1]CHECKCONSTRAINT[FK_courselist1_course1]

ALTERTABLE[dbo].[courselist1]WITHCHECKADDCONSTRAINT[FK_courselist1_course2]FOREIGNKEY([第三节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist1]CHECKCONSTRAINT[FK_courselist1_course2]

ALTERTABLE[dbo].[courselist1]WITHCHECKADDCONSTRAINT[FK_courselist1_course3]FOREIGNKEY([第四节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist1]CHECKCONSTRAINT[FK_courselist1_course3]

ALTERTABLE[dbo].[courselist1]WITHCHECKADDCONSTRAINT[FK_courselist1_course4]FOREIGNKEY([第五节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist1]CHECKCONSTRAINT[FK_courselist1_course4]

ALTERTABLE[dbo].[courselist1]WITHCHECKADDCONSTRAINT[FK_courselist1_course5]FOREIGNKEY([第六节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist1]CHECKCONSTRAINT[FK_courselist1_course5]

ALTERTABLE[dbo].[courselist1]WITHCHECKADDCONSTRAINT[FK_courselist1_course6]FOREIGNKEY([第七节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist1]CHECKCONSTRAINT[FK_courselist1_course6]

ALTERTABLE[dbo].[courselist1]WITHCHECKADDCONSTRAINT[FK_courselist1_course7]FOREIGNKEY([第八节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist1]CHECKCONSTRAINT[FK_courselist1_course7]

6)courselist2表

CREATETABLE[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[PRIMARY]

ALTERTABLE[dbo].[courselist2]WITHCHECKADDCONSTRAINT[FK_courselist2_course]FOREIGNKEY([第一节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist2]CHECKCONSTRAINT[FK_courselist2_course]

ALTERTABLE[dbo].[courselist2]WITHCHECKADDCONSTRAINT[FK_courselist2_course1]FOREIGNKEY([第二节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist2]CHECKCONSTRAINT[FK_courselist2_course1]

ALTERTABLE[dbo].[courselist2]WITHCHECKADDCONSTRAINT[FK_courselist2_course2]FOREIGNKEY([第三节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist2]CHECKCONSTRAINT[FK_courselist2_course2]

ALTERTABLE[dbo].[courselist2]WITHCHECKADDCONSTRAINT[FK_courselist2_course3]FOREIGNKEY([第四节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist2]CHECKCONSTRAINT[FK_courselist2_course3]

ALTERTABLE[dbo].[courselist2]WITHCHECKADDCONSTRAINT[FK_courselist2_course4]FOREIGNKEY([第五节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist2]CHECKCONSTRAINT[FK_courselist2_course4]

ALTERTABLE[dbo].[courselist2]WITHCHECKADDCONSTRAINT[FK_courselist2_course5]FOREIGNKEY([第六节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist2]CHECKCONSTRAINT[FK_courselist2_course5]

ALTERTABLE[dbo].[courselist2]WITHCHECKADDCONSTRAINT[FK_courselist2_course6]FOREIGNKEY([第七节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist2]CHECKCONSTRAINT[FK_courselist2_course6]

ALTERTABLE[dbo].[courselist2]WITHCHECKADDCONSTRAINT[FK_courselist2_course7]FOREIGNKEY([第八节])

REFERENCES[dbo].[course]([coursename])

ALTERTABLE[dbo].[courselist2]CHECKCONSTRAINT[FK_courselist2_course7]

7)用户user表

CREATETABLE[dbo].[users](

[username][varchar](50)NOTNULL,

[password][varchar](50)NOTNULL,

CONSTRAINT[PK_users]PRIMARYKEYCLUSTERED

[username]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

8)创建存储过程生成指定班级的课程表

createprocup_class(@classIDint)

as

select*fromcourselist1wherecourselist1.classID=@classID

executeup_class'1101'

9)创建存储过程生成指定老师的课程表

createprocup_teacher(@teacherIDint)

as

select*fromcourlist1wherecourselist1.teacherID=@teacherID

executeup_teacher'1'

10)创建存储过程检测指定教师、指定节次是否有课

createprocup_teacheer(@teacherIDint,@星期nvarchar(50))

as

select*fromcoueselist1wherecourselist1.teacherID=@teacherIDandcourselist1.星期=@星期

executeup_teacher'1','第一节'

4.2程序编码(C#语言)

添加头文件:

usingSystem.Data.SqlClient;

1)用户登录关键代码

if(textBox1.Text=="")

{

MessageBox.Show("用户名不能为空!

");

return;

}

if(textBox2.Text=="")

{

MessageBox.Show("密码不能为空!

");

return;

}

stringconstr="server=.;database=中学排课系统;uid=sa;pwd=sa";

SqlConnectionconn=newSqlConnection(constr);

conn.Open();

try

{

stringlogin="select*fromuserswhereusername='"+textBox1.Text.Trim()+"'andpassword='"+textBox2.Text+"'";

SqlCommandsqlCmd=newSqlCommand(login,conn);

SqlDataReadersqlReader=sqlCmd.ExecuteReader();

sqlReader.Read();

if(sqlReader.HasRows)

{

sqlReader.Close();

startstart=newstart();

start.Show();

this.Hide();

}

else

{

MessageBox.Show("用户名或密码错误!

");

}

}

catch(Exceptionex)

{

Messa

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1