#include <iostream>
#include <vector>
using namespace std;
class Student {//学生类,用于统计学生各科成绩,总成绩,平均成绩
private:
string name;//学生姓名
string number;//学号
vector<double> score;//分数
double totalScore=0;//总分
double averageScore=0;//平均分
vector<string> course{"语文","数学","英语","综合"};//四门课程
public:
void inputScore();//录入学生成绩
void countTotal();//总分计算
void countAverage();//平均分计算
void showScore();//输出学生成绩
};
void Student::inputScore()//录入学生各科成绩
{
string str1;//声明字符串变量,用于存放学生姓名
double sco;//声明双浮点变量,用于存放科目分数
cout << "请输入学生姓名:";
cin >> str1;//录入学生姓名
this->name = str1;
for (int i = 0; i != 4; i++) {//循环输入学生各科成绩
cout << "学生" << str1 << course[i] << "成绩为:";
cin >> sco;
(this->score).push_back(sco);
}
}
void Student::showScore()//格式化输出学生各科成绩,统计总分均分并输出
{
cout << "学生" << this->name << endl;
cout << "课程:";
for (int i = 0; i != 4; i++){
cout<< this->course[i]<<" ";
}
cout << endl;
cout << "分数:";
for (int i = 0; i != 4; i++) {
cout << this->score[i]<<" ";
}
cout << endl;
cout << "总分:" << this->totalScore << endl;
cout << "平均分:" << this->averageScore << endl;
}
void Student::countTotal()//计算总分
{
this->totalScore = this->score[0] + this->score[1] + this->score[2] + this->score[3];
}
void Student::countAverage()//计算平均分
{
this->averageScore = (this->totalScore) / 4.0;
}
int main()
{
Student stu1;//实例化学生对象
stu1.inputScore();//调用成员函数录入各科成绩
stu1.countTotal();//计算总分
stu1.countAverage();//计算平均分
stu1.showScore();//格式化输出
//stu1.name="张三" //调用私有成员失败报错
return 0;
}
为什么这段代码能在vs2022中运行,但是在vc++6.0中报错
vector x{xxx,yyyy,zzz}这叫列表初始化,这玩意儿从c++11才支持,vc6出来的时c++11标准还没有呢。
都什么年代了还用vc6
报什么错
【以下回答由 GPT 生成】
这段代码能够在VS 2022中成功运行的原因是符合C++语法规则,并且没有语法错误。根据代码,它实现了一个学生类,可以录入学生的各科成绩,并计算总成绩和平均成绩,最后输出学生的成绩信息。
具体来说,这段代码的运行过程是:
导入所需的头文件 <iostream>
和 <vector>
。
创建一个名为 Student
的类,包含私有成员变量 name
、number
、score
、totalScore
、averageScore
和 course
。
在类的定义中,声明了四个成员函数 inputScore()
、countTotal()
、countAverage()
和 showScore()
,用于实现录入成绩、计算总分、计算平均分和输出成绩的功能。
在 inputScore()
函数中,首先要求用户输入学生姓名,并将输入的姓名赋值给 name
成员变量。然后,使用循环四次,分别让用户输入学生的语文、数学、英语和综合成绩,并将输入的成绩存储在 score
变量中。
showScore()
函数用于格式化输出学生的各科成绩和统计信息。首先输出学生的姓名,然后使用循环输出每门课程的名称,接着再使用循环输出对应课程的成绩。
在 main()
函数中,创建了一个名为 student
的 Student
类对象,然后依次调用 inputScore()
和 showScore()
函数,完成成绩的录入和输出。
代码没有明显的错误或违反语法规则,所以能够在VS 2022中成功编译和运行。