| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2366 人关注过本帖, 3 人收藏
标题:编程技巧擂台赛[四]
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9844
专家分:27213
注 册:2012-2-5
结帖率:88.24%
收藏(3)
已结贴  问题点数:100 回复次数:27 
编程技巧擂台赛[四]
数据表[体考.DBF]结构如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

数据表[标准.DBF]结构如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

参照数据表[标准.DBF]中的内容,统计出必考分数[必考项目]、抽选分数[抽选项目]、自选分数[自选项目]、备选分数[备选项目]及总分数。
图片附件: 游客没有浏览图片的权限,请 登录注册

tabl.rar (73.65 KB)

请朋友们帮助,给出最优方案。
搜索更多相关主题的帖子: 结构 编程 擂台赛 数据表 技巧 
2012-12-31 17:34
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9844
专家分:27213
注 册:2012-2-5
收藏
得分:0 
数据表[体考.DBF]中字段的关系
必考项目—>必考项目数(测试结果)—>必考分数(对照[标准.DBF]中的下限上限判断,给出分数)
抽选项目—>抽选项目数(测试结果)—>抽选分数(同上)
自选项目—>自选项目数(测试结果)—>自选分数(同上)
备选项目—>备选项目数(测试结果)—>备选分数(同上)

只统计[标准.DBF]中有的内容。

[ 本帖最后由 sdta 于 2012-12-31 17:48 编辑 ]

坚守VFP最后的阵地
2012-12-31 17:46
gzzytxy
Rank: 2
等 级:论坛游民
帖 子:77
专家分:16
注 册:2010-1-26
收藏
得分:0 
路过 支持 支持
2012-12-31 18:58
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
标准表不全。只有两个项目的标准。不过可以猜想。
再就是不考试的,明显应该给0分,可标准里没有。怎么办?

坚持学习vfp,QQ:306805680
2012-12-31 23:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9844
专家分:27213
注 册:2012-2-5
收藏
得分:0 
没有成绩肯定是没有分数的
项目不全,不要去管它

坚守VFP最后的阵地
2012-12-31 23:41
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
第一次思考出来的代码,代码量虽然多,可运行速度应该比较快的。
程序代码:
USE 体考
SELECT 体考
DIMENSION tmp(1),tmp2(1),tmp3(1),tmp4(1)
SCAN
SELECT 分数 FROM 标准 WHERE BETWEEN(体考.必考项目数,下限,上限) AND 标准.项目名称==体考.必考项目 AND 标准.性别=体考.性别 INTO ARRAY tmp
IF NOT (EMPTY(tmp) OR ISNULL(tmp))
replace 必考分数 WITH tmp
ENDIF 
SELECT 分数 FROM 标准 WHERE BETWEEN(体考.抽定项目数,下限,上限) AND 标准.项目名称==体考.抽选项目 AND 标准.性别=体考.性别 INTO ARRAY tmp2
IF NOT (EMPTY(tmp2) OR ISNULL(tmp2))
replace 抽选分数 WITH tmp2
ENDIF 
SELECT 分数 FROM 标准 WHERE BETWEEN(体考.自选项目数,下限,上限) AND 标准.项目名称==体考.自选项目 AND 标准.性别=体考.性别 INTO ARRAY tmp3
IF NOT (EMPTY(tmp3) OR ISNULL(tmp3))
replace 自选分数 WITH tmp3
ENDIF 
SELECT 分数 FROM 标准 WHERE BETWEEN(体考.备选项目数,下限,上限) AND 标准.项目名称==体考.备选项目 AND 标准.性别=体考.性别 INTO ARRAY tmp4
IF NOT (EMPTY(tmp4) OR ISNULL(tmp4))
replace 备选分数 WITH tmp4
ENDIF 
replace 总分数 WITH 必考分数+抽选分数+自选分数+备选分数
ENDSCAN


[ 本帖最后由 月沐庭轩 于 2013-1-1 00:33 编辑 ]

坚持学习vfp,QQ:306805680
2013-01-01 00:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9844
专家分:27213
注 册:2012-2-5
收藏
得分:0 
多谢月版
能贴出最后运行结果图吗

坚守VFP最后的阵地
2013-01-01 00:21
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
部分分数图:
图片附件: 游客没有浏览图片的权限,请 登录注册

体考.zip (90.08 KB)


[ 本帖最后由 月沐庭轩 于 2013-1-1 00:54 编辑 ]

坚持学习vfp,QQ:306805680
2013-01-01 00:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9844
专家分:27213
注 册:2012-2-5
收藏
得分:0 
速度有点慢

坚守VFP最后的阵地
2013-01-01 01:01
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:20 
纯SQL语句,速度快了些。
程序代码:
SELECT ksh,分数  FROM 体考 LEFT JOIN 标准 ;
    ON 标准.项目名称=体考.必考项目 AND 标准.性别=体考.性别 ;
    AND  BETWEEN(体考.必考项目数,下限,上限) INTO CURSOR cursor1
SELECT  ksh,分数  FROM 体考 LEFT JOIN 标准 ;
    ON  标准.项目名称=体考.抽选项目 AND 标准.性别=体考.性别 ;
    AND  BETWEEN(体考.抽定项目数,下限,上限)  INTO CURSOR cursor2
SELECT  ksh,分数 FROM 体考 LEFT JOIN 标准 ;
    ON 标准.项目名称=体考.自选项目 AND 标准.性别=体考.性别;
    AND  BETWEEN(体考.自选项目数,下限,上限)  INTO CURSOR cursor3
SELECT  ksh,分数 FROM 体考 LEFT JOIN 标准 ;
    ON 标准.项目名称=体考.备选项目 AND 标准.性别=体考.性别 ;
    AND  BETWEEN(体考.备选项目数,下限,上限) INTO CURSOR cursor4
SELECT 体考.ksh,性别,必考项目,抽选项目,自选项目,备选项目,必考项目数,抽定项目数,自选项目数,备选项目数,;
    NVL(cursor1.分数,0) AS 必考分数 FROM 体考,cursor1 WHERE 体考.ksh=cursor1.ksh INTO CURSOR cursor5
SELECT cursor5.* ,NVL(cursor2.分数,0) AS 抽选分数 FROM cursor5,cursor2 WHERE cursor5.ksh=cursor2.ksh INTO CURSOR cursor6
SELECT cursor6.* ,NVL(cursor3.分数,0) AS 自选分数 FROM cursor6,cursor3 WHERE cursor6.ksh=cursor3.ksh INTO CURSOR cursor5
SELECT cursor5.* ,NVL(cursor4.分数,0) AS 备选分数 FROM cursor5,cursor4 WHERE cursor5.ksh=cursor4.ksh INTO CURSOR cursor6
SELECT cursor6.* ,必考分数+抽选分数+自选分数+备选分数 AS 总分数 FROM cursor6 INTO CURSOR cursor5
BROWSE


[ 本帖最后由 月沐庭轩 于 2013-1-1 09:05 编辑 ]

坚持学习vfp,QQ:306805680
2013-01-01 09:04
快速回复:编程技巧擂台赛[四]
数据加载中...
 
   



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

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