选择题数量:40—60,卷子数量:50——80

数据准备:按照四六级真题答案构建或者自动生成,卷子数量

提交:实验报告源代码,试卷结果,选择题答案

分值实现,利用数组


#include <stdio.h>
#include <math.h>
#include <string.h>
#include <time.h>
#include <windows.h>
#include <stdlib.h>
#define PAPERSIZE 55
#define TESTSIZE 55
int main()
{
printf("***************************************************\n");
printf("* 题目说明 *\n");
printf("* 1.共%d道选择题 *\n",TESTSIZE);
printf("* 2.1~30为听力,每题7.1分 *\n");
printf("* 3.30~40为完形填空,每题3.35分 *\n");
printf("* 4.40~50为长篇阅读,每题7.1分 *\n");
printf("* 5.50~%d为仔细阅读,每题14.2分 *\n",TESTSIZE);
printf("***************************************************\n");
float allScore;
allScore=30*7.1+3.35*10+7.1*10+(TESTSIZE-50)*14.2;
int n=PAPERSIZE;
//srand设置随机种子 ,应该放在最外面,放在while里面会出现所有的
//随机数都相同
srand((int)time(NULL));
while(n--)
{
//socre 为学生分数
//answer为标准答案
//stu_answer为学生所做的答案
float score=0;
char answer[60];
char stu_answer[60];
//memset初始化
memset(answer,0,sizeof(answer));
memset(stu_answer,0,sizeof(stu_answer));
for(int i=0;i<TESTSIZE;i++)
{
int num=rand()%4+1;
answer[i]='A'+num-1;
}
for(int i=0;i<TESTSIZE;i++)
{
int num=rand()%4+1;
stu_answer[i]='A'+num-1;
if(answer[i]==stu_answer[i])
{
if(i<=30)
score+=7.1;
else if(i<=40)
score+=3.35;
else if(i<=50)
score+=7.1;
else
score+=14.2;
}
}
printf("----------第%d套卷子----------\n",TESTSIZE-n);
printf(" 卷子的标准答案为 \n");
puts(answer);
printf(" 你做的答案为 \n");
puts(stu_answer);
printf("总分%.2f,你得到的分数为%.2f\n",allScore,score);
printf("按任意键输出下一套卷子\n");
system("pause");
}
return 0;
}