ASP给成绩排名(排序)的方法,要求分数相同的成绩名次相同
作者:随然 日期:2009-01-15
在用ASP制作成绩分析系统的时候,用到了很多的ASP函数,但就是没有成绩排名的函数,所以自己写了一个能排名的程序,供大家参考。我也想了几个能分析出一个分数在所有分数中占的位置或名次,想了半天还是觉得下面的办法来得简单一些,运算要快一些。
使用ASP给数据库中的成绩进行排名,要求分数相同的成绩名次相同。
实现思路:将成绩按从大到小排列,第一个数的名次写入1,然后循环,判断第二个数与第一个数是否相等,相等则写入相同的名次,不相等则名次加1,再循环……
复制内容到剪贴板 程序代码
<%
'为班级排名
j=0
i=0
thesame=0
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select stu_no,cj_all from student where class_no="&banji&" order by cj_all desc"
rs.open sql,conn,1,1
do while not rs.eof
'如果分数相同,则名次相同。如:两个并列第一名,则没有第二名,下一个为第三名
if rs("cj_all")=thesame then
i=i
j=j+1
else
i=i+j+1
j=0
end if
thesame=rs("cj_all")
sql="update student set cj_banxu="&i&" where stu_no='"&rs("stu_no")&"'"
conn.execute(sql)
rs.movenext
loop
rs.close
%>
'为班级排名
j=0
i=0
thesame=0
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select stu_no,cj_all from student where class_no="&banji&" order by cj_all desc"
rs.open sql,conn,1,1
do while not rs.eof
'如果分数相同,则名次相同。如:两个并列第一名,则没有第二名,下一个为第三名
if rs("cj_all")=thesame then
i=i
j=j+1
else
i=i+j+1
j=0
end if
thesame=rs("cj_all")
sql="update student set cj_banxu="&i&" where stu_no='"&rs("stu_no")&"'"
conn.execute(sql)
rs.movenext
loop
rs.close
%>
[本日志由 随然 于 2010-03-07 10:56 PM 编辑]
上一篇: 教师给学生的毕业赠言100句下一篇: 学习三部曲之一:学生为什么学习不好?
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ASP 网页
相关日志:
评论: 0 | 引用: 0 | 查看次数: 18012
发表评论