| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3881 人关注过本帖
标题:计算各科平均分
只看楼主 加入收藏
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
657567.zip (39.29 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册

这是什么情况啊
是我Excel转dbf格式不对吗
2017-10-24 17:39
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
我做出来了谢谢刚才我知道问题了
2017-10-24 17:44
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
大神可以注释一下你的程序吗看不明白好可怜
2017-10-24 17:49
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
回复 5楼 sdta
大神可以注释下你的程序吗看不明白谢谢
2017-10-24 17:49
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9795
专家分:26886
注 册:2012-2-5
收藏
得分:0 
程序代码:
* VFP6代码
CLOSE DATABASES ALL 
SET SAFETY OFF 
SET COLLATE TO "MACHINE" 
cStr="班级,总分,语文,数学,英语,物理,化学,生物,历史,地理,政治"
=ALINES(azd,CHRTRAN(cStr,",",CHR(10)+CHR(13)))
* 创建表结构
cField="班级 C(2),总分 N(7,2)"
FOR i=3 TO ALEN(azd,1)
    cField=cField+","+azd[i]+" N(6,2)"
ENDFOR
CREATE CURSOR 平均分 (&cfield)
SELECT distinct 班级 FROM 学校 INTO ARRAY abj
LOCAL X[ALEN(abj,1),11],Y[ALEN(abj,1),11],Z[ALEN(abj,1),11]
STORE 0 TO X,Y,Z

* 班级各科全部平均分
SELECT 学校
INDEX on 班级 TAG px 
FOR i=1 TO ALEN(abj,1)
    X[i,1]=abj[i]
    FOR ii=2 TO ALEN(azd,1)
        rs=0
        ncj=0
        SCAN FOR 班级=abj[i]
            ncj=ncj+&azd[ii]
            rs=rs+1
        ENDSCAN 
        X[i,ii]=ROUND(ncj/rs,2)
    ENDFOR
ENDFOR 
* 班级各科前20名(最后有相同的分数可能超过20人)平均分
FOR i=ALEN(abj,1) TO 1 STEP -1
    Y[i,1]=abj[i]
    FOR ii=2 TO ALEN(azd,1)
        INDEX on 班级-STR(&azd[ii],7,1) TAG px DESCENDING 
        rs=0
        ncj=0
        nfs=0
        SCAN FOR 班级=abj[i]
            IF &azd[ii]!=nfs AND rs>=20
                EXIT 
            ENDIF  
            ncj=ncj+&azd[ii]
            rs=rs+1
            nfs=&azd[ii]
        ENDSCAN 
        Y[i,ii]=ROUND(ncj/rs,2)
    ENDFOR
ENDFOR 
* 最后平均分
FOR i=1 TO ALEN(abj,1)
    Z[i,1]=abj[i]
    FOR ii=2 TO  ALEN(azd,1)
        Z[i,ii]=X[i,ii]*0.6+Y[i,ii]*0.4
    ENDFOR
ENDFOR
INSERT INTO 平均分 FROM ARRAY Z
SELECT 平均分
BROWSE 
CLOSE DATABASES all
ERASE *.IDX

坚守VFP最后的阵地
2017-10-24 18:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9795
专家分:26886
注 册:2012-2-5
收藏
得分:0 
学校.rar (39.25 KB)
EXCEL转换后的DBF表

坚守VFP最后的阵地
2017-10-24 18:47
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
回复 16楼 sdta
非常感谢
2017-10-24 18:53
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
回复 15楼 sdta
INDEX on 班级-STR(&azd[ii],7,1) TAG px DESCENDING
这一句什么意思啊
2017-10-25 10:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9795
专家分:26886
注 册:2012-2-5
收藏
得分:0 
- 改为+
不影响

坚守VFP最后的阵地
2017-10-25 11:36
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
回复 5楼 sdta
还是这个表结构怎么实现每个班全校前40名的有多少人,前160名的有多少人,前760名的有多少人
2017-10-26 08:14
快速回复:计算各科平均分
数据加载中...
 
   



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

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