求教 考试中算分的算法问题

aegisho 2010-11-07 01:24:07
主要有两类
1.多选题 答对满分 答错0 少答半分

主要纠结在少答这部分
数据库里存储的答案是 ABCDEFG 这样
学生的答案可能 是AC ,ADE,DFG(答案按照字母排序)
求教算法 写到一半脑子都晕了
 foreach (DataRow dr in ds.Tables[0].Rows)
{
string[] a = new string[7];
string d1 = dr[0].ToString();
string d2 = dr[1].ToString();
if (dr[0] == dr[1])
{
scores += avg;
}
else if(d1.Length<d2.Length)
{
for (int i = 0; i < d1.Length;i++ )
{
a[i] = d1.Substring(i, 1);
if (d2.IndexOf(a[i]) < 0)
{
???????????
}
}
}
}


2.填空题
这个更加复杂
数据库设计的是7个字段存放前后文本 6个字段存放相应答案
由于无法预计答案是否有序
所以感觉很难做

比如说 问题1 请问常见的音频格式是什么____,______。 这样的问题 答案 无序,满足就可得分
问题2 MP3是_______,MP4是_______。这样的问题答案就有序。

具体判断的时候 感觉要把答案和标准答案做成两个数组循环
匹配上了 从两个数组里减去相应项 分数++;



以前还以为是很简单的部分 ……头大
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aegisho 2010-11-07
  • 打赏
  • 举报
回复
多选题还是比较简单的
当时脑子比较糊涂 现在做出来了

填空题和别人讨论之后决定在数据库答案这一块来做
把可能的答案用“|”分开 然后一一对应的取值判断
感觉程序逻辑很困难的时候 还是要考虑变通数据库……

结贴
threenewbee 2010-11-07
  • 打赏
  • 举报
回复
(1)不难做。
对学生答案排序。依次检查每个答案是否在标准答案里面,如果不在,0分。
否则依次检查标准答案是否都在学生答案里面,如果不在,半分,否则,满分。
(2)我个人的建议,填空题不适合标准化考试。将正确的答案判断为错误,伤害学生感情非常大,也直接使得考试的公信度变得一文不值。
li309000011 2010-11-07
  • 打赏
  • 举报
回复
填空题。。。。

默默的支持LZ一下。。
whb147 2010-11-07
  • 打赏
  • 举报
回复
填空题没办法用机器的,还是手工吧
zhongweng 2010-11-07
  • 打赏
  • 举报
回复
填空题循环一次和正确答案做比较看有几个是批配上的 多选题首先看是否答错 答错直接return 没错再判断是否完整 没完整半分 完整满分
清山博客 2010-11-07
  • 打赏
  • 举报
回复
(1)写一个函数,判断选择项(string selectItem)与标准答案(string answer)相同的字符数(int count)。
如果count=0;得0分;
如果0<count<answer.Length;得一半分;
如果count=answer.Length;得全分;
(2)填空题,最好不要吧,要严格匹配才算对,很难全答对的哦

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧