南昌大学实验报告
学生姓名: 学 号: 专业班级: 实验类型:■ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:
一、实验项目名称
函数模板与类模板的应用 二、实验目的
1、掌握模板的概念与应用 2、掌握函数模板的定义和使用方法
3、掌握多个模板参数的类模板的定义和使用方法 4、掌握泛型程序设计的基本方法 三、实验任务
利用VC++6.0编写程序,然后编译、运行,并查看结果是否正确。 题目1、3、4(p211) 四、主要仪器设备及耗材
软件:visual c++
五、实验步骤
1、阅读实验指导中实验 8的相关内容,了解实验目的和实验要求。 2、根据实验指导把每个要解决的问题罗列出来。
3、根据要求分别编写代码,上机实验,查错,并将结果截图。 六、实验数据及处理结果 题目一: (1)代码:
#include
#include
T Max(T value[], int size) { T max = value[0]; T temp; for (int i = 0;i < size;i++) if (value[i] > max) { temp = max; max = value[i]; value[i] = temp; } return max; }
const int N=5; #include\int main() { int i,arr[N]; double dou[N]; cout<<\输入\个整数\ for (i=0;i
(2)结果:
题目二: (1)代码:
#include
template
template } #include\int main() { Test (2)结果: 题目三: (1)代码: #include template public: Complex(T1 r,T2 i); void Print(); Complex operator + (const Complex &a); Complex operator - (const Complex &a); private: T1 real; T2 imag; }; //构造函数 template Complex //打印函数 template //以成员函数形式重载运算符+ template Complex //以成员函数形式重载运算符- template Complex #include\ int main() { Complex (2)结果: 题目四: (1)代码: #include #include cout< sort(vec.begin(),vec.end(),greater cout<<\中的元素:\ unique_copy(vec.begin(),vec.end(),output); cout< cout<<\用逆向迭代子输出vector中的元素:%unique_copy(vec.rbegin(),vec.rend(),output); cout< cout<<\最后1个元素:\ //输出最后1个元素 cout<<\第8个元素:\ cout<<\原vector2中的元素:\ unique_copy(vec2.begin(),vec2.end(),output); //输出vec2中的元素 cout< vec2.swap(vec); //交换两个向量中的元素 cout<<\交换后vector2中的元素:\ unique_copy(vec2.begin(),vec2.end(),output); cout< } (2)结果: 七、思考讨论题或体会或对改进实验的建议 初步了解了泛型程序设计的基本方法,基本掌握了函数模板、模板参数 的类模板的定义和使用。 八、参考资料 [1] 朱立华等 面向对象程序设计及C++(第2版),人民邮电出版社 2012.2 [2] 朱立华等 面向对象程序设计及C++实验指导(第2版),人民邮电出版社 2012.2 [3] 苏小红等C语言程序设计,高等教育出版社 2011年8月 [4] 苏小红等 C语言程序设计学习指导,高等教育出版社 2011年8月