注册 登录
编程论坛 VB6论坛

请老师给这个积分算法一点提示吧

pxinfo 发布于 2019-12-18 22:04, 1573 次点击
请老师给这个积分算法一点提示吧,代码应该怎么写啊?这样的三个表的设计合理吗? 谢谢老师

学生每月成绩作为基础数据表:
ID 姓名  考核时间  理论成绩  操作成绩  合计成绩  录入时间   备注
1  张三  2019-1-1    45          15      60       2019-1-5
1  张三  2019-2-1    55          20      75       2019-2-5
1  张三  2019-3-1    50          30      80       2019-3-5
1  张三  2019-3-5    42.25       22.75   65       2019-3-5 转换结余

奖励积分表
ID 姓名 奖励积分
1  张三   1

兑换积分表
ID 姓名 兑换积分
1  张三   0

积分转换时间表(用于记录学员转换成绩运算的起始时间)
ID 姓名 转换时间
1  张三 2019-3-5

每个月都会有成绩录入,每满150分,且平均分高于60分,转换成一个奖励积分,如果平均分低于60分,则转换成一个兑换积分,

上面三个月的数据加起来有215分,超出150分的部分65分,按照65分的65%(42.25分)转成理论成绩,35%(22.75)转成操作成绩保留在基础数据,累积到下次满150分的运算。
2 回复
#2
yingshu2019-12-20 13:37
select 姓名,sum(合计)as 合计   form 表 group by 姓名           ’如果计算平均分不考虑转换结余,增加WHERE语句
 for i = 0 to rs.recordcount -1
if 合计>160 then
    变量 =合计/次数
    select case 变量
        CASE >=60
            合计-160 差额分摊后写入“基础数据表”
              日期写入“积分转换时间表 ”
              奖励积分写入 “奖励积分表”
        CASE <60
            合计-160 差额分摊后写入“基础数据表”
             日期写入“积分转换时间表 ”
              奖励积分写入 “兑换积分表”
    END SELECT
end if
      next   
希望没有错别字,
希望对你有帮助

[此贴子已经被作者于2019-12-20 13:42编辑过]

#3
pxinfo2019-12-21 22:20
谢谢老师,我试试看
1