某中学的排课管理系统数据库原理课程设计任务书_第1页
某中学的排课管理系统数据库原理课程设计任务书_第2页
某中学的排课管理系统数据库原理课程设计任务书_第3页
某中学的排课管理系统数据库原理课程设计任务书_第4页
某中学的排课管理系统数据库原理课程设计任务书_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理课程设计任务书PAGE21数据库原理课程设计任务书班级:学号:姓名:成绩:电子与信息工程学院计算机科学系题目名称某中学的排课管理系统系统概述排课管理系统属于数字化校园系统的一部分。它依靠计算机来完成复杂的排课部分,避免了手工排课产生的老师上课时间冲突和教室冲突。本系统用的前台开发语言是VB,SQLSERVER做后台数据库。重点介绍自动排课系统的设计构思和实现过程。排课是教学管理中一项重要而且复杂的基本工作,其实质就是为学校所设置的课程安排一组适当的教学时间与空间(教室),从而使整个教学活动能够有计划、有秩序地进行。在中学中,排课具有很多的约束条件,其中包括教室、班级、学生、课程上课时间等多种因素,结构和过程也相当复杂,课程表的编排及管理是高校教学管理工作中最为基本又极其重要的一项工作。基于目前排课管理系统存在的问题,为了实现科学合理排课,充分利用教学资源,研究与实现适合我国教学的智能化、人性化的排课管理系统就显得尤为重要。本系统是针对中学教育教学的特点而开发设计的,实现了班级、课程等基本信息的管理,学生、教师信息的管理,班级课程及课程的任课教师和排课管理,课表查询统计等功能模块的设计。通过测试与运行,表明系统能满足成教教学工作实际需求且编码简单,并为类似的问题提供了一种可行的解决方案。系统的实施对合理利用成教有限的教学资源,保障正常的教学秩序和提高教学管理水平发挥了重要作用。系统功能模块设计(画出功能模块图,并对每个模块功能简单说明)排课管理系统排课管理系统教师学生信息管理教师信息管理课程信息管理学生信息管理学生课表生成学生信息查询教师课表查询教师信息查询本系统主要实现教师学生信息管理、教师信息管理、学生信息管理、课程信息管理,其中教师信息管理有教师姓名、教师工号、教师职称、教师所属单位;学生信息管理有学生姓名、学生学号和学生所在年级;课程信息管理有课程名称、学分、上课地点、已选人数、课程性质、开课班级、课程人数等。(1)教师学生信息管理是由管理员对教师和学生的基本信息进行修改、删除、新增等功能,实现非本人的操作。(2)学生信息模块完成学生的登陆,然后根据各位同学所在的系不同,调出相应的课程模块。其中学生登录模块的功能是验证登录人员确实是本校的学生,学生启动本系统后,系统提示输入学生学号码和密码,验证后进入主控操作界面。(3)教师信息模块完成教师的登陆,然后根据各位教师所在的单位不同,教师所教的课程不同,调出要排课的课程。其中教师登陆模块的功能是验证登录人员确实是本校的教师,教师启动本系统后,系统提示输入教师工号和密码,验证后进入主控操作界面。(4)课程信息管理包括必修课程和选修课程,学生必需先登陆才能进行对课程查询。管理员可以通过超级用户身份登录,对系统进行全面的管理,对新用户的添加,删除,对信息进行管理。管理员可以对老师及同学的帐户进行管理,老师、学生不同身份的用户进入不同的界面,进行不同的操作。教师可以发布自己本学期所要教的课程。同学可以通过查询本学期所开设课程进行了解课程安排。数据库概念结构设计(画出E-R图)mn1n1n11教师课程学生主讲学习指导教师姓名mn1n1n11教师课程学生主讲学习指导教师姓名教师工号教师职称所属单位课程名臣、学分上课地点课程人数学号姓名性别上课时间年龄成绩课程号班级属于班级名称班级人数任课教师课程号数据库逻辑结构设计(确定每个关系模式及其主外键,并根据规范化理论进行优化)教师(教师工号,教师姓名,教师职称,所属单位)教师工号为主键学生(学号,姓名,性别,年龄)学号为主键课程(课程号,课程名,学分,上课地点,上课时间,任课教师,课程人数)课程号为主键班级(班级名称,班级人数)班级名称为主键学习(学号,课程号,成绩)学号和课程号作为联合主键7.5数据库物理设计(数据库中每个表结构以数据字典表形式给出,为哪个表建立了何种索引要加以说明,如果使用视图、存储过程、触发器等可用SQL脚本提供)学生表Student字段名字段类型是否为小数是否主键是否为空是否外键备注SnoIDChar(10)否是否否否SnameIDChar(20)否否否否uniqueSsexChar(2)否否否否否SageSMALLINT否否否否否SgradeChar(20)否否否否否班级表class字段名字段类型是否为小数是否主键是否为空是否外键备注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)否否否否教室座位数Rom_typeChar(2)否否否是教室类型各班周课程表字段名字段类型是否为小数是否主键是否可以为空是否外键备注TimeIDChar(10)否是是否如上午一二节MonChar(20)否否是否星期一课程Tc1Char(8)否否是否该课程老师名字Rom1Char5否否是否该课程安排的教室TusChar(20)否否是否星期二课程Tc2Char(8)否否是否该课程老师名字Rom2Char5否否是否该课程安排的教室WedChar(20)否否是否星期三课程Tc3Char(8)否否是否该课程老师名字Rom3Char5否否是否该课程安排的教室TesChar(20)否否是否星期四课程Tc4Char(8)否否是否该课程老师名字Rom4Char5否否是否该课程安排的教室FriChar(20)否否是否星期五课程Tc5Char(8)否否是否该课程老师名字Rom5Char5否否是否该课程安排的教室

各老师周课程时间安排表字段名字段类型是否为小数是否主键是否为空是否外键备注TimeIDChar2否是否否如上午一二节MonVarchar50否否否否星期一课程TusVarchar50否否否否星期二课程WedVarchar50否否否否星期三课程TesVarchar50否否否否星期四课程FriVarchar50否否否否星期五课程

排课算法中的主要的冲突是教室冲突和教室冲突。我将再通过存储过程的来解决这样的冲突,下面介绍一学期16周,某一门课程32课时为例。存储过程名为DetectArrangeCollisionCREATEPROCEDUREDetectArrangeCollision@SureCourseIDint,@RoomIDint,@TimeIDint,@TermIDintasdeclare@Arrange_idintdeclare@UserIDchar(10)select@UserID=ChooseCourse.UserIDfromTimetabelinnerjoinChooseCourseonTimetabel.SureCourseID=ChooseCourse.SureCourseIDwhereChooseCourse.SureCourseID=@SureCourseIDselect@Arrange_id=Arrange_idfromTimetabelwhere((RoomID=@RoomIDandTimeID=@TimeID)or(Timetabel.SureCourseIDin(selectSureCourseIDfromChooseCoursewhereUserID=@UserID)andTimeID=@TimeID))/*检查教室和教师冲突*/if@Arrange_id<>nullbeginselect*fromTimetabelwhereArrange_id=@Arrange_id/*查询出数据*/endelsebegindeclare@currentIDintselect@currentID=count(*)fromTimetabelwhereSureCourseID=@SureCourseIDandTermID=@TermIDif(@currentID<=0)/*查看数据库中是否有重复*/insertintoTimetabelvalues(@TermID,@SureCourseID,@RoomID,@TimeID)select*fromTimetabelwhereArrange_id=0endGO程序运行环境和开发环境系统开发环境包括硬件平台和软件平台两种。硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高,比较经济,只要配备有PII300处理器(或以上)、64M内存(或以上)、20G硬(或以上)的普通微机即可顺利运行。软件平台是指系统开发与运行的软件环境。本系统在开发时选用了稳定性较强的WindowsXP和VisualBasic6.0作为开发语言,同时选用了SQLSERVER2000数据库,由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。VisualBasic6.0具有可视化的开发环境,可以快速完成系统的开发,内部集成的数据库访问通道,使得可以轻松方便的对数据库管理。数据库采用MICROSOFTSQLServer2000,并且它所支持的数据类型十分丰富,维护简便,费用较低,容易升级。主要模块程序流程图1系统总体模块分析如下开始开始输入各类信息,进行信息管理输入各类信息,进行信息管理输入排课所需的信息,进行排课输入排课所需的信息,进行排课输出已排课表输出已排课表结束结束开始开始出现登陆界面出现登陆界面学生登陆管理员登陆教师登陆学生登陆管理员登陆教师登陆登陆后注销登陆后注销结束结束结束结束2登陆子模块分析如下结束登录校验成功?用户进入功能界面用户输入用户名、密码,选择自己的角色用户进入登陆界面开始结束登录校验成功?用户进入功能界面用户输入用户名、密码,选择自己的角色用户进入登陆界面开始NNYY3管理员子模块分析如下根据需要删除信息信息存在?结束输入关键字查询管理员添加信息开始根据需要删除信息信息存在?结束输入关键字查询管理员添加信息开始NNYY4教师子模块分析如下结束教师进入功能界面,查看课程表教师输入用户名、密码开始结束教师进入功能界面,查看课程表教师输入用户名、密码开始5注销子模块分析如下结束返回登录界面登陆完毕,注销用户输入用户名、密码,选择自己的角色用户进入登陆界面开始结束返回登录界面登陆完毕,注销用户输入用户名、密码,选择自己的角色用户进入登陆界面开始主要功能实现的程序段1.本学期课程设置模块设计本系统只提供最多十门的课程设置,用户可以根据自己的实际需要来编排里面的课程内容,对于中学来说,十门应该足够了。本模块界面如下所示:主要代码如下所示:PrivateSubcn_Click(IndexAsInteger)'OnErrorGoToex:DimlcntAsIntegerDimstrTxtAsStringSelectCaseIndexCase0:CanSave(True)Case1:con.Execute("delete*fromsubject")Forlcnt=0To9strTxt=Trim$(LTrim$(Txt(lcnt).Text))IfLen(strTxt)>0Thenrs.AddNewrs!csjname=strTxtrs.UpdateEndIfNextlcntCanSave(False)Case2:Forlcnt=0To9Txt(lcnt)=str(lcnt)NextlcntCanSave(False)EndSelectExitSubex:MsgBox"databaseerror",vbOKOnly+vbExclamation,"error"EndSub2.教师入库信息模块设计本模块主要对教师信息的录入,以便清楚知道教师的情况,所以教师管理这个模块是比不可少的。光对教师的资料了解便清楚知道,某个老师是能胜任的课程。本模块主要界面如下所示:主要代码如下所示:PrivateSubCommand2_Click(IndexAsInteger)OnErrorGoToerrDealIfIndex=0OrIndex=2ThenCanSave(True)ElseCanSave(False)EndIfSelectCaseIndexCase0:rs.AddNewCalltoNullCase1:j=MsgBox("你确定要删除本记录吗?",vbYesNo+vbQuestion,"删除")Ifj=vbYesThenrs.DeleteCalltoNullEndIfCase2:rs.Deleters.AddNewCase3:IfLen(LTrim$(RTrim$(Text1(0).Text)))>0Then'rs.AddNewFori=0To2IfLen(LTrim$(RTrim$(Text1(i).Text)))>0Thenrs.Fields(i)=Text1(i).TextEndIfNextirs.UpdateElseMsgBox"姓名不得为空",vbOKOnly+vbExclamation,"Error"EndIfCase4:Fori=0To2Text1(i).Text=strBak(i)NextiCallCommand2_Click(3)EndSelectExitSuberrDeal:MsgBox"databaseError",vbExclamation+vbOKOnly,"error"'okEnd:EndSub3.课程安排管理模块设计本模块可以安排一个星期五天的课程,教师可以根据实际情况制定课程表,并可安排任课老师的安排,课程的安排方便课程查询时需要。以便及时发现错误能及时修改。下面的年级班数,可以根据实际情况而定。本模块界面如下图所示:主要代码如下所示:PrivateSubcb_Click(IndexAsInteger)Me.MousePointer=11OnErrorGoToerrDealSelectCaseIndexCase0:ClassCode=Trim(Combo1(0).Text)&"."&Trim(Combo1(1).Text)IfLen(Trim(Combo1(0).Text))>0AndLen(ClassCode)>1ThenCalldisplayInfocb(1).Enabled=TrueEndIfCase1:cb_Click(0)EnableSave(True)cb(1).Enabled=FalseCase2:IfTrChangedThenstrSql="delete*fromtrclasswherecclasscode='"&ClassCode&"'"conn.ExecutestrSqlDimstrTrNameAsStringFori=0TosjCnt-1strTrName=Trim(Combo2(i).Text)IfLen(strTrName)>0ThenstrSql="insertintotrclassvalues('"&ClassCode&"',"+"'"+Trim(Label2(i).Caption)+"',"+"'"+Trim(Combo2(i).Text)+"')"'me.caption=strSqlconn.ExecutestrSqlEndIfNextiTrChanged=FalsersTrAry.Requerycb(1).Enabled=FalseEndIfIfClassChangedThenconn.Execute"delete*fromclassarraywherecclasscode='"&ClassCode&"'"DimX,YAsIntegerFori=0To49Y=iMod5+1X=Int(i/5)+1IfLen(Trim(Combo3(i).Text))>0ThenstrSql="insertintoclassarrayvalues('"&ClassCode&"',"&Y&","&X&",'"&Trim(Combo3(i).Text)&"')"'me.caption=strSqlconn.ExecutestrSqlEndIfNextiClassChanged=FalsersClassAry.RequeryEndIfEnableSave(False)Case3:Fori=0TosjCnt-1Combo2(i).Text=Combo2(i).TagNextiFori=0To49Combo3(i).Text=Combo3(i).TagNextiEnableSave(False)cb(1).Enabled=FalseEndSelectGoTookerrDeal:MsgBox"ErrorUnknown"ok:Me.MousePointer=0EndSub4.课程查询模块设计本模块主要是方便学生及教师能很快的查询,什么时间该上什么课,由哪个老师上等信息。本模块界面图如下所示:主要代码如下所示:PrivateSubCommand1_Click()OnErrorGoTobnEndMe.MousePointer=11DimsSqlAsStringDimdgUseAsDataGet'SelectCaseIndex'Case0:CallClearCombostrName=LTrim$(RTrim$(Combo1.Text))IfLen(strName)>0ThensSql=strSql&"'"&st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论