改写以下程序。要求定义类student,封装三个数据成员和两个成员函数intpt和output,使程序得到相同的运行效果。 #include <iostream> using namespace std; struct student { char name[20]; unsigned int id; double score; }; void input(student &stu) { cout<<"name?"; cin>>stu.name; cout<<"id?"; cin>>stu.id; cout<<"score?"; cin>>stu.score; } void output(student &stu) { cout<<"name: "<<stu.name<<"\tid: "<<stu.id<<"\tscore: "<<stu.score<<endl; } int main() { student s={"\0", 0, 0}; input(s); output(s); }
时间: 2024-01-15 09:05:49 浏览: 142
以下是改写后的程序:
```
#include <iostream>
using namespace std;
class Student {
private:
char name[20];
unsigned int id;
double score;
public:
void input() {
cout << "name?";
cin >> name;
cout << "id?";
cin >> id;
cout << "score?";
cin >> score;
}
void output() {
cout << "name: " << name << "\tid: " << id << "\tscore: " << score << endl;
}
};
int main() {
Student s;
s.input();
s.output();
return 0;
}
```
这个程序定义了一个名为 Student 的类,封装了三个私有数据成员 name、id 和 score,以及两个公有成员函数 input 和 output。这两个函数的功能和原来的 input 和 output 函数相同,但是现在它们不再需要参数,因为它们可以直接访问对象的数据成员。在 main 函数中,我们创建了一个名为 s 的 Student 对象,然后调用它的 input 和 output 函数,与原来的程序得到相同的运行效果。
阅读全文