收藏 分销(赏)

教学管理系统数据库报告.docx

上传人:快乐****生活 文档编号:9911116 上传时间:2025-04-13 格式:DOCX 页数:37 大小:1.15MB
下载 相关 举报
教学管理系统数据库报告.docx_第1页
第1页 / 共37页
教学管理系统数据库报告.docx_第2页
第2页 / 共37页
点击查看更多>>
资源描述
教学管理系统数据库报告 37 2020年4月19日 文档仅供参考,不当之处,请联系改正。 《数据库原理及应用》 课程设计报告 教学管理体统数据库系统设计 班 级 学 号 姓 名 指导教师 日 期 一.需求分析 1.基本情况说明 设计一个简单的教学管理系统,要求存储学生基本情况、课程基本情况,教师授课情况与学生成绩记录等,提供成绩录入、信息查询等功能以满足日常教学管理需要。对学生的成绩的管理、查询学生的各科成绩的学生成绩管理系统。该系统能够帮助我们更方便的管理学生的成绩,替代了以前的手工操作管理学生的成绩,节约我们珍贵的时间。而且老师和学生能够以不同个的身份登录,获得不同的操作权限,有效的提高教学管理系统的工作效率。 2.数据库系统应具备的具体功能 系统分为以下四个部分:学生管理子系统、教师管理子系统、教务管理子系统需求。 1、学生管理子系统需求: 交费功能: 每年按规定的时间缴纳学费。 查询功能: 查询考试成绩及班级排名;查询课程信息;查询教学培养计划;查询任课老师的信息;查询上课地点及上课时间。 变更信息:对教师基本信息的添加,删除,修改。 2、教师管理子系统需求: 查询功能: 查询教学培养计划;查询课程表;查询学生的总体成绩;查询学生所用的教材;查询教师的基本信息。 变更信息:对教师基本信息的添加,删除,修改。 3、教务管理子系统需求: 学籍处理: 新生入学档案的录入;毕业学生档案的处理;学生档案的处理包括插入,删除以及修改;学生基本信息的查询。 统计功能:统计每个教师在某个时间段内的教学工作量;统计每个教室的利用情况等。 制定教学计划: 根据专业教学秘书提供和教师的任课信息表制定教学计划;把教学计划输入课程管理数据库和教师任课数据库 排课: 根据教学计划为每个专业排课,每个专业的学生能够查询自己的课程,教务处能够根据教学计划修改课程表,将课程表分发给老师,学生,教室管理员和院系。 数据字典 数据项 编号 属性名 类型 长度 1 教师编号 int 4 2 姓名 char 10 3 教龄 int 4 4 出生日期 data 10 5 职称 char 10 6 职务 char 10 7 学院 char 10 8 专业 char 10 9 班级 char 10 10 成绩 int 4 11 学号 int 4 12 课程号 int 4 13 课程名 char 10 14 学时 int 4 15 学分 int 4 16 性别 char 10 数据结构 编号 数据结构名 组成 1 教师 教师编号,姓名,性别,出生如期,教龄,专业,职称,行政职务,所属学院 2 学生 学号,姓名,性别,出生日期,班级,专业,所属学院 3 课程 课程号,课程名,学时,学分 4 学生选修 学号,课程号,成绩 5 主讲课程 教师编号,课程号,班级 数据流 编号 数据流名 输入 输出 1 变更学生信息 变更信息 学生信息 2 查询学生信息 学号或姓名 学生信息 3 变更教师信息 变更信息 教师信息 4 查询教师信息 教师编号或姓名 教师信息 5 变更课程信息 变更信息 课程信息 6 查询课程信息 课程号或课程名 课程信息 7 变更班级信息 变更信息 班级信息 8 查询班级信息 教师编号或课程号 班级信息 9 变更成绩信息 变更信息 成绩信息 10 查询成绩信息 学号或课程号 成绩信息 处理过程 处理过程名 输入数据流 输出数据流 修改教师信息 更改教师信息 修改后的教师信息 修改学生信息 更改学生信息 修改后的学生信息 修改课程信息 更改课程信息 修改后的课程信息 选课 选课信息 选定课程信息 登记成绩 成绩信息 学生所选课程成绩信息 数据维护 各信息表修改信息 修改后的各信息表 二.概念结构设计 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键所在。它是现实世界的一个真实模型,表示自然、直观,又易于理解。根据学生成绩管理的需求分析建立局部和全局ER图,如下所示。 (1)局部E—R设计 由在系统中描述教师实体的相关信息有教师编号、姓名、性别、出生日期、职称、教龄、专业、所属学院、行政职务,设计该实体ER图,如图1所示。 教师 教师编号 姓名 教龄 职称 行政职务 出生日期 专业 性别 所属学院 图1 实体教师局部ER图 由在系统中描述学生实体的相关信息有学号、姓名、性别、出生日期、专业、班级、所属学院,设计该实体ER图,如图2所示: 学生 专业 姓名 性别 班级 所属学院 出生日期 学号 图2 实体学生局部ER图 由在系统中描述课程实体的相关信息有课程号、课程名、学时、学分,设计该实体ER图,如图3所示: 课程 课程号 学分 课程名 学时 图3实体课程局部ER图 由在系统中描述主讲课程实体的相关信息有教师编号、课程号、班级,设计该实体ER图,如图4所示: 主讲课程 教师编号 班级 课程号 图4 实体主讲课程局部ER图 由在系统中描述学生选修实体的相关信息有学号、课程号、成绩,设计该实体ER图,如图5所示: 学生选修 学号 课程号 成绩 图5 实体学生选修局部ER图 (2)系统全局ER图 课程 学生 教师 主讲 选修 讲授 课程号 课程名 学时 学分 成绩 学号 姓名 性别 专业 班级 出生日期 所属学院 班级 教师编号 出生日期 行政职务 姓名 性别 教龄 职称 专业 所属学院 m n m m m n 图6教学管理全局ER图 三.逻辑结构设计 根据系统的需要还要全局ER图向关系模型的转换,要遵循以下规则: 1. E-R图像关系模式转换原则 实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况: m:n联系的转换方法:在向关系模型转换时,一个m:n联系转换为一个关系。转换方法为:与该联系相连的各实体集的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合(该码为多属性构成的组合码)。在学生跟课程之间中,能够将此关系模式改为学生表,课程表和选课表。 1:n联系的转换方法:一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的码以及联系本身的属性组成,而该关系的码为n端实体集的码;另一种方法是在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。 1:1联系的转换方法:将1:1联系转换为一个独立的关系:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。将1:1联系与某一端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体集的码。在班级使用教室的时候,其关系为占用,能够将其实体跟关系设计成三个表,一个班级表,一个教室表和一个占用表。 Er图转化后的关系模式如下: 教师(教师编号,姓名,性别,出生日期,教龄,职称,专业,行政职务,所属学院)主码:教师号 学生(学号,姓名,性别,班级,专业,出生日期,所属学院) 主码:学号 课程(课程号,课程名,学分,学时) 主码:课程号 选修(学号,课程号,成绩)主码:成绩 外码:学号 课程号 主讲(教师编号,课程号,班级)主码:班级 外码:教师编号 课程号 联系实际能够转化的关系表如下面 教师表(教师号,姓名,性别,出生日期,教龄,职称,专业,行政职务,所属学院)主键:教师号 讲授表(教师编号,学号,课程号,教授时间)主键:教师号 班级号 系表(系号,系名,系主任)主键:系号 班级表(班号,班名,班主任,系号)主键:班号 外键:系号 学生表(学号,姓名,性别,班级,专业,年龄,所属学院) 主键:学号 外键:班号 课程表(课程号,课程名,学分,学时)主键:课程号 外键:教师号 选课表(学号,课程号,成绩)主键:学号 课程号 外键:学号 课程号 教室表(教室号,教室名,教室位置)主键:教室号 占用表(班级号,教室号,上课时间,占用学时)主键:班级号 教室号 教师表(教师号,姓名,职称,性别,年龄,工资)主键:教师号 讲授表(教师编号,学号,课程号,教授时间)主键:教师号 班级号 范式判定 1.数据依赖 (1)系表的数据依赖 :{系号->系名,系号->系主任} 3NF (2)班级表的数据依赖:{班号->班名,班号->班主任,班号->系号} 3NF (3)学生表的数据依赖:{学号->姓名,学号->性别,学号->省份,学号->年龄, 学号->班级号,学号->专业} 3NF (4)课程表的数据依赖:{课程号->课程名,课程号->学分,课程号->任课教师号} 3NF (5)选课表的数据依赖:{(学号,课程号)->姓名} 3NF (6)教室表的数据依赖:{教室号->教室名,教室号->教室位置} 3NF (7)占用表的数据依赖:{(班级号,教室号)->上课时间, (班级号,教室号)->占用学时} 3NF (8)教师表的数据依赖:{教师号->姓名,教师号->职称,教师号->性别,教师号->年龄,教师号->工资} 3NF (9)教授表的数据依赖:{(教师,班级号)->授课时间,(班级号,教室号)->课程} 3NF 2.按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖,传递函数依赖,根据各个函数依赖的依赖集可知各个关系模式没有部分函数依赖和传递函数依赖因此所有的关系模式都是属于3NF。 四.功能模块结构设计 (1)教务表信息查询和更新模块 将实现对系部信息的统计操作,方便于对系部基本信息的管理。 (2)学生表的查询和更新模块 将完成学生基本信息的查询、更新(修改、添加、删除)操作,便于对学生信息的集中管理。 (3)课程表的查询和更新模块 将完成课程基本信息的查询、更新(修改、添加、删除)操作,便于对课程信息的集中管理。 (4)选修表的查询和更新模块 将完成对所选课程基本信息的查询、更新(修改、添加、删除)操作,便于对学生选修课程信息的集中管理。 (5)占用表的查询和更新模块 将完成教室基本信息的查询、更新(修改、添加、删除)操作,便于对占用班级信息的集中管理。 (6)教师表的查询和更新模块 将完成教师基本信息的查询、更新(修改、添加、删除)操作,便于对教师信息的集中管理。 (7)讲授表的查询和更新模块 将完成教授基本信息的查询、更新(修改、添加、删除)操作,便于对教师和学生对应信息的集中管理。 系统功能模块图如图7所示 教学管理系统 教师管理系统 学生管理系统 教务管理系统 统计教学工作量 统计教师利用率 学生基本信息 学籍管理系统 教师基本信息 教师排课系统 添加记录 删除记录 修改记录 查询记录 添加记录 删除记录 修改记录 查询记录 按教师编号查找 按姓名查找 按学号查找 按姓名查找 …… …… 图7系统功能模块图 五.主要功能及程序界面说明 首先进入欢迎界面,如图8所示 图8进入页面 点击进入,则进入登录界面。登录界面有用户登录和管理员登录两种方式分别登陆。若是不想进入则能够选择退出,如图9所示 图9 登录界面 若是以用户的身份登录系统,则只能是只读的方式进行查询,而不能修改,因此菜单上面只有查询功能,如图10所示 图10 用户菜单 进入查询功能后,每个查询功能都是以每个实体的编号属性和姓名共同进行个人信息的详细查询,如图11所示是以教师为例的用户查询表单 图11 用户查询界面 退出按钮,则是完全退出整个系统。 若是以管理员的身份进行登录,那么管理员不但拥有比用户更多的查询条件,而且还能够对数据进行翻阅,添加,删除,修改等一些基本更新数据的功能。如图12所示 图12管理员菜单 在管理员菜单中,我们能够看到它比用户菜单多了许多的功能,在教师信息中有教师基本信息的添加,删除,修改,查询等功能。 下面进入管理员管理信息的界面,如图13所示,它有上一条记录,下一条记录,添加记录,修改记录,删除记录。前两个按钮能够对教师信息翻阅,后三个按钮能够对教师信息的更新。如图14所示,它比用户查询多了许多的查询条件,说明管理员比用户的查询条件更大。 图13教师信息变更 图14管理员查询界面 其它表操作与教师表操作与相同,在此不予于细解。 在主菜单中我们还能够点开报表菜单,就能够打开报表,它能够提供给我们打印出来纸质版的东西,以便更好的操作。报表如图15所示 图15 教师报表 六.附:主要代码 主程序 SET TALK OFF CLEAR ALL CLOSE ALL SET SAFETY OFF SET SYSMENU off ZOOM windows screen max SET STATUS bar ON DO FORM 主界面.scx READ event SET SAFETY ON CLOSE DATA SET TALK ON SET SYSMENU TO default CANCEL CLEAR MENUS CLEAR EVENTS 进入 do form 登录界面.scx thisform.release 滚动字幕 闹钟 if this.parent.label1.left+this.parent.label1.width>0 this.parent.label1.left=this.parent.label1.left-3 else this.parent.label1.left=this.parent.label1.width endif 开始 if this.caption="\<S暂停" this.caption="\<S继续" thisform.container1.timer1.enabled=.F. else this.caption="\<S暂停" thisform.container1.timer1.enabled=.T. endif 时间 选项按钮组 if this.value=2 set hours to 12 thisform.container2.label1.visible=.T. else set hours to 24 thisform.container2.label1.visible=.F. endif 闹钟 if hour(datetime())>=12 this.parent.label1.caption="下午:" else this.parent.label1.caption="上午:" endif this.parent.text1.value=substr(ttoc(datetime()),10,8) 管理员登录 a=thisform.text1.value b=thisform.text2.value if a="1" and b="1" do form 主菜单.scx else messagebox(“用户名或密码输入错误,请重新输入!”) endif thisform.release 用户登录 a=thisform.text1.value b=thisform.text2.value if a="1" and b="1" do form 用户菜单.scx else messagebox(“用户名或密码输入错误,请重新输入!”) endif thisform.release 退出 thisform.release 主菜单 do 菜单1.mpr with this,.t. 用户菜单 do 菜单2.mpr with this,.t. 以教师为例的查询代码 教师信息变更 添加记录 append blank thisform.txt教师编号.setfocus thisform.refresh 删除记录 x1=allt(thisform.txt教师编号.value) if empty(x1) messagebox('请先选择删除的记录!',48,'温馨提示') else if messagebox("确定要删除吗?记录将不能恢复!",32+1+256,'温馨提示')=1 use 教师.dbf delete for allt(教师.教师编号)==x1 pack mand4.setfocus thisform.refresh endif endif 修改记录 edit thisform.refresh 上一条记录 IF BOF() GO bottom ELSE skip-1 ENDIF thisform.Refresh 下一条记录 IF EOF() GO top ELSE SKIP ENDIF thisform.Refresh 管理员查询 下拉框条件代码 PUBLIC temp &&表单的Combo Box控件设置了下拉列表框 thisform.Combo1.AddItem("所有") thisform.Combo1.AddItem("教师编号") thisform.Combo1.AddItem("姓名") thisform.Combo1.AddItem("性别") thisform.Combo1.AddItem("专业") thisform.Combo1.AddItem("教龄") thisform.Combo1.AddItem("学院") thisform.Combo1.AddItem("职称") thisform.Combo1.AddItem("职务") thisform.Combo1.Value=1 查询代码 IF bo1.Text="所有" thisform.grid5.RecordSource="SELECT * From 教师; order by 教师编号; INTO CURSOR temp" ENDIF IF bo1.Text="教师编号" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.教师编号)=ALLTRIM(thisform.text1.Value); order by 教师编号; INTO CURSOR temp" ENDIF IF bo1.Text="姓名" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.姓名)=ALLTRIM(thisform.text1.Value); order by 姓名; INTO CURSOR temp" ENDIF IF bo1.Text="性别" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.性别)=ALLTRIM(thisform.text1.Value); order by 性别; INTO CURSOR temp" ENDIF IF bo1.Text="出生日期" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.出生日期)=ALLTRIM(thisform.text1.Value); order by 出生日期; INTO CURSOR temp" ENDIF IF bo1.Text="专业" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.专业)=ALLTRIM(thisform.text1.Value); order by 专业; INTO CURSOR temp" ENDIF IF bo1.Text="教龄" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.教龄)=ALLTRIM(thisform.text1.Value); order by 教龄; INTO CURSOR temp" ENDIF IF bo1.Text="学院" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.学院)=ALLTRIM(thisform.text1.Value); order by 学院; INTO CURSOR temp" ENDIF IF bo1.Text="职称" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.职称)=ALLTRIM(thisform.text1.Value); order by 职称; INTO CURSOR temp" ENDIF IF bo1.Text="职务" thisform.grid5.RecordSource="SELECT * From 教师; WHERE ALLTRIM(教师.职务)=ALLTRIM(thisform.text1.Value); order by 职务; INTO CURSOR temp" ENDIF 用户查询 thisform.grd教师.RecordSource="SELECT * From 教师; WHERE ALLTrim(教师.教师编号)=ALLTrim(thisform.text1.Value)and ALLTrim(教师.姓名)=ALLTrim(thisform.text2.Value); INTO CURSOR temp" 报表过程 select * from 教师 into cursor tmp select tmp report form 教师 to print preview close all 学生代码,课程代码,主讲课程代码,学生选修代码与教师代码类似。 七. 总结 1.设计方案的主要优点及不足 这个设计方案能够基本上实现对教学的基本管理,而且使用也是直观明了,能够方便用户和管理员使用,因为它并不需要使用者懂得太多的数据库知识,哪怕是完全的小白也是能够使用的。因为此次课程设计时间比较短,再加上自己是初学者,犯错误的地方不少。因此此次课程设计的较为简单对于一些比较高端的操作并没有实现。因此我还得继续努力,之后我会继续完善该教学管理系统。 2.收获及建议 在这次课程设计中,我从一个完全不懂数据库和vf的小白称为了一个知道些许知识的初学者。在做教学管理系统期间,我首先经过自己独立去做系统,然后去查阅资料,努力去完成此次设计。可是在这过程中依然遇到了难点,我向知心漂亮老师和团结友善同学寻找帮助,最终我获得了成功,完成了此次课程设计。 这次课程设计使我懂得一个人想要获得成功必须拥有以下3点 1. 要坚持,必须朝着目标不懈的努力。 2. 要独立,只有学会独立才能让自己牢记所遇到的困难,知道如何去解决它。 3. 要合作,一个人拥有了上面两点。若是没有合作,那么你就有可能钻进牛角尖而出不来,找不到另一种方法去解决它。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服