📄 大作业1.cpp
字号:
#include <iostream.h>
#include <string.h>
#include <assert.h>
#include <iomanip.h>
#include <fstream.h>
//虚基类
class physical_culture_chooser
{public:
physical_culture_chooser()
{
setup("","","");
}
void setup(char*,char*,char*);
virtual ~physical_culture_chooser() {delete[]institute;delete[]name;};
char*getInstitute()const;
char*getName()const;
virtual void print()const;
char *institute,*name,*num;
};
void physical_culture_chooser::setup(char*str1,char*str2,char *n)
{
institute=new char [strlen(str1)+1];
assert(institute!=0);
strcpy(institute,str1);
name=new char [strlen(str2)+1];
assert(name!=0);
strcpy(name,str2);
num=new char;
num=n;
}
char*physical_culture_chooser::getInstitute()const
{
return institute;
}
char*physical_culture_chooser::getName()const
{
return name;
}
void physical_culture_chooser::print()const
{
cout<<institute<<setw(15)<<name;
}
//子类1
class outdoors:virtual public physical_culture_chooser
{public:
outdoors(){}
outdoors(char *str1,char *str2,char *n)
{
setup(str1,str2,n);
};
~outdoors(){}
static int Total_number1() {return total_number1;};
private:
static int total_number1;
};
int outdoors::total_number1=0;
//子类1-1
class Cross_country_Directional:virtual public outdoors
{public:
Cross_country_Directional(){}
Cross_country_Directional(char*,char*,char*);
~Cross_country_Directional(){}
void print();
static int outnumber1() {return number1;};
private:
static int number1;
};
int Cross_country_Directional::number1=0;
Cross_country_Directional::Cross_country_Directional(char*str1,char*str2,char* n):outdoors(str1,str2,n)
{
number1++;
}
void Cross_country_Directional::print()
{
physical_culture_chooser::print();
cout<<'\n'<<setw(15)<<"Cross_country_Directional\n";
cout<<"the place of class:"<<setw(10)<<"playground\n";
}
//子类1-2
class radio_direction_finder:virtual public outdoors
{public:
radio_direction_finder(char*,char*,char* );
~radio_direction_finder(){}
virtual void print()const;
static int outnumber2() {return number2;};
private:
static int number2;
};
int radio_direction_finder::number2=0;
radio_direction_finder::radio_direction_finder(char*str1,char*str2,char* n):outdoors(str1,str2,n)
{number2++;}
void radio_direction_finder::print()const
{
physical_culture_chooser::print();
cout<<setw(15)<<"radio_direction_finder\n";
cout<<"the place of class:"<<setw(15)<<"playground\n";
}
//子类2
class body_builder:virtual public physical_culture_chooser
{public:
body_builder(){}
body_builder(char*,char*,char* );
~body_builder(){}
virtual void print()const;
static int Total_number2() {return total_number2;};
private:
static int total_number2;
};
int body_builder::total_number2=0;
body_builder::body_builder(char*str1,char*str2,char* n)
{
setup(str1,str2,n);
};
void body_builder::print()const
{
cout<<"total number is:"<<total_number2<<endl;
}
//子类2-1
class sociality_dancing: virtual public body_builder
{public:
sociality_dancing(char*,char*,char* );
~sociality_dancing(){}
virtual void print()const;
static int outnumber3() {return number3;};
private:
static int number3;
};
int sociality_dancing::number3=0;
sociality_dancing::sociality_dancing(char*str1,char*str2,char* n):body_builder(str1,str2,n)
{number3++;}
void sociality_dancing::print()const
{
physical_culture_chooser::print();
cout<<setw(15)<<"sociality_dancing\n";
cout<<"the place of class:"<<setw(15)<<"the first floor of A1\n";
}
//子类2-2
class physical_dancing:virtual public body_builder
{public:
physical_dancing(char*,char*,char* );
~physical_dancing(){}
virtual void print()const;
static int outnumber4() {return number4;};
private:
static int number4;
};
int physical_dancing::number4=0;
physical_dancing::physical_dancing(char*str1,char*str2,char* n):body_builder(str1,str2,n)
{number4++;}
void physical_dancing::print()const
{
physical_culture_chooser::print();
cout<<setw(15)<<"physical_dancing\n";
cout<<"the place of class:"<<setw(15)<<"the first floor of A1\n";
}
//子类2-3
class gym:virtual public body_builder
{public:
gym(char*,char*,char* );
~gym(){}
virtual void print()const;
static int outnumber5() {return number5;};
private:
static int number5;
};
int gym::number5=0;
gym::gym(char*str1,char*str2,char* n):body_builder(str1,str2,n)
{number5++;}
void gym::print()const
{
physical_culture_chooser::print();
cout<<setw(15)<<"gym\n";
cout<<"the place of class:"<<setw(15)<<"the first floor of A1\n";
}
//子类3
class ball:virtual public physical_culture_chooser
{public:
ball(){}
ball(char*,char*,char* );
~ball(){}
virtual void print()const;
static int Total_number3() {return total_number3;};
private:
static int total_number3;
};
int ball::total_number3=0;
ball::ball(char*str1,char*str2,char* n)
{
setup(str1,str2,n);
};
void ball::print()const
{
cout<<"total number is:"<<total_number3<<endl;
}
//子类3-1
class table_tennis:virtual public ball
{public:
table_tennis(char*,char*,char* );
~table_tennis(){}
virtual void print()const;
static int outnumber6() {return number6;};
private:
static int number6;
};
int table_tennis::number6=0;
table_tennis::table_tennis(char*str1,char*str2,char* n):ball(str1,str2,n)
{number6++;}
void table_tennis::print()const
{
physical_culture_chooser::print();
cout<<setw(15)<<"table_tennis\n";
cout<<"the place of class:"<<setw(15)<<"the first floor of A1\n";
}
//子类3-2
class football:virtual public ball
{public:
football(char*,char*,char* n);
~football(){}
virtual void print()const;
static int outnumber7() {return number7;};
private:
static int number7;
};
int football::number7=0;
football::football(char*str1,char*str2,char* n):ball(str1,str2,n)
{number7++;}
void football::print()const
{
physical_culture_chooser::print();
cout<<setw(15)<<"football\n";
cout<<"the place of class:"<<setw(15)<<"playground";
}
//子类3-3
class basketball:virtual public ball
{public:
basketball(char*,char*,char* );
~basketball(){}
virtual void print()const;
static int outnumber8() {return number8;};
private:
static int number8;
};
int basketball::number8=0;
basketball::basketball(char*str1,char*str2,char* n):ball(str1,str2,n)
{number8++;}
void basketball::print()const
{
physical_culture_chooser::print();
cout<<setw(15)<<"basketball\n";
cout<<"the place of class:"<<setw(15)<<"playground";
}
//子类3-4
class shuttlecock:virtual public ball
{public:
shuttlecock(char*,char*,char* );
~shuttlecock(){};
virtual void print()const;
static int outnumber9() {return number9;};
private:
static int number9;
};
int shuttlecock::number9=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -