期末考试排考场策略,包括合并尾考场

以下是网络教育学院的期末考试排考场策略,以学习中心为基本单位分组,不同课程分到不同的考场,30人一个考场,如果有尾考场(不足30人)需要进行合并。

前期工作:
1.将本学期的考试预约表中的考试批次,考场,座位号设置为空
2.删除本学期的考场

一。判断是否有冲突课程。取出有冲突场次的记录 将每个学生的一条预约记录临时考试场次设置为冲突场。(顺序号暂定为0)
将这个记录的course 保存到CourseSet中,
二、取得所有的考试学习中心PE_SITE peSiteList
三。 从PE_EXAM_NO 中读取当前学期的所有场次。PE_EXAM_NO
for(PeExamNo peExamNo : PE_EXAM_NO ){
if(PE_EXAM_NO 顺序号==0){
for (PeSite peSite : peSiteList{
for ( PrTchOpencourse prTchOpencourse : openCourseSet){
从PR_EXAM_BOOKING 中取出 学习中心或者考试学习中心是这个中心 临死考试场次顺序号是0 预约了这门课的记录 PR_EXAM_BOOKING
for(PrExamBooking prExamBooking : PR_EXAM_BOOKING ) {
安排考场号,座位号
}
}
}
}else {
从PR_TCH_OPENCOURSE 中取得当前学期 建议场次 是这个考试场次的课程PR_TCH_OPENCOURSE
for (PeSite peSite : peSiteList{
for(PrTchOpencourse prTchOpencourse : PR_TCH_OPENCOURSE ) {

从PR_EXAM_BOOKING 中取出 学习中心或者考试学习中心是这个中心 预约了这门课的记录 PR_EXAM_BOOKING
for(PrExamBooking prExamBooking : PR_EXAM_BOOKING ) {
安排考场号,座位号
}

}
}

}

}

四、合并尾考场。
以学习中心为单位合并尾考场。采用贪婪法。
{
尾考场数n;
按考场以分座位数从大到小顺序排列;
预置已用新考场链为空;
预置已用新考场计数器box_count为0;
for (i=0;i<n;i++)
{ 从已用的第一个新考场开始顺序寻找能放入考场i全部学生的新考场j;
if (已用新考场都不能再放考场i全部学生)
{ 另用一个新考场,并将考场i全部学生放入该考场;
box_count++;
}
else
将考场i全部学生放入新考场j;
}
}


具体实现:
所有的尾考场:TreeMap map = new Map(Room,int); 尾考场,人数
List(int) listNom= new ArrayList(); //用来保存新占用的考场人数
List(Room) listRoom = new ArrayList();//用来保存新占用的考场
//遍历map
for(int i=0;i<map.size;i++){
//从最大人数的开始循环
Room room = map.lastKey();
int n = map.get(room);

int m =0;
for(m=0;m<list.size();m++)
{ if(list.get(m)+n<=30) break;}

if(m==list.size){
list.add(n);
//创建新考场 考场号=已用考场号+m+1;
newRoom;
保存新考场 newRoom;
listRoom.add(newRoom);
取出考场是room的预约记录,将考场设置为newRoom;
map.remove(room);
删除考场room;

}else{
list.set(m,list.get(m)+n);//更新考场人数
取出考场是room的预约记录,将考场设置为listRoom.get(m);
map.remove(room);
删除考场room;
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值