ImageVerifierCode 换一换
格式:DOC , 页数:30 ,大小:283.50KB ,
资源ID:11250462      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11250462.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(学分制管理下的计算机排课系统论文.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

学分制管理下的计算机排课系统论文.doc

1、学士学位毕业论文 目 录 摘要 1 1 软件需求分析 2 1.1需求背景 2 1.1.1 系统环境 2 1.1.2系统功能 3 1.1.3用户特征 3 1.1.4假设与前提条件 3 1.1.5限制与约束 3 1.2可行性分析 4 1.2.1经济可行性分析 4 2系统分析 4 2.1系统结构分析 4 2.1.1定义 4 2.1.2客户信息管理模块 4 2.1.3总体功能图 5 2.1.4编程平台 5 2.2数据库设计 6 2.2.1数据库选用 6 2.2.2数据源命名规则 6 2.2.3表设计 6 2.3功能分析 7 2.3.1静态数据录入

2、模块 7 2.3.2生成选课排课表模块 7 2.3.3录入信息浏览模块 7 2.3.4教师课表查询 7 2.3.5院系备选课表查询模块 7 2.3.6手动修改模块 7 3系统实现 8 3.1关于生成排课表单的算法描述 8 3.1.1要解决的主要问题 8 3.1.2安排课程的上课时间 9 3.1.3为老师安排课时 16 3.1.4安排教室 18 3.2关于手动修改排课表模块 18 3.2.1排课表查询 18 3.2.2冲突情况查询 19 3.2.3手动修改排课表单 19 4结束语 19 参考文献 20 学分制管理下的计算机排课系统设计 【摘要】本

3、系统旨在综合课程、课时、教员、教室等各种教务信息,通过计算机为高校学分制体系自动生成排课表单。由于问题的复杂性,我们着重解决了为保证教学计划的课时冲突问题和安排教师的问题,抓住了问题的主要矛盾,加深了对学分制下排课系统的研究。 【关键字】教务,排课系统,学分制 The Analysis and Design of System for the Courses Arranging 【Abstract】The Course Arranging System’s aim is making use of hundreds of educational admin

4、istration information of courses, teachers, classrooms and coursetime to arrange courses automatically. Because of this problem’s complexity, we tried our best to ensure teaching plans be executed. Therefore this problem could be settled more successfully under the credit hour system. 【Keyword】

5、Educational Administration, Course Arranging System, Credit Hour System 1 软件需求分析 1.1需求背景 1.1.1 系统环境 现代大学的学科设置越来越科学,大学的学习方式也在不断的更新,许多国内的大学开始向国际化方向发展,采用学分制的管理系统。然而,要采用这样一种先进的模式,首先要面对就是学生选课时所依据的排课表该如何生成的问题。在以往的教学管理中,许多高校只能通过人工的方式生成。伴随着学科范围的不断扩大,各个院系的学科科目也越来越多,庞大的课时、教员、教室信息令学校的教务安排人员眼花缭乱,无法迅速、高效

6、地完成排课任务。 学分制下的排课系统的主要任务是把各系或各授课部门的课程申请进行汇总,然后根据教学计划或教学环节制订全校各班级的课表。为了使课表的编排更准确、合理、快速,各高校先后开发出一些适用的排课软件系统。我们发现这些软件有以下不足: (1) 每个学期的课程、教师、教室信息相对固定,但却不能被重用。 (2) 自动排课速度较慢。 (3)冲突现象仍然十分严重,需要大量的手工操作。 为了解决这些问题,充分利用学校的人力资源,我校教务处决定自行开发排课系统软件,以便为教务处的教学管理工作提供更大方便。 1.1.2系统功能 本系统的主要功能是利用已知的课程、教员、科目、教室、学员人数等

7、信息排出合理的课程时间表,使各院系的学生都能根据自己的意愿和学院的指导要求排出课表,尽量避免课时冲突,达到学校、老师、学生的要求。 1.1.3用户特征 一般来说,学校里参与排课的工作人员在计算机的操作水平上参差不齐,这就要求产品的界面友好,使用方便,简单明了,以帮助教务管理人员快速学习产品的操作方式,完成排课工作。 1.1.4假设与前提条件 (1)各门课程的选课人数的大致范围已知。 (2)各门课程可选的老师人数已知。 (3)考虑到在实际的选课过程之中,虽然学生们对各个老师的偏好不同,但影响学生做出选择的主要因素是上一年级学生的评价,因此,老师们在各年度中的受欢迎程度较为一致。在实际

8、操作过程中,我们发现教学时间较长的资深老师往往更加受欢迎。因而我们假定根据资深程度和所承担的其他工作的多寡可以将老师分成不同类别,为方便操作,建议分成三类:普通老师、授课较少的老师、授课较多的老师。 (4)教学使用的教室已知。 (5)在学分制的管理系统下,高校一般将课程分成四类:公共课(基础课)和专业课专业限选课和任意选修课。并且为了避免出现混乱,各院系都会出台指导性的各年级课程安排表,以指导学生选修相应的课程。为使选课排课表能照顾各专业各年级的课程安排,我们要求负责排课的人员能够得到院系的年级课程安排表。 1.1.5限制与约束 在实际工作中,由于排课工作所需工作人员的数量不多,在当前

9、环境下还不需要使用网络化的操作方式,因而本产品采用单机模式。 1.2可行性分析 1.2.1经济可行性分析 硬件:PC机:每台1.0万 其它:0.3万 软件:操作系统:0.6万 数据库: 2.0万 应用软件开发费: 6.0万 其它软件费用为8.4万 该方案成本适中,性能很好,能够满足用户的需要。 2系统分析 2.1系统结构分析 2.1.1定义 处理框 打印机 条件框 实体框

10、 数据库 2.1.2客户信息管理模块 管理员 普通用户 排课系统管理模块 维护? 数据库 查询? 显示设备 打印机 退出 否 是(屏蔽普通用户) 否 否 是 图1 2.1.3总体功能图 系统总体结构图如图1所示: 学分制管理下的计算机排课系统 静态数据录入 生成选课排课表 录入信息查询 教师课表查询 院系备选课表查询 手动修改管理

11、 图2 2.1.4编程平台 可以使用的几种编程语言: (1)Visual C++:功能强大,性能较高,与机器语言的速度接近,语法灵活度大,支持COM编程;自动化较低,编程难度大,出错时可能引起系统崩溃。 (2)Delphi:专门为数据库操作进行了优化,对数据库的支持较好,支持COM编程;其中的Professional(专业)版,面向专业开发人员、技术顾问等,除了标准版的所有特性外,还包括VCL源码、数据库Explore、Install Shield Express、商业数据库应用程序、COM/ActiveX应用和Internet/Web应用系统。但其速度较慢,对C

12、OM的支持度不够高,由于对API进行了重新封装,某些功能与系统不能很好的兼容,程序调试功能较弱,出错时可能引起系统崩溃。 (3)Visual Basic:自动化较高,专用于中小型商用软件编程,代码速度接近Visual C++(有时甚至高于),很好的支持了COM编程及ActiveX控件编程,程序调试功能强大;对数据库的支持度没有Delphi高。 一般来说Visual C++功能强大且速度快,但由于其编程较为繁琐,再加上此次开发时间较为紧张,故没有采用;Visual Basic对数据库的支持度没有Delphi高;虽然Delphi其调试功能较弱,速度也较慢,对数据库支持程度是这几种语言中最高的。

13、根据以上考虑,最终决定用Delphi作本软件的前后台开发平台。 2.2数据库设计 2.2.1数据库选用 因本系统是在Windows系统下使用的,并且要支持并发访问,考虑SQL Server也是由Microsoft公司开发,与系统的兼容度较高,并且支持集成性安全检测,对系统的资源消耗较小。相比之下,Oracle数据库虽然性能较高,但由于其可操作性不如SQL Server友好[ 1],并且服务器没有使用磁盘阵列和多处理器,无法发挥Oracle数据库设计上的性能优势,对系统性能要求也较高。至于Access之类的数据库,由于其性能较低,不具安全性,故不予考虑。 2.2.2数据源命名规则 OD

14、BC数据源名:paikexitong 数据库名:paikexitong 数据库文件位置:应用程序目录\DataBase\ 数据库文件名:paikextiong _Data.MDF 数据库日志名:paikextiong _Data.LDF 数据库账户:lqw(交付使用时另改) 账户密码:lqw(交付使用时另改)[ 2] 2.2.3表设计 考虑系统今后的维护工作及功能修改的需要,将表及字段做出了命名规则。现在国内对表及字段的名称大部分是用汉语拼音的首字母组合来命名的,如KCBH表示“课程编号”。考虑这种命名实在不便于理解和记忆(如果维护人员不能事先清楚的掌握表的内容将很难猜出字段的

15、真实意义),加上现在软件人员的英语水平已经比较高,所以决定将所有表及字段用其原意的英文翻译来命名,如ChooseCourseTable表示选课表。 根据系统需要,我们在数据库中建立了15张表,它们分别是:课程基本信息表、院系课程信息表、课程信息表、教师信息表、教师授课数量表(临时)、教师授课顺序表(临时)、排课表、课程类型表、院系信息表、教师类型表、年级表、上课时间表、教室信息表、基本排课表、冲突表。 2.3功能分析 2.3.1静态数据录入模块 通过用户界面录入已知数据信息。包括课程基本信息表、院系课程信息表、课程信息表、教师信息表。一般来说,这四张表要按顺序录入,即基本信息表中没有的

16、课程无法在院系课程信息表中录入,院系课程信息表中没有的课程无法在课程信息表中录入,依次类推。课程基本信息表中只包括课程名称和课程代码两项信息。院系课程信息表中的信息可以根据《学分制管理理论与实践指南》中第四篇教学计划及选课流程的阐述得到相关信息。课程信息表包括课程代码、班级数和所需课时三项,通过教务处给出的教学管理信息可以得到。教师信息表中的教师类型则可根据往年各教师的授课数和受欢迎程度给出,授课数为平均数的教师为普通教师,较平均数多的为授课较多的教师,较平均数少的为授课较少的教师。 2.3.2生成选课排课表模块 生成排课表单。根据教学信息生成排课表单并提供查询功能,可供选择的查询方式有:

17、按上课时间查询、按课程名称查询、按课程编号查询和按教室查询。 2.3.3录入信息浏览模块 浏览已录入的数据信息。可以对已录入的数据进行修改、删除、新增等操作。 2.3.4教师课表查询 根据教师姓名和已经生成的排课表查询教师的上课信息,便于各个院系打印院系课程表和教师个人课程表。 2.3.5院系备选课表查询模块 根据各个院系的指导性教学计划,我们为每个院系的各个年级的同学准备了专业课(包括专业限选课)的四套选课方案,在方便同学们根据教学计划选课的同时避免了两门专业课都必须要修,但根据排课表却只可能选择一门的情况,解决了学分制排课系统较之普通排课系统最突出的问题。 2.3.6手动修改

18、模块 这个模块共包括三个子功能:排课表查询功能、排课表冲突情况查询功能和手动修改排课表功能。 排课表查询功能主要是对已生成的排课表进行查询。可按上课时间、课程名称、课程编号和教室查询。 由于排课系统的性能还不完美,还有可能发生同一个教师同一时间在不同教室上课或上不同课程的冲突情况,因而我们增加了排课表冲突情况查询的功能,查询发生冲突的课程,便于对排课表进行手动修改。 手动修改排课表功能允许管理员根据实际需要和冲突情况对已生成的排课表进行手动的修改,对排课系统进行必要的补充修改,以使排课表更加符合实际情况。 3系统实现 3.1关于生成排课表单的算法描述 3.1.1要解决的主要问题

19、 (1)由于在学分制管理下,学校制为各个专业都制定了指导性教学计划和选课流程,各高校的学生可以自由选课。但要确保每个学生在大学四年中都能选完必修的学分,就要使待选的各门功课互不冲突。因而为此,我们将目标确定为保证教学计划和选课流程的实现上。并期望给出3至4套各院系各年级备选的选课方案。 (2)因为整个排课的过程很复杂,所以我们将所有课程分成几类:公共基础课、学科门类基础课、专业课、专业限制性选修课、任意选修课,并按照这个顺序依次排课,以便简化过程。 (3)考虑到实际过程中,有一些课对上课时间有特定的要求。例如:体育课一般不能安排在晚上,3个学分的课程往往安排在刚好有3节课的下午或晚上等。我

20、们总结了一些排课的经验。 体育课安排在下午。 3个学分的课程安排在下午或晚上。 四个学分的课程分成两段安排在上午,并且分成的两段要隔日安排。 专业课一般安排在上午或下午。 各个年级都有可能选修的课程安排在晚上或下午。 任意选修课安排在晚上。 星期三下午安排班会。 各个时间段安排不同的老师做平行班。 马列主义、毛泽东思想、邓小平理论等几门课要确保低年级每年可选三门以内。 (4)有一些老师教授了几门课程,但在同一时间却不能同时教两门课,因而在排课时可能会发生冲突。但是,在实际的教学工作中,一位老师教授课程的门数往往不会太多,冲突发生的可能性也不很高,因而,我们决定采用人工的方式

21、进行调整,并安排了冲突情况查询,方便手动调整。 (5)由于实际教学过程中,有一些老师承担的课程多一些,有一些老师承担的少一些,我们将老师分为三类:普通老师、承担课程多的老师、承担课程少的老师。其中,普通老师承担平均数量的课程(用总共要开设的班数除以老师的人数),课程多的老师一般比普通老师所承担的班级数多1,课程少的老师比普通老师承担的班级数少1,如果所有老师的班级数之和比总班级数少则依次增加他们的班级数,否则相反。 (6)尽量将各个时段课程的数量安排的平均一些,避免有一些时段的教室不够,另一些时段则空置太多。 (7)待课程时间表安排好后,再在全校范围内根据某一时段的课程所需的教室数量分配

22、教室。 3.1.2安排课程的上课时间 (1)由于公共基础课是每个院系都要学习的课程,因而我们优先排这一类课。实际过程中,公共基础课大多数是在大一或大二修完,而大一由于不采用选课的制度,所以不需要将其课程列在选课排课表上,这样就使得公共基础课中只有马克思主义哲学原理、马克思主义政治经济学原理、毛泽东思想概论、邓小平理论概论、邓小平经济理论、当代世界经济与政治、大学英语3、4、英语听力3、4、专项体育1、2这12门课需要排在课表上。 根据以往的经验,政治类的课程一个学期一般只安排2-3门,而且各个年级的学生都有可能会选,因此我们每周将固定3个时间段用于安排政治类课程。为避免冲突,我们将上课时

23、间尽量确定为晚上或下午。 其他的公共基础课,如大学英语、英语听力和专项体育,都在大二时学完。考虑到体育课的班级很多,而且只适合在上午3、4节和下午上,我们把上午3、4节和下午5、6、7节的所有时间段都安排给体育课,也即是说一周有10个时间段可选体育课。 英语课有4个学分,可分为两个时间段,根据经验两个时间段一般间隔两天。 综合以上各点,我们首先建立了4张公共基础课的课表,对应于为各院系提供的4套备选方案。并在此基础上安排各院系的专业课。 表1 基础课表1 大学英语 大学英语 政治1 班会 政治3 政治2 英

24、语听力 表2基础课表2 大学英语 大学英语 政治1 班会 政治3 英语听力 政治2 表3基础课表3 大学英语 大学英语 政治3 班会 政治1 政治2 英语听力 表4基础课表4 大学英语 大学英语 政治3 班会 政治1 英语听力 政治2 我们把这样的4张表称为基础课表。 (2)学科门类基础课: 将选课排课表分成两种:一种是上学期的课表,一种是下学期的课表。则各个院系要上的课程也可分成两种:

25、一种是上学期要上的课,必须在上学期的课表中安排;一种是下学期的课,必须在下学期的课表中安排。 由于大二时尚有英语、体育等必修的公共基础课,因而首先为大二要学习的课程安排时间段。 为了便于决定各门课程的上课时段,我们将基本课表中各个时段都安排了顺序码,并把4张基本课表中相同的时间段安排成为不同的顺序码,以便分散各专业课班级的时间段,减少各上课时段班级数量的不平均,缓解教室压力。 对于4个和2个学分的课程,一般安排在上午,我们针对不同的基础课表,为各个时段安排顺序码:(为了方便有老师上课,我们尽量将同一门课的两个班安排在一个上午。如:表1的第一门课安排在1-34,表2的第一门课则安排在1-1

26、2;表3的第一门课安排在2-34,表4的第一门课则安排在2-12)。 根据基础课表1得到的先后顺序为: 表5学科门类基础课上午课时顺序表1 大学英语 3 6 2 7 1 5 8 大学英语 4 政治 班会 政治 政治 英语听力 根据基础课表2得到的先后顺序为: 表6学科门类基础课上午课时顺序表2 1 大学英语 8 6 4 7 3 5 2 大学英语 政治 班会 政治 英语听力 政治 根据基础课表3得到的先后顺序为: 表7学科门类基础课上午课时顺序表3 3 5 7 大学英语 2

27、 大学英语 1 6 4 8 政治 班会 政治 政治 英语听力 根据基础课表4得到的先后顺序为: 表8学科门类基础课上午课时顺序表4 4 1 3 8 大学英语 6 大学英语 7 5 2 政治 班会 政治 英语听力 政治 对于3个学分的课程,针对不同的基础课表,确定各时间段被安排的先后顺序。 根据基础课表1得到的先后顺序为: 表9学科门类基础课下午课时顺序表1 大学英语 6 8 7 6 8 大学英语 7 政治 1 班会 政治 2 5 政治 3 4 英语听

28、力 根据基础课表2得到的先后顺序为: 表10学科门类基础课下午课时顺序表2 6 大学英语 7 8 6 7 8 大学英语 1 政治 班会 2 政治 英语听力 3 4 政治 5 根据基础课表3得到的先后顺序为: 表11学科门类基础课下午课时顺序表3 7 6 大学英语 8 大学英语 7 6 8 2 政治 班会 1 政治 政治 5 英语听力 3 4 根据基础课表4得到的先后顺序为: 表12 学科门类基础课下午课时顺序表4 8 7 6 大学英语 8 大学英语 7 6 政治

29、2 班会 政治 1 3 4 5 英语听力 政治 对于5个学分的课程可以安排在3+3的两个时间段内。 对于6个学分的课程可以安排在2+2+2的三个时间段内。 举例说明:(以工商管理专业大二上学期为例) 根据基本课表1得到的课表为: 表13工商管理专业大二上学期课表1 大学英语 计算机应用基础 会计学 会计学 机械制图 大学英语 计算机应用基础 政治 线性代数 班会 政治 政治 英语听力 根据基础课表2得到的课表为: 表14 工商管理专业大二上学期课表2 会计学 大学英语 计算机应用基础

30、 计算机应用基础 机械制图 会计学 大学英语 线性代数 政治 班会 政治 英语听力 政治 根据基础课表3得到的课表为: 表15工商管理专业大二上学期课表3 计算机应用基础 机械制图 大学英语 会计学 大学英语 会计学 计算机应用基础 政治 班会 线性代数 政治 政治 英语听力 根据基础课表4得到的课表为: 表16工商管理专业大二上学期课表4 会计学 机械制图 计算机应用基础 大学英语 计算机应用基础 大学英语 会计学 政治 班会 政治 线性代数

31、 英语听力 政治 由于各个院系的学科门类基础课有不少是相同的,因此在排课的时候应先注意查询待排的课程是否已经安排课时了,以免重复。 (3)专业课及专业限制性选修课: 专业课及专业限制性选修课一般被安排在大三或大四学习,因而不需要为英语、体育课程安排时间段。仿照学科门类基础课,针对4张基础课表(去掉英语、体育课的安排),确定各时间段被安排的先后顺序。 根据基础课表1得到的先后顺序为: 表17 专业课及专业限制性选修课上午课时顺序表1 1 7 5 8 4 9 3 10 2 6 政治1 班会 政治3 政治2 根据基础课表2得到的先

32、后顺序为: 表18 专业课及专业限制性选修课上午课时顺序表2 4 1 7 10 8 6 9 3 5 2 政治1 班会 政治3 政治2 根据基础课表3得到的先后顺序为: 表19 专业课及专业限制性选修课上午课时顺序表3 9 3 10 2 6 1 7 5 8 4 政治3 班会 政治1 政治2 根据基础课表4得到的先后顺序为: 表20 专业课及专业限制性选修课上午课时顺序表4 6 9 3 5 2 4 1 7 10 8 政治3 班会 政治1

33、 政治2 对于3个学分的课程,针对4张基础课表,确定各时间段被安排的先后顺序。 根据基础课表1得到的先后顺序为: 表21专业课及专业限制性选修课下午课时顺序表1 7 8 9 10 11 7 8 9 10 11 政治 1 班会 政治 2 3 政治 4 5 6 根据基础课表2得到的先后顺序为: 表22专业课及专业限制性选修课下午课时顺序表2 11 7 8 9 10 11 7 8 9 10 1 政治 班会 2 政治 4 3 6 政治 5 根据基础课表3得到的先后顺序为: 表23专业课及专业限制性选修课

34、下午课时顺序表3 10 11 7 8 9 10 11 7 8 9 2 政治 班会 1 政治 政治 5 3 6 4 根据基础课表4得到的先后顺序为: 表24专业课及专业限制性选修课下午课时顺序表4 9 10 11 7 8 9 10 11 7 8 政治 2 班会 政治 1 6 4 5 3 政治 对于5、6个学分的课程的处理与学科门类基础课的处理方式相同。 举例说明:(以工商管理专业大三上学期为例) 根据基础课表1得到的课表为: 表25工商管理专业大三上学期课表1 企业战略管理 专业外语1

35、 商务管理 企业组织与管理 政治 市场营销 班会 政治 统计学 生产作业管理 政治 管理系统工程 财经管理信息系统及应用 货币银行学 根据基础课表2得到的课表为: 表26工商管理专业大三上学期课表2 专业外语1 企业战略管理 商务管理 企业组织与管理 市场营销 政治 班会 统计学 政治 管理系统工程 生产作业管理 货币银行学 政治 财经管理信息系统及应用 根据基础课表3得到的课表为: 表27工商管理专业大三上学期课表3 商务管理 企业组织与管理 企业战略管理 专业外语1

36、 统计学 政治 班会 市场营销 政治 政治 财经管理信息系统及应用 生产作业管理 货币银行学 管理系统工程 根据基础课表4得到的课表为: 表28工商管理专业大三上学期课表4 商务管理 企业组织与管理 专业外语1 企业战略管理 政治 统计学 班会 政治 市场营销 货币银行学 管理系统工程 财经管理信息系统及应用 生产作业管理 政治 (4)一些课程的班级数如果少于4,就无法在四套方案中安排四个不同的时间段,在排课的过程中需要调整时间,使得这门课占用的不同时间段的数量等于班级的数量。调整方式如下: 改变后面几套方案的课表

37、以适应班级的数量。例如《管理系统工程》这门课,只有两个班,上一阶段排课的结果是4个时段:3-567、1-89a、5-89a、2-567。由于班级数量少于4,因而必须将后面两套方案的时段改为3-567、1-89a。同理,对班级数为1的课程,调整后3套方案的上课时间与第1套方案相同;对班级数为3的课程,调整第4套方案的上课时间与第3套方案相同。 由于《企业战略管理》的后两套方案的时间改为了3-567和1-89a,从而分别挤占了第3套方案中的《生产作业管理》和第4套方案中的《货币银行学》这两门课的时段。因此,我们还需要将两套方案中的这两门课的上课时间调整为原《管理系统工程》所占用的时段。即:将《

38、生产作业管理》调整为5-89a,并将《货币银行学》调整为2-567。 核心代码描述如下:(以大二上学期为例)[ 3] 用SQL控件qryCreateTable在课程信息表中查询大二上学期2、4、6个学分的课程信息。 用变量x记录qryCreateTable所查询到的记录数量。 for y:=1 to x do 循环 begin 用变量usCourseCode1获取qryCreateTable查询得到的当前记录中字段“课程编号”的值。 用变量usDepartmentCode1获取qryCreateTable查询得到的当前记录中字段“院系代码”的值。 用SQL控件qryAlread

39、y在已经生成了的排课表中查询大二上学期2、4、6个学分的课程信息。 用字符型数组变量ary1[]、ary2[]、ary3[]、ary4[]分别记录当前院系大二上学期课表的四套方案中已被占用的时间段。 用SQL控件qryFindCourseCode查询上学期课表中已有的课程编号是否与当前课程编号相同。 if 不相同 then begin 用变量usCourseName、usGradeCode、usTimeNeed分别记录qryCreateTable查询得到的当前记录中的相关字段的值。 用SQL控件qryTimeTypeTable按顺序获取基本课表中尚未被占用的时间; 将得到的课程

40、编号、学分、时间代码等信息插入排课表。 end; 移动qryCreateTable的指针,使其指向下一条记录。 end; 3.1.3为老师安排课时 (1)每一门课程,先用将要开设的班级数除以老师的人数,得到老师平均要教授的班级数。以《大学英语3》为例,上学期要开设28个班,有10个老师可供选择,平均每个老师要上3次课。 (2)考虑到每个老师的情况不同,我们把老师分成3类:普通教师、上课较少的教师和上课较多的老师。仍以《大学英语3》为例,张凌老师属于课时较多的老师,可安排其上3+1=4次课;曾晖老师则属于课时较少的老师,可安排其上3-1=2次课。根据这个规律安排了老师授课的数量后,将

41、其加总,若大于给定的班级数,则依次减少教师授课数量,否则反之。 根据上述规则,得到下面的教师授课数量表: 表29 教师授课数量表 潘清华 3 饶纪红 3 曾晖 2 张凌 4 陈骋 4 张善军 2 陶欣 2 彭剑 4 张生萍 4 汪新艳 2 (3)由于有28个班,将他们平均安排在4个时间段,则每个时间段有7个平行班。将班级编号和时间段相对应得到班级课时表: 表30 班级课时表 课时1 课时2 课时3 课时4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

42、 17 18 19 20 21 22 23 24 25 26 27 28 (4)为方便操作,我们首先为教师安排好上课的先后顺序。一般来说,班级的数量要大于4,而老师的上课次数也小于或等于4。因此,我们先安排课程最多的老师,如果有4个班,则将他们分别安排在4个上课时段。例如,可将张凌老师安排在1、2、3、4班,其对应的课时分别为课时1、2、3、4;再安排有3个班的老师,使得两位老师的班级编号之间相差2。如:若将潘清华老师安排在5、6、7班,则将饶纪红安排在10、11、12班,以便为有2个班的老师安排课时(因为若间隔为1或更少,则很有可能使2个班的老师的两次课被安排在了同

43、一课时);接下去安排有2个班的教师:首先寻找有3个班的老师之间有没有留下2个班的空隙,有就插入,没有则紧跟在已确定老师的最后一个班级号后添加两个班。因此,我们将曾晖老师安排在8、9班,而将陈骋老师安排在13、14班;最后,对于只有1个班的老师只需见缝插针即可。 (5)这样根据教师和班级号的对应关系,以及班级号与课时的对应关系,即可得到教师、班级编号和课时的对应关系。 经过上述各个过程,得到《大学英语3》的排课结果如下: 表31 《大学英语3》的排课表 课时1 课时2 课时3 课时4 张凌 1班 张凌 2班 张凌 3班 张凌 4班

44、 彭剑 5班 彭剑 6班 彭剑 7班 彭剑 8班 张生萍 9班 张生萍 10班 张生萍 11班 张生萍 12班 潘清华 13班 潘清华 14班 潘清华 15班 曾晖 16班 曾晖 17班 饶纪红 18班 饶纪红 19班 饶纪红 20班 陈骋 21班 陈骋 22班 张善军 23班 张善军 24班 陶欣 25班 陶欣 26班 汪新艳 27班 汪新艳 28班 核心代码描述如下:[ 3] 用SQL控件qryFindTeacher

45、edCourse在教师信息表中查询课程编号信息。 用变量x记录qryFindTeacheredCourse所查询到的记录数量。 for I:=1 to x do 循环 begin 删除以前生成的教师授课数量临时表。 用变量usCourseCode获取qryFindTeacheredCourse查询得到的当前记录中字段“课程代码”的值。 用变量usClassNumber获取qryFindTeacheredCourse查询得到的当前记录中字段“班级数量”的值。 用SQL控件qryFindTeachers在教师信息表中查询教授当前课程的所有老师的信息。 查询教师信息表中教授当前课程的

46、教师数量,并用变量y保存其值。 for j=1 to y do 循环 begin 用班级数除以教师数量得到普通老师应教班级的数量,并用变量z保存其值。 if 该老师课程较少 then z:=z-1; if 该老师课程较多 then z:=z+1; 将老师授课数量信息插入教师授课数量临时表。 移动qryFindTeachers的指针,使其指向下一条记录。 end; if 所有的教师授课数量之和大于班级数量,则依次减少教师授课数量。 if所有的教师授课数量之和少于班级数量,则依次增加教师授课数量。 删除以前生成的教师授课顺序临时表。 对于有4个班的教师,按顺序插入4次数据。

47、 对于有3个班的教师,按顺序插入3次数据,并使得两位老师的班级编号之间相差2。 对于有2个班的教师,首先寻找有3个班的老师之间有没有留下2个班的空隙,有就插入,没有则紧跟在已确定老师的最后一个班级号后添加两个班。 对于有1个班的老师,首先寻找前面已经排过的班级之间有没有空隙,有就插入,没有则在最后添加一个班。 按顺序将教师的上课信息插入。 移动qryFindTeacheredCourse的指针,使其指向下一条记录。 end; 3.1.4安排教室 因为各个时段的班级数较为平均,所以我们采用将各个时段的班级在全校范围内分配教室的方法:首先针对某一个时段查询各个班级,再依次分配教室。

48、 核心代码描述如下:[ 3] 用SQL控件qryFindTime在上课时间表中查询时间代码信息。 用变量a记录qryFindTime所查询到的记录数量。 for b:=1 to a do 循环 begin 用变量usTimeCode获取qryFindTime查询得到的当前记录中字段“时间代码”的值。 用SQL控件qryFindTimesCourse在排课表中查询占用当前时段的所有课程信息。 从教室表中选出尚未被占用的教室。 把课程信息、教室信息等相关信息插入排课表。 移动qryFindTime的指针,使其指向下一条记录。 end; 3.2关于手动修改排课表模块 3.2

49、1排课表查询 首先,在界面上添加一个SQL的控件,填写SQL语句,使得连接数据库的网格显示排课表中所有信息。 然后,根据查询的各种条件在Dephi6.0的编程代码中为SQL控件增加“Where……”的限制语句,并刷新网格中的内容。 3.2.2冲突情况查询 在界面上添加SQL的控件,在Dephi6.0的编程代码中为SQL控件填写SQL语句,针对各个时段查找同一老师上不同课程或在不同教室上课的情况,并通过数据库网格显示结果。 核心代码描述如下:[ 3] 删除以前生成的冲突表。 用SQL控件qryFindStrikeTime在查询上课时间表中查询所有时段的信息。 用变量a记录qr

50、yFindStrikeTime所查询到的记录数量。 for b:=1 to a do 循环 begin 用变量usTimeCode1获取qryFindStrikeTime查询得到的当前记录中字段“时间代码”的值。 用SQL控件qryFindStrike在已经生成的排课表中查询占用了当前时段的所有课程信息,并用distinct保留字为获取的记录按教师姓名、教室、课程代码排序。 用变量c记录qryFindStrike所查询到的记录数量。 for d:=1 to c do 循环 begin 查询前后两条记录间是否有教师相同但教室不同或课程不同的情况,如果有,则在冲突表中插入一条记录。

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服