再次请教学生如何分派
学生分派1.rar
(91.36 KB)
工作需要均衡分配学生,近日浏览查询发现论坛前期wengjl曾发过同样的帖子,一是我个人水平有限没完全读懂高手的语句,二是没完全解决问题
这里我借鉴wengjl数据表,修改了一下人数(致谢)
报名库(bmk)中共3200人,按计划库(zkjhk)中字段zsrs人数要求分别录取到一中(招690人)、二中(招850人)、三中(招1000人)、四中(招660人),分派时,只考虑中考成绩的均衡即可(性别及毕业学校等不用考虑)
请教
1.Tiger5392版的程序结果有时人数不完全相同,如何解决,能否注解一下
2.wengjl版用平均分(pjf)来衡量均衡性,请教还有更好的方式吗
Tiger5392版语句如下
程序代码:
CLOSE ALL USE zkjhk COPY TO ARRAY laArr FIELDS zsrs USE bmk.DBF RAND(SECONDS()) STORE 0 TO lnCnt1,lnCnt2,lnCnt3,lnCnt4 SCAN lnRound=RAND() DO CASE CASE lnRound<=laArr(1)/(laArr(1)+laArr(2)+laArr(3)+laArr(4)) AND lnCnt1<laArr(1) lcSchool='0100' lnCnt1=lnCnt1+1 CASE lnRound<=(laArr(1)+laArr(2))/(laArr(1)+laArr(2)+laArr(3)+laArr(4)) AND lnCnt2<laArr(2) lcSchool='0200' lnCnt2=lnCnt2+1 CASE lnRound<=(laArr(1)+laArr(2)+laArr(3))/(laArr(1)+laArr(2)+laArr(3)+laArr(4)) AND lnCnt3<laArr(3) lcSchool='0300' lnCnt3=lnCnt3+1 OTHERWISE lcSchool='0400' lnCnt4=lnCnt4+1 ENDCASE REPLACE lqxxdm WITH lcSchool ENDSCAN SELECT lqxxdm,COUNT(*) lqrs,AVG(tot) pjf FROM bmk GROUP BY lqxxdm