标题:请教一个判断条件设定的问题
只看楼主
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:4 
回复 楼主 zhousr
浙江高考录取系统用的还清华的系统吗?(一大堆t_开头的表)

dBase有人接盘了。
2019-08-03 10:03
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
得分:0 
不好意思,是我没说清楚,害大家浪费了许多脑细胞:)浙江的高考政策也是有点复杂,不在其中的人理解起来也不是太容易。下面我争取说得详细点:
我一直在用自己的系统为考生们义务提供志愿填报服务。系统的大致思路是这样的:根据考生的选考科目、位次号、要学的专业、想去的地域等条件,从当年的招生计划数据库中选出所有符合考生要求的专业,结合前几年的投档情况和考生的位次,形成一份从高到你排序的志愿推荐表,供考生从中选择,大大减轻了考生填报志愿的工作量。去年和今年,考生的选考科目只要有一门符合院校的要求,考生就可以填报这个专业。比如,某考生的选考科目是物理、化学、生物,浙江大学某专业对选考科目的要求是物理、技术、历史,那么考生就可以报这个专业;如果某专业的选考要求是政治、历史、地理,那考生就不能填报这个专业。因为考生的三门选考科目只要有一门符合就可以报考,都是  or的关系,所以判断条件就比较简单( xkkm是招生计划库中的字段名, xk1/xk2 xk3是我在表单中输入的考生的选考科目):
SELECT * FROM zsjh WHERE (xkkm like "%&xk1.%" OR xkkm like "%&xk2.%" OR xkkm like "%&xk3.%" OR xkkm="不限") into table zyb
但从明年开始,高校的选考要求有了变化,从原来的3门符合1门即可报考,变成了有6种要求:1门科目,考生必须选考方可报考;2门科目,考生均需选考方可报考;2门科目,考生选考其中一门即可报考;3门科目,考生均需选考方可报考;3门科目,考生选考其中一门即可报考;不提科目要求。招生计划数据库中选考科目要求也会变成类似下图所示内容:

1选1、2选1、3选1或不提科目要求,这个好判断,用类似上面的代码就行。关键是“2门科目,考生均需选考方可报考”,这个该怎么设定判断条件呢?比如上图要求,物理、化学2门均需选考方可报考。如果我的选考科目是物理、化学、生物,那我就能报考;如果我的选考科目是物理、生物、技术,那我就不能报考。
我的问题就是:对2选2的情况,我该如何写这条判断语句?
不知道我有没说清楚?谢谢大家! 
2019-08-03 13:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
* VFP9代码
km1 = "物理、化学、生物"
km2 = "物理、化学"
ALINES(akm, km2, 4, "、")
IF akm[1] $ km2 AND akm[2] $ km2
    ?"可以报考"
ELSE
    ?"不能报考"
ENDIF
** 或者
? ICASE(akm[1] $ km2 AND akm[2] $ km2, "可以报考", "不能报考")

不知道楼主是不是这个意思

坚守VFP最后的阵地
2019-08-03 17:08
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 14楼 sdta
高,学习啦,谢谢!
2019-08-04 08:30
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
得分:0 
回复 14楼 sdta
谢谢 sdta版主!每次您都给了我精准的指导,我这个小程序中有您很多心血,谢谢您!看了一下,alines()读取的是字符串或备注是吗,我需要从表的字段中去找选考科目要求。我上传了一个模拟的招生计划,其中一个字段是选考科目要求,另一个备注中是正确的选择结果。我的选考科目是物理、化学、生物,我需要找出所有我能报考的专业。麻烦您,再次感谢!
zsjh.rar (1011 Bytes)
2019-08-04 10:36
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
有了"选考科目要求",是不是还应该有一个考生"选考科目内容",这样才能判断该考生的"选考科目内容"是否符合"选考科目要求"。

坚守VFP最后的阵地
2019-08-04 10:47
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
得分:0 
考生的选考科目内容各个考生都不同的,是考生来咨询时我在表单上输入的。比如这个考生,他的选考科目是物理、化学、生物,我在表单的文本框中输入物理化学生物,然后再从ZSJH库中找出符合院校选考科目要求的专业。谢谢!
2019-08-04 11:24
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
得分:0 

这样输入的话,我的xk1就是物理,xk2就是化学,xk3就是生物。然后从ZSJH库中的XKKMYQ字段中选择符合要求的专业。
2019-08-04 11:32
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
cStr = "物理、化学、生物"
ALINES(aa, cStr, 4, "、")
SELECT * FROM zsjh WHERE .F. INTO CURSOR cx READWRITE
SELECT zsjh
SCAN
    SCATTER TO bb
    IF aa[1] $ 选考科目要 AND aa[2] $ 选考科目要 AND aa[3] $ 选考科目要
        INSERT INTO cx FROM ARRAY bb
        REPLACE RECORD RECCOUNT() 备注 WITH "可报考" IN cx
    ENDIF
ENDSCAN
SELECT cx
BROWSE

坚守VFP最后的阵地
2019-08-04 11:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用zhousr在2019-8-4 11:32:33的发言:


这样输入的话,我的xk1就是物理,xk2就是化学,xk3就是生物。然后从ZSJH库中的XKKMYQ字段中选择符合要求的专业。

根据不同的输入条件生成不同的条件表达式,这样才能达到你的查询目的

坚守VFP最后的阵地
2019-08-04 11:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496145-1-1.html




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

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