- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1
PAGE 7
异常处理
【学习要点】
1.掌握异常处理的概念、及其实现机制。
2.掌握异常的捕获与处理过程。
3.掌握异常处理中动态资源的释放。
4.掌握异常处理中对象的构造与析构。
5.掌握抛出异常对象。
【思考题】
1.编写堆栈操作程序。
【要求】
① 用类模板方式定义一个栈类stackT, max,私有成员数据:s[ ](存放栈元素)、top(栈顶元素下标);公有成员函数:push(元素入栈)、pop(元素出栈)
② 编写main()函数,建立一个整数栈。随机产生若干个范围在33~88之间的整数,依次入栈,在产生随机数66后或栈已满时,就停止随机数的产生和入栈。最后将整数栈中数据依次出栈并输出。
【编写程序如下】
#includeiostream.h
#includestdlib.h
template typename T, int max
class stack
{ T s[ max ]; //栈元素数组
int top; //栈顶下标
public:
stack ( ) { top=-1; } //栈顶初始化为-1
void push ( const T item ); //item元素入栈
T pop ( ); //出栈
};
template typename T, int max
void stackT, max::push ( const T item)
{ if ( top==max-1 ) throw top;
top++; s[ top ]=item; }
template typename T, int max
T stackT, max::pop ( )
{ T temp;
if ( top==-1 ) throw top;
temp=s[ top ]; top--; return temp; }
void main ( )
{ stack int, 6 s1; //整数栈
int n;
cout“整数栈入栈序列:\n”;
try { while ( true ) { n=rand()%56+33;
s1.push( n );
coutn” ”;
if ( n==66 ) break; } }
catch ( int ) { cout“\n栈满满,无法再入栈了!\n”; }
cout“\n整数栈出栈序列:\n”;
try { while ( true ) { n = s1.pop( );
coutn” ”; } }
catch ( int ) { cout“\n栈空空,无法再出栈了!\n”; }
coutendl; }
请思考:
⑴.若以上程序运行时,随机产生的整数序列为:74 76 39 45 50 77 87 47 59 81 82 66
则运行结果是______。
【答案】???
⑵.若以上程序的main ( ) 函数中的 stack int, 6 s1; 改写为 stack int, 20 s1;
程序运行时,随机产生的整数序列仍然为:74 76 39 45 50 77 87 47 59 81 82 66
则运行结果是______。
【答案】???
2.将第1题堆栈操作程序编写如下:
#includeiostream.h
#includestdlib.h
template typename T, int max
class stack
{ T s[ max ]; //栈元素数组
int top; //栈顶下标
public:
stack ( ) { top=-1; } //栈顶初始化为-1
void push ( const T item ); //item元素入栈
T pop ( ); //出栈
};
template typename T, int max
void stackT, max::push ( const T item)
{ if ( top==max-1 ) { cout“\n栈满满,无法再入栈了!\n”; exit(0) ; }
top++; s[ top ]=item; }
template typename T, int max
T stackT, max::pop ( )
{ T temp;
if ( top==-1 ) { cout“\n栈空空,无法再出栈了!\n”; exit(0) ; }
temp=s[ top ]; top--; return temp; }
void main (
您可能关注的文档
- 2006沈宇峰Inter-organisational-cost-management-Towards-an-evolutionary-perspective.pdf
- 2007年考博英语3000核心单词系列A-F.pdf
- 第29课时英语日常交际用语-12月28.ppt
- 【福客海外房产】-墨尔本传统富人区Bulleen全新联排别墅39-Grant-Olsen-Ave-墨尔本房价.pdf
- 第八讲-带传动(二次).ppt
- 中国石油大学-石油科技英语-第一次在线作业.doc
- 第八讲-拟声词翻译.ppt
- 【更新】梦工厂-38-亿美元把自己卖了,这其实不是一件悲伤事情.pdf
- 译林2012unit-1.doc
- -英语、高翻专业人菜.doc
最近下载
- 网络预约出租汽车企业安全生产责任制和事故报告制度.pptx
- SY-T 5051-2009 钻具稳定器-石油天然气行业标准.pdf VIP
- 22G101-3 混凝土结构施工图平面整体表示方法制图规则和构造详图(独立基础、条形基础、筏形基础、桩基础).docx
- 模板支架验收记录表.doc
- 标准个人租房合同模板.pdf VIP
- 2024年全国疾控系统大学习实验室质量控制规范答案.docx VIP
- 2024-2025学年初中道德与法治七年级(全一册)统编版(五四学制)(2024)教学设计合集.docx
- 小学劳动教育五年级下册第五单元2《维修凳子》教学设计.docx
- 北师大版五年级数学上册第五单元《分数的意义》(大单元教学设计).docx VIP
- 简易呼吸球囊.ppt
文档评论(0)