基于VC++的智能排课系统设计
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
摘??? 要
在当今信息化时代,随着高校规模的急剧扩大,在有限的教学资源情况下,排课问题变得越来越复杂。传统的人工排课方式的缺点是工作量大、耗费时间长、出错率高,而且各种因素交联复杂,已不能完善的进行课表的编排工作。
本文旨在建立了一套基于VC++开发环境及SQL Server2008数据库技术实现的自动智能化高校排课系统,从而实现了全校各院系班级排课工作的使准确性、实时性及客观性。文中论述了一个智能排课系统实例,阐明了该实例的详细开发过程。在该系统中,注册后的系统管理员拥有权限,可进入智能排课系统进行各种操作,主要包括教室、教师、班级等信息数据的管理;新增课程及教室使用申请;采用遗传算法对申请记录进行智能化审核和排课,并根据班级信息查询一周的该班级的课表情况,最后提供了EXCEL格式课表导出和打印功能。另一方面,界面部分还采用了VC皮肤库(“skin.lib”静态库、“skin.dll”动态库)技术,这样做能够实现界面的美观性,吸引更多的用户参与进来。
最后,本文指出了该程序实例中存在的一些不足,并说明了可扩展的功能模块,在今后可对这些模块进行完善和改进。
关键词:智能排课,遗传算法, VC++,SQL Server
v:* {behavior:url(#default#VML);}
o:* {behavior:url(#default#VML);}
w:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
1.1.???
系统功能需求
1.1.1.
?系统登录及注册模块
进入高校教师绩效考核系统首先需要系统管理员登录,本系统管理员级别分为三级,按照权限由高到低,分别为一级管理员、二级管理员和三级管理员。用户需先注册个人基本信息,才能登录本系统进行相关操作。注册信息主要有:用户名、密码、姓名、单位、个人权限等级及地址等信息。
注册成功的系统管理员,可登录本系统进行系统的管理操作,例如修改个人信息资料,修改和管理系统初始化配置参数(诸如教室、教师和班级信息数据)等。
1.1.2. 系统参数及安全性设置模块
拥有管理员权限的用户登录后进入系统进行系统参数的设置。系统参数设置包括整个系统的注册规则修改、登录权限修改、注册用户的信息管理、后台信息数据的设置与管理。管理员可对系统进行初始化参数设置,如建立及修改系统口令,增删用户,对系统进行维护、备份等处理
另外,为防止信息泄漏,还要进行安全性的考虑。用户名的设置遵循唯一性,一个用户只有一个ID,禁止出现重复ID和一对多的关系。在密码设置,需要进行加密算法设置。本文采用MD5加密技术,设用户密码为PWD,加密函数为MD5,则MD5(PWD)就是用户最终加密后的密码。当用户注册时,将用户密码PSW利用MD5函数处理后再加上附加字符串addSubStr,即MD5(PSW)+addSubStr存储到数据库中,今后,用户每次登录都将用户密码进行同样处理后进行与数据库中值的比对,如果相同就通过验证。具体转换算法代码见第四章。
1.1.3. 在线课程申请及评审模块
在本模块,系统管理员可在线新增课程申请,并通过相应的算法直接评审新增的课程申请信息,并返回审核结果至数据库。
提交的课程申请信息,主要包过申请的课程名称,课程等级,申请班级名称,申请的教室编号,授课教师姓名及申请时间。在本系统中,课程优先等级分为较低、一般和较优三种,这是后续智能排课算法的重要参数;另外,排课的时间规定为每周的正常作息时间,具体是将一天的时间分成上午8:00-10:00,10:00-12:00两个时间段,定义为1-2节和3-4节;下午2:00-4:00,4:00-6:00两个时间段,定义为5-6节和7-8节;这样一周按五天计算,一共是20个时间段。原则上只在1-2节、3-4节及5-6节排课。
1.1.4. 智能课表生成及EXCEL格式导出模块
该系统模块为核心模块,主要采用遗传算法来进行智能化课表的生成。课表的编排是整个教学计划中最为关键的一环,它的实施关系教学计划的顺利进行。根据课程不同的特性,比如要求的前置课程或者要求的知识点高低限制,某些开课计划要先于其他课程必须优先提前安排,待特殊开课计划安排完之后,教务员还要根据经验确定哪些班级和教师的课程预计会比较难排,然后大致依照“先难后易”的顺序对开课计划逐个进行安排。做份科学准确、合理、充分的课程编制。在排课过程中,还要遵守以下多个排课原则:
1、同一班级不能在同一时间上两门不同的课程。
2、某一时刻,同一个教室只能上一门课程,不能再安排别的课程。
3、某一时刻,一个教师只能上一门课程,不能再上其它的课程。
4、给班级安排的教室必须可以容纳所有上该课程的学生;
5、必须要有特定的教室提供给特定课程使用;
6、如果校区过大,课间要留足够的时间,以便教师、学生赶赴在不同校区;
7、同一时段内体育课之后不能再安排课程;
8、对于实习课或者实验课来说,如果有特殊的需求,需要特定的考虑。
本系统采用的是遗传算法,该算法主要采纳了生物学物种进化的原理模型,借助于选择、交叉、变异等生物学遗传操作。生物学中认为,遗传物质的主要载体是染色体,染色体是多个基因的集合体,它可以决定生物个体的一些明显特征,实质上,在内部,染色体是某种基因组合,比如染色体中控制头发颜色这一特征的基因经过组合,就决定了生物个体的毛发是白色的。而每个种群个体实际上是每个染色体带有某些特征的实体。因此,工作之初,需要进行一些抽象编码的工作,把具体表现出来的信息特征抽象为一些位串来表示,实现外部特征和位串的映射。采用类似于基因的编码方式会带来非常复杂、非常大的工作量,因此实际工作中往往进行简化,如采用二进制编码。产生第一代种群之后,遗传算法就是将“适者生存,优胜劣汰”的生物进化原理应用到实际问题的解决中,它实际上是在生物遗传原理和自然选择进化的基础上研究出来的一种搜索算法。遗传算法被引入到等待优化的编码群体中,按照指定的规则对种群的个体进行优劣筛选,这样就可以逐代演化产生出越来越好的种群个体,也就是得到近似优秀的解。
遗传算法的一般步骤:先随机初始化一个种群,然后利用适应度计算函数计算该种群中的每一个个体的适应度,之后,根据制定的规则计算个体是否满足优化准则的判定标准。如果满足,那么算法停止,当前的种群就是最优个体。
如果不满足准则,那么算法将选取适应度高的个体,对这个种群的个体进行生物学的遗传操作,比如选择、交叉、变异等,遗传操作的目的就是要进化得到更优秀的子代种群,经过演化之后的子代种群,需要利用已有的规则,重新判定优化准则的满足程度,进而进化生成新的种群。
遗传算法解决问题的基础是要有便于遗传算法操作的表示方法,目前学术界普遍采用基本遗传算法(Simple Genetic Algorithm,SGA)来表示。SGA是一个集合,包含了一个8元组:
SGA=(C,E,
,M,Φ,Γ,Ψ,T)
其中各个符号表示的意义如下:
E——计算适应度的函数,可以计算种群中所有个体的适应度;
C——编码规则,可以把问题抽象一种编码方法来解决;
Φ——选择算子,选择算子是一个特定的数值;
——初始化一个种群;
Γ——交叉算子,交叉算子是一个特定的数值;
M——群体大小,一般取30—110,具体的数目会根据具体情况有所变化;
T——算法停止条件,一般停止进化演变代数为150—450;
Ψ——变异算子,SGA使用基本位变异算子