【C++】在void MStudent::input()函数中调用学生类的input()函数完成信息录入
时间: 2024-03-01 13:33:30 浏览: 17
这题中的C指的是选项C,即在void MStudent::input()函数中调用学生类的input()函数完成信息录入。
答案是正确的。在MStudent类的input()函数中,可以调用Student类的input()函数来完成学生的信息录入。这样做的好处是可以避免重复编写相同的代码,提高代码的复用性。同时,也符合面向对象的封装原则,将学生信息的录入细节隐藏在学生类中,对外提供一个简单的接口,便于调用和管理。
相关问题
c++编程: 1)设计主函数; 2)定义1个对象stu1; 3)调用成员函数Input(),录入对象stu1的语文(chn)、数学(math)和英语(eng)成绩; 4)调用成员函数Display(),显示学生学号和总分数。
以下是符合要求的C++代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string id; // 学号
int chn; // 语文成绩
int math; // 数学成绩
int eng; // 英语成绩
public:
void Input() {
cout << "请输入学生的学号、语文、数学和英语成绩(以空格分隔):" << endl;
cin >> id >> chn >> math >> eng;
}
void Display() {
int total = chn + math + eng;
cout << "学生 " << id << " 的总分是:" << total << endl;
}
};
int main() {
Student stu1;
stu1.Input();
stu1.Display();
return 0;
}
```
在这个代码中,我们定义了一个名为 `Student` 的类,它有私有成员变量 `id`、`chn`、`math` 和 `eng`,分别表示学号、语文、数学和英语成绩。类中还定义了两个公有成员函数 `Input()` 和 `Display()`,分别用于录入成绩和显示学号和总分数。
在 `main()` 函数中,我们首先创建了一个名为 `stu1` 的 `Student` 对象,然后调用了它的 `Input()` 和 `Display()` 成员函数,完成了录入成绩和输出总分数的功能。
c++定义学生类Student,包含成员:学号(num):整型,姓名(name):char [15], 四门课成绩(sc):一维整型数组,然后定义相关函数分别完成以下功能: 1)输入学生信息; 2)显示学生信息; 3)保存学生信息; 4)从文件读取学生信息; 定义学生数组类StudentArray,包含Student * ps; 和int n两个成员,定义成员函数完成: 1)n个学生信息的录入(调用上面类Student的相关函数完成,函数名相同,下面方法相同); 2)n个学生信息的输出(调用上面类Student的相关函数完成,函数名相同,下面方法相同);;对学生信息按平均成绩排序后输出 3)计算并输出各门课程的平均成绩; 4)n个学生信息的保存(调用上面类Student的相关函数完成,函数名相同,下面方法相同); 5)从文件读取n个学生信息(调用上面类Student的相关函数完成,函数名相同,下面方法相同);
以下是实现该功能的代码:
```C++
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
class Student {
private:
int num;
char name[15];
int sc[4]; // 四门课成绩
public:
Student() {}
~Student() {}
void input(); // 输入学生信息
void display(); // 显示学生信息
void save(ofstream& out); // 保存学生信息到文件
void load(ifstream& in); // 从文件读取学生信息
float average(); // 计算平均成绩
};
void Student::input() {
cout << "请输入学号: ";
cin >> num;
cout << "请输入姓名: ";
cin >> name;
cout << "请输入四门课成绩: ";
for (int i = 0; i < 4; i++) {
cin >> sc[i];
}
}
void Student::display() {
cout << "学号: " << num << ", 姓名: " << name << ", 成绩: ";
for (int i = 0; i < 4; i++) {
cout << sc[i] << " ";
}
cout << endl;
}
void Student::save(ofstream& out) {
out.write((char*)&num, sizeof(num));
out.write(name, sizeof(name));
out.write((char*)sc, sizeof(sc));
}
void Student::load(ifstream& in) {
in.read((char*)&num, sizeof(num));
in.read(name, sizeof(name));
in.read((char*)sc, sizeof(sc));
}
float Student::average() {
float sum = 0;
for (int i = 0; i < 4; i++) {
sum += sc[i];
}
return sum / 4;
}
class StudentArray {
private:
Student* ps;
int n;
public:
StudentArray(int n = 0);
~StudentArray();
void input(); // n个学生信息的录入
void display(); // n个学生信息的输出
void sort(); // 对学生信息按平均成绩排序
void average(); // 计算并输出各门课程的平均成绩
void save(); // n个学生信息的保存
void load(); // 从文件读取n个学生信息
};
StudentArray::StudentArray(int n) {
this->n = n;
ps = new Student[n];
}
StudentArray::~StudentArray() {
delete[] ps;
}
void StudentArray::input() {
for (int i = 0; i < n; i++) {
cout << "第" << i + 1 << "个学生信息:" << endl;
ps[i].input();
}
}
void StudentArray::display() {
for (int i = 0; i < n; i++) {
cout << "第" << i + 1 << "个学生信息:" << endl;
ps[i].display();
}
}
void StudentArray::sort() {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (ps[i].average() < ps[j].average()) {
swap(ps[i], ps[j]);
}
}
}
}
void StudentArray::average() {
float sum[4] = {0};
for (int i = 0; i < n; i++) {
for (int j = 0; j < 4; j++) {
sum[j] += ps[i].average();
}
}
cout << "各门课程平均成绩: ";
for (int i = 0; i < 4; i++) {
cout << sum[i] / n << " ";
}
cout << endl;
}
void StudentArray::save() {
ofstream out("students.dat", ios::binary);
for (int i = 0; i < n; i++) {
ps[i].save(out);
}
out.close();
}
void StudentArray::load() {
ifstream in("students.dat", ios::binary);
for (int i = 0; i < n; i++) {
ps[i].load(in);
}
in.close();
}
int main() {
int n;
cout << "请输入学生人数: ";
cin >> n;
StudentArray sa(n);
sa.input();
sa.save();
sa.load();
sa.display();
sa.sort();
sa.display();
sa.average();
return 0;
}
```
该程序中,先定义了一个学生类Student,包含学生的基本信息和四门课成绩。该类的相关函数实现了输入、输出、保存和读取学生信息的功能,以及计算平均成绩的功能。
接着定义了一个学生数组类StudentArray,包含n个学生和相关操作。该类的相关函数实现了n个学生信息的录入、输出、排序和保存、读取等功能,以及计算各门课程平均成绩的功能。在主函数中,首先输入学生人数,然后创建一个StudentArray对象,调用相关函数完成功能。