




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 异常处理实验课程名:面向对象程序设计(C+)专业班级: 学号: 姓名: 实验时间: 实验地点: 指导教师: 一、实验目的和要求1、了解异常的种类2、理解异常继承体系3、学习简单的异常处理方法。4、掌握C+中异常的定义与使用方法;二、实验内容1.给出三角形的三边a,b,c,求三角形的面积。只有a+bc,b+ca,c+ab时才能构成三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算。程序代码#include #include using namespace std;int main()double triangle(double,double,double); double a,b,c;cout请输入三角形的三边:abc;trywhile(a0 & b0 & c0)cout三角形的面积为area=triangle(a,b,c)endlendl; cout是否继续输入数据?否(0,0,0)abc; catch(double)cout输入的三边有误!endlc&a+cb&b+ca)double s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c);elsethrow a; return area; 程序运行结果程序分析Try和catch后有加,并且catch也要单独使用,后面要接try语句之间不能有其他语句。2. 编写一个程序,求输入数的平方根。设置异常处理,对输入负数的情况给出提示。程序代码#include#includeusing namespace std;double squareroot(double &a)double n;if(a=0)n=sqrt(a);elsethrow a;return n;void main()double m;char h=Y;trywhile(h=Y)cout请输入一个需开方的数:m;coutm 的平方根为 squareroot(m)endlendl;cout是否继续输入?Y/Nh;catch(double)cout输入的数为负数,无法开方!endlendl;system(pause);程序运行结果程序分析Try和catch块中必须有用花括号括起来的复合语句,即使花括号内只有一个语句,也不能省略花括号。3. 求n!的函数,当用户的输入太大时(例如50),会出现错误。编写一个程序,使用异常处理机制来解决这一问题。程序代码#include using namespace std;int fac(int n) int result=1; if(n16) throw n; while(n) result*=n; n-; return result;int main( )int n;char h=Y; trywhile(h=Y)coutn;coutn!=fac(n)endl;cout是否继续输入?Y/Nh; catch(int) coutException occurred: Overflow!endl; catch(char *s)coutException occurred: sendl; return 0;程序运行结果程序分析string类型变量在传递时相当于字符指针。并且在一个try-catch结构中只能有一个try块,但可以有多可catch块。4.设计一个关于栈的类,并且添加异常处理,判断栈空和栈溢出,在主程序中对其进行测试。程序代码#include#includeconst int SIZE=100;using namespace std;class Fullprivate:int a;public:Full(int i):a(i)int getValue()return a;class Emptypublic:void show()coutstack is empty!=SIZE-1)throw Full(a);stack+tos=a;int pop()if(tos0)throw Empty();return stacktos-;int top()constreturn tos;int main()Stack s;int b200,i=0;ifstream infile(data.dat,ios:in);if(!infile)cerropen data.dat error!endl;exit(1);trywhile(infile)/for(int j=0;jbi;s.push(bi);+i;for(int i=0;i=SIZE;i+)couts.pop();catch(Full e)coutException: Stack Full.endl;coutThe value not push in stack: e.getValue()endl;catch(Empty e)e.show();return 0;程序运行结果原始数据文件:注释for(int j=0;j3;j+)语句运行结果:注释while(infile)语句结果:程序分析此程序中,抛出的异常时两个类:Full和Empty,因此在catch语句中分别对应这两种类判断栈溢出和栈空。而catch(Full e)或catc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐厅节日促销活动方案
- 车展创意活动方案
- 自制故事盒活动方案
- 焊工考试题及答案
- 贵州选调考试题及答案
- 高中电气考试题及答案
- 幼儿园教学教案设计:比高矮比长短测量概念启蒙
- 企业资产追踪及使用记录标准化模板
- 服装知识考试题及答案
- 那一次我真感动八年级作文(8篇)
- T-CACM 1560.1-2023 中医养生保健服务(非医疗)技术操作规范推拿
- 护理美学-第三章 护士审美修养
- 篮球教学活动设计方案
- (高清版)JTG 5211-2024 农村公路技术状况评定标准
- 人教精通版6年级上下册重点单词和句型默写
- 大学生生涯发展展示 (修改版)
- DB32T4062-2021城市轨道交通工程质量验收统一标准
- (正式版)JBT 14897-2024 起重磁铁安全技术规范
- 三D打印公开课
- 西方节日-英文介绍
- 动车组列车员(长)(职业通用)全套教学课件
评论
0/150
提交评论