01./*
02.02.*Copyright (c)2016,烟台大学计算机与控制工程学院
03.03.*All rights reserved.
04.04.*文件名称:main.cpp
05.05.*作 者:田志伟
06.06.*完成日期:2016年4月5日
07.07.*版 本 号:v1.0
08.08.*
09.09.*问题描述:分数类的雏形
10.
11.
12.10.
13.11. 输入描述:分数
14.12.*输出描述:分数的各种表现方式,化简
15.13.*/
/*
02.*Copyright (c)2016,烟台大学计算机与控制工程学院
03.*All rights reserved.
04.*文件名称:main.cpp
05.*作 者:田志伟
06.*完成日期:2016年4月5日
07.*版 本 号:v1.0
08.*
09.*问题描述:分数类的雏形
10.
11. 输入描述:分数
12.*输出描述:分数的各种表现方式,化简
13.*/[cpp] view plain copy print?
01.#include <iostream>
02.
03.using namespace std;
04.class CFraction
05.{
06.private:
07. int nume;
08. int deno;
09.public:
10. CFraction(int nu=0,int de=1);
11. void set(int nu=0,int de=1);
12. void input();
13. void simplify();
14. void amplify(int n);
15. void output(int style);
16.
17.};
18. CFraction::CFraction(int nu,int de):nume(nu),deno(de){}
19.
20.void CFraction::simplify()
21.{
22. int z=0,x,y;
23. x=nume;
24. y=deno;
25.
26. while(y!=0)
27. {
28. z=x%y;
29. x=y;
30. y=z;
31.
32. }
33. nume=nume/x;
34. deno=deno/x;
35. cout<<nume<<'/'<<deno<<endl;
36.
37.}
38.void CFraction::amplify(int n)
39.{
40.
41.
42. nume=nume*n;
43. cout<<nume<<'/'<<deno<<endl;
44.
45.}
46.void CFraction::output(int style)
47.{
48. int b,x,a;
49. float c;
50. x=nume;
51. switch(style)
52. {
53. case 0:cout<<nume<<'/'<<deno<<endl;break;
54. case 1:CFraction::simplify();break;
55. case 2:b=x%deno;
56. if(b==0)
57. {
58. a=x/deno;
59. cout<<a<<endl;
60. }
61. else
62. {
63. a=x/deno;
64. cout<<a<<'('<<b<<'/'<<deno<<')'<<endl;
65. }
66. break;
67.
68. case 3:
69. c=(float)x/(float)deno;
70. cout<<c<<endl;
71. break;
72.
73. }
74.
75.}
76.int main()
77.{
78. int n;
79. CFraction fenshu(8,6);
80. fenshu.output(0);
81. fenshu.output(1);
82. fenshu.output(2);
83. fenshu.output(3);
84. CFraction fenshu1(8,6);
85. cout<<"放大倍数为"<<endl;
86. cin>>n;
87. fenshu1.amplify(n);
88.
89. return 0;
90.}
运行结果: