站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题请教用户等级的算法。

请教用户等级的算法。

摘要: 请教用户等级的算法。


我的用户积分根据各种方式获得,这里不管,数据库中只存储了一个总积分。
现新加一数据库表:结构如下
一级 100
二级 200
三级 500
四级 700
注:各级之间的分差是没有规律的(由管理员动态的设置),现在希望使用用户的积分(如我的积分为300)获得我的等级(应该是二级)。请不要使用SQL语句实现,直接用程序的算法实现或讲一下方法,谢谢。


int a;
int b;
setA;
setB;
if(value-#60;a) {}
if(a-#60;value-#38;-#38;value-#60;b) {}


如果不只是a,b,c,而是有100个等级结构呢?楼上朋友这样好像有问题哦。


那样的话 用集合


一级 100
二级 200
三级 500
四级 700

每一行是一个Grade对象,然后使用List存储全部的
int userScore = x;
String grade = null;
for(int i = 0; i -#60; list.size() -#38;-#38; list.get(i).getScore() -#60; userScore; i++)
grade = list.get(i).getGrade();


假设积分等级表有“等级名”,“等级起始分数”

在积分等级表找出等级起始分数-#60;=用户积分的记录并按分数排倒序,然后取出第一条记录的等级名就OK了。


假设积分等级表有“等级名”,“等级起始分数”两个字段

在积分等级表找出“等级起始分数”-#60;=“用户积分”的记录并按“等级起始分数”排倒序,然后取出第一条记录的“等级名”就OK了。



select top 1 等级名 from 积分等级表 where 等级起始分数-#60;用户积分 order by 等级起始分数 DESC


我是有个办法,将积分对等级分别取模和取余,并将其值求和,将和进行比较,最小值对应的就为用户等级,不知有没有其他简单的办法,这个太麻烦了。
现在要出去,刚看到ChDw(米) ( 三星(高级)) 的方法,回来试试。
楼上Rayuu() 朋友使用了SQL,不符合要求,不过谢谢。


嗯,ChDw(米) 的方法需要在每次更改等级结构时对list进行排序,不过也挺方便的。不需要乱计算了。


单独把等级提出一个表,然后在程序中读数据库的等级级,并初始化,管理员可以动态改变,用户登录你的系统后再计算等级就可以了。


↑返回目录
前一篇: public static long parseLong(String s, int radix)中的radix那位老大给解释一下?
后一篇: Class的方法public Class[] getInterfaces()与public ClassLoader getClassLoader()这两个方法如何理解?