《C++实验五.doc》由会员分享,可在线阅读,更多相关《C++实验五.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验 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 (double a
2、,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.编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和。【提示】设计一个类模板t
4、emplate 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();private:numtype s100;numt
5、ype 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 Array:reserve()int i,j=0;numtype m;numtype a100;for
6、(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;templatenumtype Array:input()int i;cout请输入n个数:endl;for(i=0;isi;return 0;
7、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(); coutendl;b.find();b.reserve();cout倒置后为:; b.display(); coutendl;b.accumulate();coutendl;re
8、turn 0;4.编写一个程序,求输入数的平方根。设置异常处理,对输入负数的情况给出提示。#include#includeusing namespace std;double pfg(double a)double x;x=sqrt(a);return x;int main()double a;couta;trywhile(a=0)cout平方根为:pfg(a)endl;couta;if(a0) throw a;catch(double)cout所输入的a不符合输入要求!endl;cout结束endl;三、结论(写本次实验的收获) 7 获 获 验( 结 !输符 入 ) 数入 ) 根方 0= 数入 ( )( ( 示出况负输理置设的输,个0 ) .:置 )( )( :后 ) )( ) ) ( ;置 ) ) :序+ ;0( :输 0 + 0( ( 0 和求 + + 0 0 ( : 0 到有 00 :的所 = + :的要 ( 0 = + = + 排 ) )( ) ) )( )( = 码作作所组精组型别类两 别参生后,和、排进. 模个示和和找倒行素对类,序00 )( + :数请 0 ( 0 + 值最数 ) + ( 0= ( : , ( ._ 0 ,( , ” ( :? , ( _ 因原并行,列试分内验法理异简学(法法明的模板掌(念的板正 要目 师指 :验 :名 学 :向+(设对: