| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2237 人关注过本帖
标题:教务工作
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
注意:随机函数生成的数据,程序每运行一次,生成结果都不一样

坚守VFP最后的阵地
2014-07-30 16:44
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
一个试场中二个老师监考,不同的试场中的监考教师不能一样(如109与110的是相同的老师)

[ 本帖最后由 xs591222 于 2014-7-30 16:51 编辑 ]
2014-07-30 16:48
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
我是8.0的,用你的代码试试,第一个试场是空的

看来是有点难的……

[ 本帖最后由 xs591222 于 2014-7-30 17:05 编辑 ]
2014-07-30 16:49
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
关键问题是算法问题

坚守VFP最后的阵地
2014-07-30 18:57
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
刚刚旅游回来,看到这个题目,感觉不是很复杂。待我把照片弄完,给楼主写个参考代码。
2014-08-01 10:25
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
欢迎欢迎、热烈欢迎……

只求每天有一丁点儿的进步就可以了
2014-08-01 13:19
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
以下是引用taifu945在2014-8-1 10:25:39的发言:

刚刚旅游回来,看到这个题目,感觉不是很复杂。待我把照片弄完,给楼主写个参考代码。


热烈地期待中……
2014-08-01 18:44
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
    楼主,终于弄出来了。一开始看题目的时候感觉不是很复杂,但实际做的时候发现比想象的要复杂一点。复杂之处在于每个监考教师可监考的次数不同。这种题目只有两种解法:以考场去找老师;以老师去找教室。
    刚开始时我用了第一种解法,也就是全随机地以考场去找老师,找老师的条件是两个:1、该老师还有监考次数;2、该老师没有安排过当前课程的监考。但运行了几次后发现了问题:最后几个考场总是找不到老师。这是因为可监考次数少的老师前面被随机分配掉了,已没有监考次数;监考次数够的老师却在前面已经安排过该门课程的监考。用这种方法解题应该还有以下条件:1、所有老师的可监考次数相加应大于或等于监考位置总数(这个条件题目是满足的);2、所有老师的可监考数完全相等(这个条件题目没满足)。
    然后,我换了第二种解法:以老师去找教室。这就是半随机了,因为其中掺杂了人工干预。思路大致是:把监考老师按照可监考次数的不同分开,存放在不同数组里。先安排可监考4次的老师:每门课程各安排一次,但是每门课程安排在哪个考场,以及安排在该考场的甲位还是乙位,就由程序随机安排;可监考3次的老师:随机抽取其中三门课程安排监考;可监考2次的老师:随机抽取其中两门课程安排监考;只监考1次的老师:在安排完上述三种老师以后,以循环方式填充到剩下的各个监考空位里。在安排可监考3次和可监考2次老师的过程中有一些细节要注意:1、四取三和四取二有很多种组合,应该全部考虑到;2、判断系统随机分配的甲位或乙位是否有用完,如有,则应换到同一考场的另一个位置。比如:系统随机安排了某老师在Jk3y监考位,但所有考场的Jk3y监考位都用完了,那么系统应该将其安排到Jk3j监考位中。这两个位置都是对第三门课程的监考,换一下不会对最后结果产生影响。3、若某门课程的所有考场甲乙监考位(共20个)都已用完,则不应再让程序能随机取到该分配方案。这种情况可能会在安排可监考次数为2的老师中出现。
附上运行结果截图:
图片附件: 游客没有浏览图片的权限,请 登录注册

我没有对运行结果中的老师进行具体的对位检查,看其安排的次数是否符合Jsxx中的监考场数,楼主可自己检测一下。另外,你给出的数据中,可监考次数为4、3、2、1的老师刚好各8名。我写的代码考虑到了允许这四种老师人数不等,甚至有些监考次数的老师不存在这些情况,但没有具体测试过。你可以变换一下数据,测试一下。
附上程序代码(包括全随机和半随机两种):
jk.rar (3.44 KB)

程序代码中有很详细的注释语句,若有疑问,可跟帖继续讨论。
收到的鲜花
  • tlliqi2014-08-02 22:30 送鲜花  30朵   附言:方法可行
2014-08-02 21:47
jsddx
Rank: 2
等 级:论坛游民
帖 子:44
专家分:25
注 册:2006-4-11
收藏
得分:0 
研究下,学习怎么排
2014-08-03 07:57
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
以下是引用taifu945在2014-8-2 21:47:35的发言:

    楼主,终于弄出来了。一开始看题目的时候感觉不是很复杂,但实际做的时候发现比想象的要复杂一点。复杂之处在于每个监考教师可监考的次数不同。这种题目只有两种解法:以考场去找老师;以老师去找教室。
    刚开始时我用了第一种解法,也就是全随机地以考场去找老师,找老师的条件是两个:1、该老师还有监考次数;2、该老师没有安排过当前课程的监考。但运行了几次后发现了问题:最后几个考场总是找不到老师。这是因为可监考次数少的老师前面被随机分配掉了,已没有监考次数;监考次数够的老师却在前面已经安排过该门课程的监考。用这种方法解题应该还有以下条件:1、所有老师的可监考次数相加应大于或等于监考位置总数(这个条件题目是满足的);2、所有老师的可监考数完全相等(这个条件题目没满足)。
    然后,我换了第二种解法:以老师去找教室。这就是半随机了,因为其中掺杂了人工干预。思路大致是:把监考老师按照可监考次数的不同分开,存放在不同数组里。先安排可监考4次的老师:每门课程各安排一次,但是每门课程安排在哪个考场,以及安排在该考场的甲位还是乙位,就由程序随机安排;可监考3次的老师:随机抽取其中三门课程安排监考;可监考2次的老师:随机抽取其中两门课程安排监考;只监考1次的老师:在安排完上述三种老师以后,以循环方式填充到剩下的各个监考空位里。在安排可监考3次和可监考2次老师的过程中有一些细节要注意:1、四取三和四取二有很多种组合,应该全部考虑到;2、判断系统随机分配的甲位或乙位是否有用完,如有,则应换到同一考场的另一个位置。比如:系统随机安排了某老师在Jk3y监考位,但所有考场的Jk3y监考位都用完了,那么系统应该将其安排到Jk3j监考位中。这两个位置都是对第三门课程的监考,换一下不会对最后结果产生影响。3、若某门课程的所有考场甲乙监考位(共20个)都已用完,则不应再让程序能随机取到该分配方案。这种情况可能会在安排可监考次数为2的老师中出现。
附上运行结果截图:

我没有对运行结果中的老师进行具体的对位检查,看其安排的次数是否符合Jsxx中的监考场数,楼主可自己检测一下。另外,你给出的数据中,可监考次数为4、3、2、1的老师刚好各8名。我写的代码考虑到了允许这四种老师人数不等,甚至有些监考次数的老师不存在这些情况,但没有具体测试过。你可以变换一下数据,测试一下。
附上程序代码(包括全随机和半随机两种):

程序代码中有很详细的注释语句,若有疑问,可跟帖继续讨论。


taifu945您好:您辛苦了!非常感谢!我先下来慢慢学习,我基础薄弱,看不懂的地方我先研究再提问……

数组对我来说是一大难关,表中的内容是看得见的,可理解;数组中的内容看不见,无法感性理解,是我自学的一个难关。有时用了数组也是只会简单的模仿一下,也理解不了是什么样的因故关系

[ 本帖最后由 xs591222 于 2014-8-3 09:45 编辑 ]
2014-08-03 09:27
快速回复:教务工作
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035324 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved