本题目要编写一个评分器。创建考试后,当输入做题总数和错题数时自动求出分数 代码中包含两个类,分别是: 1、父类Grade负责将成绩分成级别,如,A:100-90;B:89-80;C:79-70;D:69-60;F:低于60分 私有成员: 字符变量letter---- 表示成绩的级别,如‘A’、‘B’等 单精度浮点变量score---表示真实分数 函数calcGrade()---无返回值,将分数分成级别 公有成员:
setScore函数--设置分数 getScore函数--获取分数 getLetter函数---获取成绩级别 2、子类Test 公有继承Grade,用以创建考试 私有成员: 变量numQuestions---- 表示做题总数 变量pointsEach---表示每题分数 变量numMissed()---表示做错题数 公有成员:
构造函数,用以初始化考试做题总数与错题数
输入格式:
总题数 错题数
输出格式:
The score is:分数 The grade is:级别
输入样例:
在这里给出一组输入。例如:
12
3
输出样例:
The score is:75.00
The grade is:C
在这里给出相应的输出。例如:
#include<iostream>
#include<iomanip>
using namespace std;
class Grade{
char letter;
float score;
public:
void calcGrade(){
if(score>=90 && score<=100) letter='A';
else if(score>=80 && score<=89) letter='B';
else if(score>=70 && score<=79) letter='C';
else if(score>=60 && score<=69) letter='D';
else if(score>=0 && score<60) letter='F';
}
void setScore(float n){
score=n;
calcGrade();
}
float getScore(){
return score;
}
char getLetter(){
return letter;
}
};
class Test :public Grade{
int numQuestions;
float pointsEach;
int numMissed;
public:
Test(int m,int n){
numQuestions=m;
numMissed=n;
pointsEach=100.00/numQuestions;
setScore((numQuestions-numMissed)*pointsEach);
}
};
int main(){
int m,n;
cin>>m>>n;
Test t(m,n);
cout<<"The score is:"<<fixed<<setprecision(2)<<t.getScore()<<endl;
cout<<"The grade is:"<<t.getLetter()<<endl;
}