为了账号安全,请及时绑定邮箱和手机立即绑定

已知一个数值根据等级规则得到等级(自个写的程序,望大家指点指点)

已知一个数值根据等级规则得到等级(自个写的程序,望大家指点指点)

DIEA 2018-12-07 09:10:08
积分值等级: 等级 积分值 等级 积分值 等级 积分值 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; } 有好的程序也可以写下来,让小弟学习学习^_^
查看完整描述

2 回答

?
森栏

TA贡献1810条经验 获得超5个赞

这个问题使用表驱动的方式实现比较好。因为积分等级划分标准应该说是这个应用的变化部分。所以通过表驱动的方式进行隔离。

而相应的根据积分获取等级的话,就可以很简单的通过sql来实现。

具体代码就不写了,很简单的。

查看完整回答
反对 回复 2019-01-21
?
潇湘沐

TA贡献1816条经验 获得超6个赞

用数据库的表 新建3个自动 等级 小积分  大积分

select 等级 from 表 where 大积分>=xxx and 小积分<=xxx 

这样如果积分规则有变化 也只用更新表内容,而不用更新程序

查看完整回答
反对 回复 2019-01-21
  • 2 回答
  • 0 关注
  • 397 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信