| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2231 人关注过本帖
标题:[求助]排课代码
取消只看楼主 加入收藏
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
[求助]排课代码
各位论友,新年好!本人正做一个排课系统遇到一个问题.一个老师同一节课在不同的班级不能有相同的科目.以下代码可以解决一个老师只能担任两个班课.如果一个老师担任有三个或三个班课,排出的课可能有冲突.不知哪位高手有何妙招帮我解决这个问题呢?
use zkb
...................

m=0
g=0
FOR k=1 TO ALEN(b)

locate FOR  EMPTY(kmname) AND bjname=b(k) AND between(jb,1,5)AND jb!=m
IF FOUND()
m=jb
replace kmname WITH "语文"
g=g+1
IF g>3
EXIT
ELSE
LOOP
ENDIF
ENDIF
endfor
............
其中kmnane表示科目,jb表示第几节,b(k)贮存有班级数组.

[ 本帖最后由 TZTJ 于 2012-2-5 15:13 编辑 ]
搜索更多相关主题的帖子: between 语文 
2012-02-05 15:03
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
我采用数组可以基本解决了问题,但觉得不时最佳方法.
2012-02-06 10:26
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
各位论友,我遇到一种怪现象,用了数组可以解决以上问题,但第三个班第一节是空的,后面的班级根本没有排课,如果不空的,又可以,原因何在?请高手指点

USE szb

.........................
m=0
g=0
DIMENSION a(10)
STORE 0 TO a
FOR k=1 TO ALEN(b)
locate FOR  EMPTY(kmname) AND bjname=b(k) AND xq=ALLTRIM(thisform.optiongroup1.Buttons(t).caption) AND between(jb,1,4)AND jb!=m
IF FOUND()
m=jb
nps=ASCAN(a,jb)
IF nps!=0
continue
else
STORE jb TO a(k)
replace kmname WITH ALLTRIM(thisform.list2.Value)  
g=g+1
b(k)=null
ENDIF
IF g>2
EXIT
ELSE
LOOP
ENDIF
ENDIF
endfor
...........................
2012-02-07 17:55
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
不可能,如果去掉
nps=ASCAN(a,jb)
IF nps!=0
continue
else
它就有排课,只不过课程有冲突.我试过很多次,只要第一节排有课,它就没问题.我人为在数组使用过程中有不妥地方.但我查不出原因
2012-02-07 22:32
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
首先告诉各位论友,问题已经解决。做这个系统我已经花了三年多时间,目前正在不断完善,排30班的课程最多不超过2个小时。正确率已达到90%
要我说怎样做,在这里很难说的清楚。大概要8个dbf表,教师、任课科目、任课班级。。。。。。。
2012-02-08 22:06
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
为什么有那么好的系统,还做干什么,不是浪费时间吗?你能说一说你的排课系统吗?
2012-02-09 22:12
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
其实我的系统主要的代码我已经告诉你们,你们没有看出来吗?慢慢去品味以上代码吧!要我全部告诉你们,会可能吗?只要是排过课老师,有扎实的VFP基础,都可以找到解决问题的方法.我的系统也不是很完善,但比用几百元钱买回来的系统好很多.
2012-02-10 10:15
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
首先感谢各位论友的关注.只有排过课的老师才懂得排课的困难.各校实际情况不同,要求千变万化.我见许多学校用钱买回来软件,后来干脆不用.因为改来改去,花时间也很多.
我的系统确实就是妙用哪个循环体.比起用人工排最少要用两天时间快得多.因此,个人认为做排课系统必须结合学校情况做是最好.顺便说一下,把哪个if found()改为do while found()
2012-02-10 21:32
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
多谢!不是在上面已经说吗?我的问题已解决.就是把if found()改为do while found()
顺便请教以下代码,也很纳闷,很简单一个问题,说有有语法错误,类似使用以前都没问题.
for m=1 to 20

endfor
2012-02-10 22:49
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
在我以前用时好象不用吧!但还是感谢!我试一下.
2012-02-11 22:04
快速回复:[求助]排课代码
数据加载中...
 
   



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

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