- 4
- 0
- 约3.67千字
- 约 7页
- 2020-06-20 发布于浙江
- 举报
C++实验五
精品文档
精品文档
收集于网络,如有侵权请联系管理员删除
收集于网络,如有侵权请联系管理员删除
精品文档
收集于网络,如有侵权请联系管理员删除
实验 5 异常处理
实验课程名:面向对象程序设计(C++方向)
专业班级: 学号: 姓名:
实验时间: 实验地点: 指导教师:
一、实验目的和要求
(1)正确理解模板的概念。
(2)掌握函数模板和类模板的声明和使用方法。
(3)学习简单的异常处理方法。
二、实验内容
1.分析并调试下列程序,写出运行结果并分析原因。
(1)
//test6_1_1.cpp
#include iostream
using namespace std;
templatetypename T
T max (T x,T y)
{ return xy? x:y;
}
int max(int a,int b)
{return ab? a:b;
}
double max (double a,double b)
{return ab? a:b;
}
int main()
{ cout”max(‘3’,’7’) is “max(‘3’,’7’)endl;
return 0;
}
(2)
//test6_1_2.cpp
#include iostream
using namespace std;
int max(int a,int b)
{return ab? a:b;
}
double max (double a,double b)
{return ab? a:b;
}
int main()
{ cout”max(‘3’,’7’) is “max(‘3’,’7’)endl;
return 0;
}
2.编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板。
程序代码:
#includeiostream
using namespace std;
templatetypename T
T maxin(T a[],int n)
{
T max=a[0];
int i;
for(i=1;in;i++)
{
if(maxa[i]) max=a[i];
}
cout数组中最大值为:maxendl;
T min=a[0];
for(i=1;in;i++)
{
if(mina[i]) min=a[i];
}
cout数组中最小值为:minendl;
return 0;
}
int main()
{
int a[100];
int i,n;
cout请输入数组个数:;
cinn;
for(i=0;in;i++)
{
cina[i];
}
maxin(a,n);
return 0;
}
3.编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和。
【提示】
设计一个类模板
template class Type
class Array{
...
};
具有对数组元素进行排序、倒置、查找和求和功能,然后产生类型实参分别为int型和double型的两个模板类,分别对整型数组与双精度数组完成所要求的操作。
程序代码:
#includeiostream
using namespace std;
templateclass numtype
class Array
{
public:
Array(int x)
{
n=x;
}
numtype sort();
numtype find();
numtype reserve();
numtype accumulate();
numtype display();
numtype input();
private:
numtype s[100];
numtype n;
};
//排序
templateclass numtype
numtype Arraynumtype::sort()
{
int i,j;
for(i=0;in-1;i++)
for(j=i+1;jn;j++)
if(s[i]s[j])
{
numtype t;
t=s[i];
s[i]=s[j];
s[j]=t;
}
return 0;
}
templateclass numtype
numtype Arraynumtype::find()
{
int i;
numtype j;
cout请输入要查
原创力文档

文档评论(0)