回复 30楼 泛海孤舟
2个问题1、定向生可以突破计划吗?(同分)
2、多余的定向计划还需要处理吗?(有的学校降分后,定向计划用不完,怎么办?)
dBase有人接盘了。
**志愿库\计划库各增加一个字符字段,DJ Set Default To "..\试录取" Close Tables All &&关闭表就可以了 Use 志愿库 Alias zyk Exclusive In 0 Select zyk Blank Fields lqdm All Replace dj With djf All For i=65 To 69 Replace dj With Strtran(dj,Chr(i),Str(72-i,1)) All && A-7,B-6 E-3 Endfor INDEX on STR(tdf)+dj TAG tdf DESCENDING Use 计划库 Alias jhk Exclusive In 0 Select jhk Set Order To lqdm Blank Fields lqrs,zhzf,fsx All Goto Top In jhk Replace dj With djf All For i=67 To 69 Replace dj With Strtran(dj,Chr(i),Str(70-i,1)) All&& C-3,D-2 E-1 Endfor idxyq=3333222222 &&定向等级要求 Use 定向生计划库 Alias dxsjhk Exclusive In 0 Set Order To xxdm In dxsjhk Blank Fields lqrs,zhzf,fsx All In dxsjhk Goto Top In dxsjhk Local kszy As Character && 考生志愿变量 Local zyxh As Integer && 考生志愿序号变量 Goto Top In zyk Set Order To tdf In zyk && 从考生高分到低分处理 SELECT zyk GO top Do While !Eof("zyk") For zyxh = 1 To 19 && 考生19个普高志愿 kszy = "zyk.zy" + Transform(zyxh) If !Empty(Evaluate(kszy)) If Evaluate(kszy)<>'113701' &&志愿表中没有 003701!!为3701学校的定向生志愿,定向生条件为3701分数线降52分,zyk.dxs=.t.,等级线为4C6D,计划库参照定向生计划库 Seek Evaluate(kszy) Order lqdm In jhk bjstr=TRANSFORM(VAL(zyk.dj)-VAL(jhk.dj)) If AT('0',bjstr)+AT('1',bjstr) =0 && 等级分线要求 If zyk.tdf >= jhk.fsx If jhk.lqrs < jhk.lqjh Replace zyk.lqdm With Evaluate(kszy) In zyk Replace jhk.lqrs With jhk.lqrs+1 In jhk Replace jhk.zhzf With zyk.tdf In jhk Exit Else If zyk.tdf = jhk.zhzf Replace zyk.lqdm With Evaluate(kszy) In zyk Replace jhk.lqrs With jhk.lqrs+1 In jhk Exit Endif Endif Endif Endif ELSE GO TOP IN jhk &&偷懒了,定位到3701。如果它的代码不是最小的可以用Seek idxfs=jhk.zhzf-52 &&定向分数 Seek zyk.xxdm Order xxdm In dxsjhk bjstr=TRANSFORM(VAL(zyk.dj)-idxyq) If zyk.dxs=.T. And AT('0',bjstr)+AT('1',bjstr) =0 AND zyk.tdf>=idxfs && 等级分线要求zyk.dxs=.T.这个条件还需要吗?考生志愿已经有113701了啊。 If dxsjhk.lqrs<dxsjhk.lqjh Replace zyk.lqdm With '113701' In zyk Replace dxsjhk.lqrs With dxsjhk.lqrs+1 In dxsjhk Replace dxsjhk.zhzf With zyk.tdf In dxsjhk Exit Else If zyk.tdf=dxsjhk.zhzf &&数值表达式不用==,=即可。 Replace zyk.lqdm With '113701' In zyk Replace dxsjhk.lqrs With dxsjhk.lqrs+1 In dxsjhk Exit Endif Endif Endif Endif Endif Next Skip In zyk Enddo Replace All jhk.fsx With jhk.zhzf In jhk Replace dxsjhk.fsx With jhk.fsx-52 For jhk.lqdm='3701' && 各校定向生分数线为3701学校分数线下52分,比如3701学校的分数线为652分,则各校定向生分数线为600分. Close TABLES All