分数类

来源:互联网 发布:ubuntu 163源 16.04 编辑:程序博客网 时间:2024/05/06 15:34
/**Copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称:main.cpp*作    者:郭辉*完成时间:2016年4月7日*版 本 号:v1.0**问题描述:分数类*输入描述:两个整数。*程序输出:分数。*/#include<iostream>using namespace std;class CFraction{private:int nume;//分子        int deno;//分母 int gys;    public:CFraction(int nu=0,int de=1);//构造函数,初始化用void set(int nu=0,int de=1); //置值,改变值时用void input();                //按照“nu/de ”的格式,如“2/5”的形式输入void simplify();             //化简(使分子分母没有公因子)void amplify(int n);         //放大n倍,如2/3放大5倍为10/3    void output(int style=0);    //输出:以8/6为例,style为0时,原样输出8/6                                     //style为1时,输出化简后样式4/3                             //style为2时,输出1(1/3)形式,表示一又三分之一                             //style为3时,用小数形式输出,如1.3333                             //默认方式0};CFraction::CFraction(int nu,int de){   nume=nu;   deno=de;}void CFraction::set(int nu,int de){   nume=nu;   deno=de;}void CFraction::input(){ cout<<nume<<"/"<<deno<<endl;}void CFraction::simplify(){   int i,temp;  for(i=nume;;i--)  {     if(nume%i==0&&deno%i==0) {         gys=i; break; }  }  cout<<nume/i<<"/"<<deno/i<<endl;}void CFraction::amplify(int n){cout<<nume*n<<"/"<<deno<<endl;}void CFraction::output(int style){   if(style==0)   cout<<nume<<"/"<<deno<<endl;   else if(style==1)       cout<<nume<<"/"<<deno<<endl;   else if(style==2)   {       if(nume>deno)   {  int duoyu;      duoyu=nume/deno;  nume=nume%deno;  cout<<duoyu<<"("<<nume<<"/"<<deno<<")"<<endl;   }   else   {   cout<<nume<<"/"<<deno;   }   }   else(style==3);   {     double xiaoshu; xiaoshu=nume/deno; cout<<xiaoshu;   }}int main(){int a,b,n;cin>>a>>b;   CFraction cf(a,b);cf.set(a,b);cf.input();cf.simplify();cin>>n;cf.amplify(n);int style;cin>>style;cf.output(style);}


0 0
原创粉丝点击