第八章实验3

时间:2021-08-09 09:19:41

编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和

#include<iostream>
#include<iomanip>
using namespace std;
const int n=8;
template<class T>
class Array{
public:
	Array(T *p)
	{
		set=p; 
	}
	~Array(){}
	void inversion();//倒置
	T sum();//求和
	void seek(T h);//查找
	void show();//显示
private:
	T *set;
};
 template<class T>
 void Array<T>::inversion()
 {
	 cout<<"数组倒置后为:";
	 for(int i=n-1;i>=0;i--)
		 cout<<setw(5)<<set[i];
	 cout<<endl;;
 }
 template<class T>
 T Array<T>::sum()
 {
	 T sum=0;
	 for(int i=0;i<n;i++)
	 {
		 sum=sum+set[i];
	 }
	cout<<"该数组元素的和为:"<<sum<<endl;
	 return 0;
 }
 template<class T>
 void Array<T>::show()
 {
	 cout<<"数组:";
	 for(int i=0;i<n;i++)
		 cout<<setw(5)<<set[i];
	 cout<<endl;
 }
	 
 template<class T>
 void Array<T>::seek(T h)
 {
	 int i;
	 for(i=0;i<n;i++)
	 
		 if(h==set[i])
		 {
			 cout<<h<<"是数组的第"<<i+1<<"个元素。"<<endl;
		 break;
		 }
		 if(h!=set[i])
			 cout<<h<<"不属于该数组的元素。"<<endl;
	 
 }
 
 int main()
 {
	 int a[n]={1,2,3,4,5,6,7,8};
	 double b[n]={8,7,6,5,4,3,2,1};
	 Array<int>arry(a);
	 Array<double>arrt1(b);
	 arry.show();
	 arry.inversion();
	 arry.seek(3); 
	 arry.sum();
	 cout<<"**************************"<<endl;
	 arrt1.show();
	 arrt1.inversion();
	 arrt1.seek(78);
	 arrt1.sum();
     system("puause");
	 return 0;
 }