总评计算
请修改编辑器中的代码,完成以下功能:程序需要创建一个名为 Score 的类,用于计算学生的总评成绩。该类包含课程名称、学号、平时成绩、期中成绩和期末成绩,并通过构造函数进行初始化。程序应修正错误以确保学号正确存储和返回,并实现 getFinal 函数以计算总评成绩。总评成绩计算公式为:平时成绩的20% + 期中成绩的30% + 期末成绩的50%。程序不需要读取输入,直接输出结果。 输出示例: 学号:12345678 课程:英语 总评成绩:85
#include <iostream>
#include <cstring>
#pragma warning (disable:4996)
using namespace std;
class Score{
public:
Score(const char *the_course, const char *the_id, int the_normal, int the_midterm, int the_end_of_term)
: course(the_course), normal(the_normal), midterm(the_midterm) , end_of_term(the_end_of_term){
// ERROR **********found**********
strcpy(the_id,student_id);
}
const char *getCourse()const{ return course; } //返回课程名称
// ERROR **********found**********
const char *getID()const{ return &student_id; } //返回学号
int getNormal()const{ return normal; } //返回平时成绩
int getMidterm()const{ return midterm; } //返回期中考试成绩
int getEndOfTerm()const{ return end_of_term; } //返回期末考试成绩
int getFinal()const; //返回总评成绩
private:
const char *course; //课程名称
char student_id[12]; //学号
int normal; //平时成绩
int midterm; //期中考试成绩
int end_of_term; //期末考试成绩
};
//总评成绩中平时成绩占20%,期中考试占30%,期末考试占50%,最后结果四舍五入为一个整数
// ERROR **********found**********
int getFinal()const{
return (int)(normal*0.2+midterm*0.3+end_of_term*0.5+0.5);
}
int main(){
char English[]="英语";
Score score(English,"12345678",68,83,92);
cout<<"学号:"<<score.getID()<<" ";
cout<<"课程:"<<score.getCourse()<<" ";
cout<<"总评成绩:"<<score.getFinal()<<endl;
return 0;
}
控制台
调试终端
