C++实现所谓的反序输出问题
编写一个具有如下样式的类模板tmplt,用于实现所谓的反序输出问题,其中使用了类型参数T(使所处理的元素类型可变化)以及普通参数n(元素个数也可变化):
template <class T, int n> class tmplt {
T arr[n]; n个T类型的数据存放于数组arr之中
public:
void dataIn(); 从键盘输入n个T类型数据放入arr数组中
void reverseOut(); 将arr数组中的数据按输入的相反顺序输出
};
而后编制主函数,将类模板实例化为某个具体的类并说明类对象,之后通过对象调用其负责输入数据的成员函数,再通过对象调用另一成员函数按反序输出那些输入数据。
18.2概要设计:
本程设计思路: 实现所谓的反序输出还是很简单的,用模板的话,那就将类模板实例化为某个具体的类并说明类对象,之后通过对象调用其负责输入数据的成员函数,再通过对象调用另一成员函数按反序输出那些输入数据。实现起来还是很简单的。
18.3 详细设计与编码:
见上传程序。
18.4 调试分析:
这题基本没有什么的问题。
程序执行的结果:
18.5 用户使用说明:
按提示输入数组,选择操作。
18.6 设计心得:
如果是单写一个程序的话,那如果使用模板感觉有点多余了。但如果是比较大,常使用的功能,那用模板还是挺方便的
原文请找腾讯752018766优,文-论'文.网http://www.youerw.com void reverseout();
};
template <class T>
void tmplt<T>::datain(){//生成数组的操作
cout<<"输入数组的大小"<<endl;
cin>>n;
array=new T[n];
cout<<"输入各数组的数值"<<endl;
for(int i=0;i<n;i++)
cin>>array[i];
}
template <class T>
void tmplt<T>::reverseout(){//反向输出数组
cout<<"反序后输出的数组为"<<endl;
for(int i=n-1;i>=0;i--)
cout<<array[i]<<setw(3);
cout<<endl;
}
void main(){
tmplt <double> array;
int select=-1;
while(select!=2){
cout<<"请选择您要的操作:1.开始 2.退出"<<endl;
cin>>select;
switch(select){
case 1:
array.datain();
array.reverseout();
break;
case 2:
select=2;
break;1837