实验四

54 篇文章 0 订阅
#include<iostream>
using namespace std;
//基类
 class MyArray{ 
public :
	MyArray(int leng);
	MyArray() {}
	~MyArray() ;
	void input();
	void display();
protected:
	 int *alist;
	 int length;
};
MyArray::MyArray(int leng)
{    length=leng;
      alist=new int[leng];
}
MyArray::~MyArray()
{ delete [] this->alist;} 
void MyArray::input()
{      cout<<"\t\t\t\t" ;
     for(int i=0;i<length;++i)
    cin>>alist[i];
}
void MyArray::display()
{    cout<<"\t\t\t\t" ;
     for(int i=0;i<length;++i)
     cout<<alist[i]<<" ";
  
    cout<<endl;
}
//排序派生类:
class SortArray:virtual public MyArray
{ public:
	SortArray() {}
SortArray(int a):MyArray(a){}
 void paixu();
};
void SortArray::paixu()
{   for(int i=0;i<length-1;++i)
     for(int j=0;j<length-i-1;++j)
		  if(alist[j+1]<alist[j])
		  {int temp=alist[j];
		  alist[j]=alist[j+1];
		  alist[j+1]=temp;
		  }
}
//逆转派生类:
class ReArray:virtual public MyArray
{ public:
	ReArray() {}
ReArray(int a):MyArray(a){}
 void nizhuan();
};
void ReArray::nizhuan()
{  
	  for(int i=0;i<length/2;++i)
	  { int temp=alist[i];
	     alist[i]=alist[length-1-i];
		  alist[length-1-i]=temp;
	  }

}
//求平均值派生类:
class AverArray:virtual public MyArray
{ public:
	AverArray() {}
AverArray(int a):MyArray(a){}
 int Aver();
};
int AverArray::Aver()
{  
	  int sum=0;
	  for(int i=0;i<length;++i)
		  sum+=alist[i];
	  return sum/length;
}
//定义一个new类
class NewArray:public SortArray,public ReArray,public AverArray
{  public :
   NewArray() {}
  NewArray(int a):MyArray(a) {}
};
int main()
{ //MyArray a(5);
  //SortArray a(5);
   // AverArray a(5);
   
  NewArray a(5);
  cout<<"\t\t\t\t输入原始数据"<<endl; 
  a.input();
 cout<<"\t\t\t\t输出原始数据"<<endl; 
  a.display();
 cout<<"\t\t\t\t进行排序"<<endl; 
  a.paixu();
 cout<<"\t\t\t\t输出排序后的数据"<<endl; 
  a.display();
 cout<<"\t\t\t\t进行逆转"<<endl; 
  a.nizhuan();
 cout<<"\t\t\t\t输出逆转后的数据"<<endl; 
  a.display();
 cout<<"\t\t\t\t输出其平均值"<<endl;
  cout<<"\t\t\t\t" ; 
 cout<<a.Aver()<<endl;
  system("pause");
 //return 0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值