C++実習7
8076 ワード
ユーザクラスの継承
実習7は、まず、ユーザクラスpersonをベースクラスとして設計し、そのデータメンバーは名前と身分証明書番号であり、データメンバーのアドレスと年齢を含み、メンバー関数には入力データと表示データがある.personの派生クラスの学生studentを生成し、studentはデータメンバーの電話番号とC++成績を含み、メンバー関数には入力データと表示データがある.学生成績クラスscoreを設計し、studentクラスとaddクラスの派生クラスであり、2つのクラスのすべての属性を継承し、scoreクラス自体にはデータメンバーの数学成績と英語成績があり、メンバー関数には入力データと表示データがある.職員クラスemployeeはpersonクラスを継承し、クラスにはメンバーがいません.メインプログラムを作成して実行結果を観察します.
クラス#クラス#
機能
Peopleクラス
データ・メンバー名、ID、入出力
Addクラス
データメンバーアドレス、携帯番号、入出力
Studentクラス
peopleクラスの新しい追加データメンバー年齢、Cpp成績を継承し、入出力
Scoreクラス
studentクラスとaddクラスを継承数学英語成績入出力を追加
Employeeクラス
peopleクラス空クラスの継承
実習7は、まず、ユーザクラスpersonをベースクラスとして設計し、そのデータメンバーは名前と身分証明書番号であり、データメンバーのアドレスと年齢を含み、メンバー関数には入力データと表示データがある.personの派生クラスの学生studentを生成し、studentはデータメンバーの電話番号とC++成績を含み、メンバー関数には入力データと表示データがある.学生成績クラスscoreを設計し、studentクラスとaddクラスの派生クラスであり、2つのクラスのすべての属性を継承し、scoreクラス自体にはデータメンバーの数学成績と英語成績があり、メンバー関数には入力データと表示データがある.職員クラスemployeeはpersonクラスを継承し、クラスにはメンバーがいません.メインプログラムを作成して実行結果を観察します.
#include
#include
#include
using namespace std;
class People{
public:
People(){}
People(char*,char* );
void Input();
void Display();
~People(){ cout << " People " << endl;}
private:
char _name[32];
char _id[20];
};
People::People(char*m,char* i){
strcpy(_name,m);
strcpy(_id,i);
}
void People::Input(){
cout<<" :";
cin.getline(_name,32);
cout<<" :";
cin>>_id;
}
void People::Display(){
cout<<" :"<<_name class="hljs-built_in">cout<<" :"<class Add{
public:
Add(){}
Add(char*, int );
void AddInput();
void Display();
~Add() {cout << " Add "<< endl;}
private:
char size[32];
int age;
};
Add::Add(char*A_size,int A_age){
strcpy(size,A_size);
age=A_age;
}
void Add::AddInput(){
cout<<" :";
scanf("%s",size);
cout<<" :";
cin>>age;
}
void Add::Display(){
cout<<" :"<cout<<" :"<class Student:virtual public People{
public:
Student(){}
Student(char *m,char* i,char* t,float cpp):People(m,i) {strcpy(tell,t);cppgrate=cpp;}
void StuImput();
void Display();
public:
char tell[15];
int cppgrate;
};
void Student::StuImput(){
cout<<" :";
scanf("%s",tell);
cout << " c++ :";
cin >>cppgrate;
}
void Student::Display(){
cout<<" :"<cout<<"c++ :"<class Score :virtual public Student,public Add{
public:
Score(){}
// Score(char *m="\0",float i=0,float t=0,float cpp=0,char*A_size="\0",int A_age=0,float math=0,float english=0):Student(m,i,t,cpp),Add(A_size,A_age){mathgrate=math;enggrate=english;}
Score(char *m,char* i,char* t,float cpp,char*A_size,int A_age,float math,float english):Student(m,i,t,cpp),Add(A_size,A_age)
{
mathgrate=math;
enggrate=english;
}
// Score();
void Input();
void Display();
private:
int mathgrate;
int enggrate;
};
void Score::Input(){
cout<<" :";
cin >>mathgrate;
cout<<" :";
cin >>enggrate;
}
void Score::Display(){
cout<<" :"<cout<<" :"<class Employee :virtual public People{
};
int main()
{
Score tangyh;
tangyh.People::Input();
tangyh.StuImput();
tangyh.AddInput();
tangyh.Input();
tangyh.People::Display();
tangyh.Add::Display();
tangyh.Student::Display();
tangyh.Display();
Employee s;
s.Input();
s.Display();
Add a;
a.AddInput();
a.Display();
Student st;
st.Input();
st.StuImput();
st.Display();
st.People::Display();
return 0;
}
クラス#クラス#
機能
Peopleクラス
データ・メンバー名、ID、入出力
Addクラス
データメンバーアドレス、携帯番号、入出力
Studentクラス
peopleクラスの新しい追加データメンバー年齢、Cpp成績を継承し、入出力
Scoreクラス
studentクラスとaddクラスを継承数学英語成績入出力を追加
Employeeクラス
peopleクラス空クラスの継承