C++程序设计(第2版)课后习题答案第11章

11.9  定义分数类Rational......

View Code
 1 #include<iostream.h>
 2 #include<stdlib.h>
 3 class Rational{
 4 private:
 5     int fm,fz;
 6     int getZdgys(int a,int b);
 7 public:
 8     Rational(){
 9         fm=1;fz=0;
10     }
11     Rational(int a,int b);
12     friend Rational Add(Rational r1,Rational r2);
13     friend Rational Sub(Rational r1,Rational r2);
14     void Print1();
15     void Print2();
16 };
17 
18 Rational::Rational(int fm1,int fz1)
19 {
20     int t=getZdgys(fm1,fz1);
21     fm=fm1/t;
22     fz=fz1/t;
23 }
24 
25 void Rational::Print1()
26 {
27     cout<<fz<<"/"<<fm<<endl;
28 }
29 
30 void Rational::Print2()
31 {
32     cout<<(double(fz)/fm)<<endl;
33 }
34 
35 int Rational::getZdgys(int a,int b)
36 {
37     int t;
38     while(t=a%b)
39     {
40         a=b;
41         b=t;
42     }
43     return b;
44 }
45 
46 Rational Add(Rational r1,Rational r2)
47 {
48     int m= r1.fm*r2.fm;
49     int n= r1.fz*r2.fm+r1.fm*r2.fz;
50     Rational result(m,n);
51     return result;
52 }
53 Rational Sub(Rational r1,Rational r2)
54 {
55     int m= r1.fm*r2.fm;
56     int n= r1.fz*r2.fm-r1.fm*r2.fz;
57     Rational result(m,n);
58     return result;
59 }
60 void main()
61 {
62     Rational a(24,12);
63     Rational b(6,1);
64     Rational result;
65     result=Add(a,b);
66     result.Print1();
67     
68     result=Sub(a,b);
69     result.Print1();
70 }
原文地址:https://www.cnblogs.com/shajianheng/p/2965669.html