用C实现mooc作业的5人评价思路

5水平各异的人对同一份作业的评分取平均值,就和老师评分的结果十分相近。
mooc利用这个原理,创造了moocer们互相评分的作业打分机制,给老师带来了极大的便利,moocer们也可以在打分的同时参阅别人的作业,获得更多的学习。

于是,我也完成了一个类似的5人打分机制功能的实现:
学生按上交作业的时间排序,0号学生依次向后评价1,2,3,4,5号学生的作业
被评价的学生编号 = (打分学生编号 + i)% 总人数 i = 1,2,3,4,5
*参与作业提交与打分的总人数必须>=6才可以完成
*用C是想复习一下~

源代码:

#include <stdio.h>
#include <stdlib.h>
//对于mooc上作业评价机制的实现
//每人上交一份作业 同时必须批改5个人的作业,即每个人可以得到5份来自不同学生的评价分数
//结构体 student-来自他人的评价(5个)&自己对他人的评价(5个)
//评价完成后分数写入对应同学的struct-来自他人的评价
//评价的作业来自自己后面上交的5份(是否可实现每人有5份评价?)(x + i) % 13 = 评价的学生学号


struct student //student结构体存放成绩
{
int my_score[5];
int flag;//记录my_score数组的填充情况
};


int main()
{
int i,j;
int n = 6;//假设现在有6个学生互相评分
struct student A[n];
for(i = 0;i < n;i++)
A[i].flag = 0;//初始化flag在第0位上
for(i = 0;i<n;i++)
{
printf("请第%d号同学打分:\n",i+1);
for(j = 1;j<=5;j++)
{
int m = (i + j) % n;//m是被打分的同学学号,上面的那个算法
printf("请输入被评分的第%d个同学的分值:",j);
scanf("%d",&A[m].my_score[A[m].flag]);
A[m].flag++;
}
}
for(i = 0;i < n;i++)
{
int score=0;
printf("第%d个同学的成绩是:\n",i+1);
for(j = 0;j <= 5;j++)
{
printf("%d\t",A[i].my_score[j]);
score += A[i].my_score[j];
}
printf("\n平均成绩是:%d",score/5);
printf("\n");
}
return 0;
}

这个算法可以基本实现5人打分的思路,但并不是完全随机的,所以最后的成绩可能和提交作业的真实质量还有所不同,还可以继续改进 : )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值