福建工程学院实验报告面向对象程序设计(C++)专业电子信息工程班级1303座号姓名日期2015-12-31实验八异常处理程序设计一、实验目的:理解异常的概念,了解异常处理的处理机制,掌握异常处理程序的编写方法。二、实验时间:2015-12-31三、实验地点:C2-101四、实验内容:1.编写程序,利用异常处理的方法,当指定文件不存在时显示出错信息。如果文件存在显示其大小。(file.fail()file.tellg())#includeiostream#includestring#includefstreamusingnamespacestd;intmain(){fstreamfile;stringpath;try{cout请输入文件路径:;getline(cin,path);file.open(path.c_str(),ios_base::in);if(file.fail())throw0;file.seekg(0,ios_base::end);cout文件长度为:file.tellg()endl;}catch(int){cout打开文件错误!endl;return-1;}file.close();return0;}2.从Person类派生出Teacher类,在Teacher中设计成员函数test(),能根据职称检测年龄是否正确,教授年龄大于26岁,副教授年龄大于25岁,讲师年龄大于23岁,助教年龄大于20岁。#includeiostream#includestring#includefstreamusingnamespacestd;classPerson{public:Person(stringpTile){jobTitle=pTile;}stringgetTitle(){returnjobTitle;}private:stringjobTitle;};classTeacher:publicPerson{public:Teacher(stringpTile,inttage):Person(pTile){age=tage;}voidtest();private:intage;};voidTeacher::test(){inti;if(getTitle()==教授)i=1;elseif(getTitle()==副教授)i=2;elseif(getTitle()==讲师)i=3;elseif(getTitle()==助教)i=4;elsei=0;switch(i){case0:cout输入的职称不存在!endl;break;case1:try{if(age26)throw0;cout年龄与职称匹配!endl;return;}catch(int){cout年龄与职称不匹配!endl;}break;case2:try{if(age25)throw0;cout年龄与职称匹配!endl;return;}catch(int){cout年龄与职称不匹配!endl;}break;case3:try{if(age23)throw0;cout年龄与职称匹配!endl;return;}catch(int){cout年龄与职称不匹配!endl;}break;case4:try{if(age20)throw0;cout年龄与职称匹配!endl;return;}catch(int){cout年龄与职称不匹配!endl;}break;}}Teachert1(教授,27);cout教授27;t1.test();Teachert2(教授,23);cout教授23;t2.test();Teachert3(讲师,23);cout讲师23;t3.test();Teachert4(教师,30);cout教师30;t4.test();return0;}五、实验要求:在上机前写出全部源程序;六、实验结果分析:1,首先创建一个文本文件,并添加一些内容,运行程序,输入该文件的路径,此时输出的是文件内容的长度,如下图:再输入一个不存在的路径,这时程序就提示找不到文件,如下图:2,分别对几组正确和错误的数据进行测试,程序输出了对应的信息,如下图所示:七、实验心得体会及问题反馈:程序的设计中难免会遇到一些难以预料的错误,如果这是触发这些错误而不对这些错误进行处理,程序可能会卡死或者直接退出,更甚者可能导致系统的崩溃,对用户体验造成极大的影响。因此在程序的设计中需要有异常处理的功能,使得程序设计得更加健壮,在以上的实验中,充分体现出了异常处理的功能和作用,以及对一个程序的重要作用。教师评定:签字:年月日