本博客内容为中国大学生MOOC国家精品课程《计算机程序设计C++》作业记录,仅供参考,观者忌照搬照抄,欢迎交流批评指正!
##第十一周编程作业
本周作业内容为继承的应用
- 公有继承中派生类Student对基类Person成员的访问
#include <iostream>
#include <string.h>
using namespace std;
class Person
{
char Name[20];
char Sex;
int Age;
public:
void Register(char *name, int age, char sex);
void ShowMe();
};
void Person::Register(char *name, int age, char sex)
{
strcpy(Name, name);
Age = age;
Sex = sex;
}
void Person::ShowMe()
{
cout << Name <<' '<< Age <<' '<< Sex;
}
class Student :public Person
{
int Number;
char ClassName[10];
public:
void RegisterStu(char *classname, int number, char *name, int age, char sex);
void ShowStu();
};
void Student::RegisterStu(char *classname, int number, char *name, int age, char sex)
{
Register(name, age, sex);
strcpy(ClassName, classname);
Number = number;
}
void Student::ShowStu()
{
cout << Number << ' ' << ClassName << ' ';
ShowMe();
}
int main()
{
char *classname;
classname = new char[10];
int number;
char *name;
name = new char[10];
int age;
char sex;
cin >> classname >> number >> name >> age >> sex;
Student a;
a.RegisterStu(classname, number, name, age, sex);
a.ShowStu(); cout << endl;
a.ShowMe();
return 0;
}
- 一个基类Person的多个派生类
#include <iostream>
#include <string.h>
using namespace std;
class Person
{
protected:
char Name[10];
char Sex;
int Age;
public:
void Register(char *name, int age, char sex);
void ShowMe();
};
void Person::Register(char *name, int age, char sex)
{
strcpy(Name, name);
Age = age;
Sex = sex;
}
void Person::ShowMe()
{
char sex[3];
if (Sex == 'm')
strcpy(sex,"男");
else
strcpy(sex,"女");
cout << "姓名 " << Name << endl;
cout << "性别 " << sex << endl;
cout