积分值等级:
等级 |
积分值 |
等级 |
积分值 |
等级 |
积分值 |
1级 |
0-10 |
10级 |
131-150 |
19级 |
451-500 |
2级 |
11-20 |
11级 |
151-180 |
20级 |
501-550 |
3级 |
21-30 |
12级 |
181-210 |
21级 |
551-650 |
4级 |
31-40 |
13级 |
211-240 |
22级 |
651-750 |
5级 |
41-50 |
14级 |
241-270 |
23级 |
751-850 |
6级 |
51-70 |
15级 |
271-300 |
24级 |
851-950 |
7级 |
71-90 |
16级 |
301-350 |
25级 |
951-1000 |
8级 |
91-110 |
17级 |
351-400 |
26级 |
1001以上 |
9级 |
111-130 |
18级 |
401-450 |
注:1-5级是每10个积分值递增一级;6-10级是每20个积分值递增一级;11-15级是每30个积分值递增一级;16-20级是每50个积分值递增一级;21级以上是每100个积分值递增一级;积分等级最高等级为26级。
/// <summary>
/// 获取积分等级
/// </summary>
/// <param name="loveNum">积分值</param>
/// <returns></returns>
public int GetLoveLevel(int loveNum)
{
int[,] number2D = new int[26, 2] { { 0, 10 }, { 11 , 20 }, { 21 , 30 }, { 31 , 40 }, { 41 , 50 }, { 51 , 70 }, { 71 , 90 }, { 91 , 110 }, { 111 , 130 }, { 131 , 150 }, { 151 , 180 }, { 181 , 210 }, { 211 , 240 }, { 241 , 270 }, { 271 , 300 }, { 301 , 350 }, { 351 , 400 }, { 401 , 450 }, { 451 , 500 }, { 501 , 550 }, { 551 , 650 }, { 651 , 750 }, { 751 , 850 }, { 851 , 950 }, { 951 , 1000 }, { 1001, 1001 } };
if (loveNum <= 0)
{
return 1;
}
if (loveNum >= number2D[number2D.GetLength(0) - 1, 0])
{
return number2D.GetLength(0);
}
for (int i = 0; i < number2D.GetLength(0); i++)
{
if (loveNum >= number2D[i, 0] && loveNum <= number2D[i, 1])
{
return i + 1;
}
}
return 1;
}
有好的程序也可以写下来,让小弟学习学习^_^
这个问题使用表驱动的方式实现比较好。因为积分等级划分标准应该说是这个应用的变化部分。所以通过表驱动的方式进行隔离。
而相应的根据积分获取等级的话,就可以很简单的通过sql来实现。
具体代码就不写了,很简单的。
用数据库的表 新建3个自动 等级 小积分 大积分
select 等级 from 表 where 大积分>=xxx and 小积分<=xxx
这样如果积分规则有变化 也只用更新表内容,而不用更新程序