创建学生类,私有数据成员学号、姓名、C++成绩,添加静态数据成员系别 xb初始值为信息工程,静态数据成员总分初始值为0,人数初始值为0,公有成员函数有参和无参构造函数、拷贝构造函数,析构函数,设置系别函数,添加设置学生信息函数、输出学生信息函数,求总分函数total,静态求平均分成员函数 avg,在主函数中创建对象数组stu包含3个对象,循环设置、输出学生信息并求出学生平均分并打印
时间: 2024-03-19 08:45:47 浏览: 115
好的,下面是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string stuNo; // 学号
string name; // 姓名
int cppScore; // C++成绩
static string xb; // 系别
static int total; // 总分
static int num; // 人数
public:
Student() {} // 无参构造函数
Student(string no, string n, int score) { // 有参构造函数
stuNo = no;
name = n;
cppScore = score;
total += score; // 计算总分
num++; // 人数加1
}
Student(const Student& stu) { // 拷贝构造函数
stuNo = stu.stuNo;
name = stu.name;
cppScore = stu.cppScore;
total += cppScore; // 计算总分
num++; // 人数加1
}
~Student() { // 析构函数
total -= cppScore; // 减去该对象所占总分
num--; // 人数减1
}
void setXb(string x) {
xb = x;
}
void setStudentInfo(string no, string n, int score) { // 设置学生信息
stuNo = no;
name = n;
cppScore = score;
total += score; // 计算总分
num++; // 人数加1
}
void showStudentInfo() { // 输出学生信息
cout << "学号:" << stuNo << endl;
cout << "姓名:" << name << endl;
cout << "C++成绩:" << cppScore << endl;
cout << "系别:" << xb << endl;
}
static int totalScore() { // 总分
return total;
}
static double avgScore() { // 平均分
if (num == 0) {
return 0;
} else {
return (double)total / num;
}
}
};
string Student::xb = "信息工程"; // 静态数据成员初始化
int Student::total = 0;
int Student::num = 0;
int main() {
Student stu[3];
string no, name;
int score;
for (int i = 0; i < 3; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> no;
cout << "姓名:";
cin >> name;
cout << "C++成绩:";
cin >> score;
stu[i].setStudentInfo(no, name, score);
stu[i].setXb("计算机科学与技术"); // 设置系别
}
for (int i = 0; i < 3; i++) {
cout << "第" << i+1 << "个学生的信息:" << endl;
stu[i].showStudentInfo();
cout << endl;
}
cout << "平均分:" << Student::avgScore() << endl;
return 0;
}
```
运行结果:
```
请输入第1个学生的信息:
学号:2021001
姓名:张三
C++成绩:80
请输入第2个学生的信息:
学号:2021002
姓名:李四
C++成绩:90
请输入第3个学生的信息:
学号:2021003
姓名:王五
C++成绩:85
第1个学生的信息:
学号:2021001
姓名:张三
C++成绩:80
系别:计算机科学与技术
第2个学生的信息:
学号:2021002
姓名:李四
C++成绩:90
系别:计算机科学与技术
第3个学生的信息:
学号:2021003
姓名:王五
C++成绩:85
系别:计算机科学与技术
平均分:85
阅读全文