您好,欢迎访问三七文档
实验5异常处理实验课程名:面向对象程序设计(C++方向)专业班级:学号:姓名:实验时间:实验地点:指导教师:一、实验目的和要求(1)正确理解模板的概念。(2)掌握函数模板和类模板的声明和使用方法。(3)学习简单的异常处理方法。二、实验内容1.分析并调试下列程序,写出运行结果并分析原因。(1)//test6_1_1.cpp#includeiostreamusingnamespacestd;templatetypenameTTmax(Tx,Ty){returnxy?x:y;}intmax(inta,intb){returnab?a:b;}doublemax(doublea,doubleb){returnab?a:b;}intmain(){cout”max(‘3’,’7’)is“max(‘3’,’7’)endl;return0;}(2)//test6_1_2.cpp#includeiostreamusingnamespacestd;intmax(inta,intb){returnab?a:b;}doublemax(doublea,doubleb){returnab?a:b;}intmain(){cout”max(‘3’,’7’)is“max(‘3’,’7’)endl;return0;}2.编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板。程序代码:#includeiostreamusingnamespacestd;templatetypenameTTmaxin(Ta[],intn){Tmax=a[0];inti;for(i=1;in;i++){if(maxa[i])max=a[i];}cout数组中最大值为:maxendl;Tmin=a[0];for(i=1;in;i++){if(mina[i])min=a[i];}cout数组中最小值为:minendl;return0;}intmain(){inta[100];inti,n;cout请输入数组个数:;cinn;for(i=0;in;i++){cina[i];}maxin(a,n);return0;}3.编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和。【提示】设计一个类模板templateclassTypeclassArray{...};具有对数组元素进行排序、倒置、查找和求和功能,然后产生类型实参分别为int型和double型的两个模板类,分别对整型数组与双精度数组完成所要求的操作。程序代码:#includeiostreamusingnamespacestd;templateclassnumtypeclassArray{public:Array(intx){n=x;}numtypesort();numtypefind();numtypereserve();numtypeaccumulate();numtypedisplay();numtypeinput();private:numtypes[100];numtypen;};//排序templateclassnumtypenumtypeArraynumtype::sort(){inti,j;for(i=0;in-1;i++)for(j=i+1;jn;j++)if(s[i]s[j]){numtypet;t=s[i];s[i]=s[j];s[j]=t;}return0;}templateclassnumtypenumtypeArraynumtype::find(){inti;numtypej;cout请输入要查找的元素:;cinj;for(i=0;in;i++){if(s[i]==j){cout所查找的元素为:s[i]endl;return0;}}cout没有找到。endl;return0;}templateclassnumtypenumtypeArraynumtype::reserve(){inti,j=0;numtypem;numtypea[100];for(i=n-1;i=0;i--){m=s[i];a[j]=m;j++;}for(i=0;in;i++){s[i]=a[i];}return0;}templateclassnumtypenumtypeArraynumtype::accumulate(){inti;numtypemax=0;for(i=0;in;i++){max=max+s[i];}cout求和为:maxendl;return0;}templateclassnumtypenumtypeArraynumtype::display(){inti;for(i=0;in;i++){couts[i];}return0;}templateclassnumtypenumtypeArraynumtype::input(){inti;cout请输入n个数:endl;for(i=0;in;i++){cins[i];}return0;}intmain(){inti;Arrayinta(5);a.input();a.sort();cout排序后为:;a.display();coutendl;a.find();a.reserve();cout倒置后为:;a.display();coutendl;a.accumulate();coutendl;Arraydoubleb(5);b.input();b.sort();cout排序后为:;b.display();coutendl;b.find();b.reserve();cout倒置后为:;b.display();coutendl;b.accumulate();coutendl;return0;}4.编写一个程序,求输入数的平方根。设置异常处理,对输入负数的情况给出提示。#includeiostream#includecmathusingnamespacestd;doublepfg(doublea){doublex;x=sqrt(a);returnx;}intmain(){doublea;cout请输入一个数:;cina;try{while(a=0){cout平方根为:pfg(a)endl;cout请输入一个数:;cina;}if(a0)throwa;}catch(double){cout所输入的a不符合输入要求!endl;}cout结束endl;}三、结论(写本次实验的收获)
本文标题:C++实验五
链接地址:https://www.777doc.com/doc-5419339 .html