📄 第三次上机.cpp
字号:
#include<iostream.h>
class myarray {
protected:
int array[10];
int length;
public:
myarray()
{}
myarray(int len)
{
length=len;
cout<<"调用构造函数myarray"<<endl;
}
~myarray()
{
cout<<"调用析构函数myarray"<<endl;
}
void input()
{ cout<<"输入各个整数:"<<endl;
int i;
for(i=0;i<length;)
{
cout<<"输入第"<<i<<" 个数为: ";
cin>>array[i++];
cout<<endl;
}
}
void display()
{ int i;
cout<<"显示数组中 "<<length<<" 个整数信息:"<<endl;
for(i=0;i<length;i++)
{
cout<<array[i]<<" ";
}
cout<<endl;
}
} ;
class averarray: virtual public myarray{
private:
int b;
float aver;
public:
// float sum=0;
averarray(int m):myarray(m)
{
b=m;
cout<<"调用派生类构造函数averarray"<<endl;
}
void average()
{
int i;
float sum=0.0;
for(i=0;i<b;i++)
sum=sum+array[i];
aver=(sum)/b;
//cout<<"这些整数的平均数值aver="<<aver<<endl;
}
void show2()
{
cout<<"这些整数的平均数值aver="<<aver<<endl;
}
};
class revarray: virtual public myarray{
private:
int t,d;
public:
revarray(int m):myarray(m)
{
d=m;
cout<<"调用派生类构造函数revarray"<<endl;
}
void rev()
{ int t,i;
for(i=0;i<d/2;i++)
{
t=array[i];
array[i]=array[d-i-1];
array[d-i-1]=t;
}
}
void show()
{ int i;
cout<<"翻转后的数组顺序为:"<<endl;
for(i=0;i<d;i++)
cout<<array[i]<<" ";
cout<<endl;
}
};
class newarray: public averarray, public revarray{
private:
int g;
public :
newarray(int m):averarray(m),revarray(m),myarray(m)
{
g=m;
cout<<"调用派生类构造函数newarray"<<endl;
}
void show1()
{ cout<<" 显示调用数组的各个整数:"<<endl;
int i;
for(i=0;i<g;i++)
cout<<array[i]<<" ";
cout<<endl;
}
};
void main()
{ //cout<<"-----------------调用基类myarray创建数组-----------------"<<endl;
int aa;
cout<<"输入整数的个数: ";
cin>>aa;
cout<<endl;
cout<<"-----------------调用基类myarray创建数组-----------------"<<endl;
newarray hh(aa);
hh.input();
hh.display();
cout<<"-----------------调用派生类averarray求平均数-------------"<<endl;
hh.average();
hh.show2();
cout<<"-----------------调用派生类revarray求反序数组------------"<<endl;
hh.rev();
hh.show();
cout<<"-----------------调用虚基类newarray解决二义性------------"<<endl;
hh.show1();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -