六级算分器程序(另附备考答题纸)

以下C++程序是本人根据六级的算法规则做出来的,算出的分数仅供参考,一般算出的分数需要减去20分才准。

#include <iostream>
using namespace std;

double listening_reading_points(double score)
{
 double standard_points;
 if(score==35)
 {
  standard_points=(35*2+1)*10*0.35;
 }

 else if(score==34)
 {
  standard_points=34*2*10*0.35;
 }

 else if(score<=33&&score>=26)
 {
  standard_points=(score*2-1)*10*0.35;
 }

 else if(score<=25&&score>=19)
 {
  standard_points=(score+25)*10*0.35;
 }

 else if(score<=18&&score>=10)
 {
  standard_points=(score+26)*10*0.35;
 }

 else if(score<=9&&score>=7)
 {
  standard_points=(score+27)*10*0.35;
 }

 else if(score<=6&&score>=2)
 {
  standard_points=(score+28)*10*0.35;
 }

 else if(score<=1)
 {
  standard_points=score+29;
 }

 if(standard_points-0.5==(int)standard_points)
 {
  standard_points=standard_points+0.5;
 }
 return standard_points;
}

double cloze_translating_points(double score)
{
 double standard_points;

 if(score<=15&&score>=14)
 {
  standard_points=(4*score+11)*10*0.15;
 }

 else if(score<=13&&score>=6)
 {
  standard_points=(3*score+24)*10*0.15;
 }

 else if(score<=5&&score>=0)
 {
  standard_points=(2*score+29)*10*0.15;
 }

 if(standard_points-0.5==(int)standard_points)
 {
  standard_points=standard_points+0.5;
 }
 return standard_points;
}

double writing_points(double score)
{
 double standard_points;
 standard_points=score*10*0.15;

 if(standard_points-0.5==(int)standard_points)
 {
  standard_points=standard_points+0.5;
 }
 return standard_points;
}

int main()
{
 double listening,reading,translating,cloze,writing;
 int fli,fre,fcl_ftr,fwr,final;
 cout<<"33分:条理不清,思路紊乱,语言支离破碎或大部分句子均有错误,且多数为严重错误。\n"
     <<"39分:基本切题,表达思想不清楚连贯性差,有较多严重的语言错误。\n"
     <<"45分:基本切题,有些地方表达思想不够清楚,文字勉强连贯;语言错误相当多,其中有一些是严重错误。\n"
     <<"57分:切题,表达思想清楚,文字连贯,但有少量语言错误。\n"
     <<"67分:切题,表达思想清楚,文字通顺,连贯性较好,基本上无语法错误,仅有个别小错。"
     <<"71分:最高分数。"
     <<"请输入“写作”的得分: \n";
 cin>>writing;
 cout<<"\n";

 cout<<"短对话、短文听力每题算1个,共25个;\n"
  <<"听写共11题,单词两题算一个,句子每题算2个,共10个\n"
  <<"请输入“听力”的得分: \n";
 cin>>listening;
 cout<<"\n";

 cout<<"快速阅读与简答阅读每题算一个,共15个;\n"
  <<"篇章阅读每题算2个,共20个。\n"
  <<"请输入“阅读”的得分: \n";
 cin>>reading;
 cout<<"\n";

 cout<<"每2题算1个,共10个;\n"
  <<"请输入“完形填空”的得分: \n";
 cin>>cloze;
 cout<<"\n";

 cout<<"每题算1个,共5个;\n"
  <<"请输入“翻译”的得分: \n";
 cin>>translating;
 cout<<"\n";

 fli=listening_reading_points(listening);
 fre=listening_reading_points(reading);
 fcl_ftr=cloze_translating_points(cloze+translating);
 fwr=writing_points(writing);
 final=fli+fre+fcl_ftr+fwr;

 cout<<"听力:\t"<<fli<<endl;
 cout<<"阅读:\t"<<fre<<endl;
 cout<<"综合:\t"<<fcl_ftr<<endl;
 cout<<"写作:\t"<<fwr<<endl;
 cout<<"总分:\t"<<final<<endl;
 system("pause");
}

这个是六级考试答题纸样式的URL地址:
http://wenku.baidu.com/view/abc369c24028915f804dc2ff.html

Tonitech版权所有 | 转载请注明出处: http://www.tonitech.com/?p=435

 

Tonitech版权所有 | 转载请注明出处: http://www.tonitech.com/435.html

发表评论