博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1073. 多选题常见计分法(20)
阅读量:6330 次
发布时间:2019-06-22

本文共 1766 字,大约阅读时间需要 5 分钟。

批改多选题是比较麻烦的事情,有很多不同的计分方法。有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到50%分数;如果考生选择了任何一个错误的选项,则不能得分。本题就请你写个程序帮助老师批改多选题,并且指出哪道题的哪个选项错的人最多。

输入格式:

输入在第一行给出两个正整数N(<=1000)和M(<=100),分别是学生人数和多选题的个数。随后M行,每行顺次给出一道题的满分值(不超过5的正整数)、选项个数(不少于2且不超过5的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。注意每题的选项从小写英文字母a开始顺次排列。各项间以1个空格分隔。最后N行,每行给出一个学生的答题情况,其每题答案格式为“(选中的选项个数 选项1 ……)”,按题目顺序给出。注意:题目保证学生的答题情况是合法的,即不存在选中的选项数超过实际选项数的情况。

输出格式:

按照输入的顺序给出每个学生的得分,每个分数占一行,输出小数点后1位。最后输出错得最多的题目选项的信息,格式为:“错误次数 题目编号(题目按照输入的顺序从1开始编号)-选项号”。如果有并列,则每行一个选项,按题目编号递增顺序输出;再并列则按选项号递增顺序输出。行首尾不得有多余空格。如果所有题目都没有人错,则在最后一行输出“Too simple”。

输入样例1:
3 4 3 4 2 a c2 5 1 b5 3 2 b c1 5 4 a b d e(2 a c) (3 b d e) (2 a c) (3 a b e)(2 a c) (1 b) (2 a b) (4 a b d e)(2 b d) (1 e) (1 c) (4 a b c d)
输出样例1:
3.56.02.52 2-e2 3-a2 3-b
输入样例2:
2 2 3 4 2 a c2 5 1 b(2 a c) (1 b)(2 a c) (1 b)
输出样例2:
5.05.0Too simple
#include 
#include
#include
#include
#include
using namespace std;struct answer{ int fullscore,choicenum; vector
ans; answer(int fs,int cn,vector
vs):fullscore(fs),choicenum(cn),ans(vs){}};vector
v;map
mis;void inputAnswer(vector
&as){ while(cin.get()!='('); int k; cin>>k; as.resize(k); for(int i=0;i
>as[i];}double compareAnswer(vector
&as,answer &rs,int k)//k题号 { if(as==rs.ans) return rs.fullscore*1.0; bool issemiright=true;//半对  int i=0,j=0; while(i
>n>>m; for(int i=0;i
>fs>>cn>>k; vector
ans(k); for(int j=0;j
>ans[j]; v.push_back(answer(fs,cn,ans)); } for(int i=0;i
as; inputAnswer(as); score+=compareAnswer(as,v[j],j); } while(cin.get()!='\n'); printf("%.1lf\n",score); } int maxmis=-1; for(auto &x:mis) maxmis=max(maxmis,x.second); for(auto &x:mis) { if(maxmis==x.second) cout<
<<" "<
<

转载于:https://www.cnblogs.com/xLester/p/7570268.html

你可能感兴趣的文章
R学习笔记 第五篇:字符串操作
查看>>
在Mac OS下配置PHP开发环境
查看>>
(转)介绍下Nuget在传统Asp.net项目中的使用
查看>>
C# ArcEngine 实现点击要素高亮并弹出其属性
查看>>
初识GO语言——安装Go语言
查看>>
SDK命令行操作
查看>>
基于Bootstrap的DropDownList的JQuery组件的完善版
查看>>
EXTJS学习系列提高篇:第二十四篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--阅增删改篇...
查看>>
Hadoop MapReduce编程 API入门系列之分区和合并(十四)
查看>>
判断二叉树是否平衡、是否完全二叉树、是否二叉排序树
查看>>
并查集的应用之求解无向图中的连接分量个数
查看>>
7个神奇的jQuery 3D插件
查看>>
在线浏览PDF之PDF.JS (附demo)
查看>>
波形捕捉:(3)"捕捉设备"性能
查看>>
AliOS Things lorawanapp应用介绍
查看>>
美国人的网站推广方式千奇百怪
查看>>
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>