第六周第一项目——分数计算

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.}  

运行结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值