




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.数 据 库 原 理课 程 设 计 任 务 书班级: 计软11-1班 学号: 1106120111 姓名: 刘兆炜 成绩: 电子与信息工程学院计算机科学系题目名称 某中学的排课管理系统系统概述排课管理系统属于数字化校园系统的一部分。它依靠计算机来完成复杂的排课部分,避免了手工排课产生的老师上课时间冲突和教室冲突。本系统用的前台开发语言是VB,SQL SERVER做后台数据库。重点介绍自动排课系统的设计构思和实现过程。排课是教学管理中一项重要而且复杂的基本工作,其实质就是为学校所设置的课程安排一组适当的教学时间与空间(教室),从而使整个教学活动能够有计划、有秩序地进行。在中学中,排课具有很多的约
2、束条件,其中包括教室、班级、学生、课程上课时间等多种因素,结构和过程也相当复杂,课程表的编排及管理是高校教学管理工作中最为基本又极其重要的一项工作。基于目前排课管理系统存在的问题,为了实现科学合理排课,充分利用教学资源,研究与实现适合我国教学的智能化、人性化的排课管理系统就显得尤为重要。本系统是针对中学教育教学的特点而开发设计的,实现了班级、课程等基本信息的管理,学生、教师信息的管理,班级课程及课程的任课教师和排课管理,课表查询统计等功能模块的设计。通过测试与运行,表明系统能满足成教教学工作实际需求且编码简单,并为类似的问题提供了一种可行的解决方案。系统的实施对合理利用成教有限的教学资源,保障
3、正常的教学秩序和提高教学管理水平发挥了重要作用。系统功能模块设计(画出功能模块图,并对每个模块功能简单说明)排课管理系统教师学生信息管理教师信息管理课程信息管理学生信息管理学生课表生成学生信息查询教师课表查询教师信息查询本系统主要实现教师学生信息管理、教师信息管理、学生信息管理、课程信息管理,其中教师信息管理有教师姓名、教师工号、教师职称、教师所属单位;学生信息管理有学生姓名、学生学号和学生所在年级;课程信息管理有课程名称、学分、上课地点、已选人数、课程性质、开课班级、课程人数等。(1)教师学生信息管理是由管理员对教师和学生的基本信息进行修改、删除、新增等功能,实现非本人的操作。(2)学生信息
4、模块完成学生的登陆,然后根据各位同学所在的系不同,调出相应的课程模块。其中学生登录模块的功能是验证登录人员确实是本校的学生,学生启动本系统后,系统提示输入学生学号码和密码,验证后进入主控操作界面。(3)教师信息模块完成教师的登陆,然后根据各位教师所在的单位不同,教师所教的课程不同,调出要排课的课程。其中教师登陆模块的功能是验证登录人员确实是本校的教师,教师启动本系统后,系统提示输入教师工号和密码,验证后进入主控操作界面。(4)课程信息管理包括必修课程和选修课程,学生必需先登陆才能进行对课程查询。管理员可以通过超级用户身份登录,对系统进行全面的管理,对新用户的添加,删除,对信息进行管理。管理员可
5、以对老师及同学的帐户进行管理,老师、学生不同身份的用户进入不同的界面,进行不同的操作。教师可以发布自己本学期所要教的课程。同学可以通过查询本学期所开设课程进行了解课程安排。数据库概念结构设计(画出ER图)mn1n1n11教师课程学生主讲学习指导教师姓名教师工号教师职称所属单位课程名臣、学分上课地点课程人数学号姓名性别上课时间年龄成绩课程号班级属于班级名称班级人数任课教师课程号数据库逻辑结构设计(确定每个关系模式及其主外键,并根据规范化理论进行优化)教师(教师工号,教师姓名,教师职称,所属单位) 教师工号为主键 学生(学号,姓名,性别,年龄) 学号为主键 课程(课程号,课程名,学分,上课地点,上
6、课时间,任课教师,课程人数) 课程号为主键班级(班级名称,班级人数) 班级名称为主键学习(学号,课程号,成绩) 学号和课程号作为联合主键7.5数据库物理设计(数据库中每个表结构以数据字典表形式给出,为哪个表建立了何种索引要加以说明,如果使用视图、存储过程、触发器等可用SQL脚本提供)学生表Student字段名字段类型是否为小数是否主键是否为空是否外键备注SnoIDChar(10)否是否否否SnameIDChar(20)否否否否uniqueSsexChar(2)否否否否否SageSMALLINT否否否否否SgradeChar(20)否否否否否班级表 class字段名字段类型是否为小数是否主键是否
7、为空是否外键备注Cl_nameIDChar(10)否是否否班级名称Cl_numChar(5)否否否否班级人数课程表 lesson 字段名字段类型是否为小数是否主键是否为空是否外键备注Les_nameIDChar(20)否是否否课程名称Les_tcnameIDChar(8)否否否否老师名称Les_numChar(4)否否否否每周课时数Rom_typeChar(2)否否否否教室类型Cl_nameChar(10)否否否是班级名称教室表 classroom字段名字段类型是否为小数是否主键是否为空是否外键备注Rom_nameIDChar(10)否是否否教室名称Rom_numint(10)否否否否教室座位
8、数Rom_typeChar(2)否否否是教室类型各班周课程表 字段名字段类型是否为小数是否主键是否可以为空是否外键备注TimeIDChar(10)否是是否如上午一二节MonChar(20)否否是否星期一课程Tc1Char(8)否否是否该课程老师名字Rom1Char 5否否是否该课程安排的教室TusChar(20)否否是否星期二课程Tc2Char(8)否否是否该课程老师名字Rom2Char 5否否是否该课程安排的教室WedChar(20)否否是否星期三课程Tc3Char(8)否否是否该课程老师名字Rom3Char 5否否是否该课程安排的教室TesChar(20)否否是否星期四课程Tc4Char(
9、8)否否是否该课程老师名字Rom4Char 5否否是否该课程安排的教室FriChar(20)否否是否星期五课程Tc5Char(8)否否是否该课程老师名字Rom5Char 5否否是否该课程安排的教室各老师周课程时间安排表 字段名字段类型是否为小数是否主键是否为空是否外键备注TimeIDChar 2否是否否如上午一二节MonVarchar 50否否否否星期一课程TusVarchar 50否否否否星期二课程WedVarchar 50否否否否星期三课程TesVarchar 50否否否否星期四课程FriVarchar 50否否否否星期五课程排课算法中的主要的冲突是教室冲突和教室冲突。我将再通过存储过程的
10、来解决这样的冲突,下面介绍一学期16周,某一门课程32课时为例。存储过程名为DetectArrangeCollisionCREATE PROCEDURE DetectArrangeCollisionSureCourseID int,RoomID int,TimeID int,TermID intasdeclare Arrange_id intdeclare UserID char(10) select UserID=ChooseCourse.UserID from Timetabel inner join ChooseCourse on Timetabel.SureCourseID=Choos
11、eCourse.SureCourseIDwhere ChooseCourse.SureCourseID=SureCourseIDselect Arrange_id=Arrange_id from Timetabel where(RoomID=RoomIDand TimeID=TimeID) or ( Timetabel.SureCourseID in (select SureCourseID from ChooseCourse where UserID=UserID)and TimeID=TimeID ) /*检查教室和教师冲突*/if Arrange_id nullbeginselect *
12、 from Timetabel where Arrange_id=Arrange_id /*查询出数据*/endelse begin declare currentID int select currentID=count(*) from Timetabel where SureCourseID= SureCourseID and TermID= TermID if ( currentID 0 Then rs.AddNew rs!csjname = strTxt rs.Update End If Next lcnt CanSave (False)Case 2: For lcnt = 0 To
13、9 Txt(lcnt) = str(lcnt) Next lcnt CanSave (False) End SelectExit Subex:MsgBox database error, vbOKOnly + vbExclamation, errorEnd Sub2 .教师入库信息模块设计 本模块主要对教师信息的录入,以便清楚知道教师的情况,所以教师管理这个模块是比不可少的。光对教师的资料了解便清楚知道,某个老师是能胜任的课程。本模块主要界面如下所示:主要代码如下所示:Private Sub Command2_Click(Index As Integer)On Error GoTo errDe
14、alIf Index = 0 Or Index = 2 Then CanSave (True)Else CanSave (False)End IfSelect Case IndexCase 0: rs.AddNew Call toNullCase 1: j = MsgBox(你确定要删除本记录吗?, vbYesNo + vbQuestion, 删除) If j = vbYes Then rs.Delete Call toNull End IfCase 2:rs.Deleters.AddNewCase 3: If Len(LTrim$(RTrim$(Text1(0).Text) 0 Then r
15、s.AddNew For i = 0 To 2 If Len(LTrim$(RTrim$(Text1(i).Text) 0 Then rs.Fields(i) = Text1(i).Text End If Next i rs.Update Else MsgBox 姓名不得为空, vbOKOnly + vbExclamation, Error End IfCase 4: For i = 0 To 2 Text1(i).Text = strBak(i) Next i Call Command2_Click(3) End SelectExit SuberrDeal:MsgBox database E
16、rror, vbExclamation + vbOKOnly, errorokEnd:End Sub3 .课程安排管理模块设计 本模块可以安排一个星期五天的课程,教师可以根据实际情况制定课程表,并可安排任课老师的安排,课程的安排方便课程查询时需要。以便及时发现错误能及时修改。下面的年级班数,可以根据实际情况而定。 本模块界面如下图所示:主要代码如下所示:Private Sub cb_Click(Index As Integer)Me.MousePointer = 11On Error GoTo errDealSelect Case IndexCase 0: ClassCode = Trim(C
17、ombo1(0).Text) & . & Trim(Combo1(1).Text) If Len(Trim(Combo1(0).Text) 0 And Len(ClassCode) 1 Then Call displayInfo cb(1).Enabled = True End IfCase 1: cb_Click (0) EnableSave (True) cb(1).Enabled = False Case 2: If TrChanged Then strSql = delete * from trclass where cclasscode= & ClassCode & conn.Exe
18、cute strSql Dim strTrName As String For i = 0 To sjCnt - 1 strTrName = Trim(Combo2(i).Text) If Len(strTrName) 0 Then strSql = insert into trclass values( & ClassCode & , + + Trim(Label2(i).Caption) + , + + Trim(Combo2(i).Text) + ) me.caption = strSql conn.Execute strSql End If Next i TrChanged = Fal
19、se rsTrAry.Requery cb(1).Enabled = False End If If ClassChanged Then conn.Execute delete * from classarray where cclasscode= & ClassCode & Dim X, Y As Integer For i = 0 To 49 Y = i Mod 5 + 1 X = Int(i / 5) + 1 If Len(Trim(Combo3(i).Text) 0 Then strSql = insert into classarray values( & ClassCode & ,
20、 & Y & , & X & , & Trim(Combo3(i).Text) & ) me.caption = strSql conn.Execute strSql End If Next i ClassChanged = False rsClassAry.Requery End If EnableSave (False) Case 3: For i = 0 To sjCnt - 1 Combo2(i).Text = Combo2(i).Tag Next i For i = 0 To 49 Combo3(i).Text = Combo3(i).Tag Next i EnableSave (F
21、alse) cb(1).Enabled = False End SelectGoTo okerrDeal:MsgBox Error Unknownok:Me.MousePointer = 0End Sub4 .课程查询模块设计 本模块主要是方便学生及教师能很快的查询,什么时间该上什么课,由哪个老师上等信息。本模块界面图如下所示:主要代码如下所示:Private Sub Command1_Click()On Error GoTo bnEndMe.MousePointer = 11Dim sSql As StringDim dgUse As DataGetSelect Case IndexCase 0: Call ClearCombo strName = LTrim$(RTrim$(Combo1.Text) If Len(strName) 0 Then sSql = strSql & & s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国舒敏精油数据监测研究报告
- 2025至2030年中国自动尿囊液收获机数据监测研究报告
- 二零二五年度区块链技术应用对赌协议风险评估与商业模式合同
- 二零二五年度金融债权转让合同纠纷争议解决与调解员培训合同
- 二零二五年度个人生物科技投资合同
- 2025至2030年中国纺纱管数据监测研究报告
- 二零二五年度政府机关专用安保与保安劳务派遣合同
- 2025年度隧道工程施工进度合同
- 2025年度民事起诉状合同纠纷在线调解平台使用合同
- 二零二五年度欧派定制衣柜售后服务及客户关系管理合同
- 最全麦当劳员工手册
- 洁净室管理培训
- 城镇详细设计控制性详细规划
- 晶体学之晶体的宏观对称PPT课件
- 质量管理体系过程识别矩阵图及与条款对照表
- 加班调休单(最新版)
- 智慧金字塔立体篇第四册、第五册答案全解
- 导论公共财政学概论.ppt
- 2022年人力资源管理师课程表
- 梦中的婚礼钢琴简谱(共6页)
- 新生儿心理的发生
评论
0/150
提交评论