| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1998 人关注过本帖
标题:求助,这道题的程序思路该怎么
只看楼主 加入收藏
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
结帖率:71.43%
收藏
已结贴  问题点数:16 回复次数:15 
求助,这道题的程序思路该怎么
图片附件: 游客没有浏览图片的权限,请 登录注册


怎么利用程序整出还有名次的表啊
搜索更多相关主题的帖子: 思路 
2017-10-27 15:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:16 
名次的规则是什么,不要让大家猜谜啊

坚守VFP最后的阵地
2017-10-27 18:44
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
回复 2楼 sdta
图片附件: 游客没有浏览图片的权限,请 登录注册

就是可以做成这样的
2017-10-28 08:24
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
回复 2楼 sdta
* 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


在这个程序上X数组中存放的是全班平均分,Y中存放的优秀生平均分,Z中存放的综合平均分
怎么利用Z中的综合平均分对 1,2,15,16班各科排名显示到上面的名次里面
2017-10-28 08:40
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
为什么只能是1,2,15,16班,而不能是所有班,不明白楼主的意思

坚守VFP最后的阵地
2017-10-28 08:53
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
回复 5楼 sdta
应为我们这1,2,15,16班是一个系列的班都是重点班,要拿在一起比
2017-10-28 09:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
你可以把相应班级对应的科目挑出来进行排名次啊

坚守VFP最后的阵地
2017-10-28 09:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
以下是引用在路上666666在2017-10-28 09:00:10的发言:

应为我们这1,2,15,16班是一个系列的班都是重点班,要拿在一起比

问题要一次性说清楚,不说清楚别人如何知道啊。

坚守VFP最后的阵地
2017-10-28 09:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
你原来的表结构设计的也有问题,学校.DBF结构应该是:

班级
考号
姓名
科目
科目编号
成绩

这样才方便数据处理

坚守VFP最后的阵地
2017-10-28 09:04
在路上666666
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2017-10-24
收藏
得分:0 
回复 9楼 sdta
全校名次那个表出来就是这样的结构啊……
我从数组里面挑出来以后怎么排名啊,可以看看代码吗
2017-10-28 09:13
快速回复:求助,这道题的程序思路该怎么
数据加载中...
 
   



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

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