回 帖 发 新 帖 刷新版面

主题:关于排名次的问题

有一个学生成绩库,按总分高低已排,名次字段要求,总分相同者名次一样,如,两第一,下来次就是第三,代码咋写?我急,各位大师帮帮啊!

回复列表 (共4个回复)

沙发

REPLACE ALL 名次 WITH RECNO()
GO top
    n成绩=成绩
    n名次=1
DO WHILE !EOF()
    IF 成绩=n成绩
        REPLACE 名次 WITH n名次
    ENDIF
    n成绩=成绩
    n名次=名次
    SKIP
ENDDO

板凳

[url=http://bbs.bccn.net/viewthread.php?tid=232909&extra=&highlight=&page=2]参考帖子[/url]

3 楼


  [b]   [size=1][color=0000FF] 大家好,我是刚来的,希望以后大家多多帮助[/color]。[/b][/size]

4 楼

假如你的成绩已按总分由高到低排过序了,假如你的成绩表也在当前工作区中打开了,如下代码可以一试:

m.mc = 0
m.xh = 0
m.zf = 10000               && m.zf 记录上一条记录的总分的内存变量,初始化为 10000
scan                       && 顺利成绩表
  m.xh = m.xh + 1          && 序号加1
  if zongfen < m.zf        && 假设你成绩表中"总分"的字段名为"zongfen" , 如果本条记录的总分小于上一条记录,则
     m.mc = m.xh           && 本条记录的名次为本条记录的顺序号
     m.zf = zongfen        && 把本条记录的总分值给内存变量m.zf保存,以备与下一条记录的总分进行比较;
  endif
  repl mingci with m.mc    && 假设你的成绩表中"名次"的字段名为 "mingci"
endscan

我来回复

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