2、 Person类派生大学生CollegeStu类(1)。设计一个Person类,其属性包括姓名name和身份证号id,其中name为指针类型,id为整型,编写成员函数:构造函数Person、Display函数(显示数据成员信息)和析构函数;由Person类派生出大学生类CollegeStu,其属性有专业subject(指针类型),C++程序设计课程成绩score(double型),编写构造函数(实现数据初始化)、输出函数Display(包括name,id,subject,score)。main的代码如下:(不允许改动) int main() { char name[81],subject[81]; int id; double score; cin>>name>>id>>subject>>score; CollegeStu cs(name,id,subject,score); cs.Display(); return 0; } 输入: Zhangsan 2 Computer 89.5 输出: Name:Zhangsan ID:2 Subject:Computer C++ Score:89.5 输入: Liuhui 2 Computer 88 输出: Name:Liuhui ID:2 Subject:Computer C++ Score:88
时间: 2023-04-01 17:03:29 浏览: 199
好的,这是一个关于 C++ 编程的问题。Person 类有两个属性,姓名和身份证号,其中姓名是指针类型,身份证号是整型。它有三个成员函数,构造函数、析构函数和 Display 函数。CollegeStu 类是由 Person 类派生而来的,它有三个属性,专业、C 程序设计课程成绩和继承自 Person 类的姓名和身份证号。它有一个构造函数和一个 Display 函数。在 main 函数中,我们输入姓名、身份证号、专业和 C 程序设计课程成绩,然后创建一个 CollegeStu 对象并调用它的 Display 函数来输出这些信息。
下面是代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
class Person {
protected:
char* name;
int id;
public:
Person(char* n, int i) {
name = new char[strlen(n) + 1];
strcpy(name, n);
id = i;
}
virtual ~Person() {
delete[] name;
}
virtual void Display() {
cout << "Name:" << name << " ID:" << id << " ";
}
};
class CollegeStu : public Person {
private:
char* subject;
double score;
public:
CollegeStu(char* n, int i, char* s, double sc) : Person(n, i) {
subject = new char[strlen(s) + 1];
strcpy(subject, s);
score = sc;
}
~CollegeStu() {
delete[] subject;
}
void Display() {
Person::Display();
cout << "Subject:" << subject << " C Score:" << score << endl;
}
};
int main() {
char name[81], subject[81];
int id;
double score;
cin >> name >> id >> subject >> score;
CollegeStu cs(name, id, subject, score);
cs.Display();
return ;
}
```
输入 "Zhangsan 2 Computer 89.5",输出 "Name:Zhangsan ID:2 Subject:Computer C Score:89.5";输入 "Liuhui 2 Computer 88",输出 "Name:Liuhui ID:2 Subject:Computer C Score:88"。
阅读全文