1、C+实验五实验 5 异常处理 实验课程名:面向对象程序设计(C+方向)专业班级: 学号: 姓名: 实验时间: 实验地点: 指导教师: 一、实验目的和要求 (1)正确理解模板的概念。 (2)掌握函数模板和类模板的声明和使用方法。 (3)学习简单的异常处理方法。二、实验内容 1.分析并调试下列程序,写出运行结果并分析原因。 (1) /test6_1_1.cpp #include using namespace std; template T max (T x,T y) return xy? x:y;int max(int a,int b)return ab? a:b;double max (dou
2、ble 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 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.编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元
3、素的函数设计成函数模板。程序代码:#includeusing namespace std;templateT maxin(T a,int n) T max=a0; int i; for(i=1;in;i+) if(maxai) max=ai; cout数组中最大值为:maxendl; T min=a0; for(i=1;iai) min=ai; cout数组中最小值为:minendl; return 0;int main() int a100; int i,n; coutn; for(i=0;iai; maxin(a,n); return 0;3.编写一个程序,使用类模板对数组元素进行排序、倒
4、置、查找和求和。【提示】设计一个类模板template class Array .;具有对数组元素进行排序、倒置、查找和求和功能,然后产生类型实参分别为int型和double型的两个模板类,分别对整型数组与双精度数组完成所要求的操作。程序代码:#includeusing namespace std;templateclass Arraypublic: Array(int x) n=x; numtype sort(); numtype find(); numtype reserve(); numtype accumulate(); numtype display(); numtype input
5、();private: numtype s100; numtype n;/排序templatenumtype Array:sort() int i,j; for(i=0;in-1;i+) for(j=i+1;jsj) numtype t; t=si; si=sj; sj=t; return 0;templatenumtype Array:find() int i; numtype j; coutj; for(i=0;in;i+) if(si=j) cout所查找的元素为:siendl; return 0; cout没有找到。endl; return 0;templatenumtype Arra
6、y:reserve() int i,j=0; numtype m; numtype a100; for(i=n-1;i=0;i-) m=si; aj=m; j+; for(i=0;in;i+) si=ai; return 0;templatenumtype Array:accumulate() int i; numtype max=0; for(i=0;in;i+) max=max+si; cout求和为:maxendl; return 0;templatenumtype Array:display() int i; for(i=0;in;i+) coutsi ; return 0;templ
7、atenumtype Array:input() int i; cout请输入n个数:endl; for(i=0;isi; return 0;int main() int i; Array a(5); a.input(); a.sort(); cout排序后为:; a.display(); coutendl; a.find(); a.reserve(); cout倒置后为:; a.display(); coutendl; a.accumulate(); coutendl; Array b(5); b.input(); b.sort(); cout排序后为:; b.display(); cout
8、endl; b.find(); b.reserve(); cout倒置后为:; b.display(); coutendl; b.accumulate(); coutendl; return 0;4.编写一个程序,求输入数的平方根。设置异常处理,对输入负数的情况给出提示。#include#includeusing namespace std;double pfg(double a) double x; x=sqrt(a); return x;int main() double a; couta; try while(a=0) cout平方根为:pfg(a)endl; couta; if(a0) throw a; catch(double) cout所输入的a不符合输入要求!endl; cout结束endl;三、结论(写本次实验的收获)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1