预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:■验证□综合□设计□创新实验日期:实验成绩: 一、实验项目名称 函数模板与类模板的应用 二、实验目的 1、掌握模板的概念与应用 2、掌握函数模板的定义和使用方法 3、掌握多个模板参数的类模板的定义和使用方法 4、掌握泛型程序设计的基本方法 三、实验任务 利用VC++6.0编写程序,然后编译、运行,并查看结果是否正确。 题目1、3、4(p211) 四、主要仪器设备及耗材 软件:visualc++ 五、实验步骤 1、阅读实验指导中实验8的相关内容,了解实验目的和实验要求。 2、根据实验指导把每个要解决的问题罗列出来。 3、根据要求分别编写代码,上机实验,查错,并将结果截图。 六、实验数据及处理结果 题目一: 代码: #include<iostream.h> #include<string.h> template<classT> TMax(Tvalue[],intsize) { Tmax=value[0]; Ttemp; for(inti=0;i<size;i++) if(value[i]>max) { temp=max; max=value[i]; value[i]=temp; } returnmax; } constintN=5; #include"exp8_1.h" intmain() { inti,arr[N]; doubledou[N]; cout<<"输入"<<N<<"个整数"<<endl; for(i=0;i<N;i++) cin>>arr[i]; cout<<"最大值为"<<Max(arr,N)<<endl; cout<<"输入"<<N<<"个双精度型数据"<<endl; for(i=0;i<N;i++) cin>>dou[i]; cout<<"最大值为"<<Max(dou,N)<<endl; return0; } (2)结果: 题目二: 代码: #include<iostream.h> template<classT1,classT2,classT3> classTest { public: Test(T1x,T2y,T3z) { data1=x; data2=y; data3=z; } voidDisplay(); private: T1data1; T2data2; T3data3; }; template<classT1,classT2,classT3> voidTest<T1,T2,T3>::Display() { cout<<data1<<" "<<data2<<" "<<data3<<" "<<endl; } #include"exp8_2.h" intmain() { Test<int,int,double>obj1(1,2,3.3); obj1.Display(); Test<char,double,double>obj2('A',1.1,2.2); obj2.Display(); Test<char*,int,char*>obj3("C++",98,"分"); obj3.Display(); return0; } 结果: 题目三: 代码: #include<iostream> usingnamespacestd; template<classT1,classT2> classComplex { public: Complex(T1r,T2i); voidPrint(); Complexoperator+(constComplex&a); Complexoperator-(constComplex&a); private: T1real; T2imag; }; //构造函数 template<classT1,classT2> Complex<T1,T2>::Complex(T1r,T2i) { real=r; imag=i; } //打印函数 template<classT1,classT2> voidComplex<T1,T2>::Print() { cout<<real; if(imag!=0) { if(imag>0) cout<<"+"; cout<<imag<<"i"; } cout<<endl; } //以成员函数形式重载运算符+ template<classT1,classT2> Complex<T1,T2>Complex<T1,T2>::operator+(constComplex&a) { real+=a.real; imag+=a.imag;