第一范文网 - 专业文章范例文档资料分享平台

C primer plus(第6版)中文版编程练习答案第15章

来源:用户分享 时间:2025/8/26 11:31:43 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

name = \}

inline void bad_hmean::mesg() { cout << name << \ << \}

class bad_gmean :public bad_hmean {

private: string name; public: explicit bad_gmean(double a = 0, double b = 0, const string &s = \ void mesg(); virtual ~bad_gmean()throw(){} };

bad_gmean::bad_gmean(double a, double b, const string &s) :bad_hmean(a, b, s) { name = \}

inline void bad_gmean::mesg() { cout << name << \be >= 0\\n\}

#endif //error.cpp

#include \

double hmean(double a, double b); double gmean(double a, double b);

int main() { double x, y, z; cout << \ while (cin >> x >> y)

{ try{ z = hmean(x, y); cout << \ << \ cout << \ << \ cout << \ } catch (bad_gmean &hg) { cout << hg.what(); cout << \ hg.mesg(); cout << endl; cout << \ break; } catch (bad_hmean &bg) { cout << bg.what(); cout << \ bg.mesg(); cout << endl; cout << \ continue; } } cout << \ system(\ return 0; }

double hmean(double a, double b) { if (a == -b) throw bad_hmean(); return 2.0*a*b / (a + b); }

double gmean(double a, double b) { if (a < 0 || b < 0) throw bad_gmean();

return sqrt(a*b); } 4、

//sales.h

#ifndef SALES_H_ #define SALES_H_ #include #include #include #include #include using namespace std;

class Sales {

public: enum { MONTHS = 12 }; class bad_index:public logic_error { private: int bi; public: explicit bad_index(int ix, const string &s = \ int bi_val()const { return bi; } virtual ~bad_index()throw(){} }; explicit Sales(int yy = 0); Sales(int yy, const double *gr, int n); virtual ~Sales(){} int Year()const { return year; } virtual double operator[](int i)const; virtual double &operator[](int i); private: double gross[MONTHS]; int year; };

class LabeledSales :public Sales {

public: class nbad_index :public Sales::bad_index { private:

std::string lbl; public: nbad_index(const string &lb, int ix, const string &s = \ const string &label_val()const { return lbl; } virtual ~nbad_index()throw(){} }; explicit LabeledSales(const string &lb = \ LabeledSales(const string &lb, int yy, const double *gr, int n); virtual ~LabeledSales(){} const string &Label()const { return label; } virtual double operator[](int i)const; virtual double &operator[](int i); private: string label; };

#endif //sales.cpp

#include \

Sales::bad_index::bad_index(int ix, const string &s) :logic_error(s), bi(ix) { }

Sales::Sales(int yy) { year = yy; for (int i = 0; i < MONTHS; ++i) gross[i] = 0; }

Sales::Sales(int yy, const double *gr, int n) { year = yy; int lim = (n < MONTHS) ? n : MONTHS; int i; for (i = 0; i < lim; ++i) gross[i] = gr[i]; for (; i < MONTHS; ++i) gross[i] = 0; }

double Sales::operator[](int i)const

C primer plus(第6版)中文版编程练习答案第15章.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5g4r75djo34n25q6ny0j2r4yi9c8on003tk_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top