- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CS模式自动排课系统算法分析
基于CS模式自动排课系统算法分析
摘要 本文根据嘉应学院医学院教学排课工作的实际需求,从排课问题入手,分析了教室信息数据结构及课程信息数据结构,对排课算法流程进行详细描述和说明,给出了排课算法流程图,实现了排课、调课、查询、统计、打印等基本功能,可大大减少教学排课的手工劳动。
关键词 排课;C/S;数据结构;算法
中图分类号 TP393文献标识码 A文章编号 1674-6708(2010)18-0122-02
1 排课问题描述
随着高校教学改革工作的深化进行,教学排课工作的灵活性日益增强,如何对教室、教师、学生以及时间等几部份资源进行最优组合,是保证整个教学计划正常进行关键。排课是将教师与学生在时间和空间上根据不同的约束条件进行排列组合,在满足全部约束条件的基础上,实现教室、教师、学生、时间等资源的最优组合[1]。这里的约束条件主要是:同一时间对同一名教师安排了两门不同的课程,对于该教师来说课程的安排是冲突的;对于学生也是如此,同一时间给同一教室安排两门不同的课程,则对于这两门课程来说,安排的教室是冲突的。
2 数据结构定义
2.1 教室信息数据结构
typedef struct
{
int fTotalSeat; //座位数
int fFunctionId; // 课室功能号
int fId;//T_jxClassroomList的主键fId,
//设置此项是为了数据库访问的方便
}RoomKey;
typedef struct
{
AnsiStringfArrangeItemId;//记录教室的用途是全日制还是夜大,2为全日制,3为夜大
AnsiStringfDays;//可用周(01200:1至20周全周)
AnsiStringfPeriod;//可用节次(01:星期日早上)
}RoomValue;
//教室的排序函数对象(按座位数从大到小排)
class CompareRoom
{
public:
bool operator() (const RoomKey room1, const RoomKey room2)
{
return (room1.fTotalSeatroom2.fTotalSeat
|| (room1.fTotalSeat==room2.fTotalSeat
room1.fIdroom2.fId));
}
};
//教室的排序函数对象(按座位数从大到小排)
class CRGreaterThan
{
public:
bool operator() (const RoomKey room1, const RoomKey room2)
{
return (room1.fTotalSeatroom2.fTotalSeat
|| (room1.fTotalSeat==room2.fTotalSeat
room1.fIdroom2.fId));
}
};
//教室信息链表类型
typedef std::multimap RoomMap;
//教室信息数据图(按座位数从大到小排,用于最后的强制排课)
typedef std::multimap ForceRoomMap;
RoomMap roomlist;//教室信息表
2.2 课程信息数据结构
typedef struct
{
int fTotalStudent;//总共人数
int fFunctionId; // 课室功能号
int fId;//T_jxTeachImplement表的主键fId
}CourseKey;
typedef struct
{
AnsiStringfClassNo; //开课对象
AnsiStringfTeachWeeks;//面授周数
AnsiStringCountPerWeek;// 每周上课次数
AnsiStringfArrangeItemId;//记录课程班是全日制还是夜大,1为全日制,2为夜大
AnsiStringfCTime; //上课时间
AnsiStringfCPlace;//上课地点,未排课之前为空字符串
}CourseValue;
//课程的排序函数对象(按总共人数从大到小排)
class CompareCourse
{
public:
bool operator() (const Co
您可能关注的文档
最近下载
- 5-7岁 《多少楼台烟雨中》—美术课件.ppt VIP
- 专题23原子结构(解析版)-2025年高考物理二轮复习培优练(新高考通用).pdf VIP
- L13S2给水工程 (1).pdf
- 第5课+物联功能趣体验(课件)-2025-2026学年信息科技八年级全一册人教版(2024).pptx VIP
- 顶管检验批质量检验记录.doc VIP
- 越位教学课件.ppt VIP
- 传感器与检测技术(第5版)徐科军课后习题答案.docx VIP
- pmp考试试题及答案解析.doc
- (ppt)小学宪法进课堂主题教育活动.ppt VIP
- TCEC-低温环境条件下高压电气设备现场检测实施导则 第1部分:红外测温.pdf VIP
原创力文档


文档评论(0)