《实验七异常处理程序设计.doc
文本预览下载声明
实验七 异常处理程序设计
实验目的:
理解异常的概念,了解异常处理的处理机制,掌握异常处理程序的编写方法。
实验时间:
实验地点:
实验内容:
1.编写程序,利用异常处理的方法,当指定文件不存在时显示出错信息。如果文件存在显示其大小。(file.fail() file.tellg())
2.从Person类派生出Teacher类,在Teacher中设计成员函数test(),能根据职称检测年龄是否正确,教授年龄大于26岁,副教授年龄大于25岁,讲师年龄大于23岁,助教年龄大于20岁。
五、实验要求 在上机前写出全部源程序;
结果:
代码
#include iostream
#include fstream
#include string
using namespace std;
int main()
{
fstream file;
string path;
try
{
cout请输入要打开文件的全路径:;
getline(cin, path);
file.open(path.c_str(),ios_base::in);
if(file.fail())
throw 0;//如果打开失败,抛出异常。
file.seekg(0,ios_base::end);//将文件指针从文件的开始位置移动到结尾
cout打开文件的长度为:file.tellg()endl;//file.tellg()表示文件的长度
}
catch(int)//接收异常,处理异常
{
cout打开文件错误!endl;
return -1;
}
file.close();//关闭文件
return 0;
}
2、从Person类派生出Teacher类,在Teacher中设计成员函数test(),能根据职称检测年龄是否正确,教授年龄大于26岁,副教授年龄大于25岁,讲师年龄大于23岁,助教年龄大于20岁。
结果:
代码:#includeiostream
#includestring
using namespace std;
class Person
{
public:
Person(string pjobTile)//Person类的构造函数
{
jobTitle=pjobTile;
}
string getJobTitle()//获得私有数据成员
{
return jobTitle;
}
~Person(){}
private:
string jobTitle;
};
class Teacher:public Person//继承Person类
{
public:
Teacher(string pjobTile, int page):Person(pjobTile)//派生类的构造函数(同时也要调用基类的构造函数)
{ //构造函数先执行基类再派生类
age = page;
}
void Test();
~Teacher(){}
private:
int age;
};
void Teacher::Test()
{
int i;
if(getJobTitle()==教授)
i=1;
else if(getJobTitle()==副教授)
i=2;
else if(getJobTitle()==讲师)
i=3;
else
i=4;
switch(i)
{
case 1:
try
{
if(age26)
throw 0;
cout年龄正确endl;
return;
}
catch(int)
{
cout职称或年龄错误!endl;
};break;
case 2:
try
{
if(age25)
显示全部