exch.cpp
#include <stdexcept> #include <iostream> 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 <iostream> #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<0||y<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 <q to quit>:"; } 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
———————————————————————————————————————————————————