资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
数据库原理课程设计报告
题 目: 教室管理信息系统
学生姓名: xxx
学 号: xxxx 班 级: 计科xx
院 系: 计算机科学与信息学院
专业年级: 计算机科学与技术 xx 级
年 11 月 8 日
一、 需求分析
需包含内容为:
(1) 问题描述: 设计系统的简单描述
系统描述: 教室管理信息系统是应用于教室管理的系统, 可是实现教育信息化管理, 对教室的使用进行管理, 方便于师生查询管理使用教室。
(2)系统功能描述, 可画出所设计模块的操作流程;
并分析所需要存储的数据信息。
功能描述:
教室信息存储: 包括教室编号, 教室使用时间, 教室空闲时间, 教室可容纳人数, 现时教室使用人, 教室使用负责人等
教师信息存储: 教师编号, 教师姓名, 性别, 所属系别, 教授课程, 授课时间等
学生信息存储: 学生编号, 学生姓名, 性别, 所属系别等
教室安排信息存储: 教室编号, 教室空闲时间, 教室使用负责人等
教室使用负责信息存储: 负责的教室编号, 教室使用负责人姓名, 教室使用负责人编号等
教室信息存储主要存储教室的基本信息和教室的安排情况。用于教师和学生的查询和申请使用, 而教室使用负责人则能够对教室信息的查询修改删除。
教师信息存储教师的基本情况, 学生信息存储学生的基本情况。
教室安排信息存储教室的安排情况, 方便教师申请教室, 以及教室负责人对教室的安排。
(3) 有何安全性与完整性方面的要求( 参照所给出的语义规则) , 对不同的用户有何不同的系统使用权限等。
学生能够查询和修改学生信息和学生选课信息, 以及查询教室的使用情况, 但学生不能申请教室的使用。
教师能够查询和修改教师信息和选课信息, 以及查询教室的使用情况, 申请教室的使用。
教室负责人不能查询教师信息和学生信息以及选课信息, 但能够查询和修改教室使用情况, 能够安排教室的使用。
二、 概念结构设计
画出系统整体的E-R模型; 并对模型中所出现的实体及属性等信息加以说明。
教师号
学号
姓名
姓名
性别
系别
教师
性别
学生
系别
课程名
授课时间
查询
申请
容纳人数
教室号
现时使用人
教室
教室使用时间
教室使用负责人
教室空闲时间
三、 逻辑结构设计
( 1) 模式设计: 按系统整体E-R模型, 写出关系模式; 并利用数据字典加以描述。( 如每个关系模式有何属性、 属性的类型、 属性值的长度、 是否可取空值、 是否为主码、 有何约束条件等信息)
学生( 学号, 姓名, 性别, 系别)
教师( 教师号, 姓名, 性别, 系别, 课程名, 授课时间)
教室( 教室号, 教室使用时间, 教室空闲时间, 容纳人数, 现时使用人, 教室使用负责人)
教室使用负责人( 教室负责人编号, 教室负责人姓名, 教室编号)
安排( 教师号, 教室负责人姓名, 教室号, 申请状态)
学生表
属性名
存储代码
类型
长度
备注
学号
sno
string
20
学生编号( 主码)
姓名
sname
string
10
学生姓名( 不能为空)
性别
ssex
string
2
学生性别( 男、 女)
系别
sdept
string
20
学生所属系别
教师表
属性名
存储代码
类型
长度
备注
教师号
tno
string
20
教师编号( 主码)
姓名
tname
string
10
教师姓名( 不能为空)
性别
tsex
string
2
教师性别( 男、 女)
系别
tdept
string
20
教师所属系别
授课课程名
tcourse
string
20
教师教授课程名
授课时间
coursetime
string
20
教师授课时间
教室表
属性名
存储代码
类型
长度
备注
教室号
cno
string
20
教室编号( 主码)
教室使用时间
usetime
string
20
教室的使用时间
教室空闲时间
freetime
string
20
教室的空闲时间
容纳人数
people
string
10
教室可容纳人数( 不能为空)
教室使用负责人
charge
string
20
负责申请教室使用的管理员
教室使用负责人表
属性名
存储代码
类型
长度
备注
教室管理员编号
ano
string
20
教室的管理员编号( 主码)
教室管理员姓名
aname
string
20
管理员姓名( 不能为空)
教室编号
cno
string
20
教室的编号
安排教室使用表
属性名
存储代码
类型
长度
备注
教师号
tno
string
20
教师的编号( 主码之一)
教室号
cno
string
20
教室的编号( 主码之一)
教室管理员姓名
aname
string
20
管理员的编号( 主码之一)
申请状态
stage
string
20
是否经过申请( 是、 否)
( 2) 子模式设计: 即针对自己的设计模块的应用需定义什么样的视图表结构; 并利用数据字典加以描述。
( 如每个关系子模式有何属性、 属性的类型、 属性值的长度、 是否可取空值、 是否为主码、 有何约束条件等信息)
(3) 画出系统功能模块图, 并对各功能模块进行简单介绍。
教室查询功能: 学生、 管理员、 老师能够根据教室号查询教室的情况。
教师查询功能: 学生能够根据教师号查询教师情况, 教师能够查询修改教师情况。
教室借用系统: 教师能够登录申请使用教室, 等待管理员安排教室的使用。
四、 数据库的物理设计
为了提高在表中搜索元组的速度, 在实际实现的时候应该基于某些属性建立索引。给出所建立的索引。( 包括按哪些表中哪些属性按升序还是降序来创立索引及相应的T-SQL的创立语句) 。
教师表建立索引, 按教师号升序建唯一索引。
教室表建立索引, 按教室号升序建唯一索引。
教室使用负责人表建立索引, 按教室管理员号升序建唯一索引。
五、 数据库设计实现及运行
( 1) 数据库的创立
T-SQL语句:
( 2) 数据表的创立( 可同时在创立时定义相关的约束)
T-SQL语句:
( 3) 视图的创立( 仅需给出自己设计模块中所用的视图)
T-SQL语句:
( 4) 各模块中的功能实现
a) 功能界面( 截图) ;
b)功能界面简单描述;
登陆界面能够实现不同用户包括教师、 学生、 管理员的登陆, 登陆到不同界面。
学生登陆到学生界面, 能够实现关于教师信息的查询和关于教室信息的查询。
教室登陆到教师界面, 能够实现关于教师信息的增删查改, 以及关于教室的申请使用和查询申请结果。
管理员登陆到管理员界面, 能够实现关于教师信息的查询, 以及关于教室信息的增删查改, 和允许教师申请相应教室, 或者否定教师申请相应教室。
c)T-SQL语句与宿主语言嵌套使用代码段( 粘贴) ;
查询语句:
string conString = "Data Source=.; Initial Catalog=project;Integrated Security=True";
SqlConnection conn = new SqlConnection(conString);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("select tno 教师号,tname 教师名,tsex 性别,tdept 系别,tcourse 所授课程,coursetime 授课时间 from teacher where tno='" + TextBox1.Text.Trim() + "'", conn);
DataSet ds = new DataSet();
da.Fill(ds, "teacher");
GridView2.DataSource = ds.Tables["teacher"];
GridView2.DataBind();
conn.Close();
删除语句:
string conString = "Data Source=.; Initial Catalog=project;Integrated Security=True";
SqlConnection conn = new SqlConnection(conString);
conn.Open();
SqlCommand caa = new SqlCommand("delete from teacher where tno='" +TextBox1.Text.Trim() + "'", conn);
if (caa.ExecuteNonQuery() == 1)
{
Page.RegisterStartupScript("msg1 ", " <script> alert( '删除成功! ') </script> ");
}
conn.Close();
修改语句:
string conString = "Data Source=.; Initial Catalog=project;Integrated Security=True";
SqlConnection conn = new SqlConnection(conString);
conn.Open();
SqlCommand cbb = new SqlCommand("update teacher set tname='" + TextBox2.Text.Trim() + "',tsex='" + TextBox3.Text.Trim() + "', tdept='" + TextBox4.Text.Trim() + "',tcourse='" + TextBox5.Text.Trim() + "', coursetime='" + TextBox6.Text.Trim() + "' where tno=" + TextBox1.Text.Trim() + "", conn);
if (cbb.ExecuteNonQuery() == 1)
{
Page.RegisterStartupScript("msg1 ", " <script> alert( '修改成功! ') </script> ");
}
else
{
Page.RegisterStartupScript("msg1 ", " <script> alert( '输入的信息有误! ') </script> ");
}
conn.Close();
添加语句:
SqlCommand cdd = new SqlCommand("insert into teacher (tno,tname,tsex,tdept,tcourse,coursetime) values('" +TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "','" + TextBox5.Text.Trim() + "','" + TextBox6.Text.Trim() + "')", conn);
if (cdd.ExecuteNonQuery() == 1)
{
Page.RegisterStartupScript("msg1 ", " <script> alert( '添加成功! ') </script> ");
}
else
Page.RegisterStartupScript("msg1 ", " <script> alert( '输入的信息有误! ') </script> ");
}
六、 课程设计心得
在开始做教室管理系统的时候, 我首先用C#做了一个本地客户端, 遇到不懂的地方我就结合课本和自己在网上查询相关知识处理, 在了解老师要求后, 我又用连接SQL server做了一个web版的教室管理系统, 重新学习有一定难度, 因为在课堂上没学过这个, 可是自己在网上了解相关知识学习后, 发现很多问题不像自己一直以为的那么困难, 只要努力去做, 很多问题能够自己解决。
展开阅读全文