回 帖 发 新 帖 刷新版面

主题:帮助。。。分数段统计问题

比如从440分开始起5分一段,采取0-4,5-9的格式,统计各分段数的人数,人数结果要累加。格式如下表:

 650分及以上 649-645 ,644-640,639-635…… 464-460

有什么好方法?

回复列表 (共9个回复)

沙发

要求是不很明确,需要更清楚的题目实例,这样别人才好给你解答。

板凳


这个不是编程的问题,应该是数学的基础
我想是个取余的过程
即:
440/5==88
441/5取整后=88 ,441/5取整后*5=440

445/5=89

....
所以将如数据段为X
则X/5取整后,然后*5再还原就是该X的起始分数段啦

3 楼


最好能给个数据表,便于测试。

4 楼

use xx
disp
select 序号,考号,班级,姓名,总分,int(总分/5)*5初始分数段 from xx
001  1110120001 1101丁。。  573         570
057  1110120057 1101薛。。  572         570
043  1110120043 1101杨。。  550         550
015  1110120015 1101穆。。  541         540
。。。。。。

5 楼


没有人数出现啊

6 楼


生成个临时文件:ls
select 序号,考号,班级,姓名,总分,int(总分/5)*5 分数段,1 人数  from xx into curs ls
根据临时文件ls
统计各分段数的人数,人数结果要累加:

select 分数段,'-',5+分数段,  sum(人数) 人数 from ls group by 分数段 
结果就是:
           0-            5               1
         250-          255               2
         290-          295               1
         320-          325               1
         325-          330               1
         345-          350               1
         365-          370               2
         370-          375               1
         375-          380               1
         385-          390               1
         390-          395               1
....

7 楼

EXCEL中的“累加”是什么意思

CLOSE TABLES
USE XX ALIAS XX
SELECT MIN(总分) AS ZFMIN,MAX(总分) AS ZFMAX FROM XX WHERE !EMPTY(总分) INTO CURSOR TEMP
*---[color=FF0000]总分最大值与最小值[/color]
MINZF=ZFMIN &&起始分数
MAXZF=ZFMAX &&结束分数

*---[color=FF0000]设置分数段[/color]
CREATE CURSOR TNAME (分数段 C(10),人数 N(3))
LJ=0
FOR I=1 TO INT((MAXZF-MINZF)/5)+IIF(MOD(MAXZF-MINZF,5)=0,0,1)
    JS=INT(MINZF/5)*5+(I-1)*4
    IF JS+I-1>=650
       IF LJ<1
          INSERT INTO TNAME (分数段) VALUES ("FS650_750") 
          LJ=LJ+1
       ENDIF
    ELSE
       INSERT INTO TNAME (分数段) VALUES ("FS"+PADL(JS+I-1,3,"0")+"_"+PADL(JS+4+I-1,3,"0")) 
    ENDIF
ENDFOR

*---[color=FF0000]统计各分数段人数[/color]
SELECT XX
SCAN
    UPDATE TNAME SET 人数=人数+1 WHERE BETWEEN(XX.总分,VAL(SUBSTR(ALLTRIM(分数段),3,3)),VAL(SUBSTR(ALLTRIM(分数段),7,3)))
ENDSCAN
*---[color=FF0000]创建数据表字段[/color]
SELECT TNAME
SELECT 人数 FROM TNAME INTO ARRAY RS
DIMENSION RS (1,ALEN(RS))
LOCAL ASTRU
ASTRU=""
FOR I=1 TO RECCOUNT()
    GO I
    ASTRU=ASTRU+ALLTRIM(分数段)+" N(10)"+IIF(I<RECCOUNT(),",","")
ENDFOR
*---[color=FF0000]统计结果[/color]
CREATE CURSOR NEWNAME (&ASTRU)
INSERT INTO NEWNAME FROM ARRAY RS
BROWSE
CLOSE TABLES

8 楼

举例说明:
分数段   649-645  644-640   639-635   634-630 .......
人数        1        2         2         5    .......

9 楼


自己把上面的代码改下就行了

我来回复

您尚未登录,请登录后再回复。点此登录或注册