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

C#编程

开发平台:

Visual C++

  1. //18_3.cpp
  2. #include<iostream.h>
  3. class RMB{
  4. public:
  5.   RMB(unsigned d, unsigned c);
  6.   RMB operator+(RMB&)const;
  7.   RMB& operator++();
  8.   void display()const { cout << (yuan + jf/100.0) << endl; }
  9. RMB operator*(double d) const;
  10. protected:
  11.   unsigned yuan;
  12.   unsigned jf;
  13. };
  14. RMB::RMB(unsigned d, unsigned c)
  15. {
  16.   yuan = d + c / 100;
  17.   jf = c % 100;
  18. }
  19. RMB RMB::operator+(RMB& s) const
  20. {
  21.   unsigned c = jf + s.jf;
  22.   unsigned d = yuan + s.yuan;
  23.   return RMB(d,c);
  24. }
  25. RMB& RMB::operator++()
  26. {
  27.   yuan+=(jf+1)/100;
  28.   jf=(jf+1)%100;
  29.   return *this;
  30. }
  31. RMB RMB::operator*(double d)const
  32. {
  33.   double temp=(yuan+jf/100.0)*d;
  34. unsigned y = long(temp);
  35. unsigned j = ((temp-y)*1000+5)/10;
  36. return RMB(y,j);
  37. }
  38. RMB operator*(double d, const RMB& r){ return r * d; }
  39. void main()
  40. {
  41.   RMB d1(1, 60);
  42.   RMB d2(2, 50);
  43.   RMB d3(0, 0);
  44.   d3 = d1 + d2;
  45. d1 = d3 * 30.25;
  46.   d2 = 52.35 * d3;
  47.   d1.display();
  48. d2.display();
  49. }