19_2.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //19_2.cpp
  2. #include <iostream.h>
  3. #include <iomanip.h>
  4. class RMB{
  5. public:
  6.   RMB(double v =0.0):yuan(v){ jf =(v-yuan)*100+0.5; }
  7.   operator double(){  return yuan+jf/100.0; }
  8.   void display(ostream& out)
  9.   {
  10.     int n=1;   //为了用两字节的¥符号,得先求整数部分位数...
  11. for(int x=yuan; x/10; x/=10) n++;
  12. if(n>5){ out <<"*******.**"; return; }
  13.     double t=yuan+jf/100.0;
  14. out <<setw(7-n) <<"¥" <<setiosflags(ios::fixed)
  15.     <<setprecision(2) <<setw(n+3) <<t;
  16. }
  17. protected:
  18.   unsigned int yuan;
  19.   unsigned int jf;
  20. };
  21. ostream& operator <<(ostream& oo, RMB& d)
  22. {
  23.   d.display(oo);
  24.   return oo;
  25. }
  26. void main()
  27. {
  28.   RMB rmb(1.5);
  29.   cout <<"Initially rmb = " <<rmb <<"n";
  30.   rmb =2.0*rmb;
  31.   cout <<"then rmb = " <<rmb <<"n";
  32. }