exch.cpp
#include
#include
using namespace std;
class bad_hmean:public exception//logic_error我懒得去找logic_error的构造函数格式了,直接继承exception
{
public:
//explicit bad_hmean(const string &what_arg){};
const char *what(){
return “bad argument to heanm(),不应该是相反数”;
}
};
class bad_gmean:public exception//logic_error
{
public:
const char *what()
{
return “gmean() arguments should be >=0”;
}
};
main152.cpp
#include
#include “exch.cpp”
using namespace std;
double hmean(double x,double y)
{
//if(x=-y)别写成了我这样哈
if(x==-y)
throw bad_hmean();
else
return 2.0*x*y/(x+y);
};
double gmean(double x,double y)
{
if(x<0y<0)
throw bad_gmean();
else
return sqrt(x*y);
};
void main152()
{
double x,y,z;
cout<<”Enter two numbers:”;
while(cin>>x>>y)
{
try{
z=hmean(x,y);
cout<<”Harmonic mean of “<<x<<” and “<<y
<<” is “<<z<<endl;
cout<<”Geometric mean of “<<x<<” and “<<y
<<” is “<<gmean(x,y)<<endl;
cout<<”Enter the next set of numbers :”;
}
catch(bad_hmean &h)
{
//h.what();
cout<<h.what()<<endl;
}
catch(bad_gmean &g)
{
cout<<g.what()<<endl;
}
cin.get();
}
cout<<”Bye”<<endl;
cin.get();
}
—————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:https://www.royalchen.com/ author:royalchen Email:royalchen@royalchen.com ———————————————————————————————————————————————————
- 本文作者: royalchen
- 本文链接: http://www.royalchen.com/2016/02/24/cprimerplus第六版课后编程题答案152/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!