| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9346 人关注过本帖, 1 人收藏
标题:求助按科目成绩等级录取学生
只看楼主 加入收藏
chychychy
Rank: 2
等 级:论坛游民
帖 子:278
专家分:98
注 册:2015-4-18
收藏
得分:0 
以下是引用xuminxz在2019-6-25 19:33:31的发言:

这帖子的竟然60多层了,不过好像方向出问题了,这样把录取条件写入代码显然不合适。应该把录取条件(或不录取条件)写到一个表内(例如Lqtj)。然后用类似update XXX set lqjg="不录取" where kmdj not in (select kmtj from lqtj)的语句来决定是否录取。这样对不同学校只需要改录取条件就可以了。决定录取条件的领导不必懂程序,但录取条件应该让他能看得懂,并让他们签字确认。



这也是个思路,不过组合的可能性太多了,逐个比对筛选的工作量(程序运行上)也不小。就六科来讲组合是5*5*5*5*5*5种之多(不知道我说的对不对)

[此贴子已经被作者于2019-6-26 14:38编辑过]

2019-06-26 08:50
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
回复 71楼 chychychy
没有那么多,注意到每一组合都有一个字段给出了组合结果(1C2B之类的)有效的每个平均不到10,而且可以根据要求自动生成。

dBase有人接盘了。
2019-06-26 09:08
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用chychychy在2019-6-26 08:50:41的发言:




这也是个思路,不过组合的可能性太多了,逐个比对筛选的工作量(程序运行上)也不小。就六科来讲组合是6*6*6*6*6*6种之多(不知道我说的对不对)

ABCD 组合
7门课程的所有组合:120种
6门课程的所有组合: 84种
5门课程的所有组合: 56种
4门课程的所有组合: 35种
3门课程的所有组合: 20种
2门课程的所有组合: 10种

如BC和CB是一种组合
如BCC和CBC、CCB是一种组合

只有知道了所有的组合,才能知道你的筛选条件是否正确。
实际上只要判断一种组合是否在所有组合中就可以了,如6门课程共有84种组合,最后有效组合有多少种,应该有招生学校来决定,符合BBCCDD条件的所有组合(我的观点应该是58种,楼主的观点是55种),不管是58种组合,还是55种组合,这时只要判定某种组合是否在这N种组合中就可以了,不需要层层筛选。这是最简单的判定方法。

[此贴子已经被作者于2019-6-26 11:57编辑过]


坚守VFP最后的阵地
2019-06-26 11:40
chychychy
Rank: 2
等 级:论坛游民
帖 子:278
专家分:98
注 册:2015-4-18
收藏
得分:0 
以下是引用sdta在2019-6-26 11:40:20的发言:


ABCD 组合
7门课程的所有组合:120种
6门课程的所有组合: 84种
5门课程的所有组合: 56种
4门课程的所有组合: 35种
3门课程的所有组合: 20种
2门课程的所有组合: 10种

如BC和CB是一种组合
如BCC和CBC、CCB是一种组合

只有知道了所有的组合,才能知道你的筛选条件是否正确。
实际上只要判断一种组合是否在所有组合中就可以了,如6门课程共有84种组合,最后有效组合有多少种,应该有招生学校来决定,符合BBCCDD条件的所有组合(我的观点应该是58种,楼主的观点是55种),不管是58种组合,还是55种组合,这时只要判定某种组合是否在这N种组合中就可以了,不需要层层筛选。这是最简单的判定方法。



每一课程可能级别有五种(ABCDE),两门就是25种,排序后去重还有15重,分别需要组合的有3、4、6、7门之多呢,如何用简便方法将所有可能列出,并区分合格不合格,再方便用程序去和他比较
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2019-6-26 14:39编辑过]

2019-06-26 14:37
chychychy
Rank: 2
等 级:论坛游民
帖 子:278
专家分:98
注 册:2015-4-18
收藏
得分:0 
以下是引用xuminxz在2019-6-26 09:08:26的发言:

没有那么多,注意到每一组合都有一个字段给出了组合结果(1C2B之类的)有效的每个平均不到10,而且可以根据要求自动生成。


组合很多,不止10个,如何自动生成?麻烦示范一下
2019-06-26 14:41
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
ABCDE组成6门课程等级的组合共有210种,代码如下

CREATE CURSOR tt (x1 c(1))
FOR i = 65 TO 69
    INSERT INTO tt VALUES (CHR(i))
ENDFOR
SELECT aa.x1 + bb.x1 + cc.x1 + dd.x1 + ee.x1 + ff.x1 AA FROM tt aa ;
INNER JOIN tt bb ON bb.x1 >= aa.x1 ;
INNER JOIN tt cc ON cc.x1 >= bb.x1 ;
INNER JOIN tt dd ON dd.x1 >= cc.x1 ;
INNER JOIN tt ee ON ee.x1 >= dd.x1 ;
INNER JOIN tt ff ON ff.x1 >= ee.x1 ;
ORDER BY 1 INTO CURSOR ZH6

下图只是210种组合的一部分
图片附件: 游客没有浏览图片的权限,请 登录注册

然后去掉不符合最低成绩等级的组合,剩余的就是符合最低成绩等级的组合。

坚守VFP最后的阵地
2019-06-26 15:55
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
另外设计一个表,结构
两科 M && 备注字段
三科 M
四科 M
五科 M
六科 M
七科 M
将生成的有效组合以文本的形式保存在相应的字段中

坚守VFP最后的阵地
2019-06-26 16:16
chychychy
Rank: 2
等 级:论坛游民
帖 子:278
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 76楼 sdta
厉害,刚刚学习也测试了,不好意思因为平时不用,所以没看懂,麻烦解释一下,尤其 SELECT部分,确实高明,我好学习排列其他组合。发现我不懂的地方实在太多了
再请教,如何将临时表中数据写回“等级库”表中六科字段(请勿见笑)

[此贴子已经被作者于2019-6-26 18:23编辑过]

2019-06-26 17:24
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 78楼 chychychy
其它组合只要增减代码即可
SQL命令,需要自己看帮助文件,别人是教不会的,再说也没有那么多时间

坚守VFP最后的阵地
2019-06-26 18:39
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
尽量不要对原表进行操作,所有操作尽量在临时表中进行即可。

坚守VFP最后的阵地
2019-06-26 18:41
快速回复:求助按科目成绩等级录取学生
数据加载中...
 
   



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

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