Student类包含私有数据成员学生姓名、成绩、总人数、总成绩;成员函数sum()计算总人数和总成绩;成员函数aver()计算n个学生的平均成绩。补充完成下列程序。 #include using namespace std; class Student //补充代码 int Student::sum_score=0; int Student::count=0; int main() { Student stu[5] ={Student("Ma",89),Student("Hu",90),Student("LU",95), Student("Li",88),Student("Gao",75)}; for(int i=0;i<5;i++) stu[i].sum(); cout<<"Average="<<Student::aver()<<endl; }
时间: 2023-06-08 09:04:37 浏览: 46
```c++
#include<iostream>
using namespace std;
class Student{
private:
string name; //学生姓名
double score; //学生成绩
static int total; //总人数
static double sum; //总成绩
public:
//构造函数
Student(string n,double s):name(n),score(s){
total++;
sum += s;
}
//静态函数
static double getAverage(){
return sum/total;
}
};
//静态成员变量初始化
int Student::total = 0;
double Student::sum = 0;
int main(){
Student st1("小明", 90);
Student st2("小红", 85);
Student st3("小刚", 95);
cout << "平均成绩为:" << Student::getAverage() << endl;
return 0;
}
```
相关问题
用c++写一个student类含有学号和成绩,并包含一个友元函数计算平均分数
好的,下面是用C++语言写一个包含学号和成绩的student类,并包含一个友元函数计算平均分数:
```
#include <iostream>
using namespace std;
class student{
private:
int id;
float score;
public:
student(int i, float s):id(i),score(s){}
friend float average(student s[],int n);
};
float average(student s[],int n){
float sum=0;
for(int i=0;i<n;i++)
sum+=s[i].score;
return sum/n;
}
int main(){
student stu[5]={student(1001,89.5),student(1002,90),student(1003,78),student(1004,84),student(1005,95)};
cout<<"平均分数为:"<<average(stu,5)<<endl;
return 0;
}
```
在这个程序中,我们定义了一个student类,它包含了私有成员变量id和score,以及一个构造函数和一个友元函数average。友元函数average可以访问student类的私有成员变量,并通过for循环求出所有学生的总成绩,最后返回平均分数。在main函数中,我们定义了一个包含五个学生对象的stu数组,并调用average函数计算平均分数并输出。
使用友元函数,Student类包含私有数据成员学生姓名、成绩。全局函数sum()计算总人数、总成绩;全局函数aver()计算n个学生的平均成绩(函数参数自己设定)。补充完成下列程序。 #include using namespace std; static int sum_score=0, count=0; //补充代码 int main() { Student stu[5] ={Student("Ma",89),Student("Hu",90),Student("LU",95), Student("Li",88),Student("Gao",75)}; for(int i=0;i<5;i++) sum(stu[i]); cout<<sum_score<<"," <<count<<endl; cout<<"Average="<<aver()<<endl; }
下面是使用友元函数的Student类程序,并且实现了全局函数sum()和aver():
#include<iostream>
#include<string>
using namespace std;
class Student{
private:
string name; //学生姓名
int grade; //成绩
public:
Student(string name, int grade) {
this->name = name;
this->grade = grade;
}
friend void sum(Student* students, int n); //声明sum()为友元函数
friend float aver(Student* students, int n); //声明aver()为友元函数
};
void sum(Student* students, int n) {
int totalScore = 0;
for (int i = 0; i < n; i++) {
totalScore += students[i].grade;
}
cout << "总人数:" << n << endl;
cout << "总成绩:" << totalScore << endl;
}
float aver(Student* students, int n) {
int totalScore = 0;
for (int i = 0; i < n; i++) {
totalScore += students[i].grade;
}
return (float)totalScore / n;
}
int main() {
Student students[] = {
{"小明", 80},
{"小红", 90},
{"小华", 95},
{"小李", 85},
{"小张", 92}
};
int n = sizeof(students) / sizeof(Student);
sum(students, n); //调用sum()计算总人数和总成绩
cout << "平均成绩:" << aver(students, n) << endl; //调用aver()计算平均成绩
return 0;
}