lily1143的专栏

问题及代码:

/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称: liuly .cpp*作 者:莉莉*完成日期:2015年3月28日*版 本 号:v1.0**问题描述:关于分数类的处理*/#include <iostream>using namespace std;int gcd(int m,int n);//求分子分母的最大公约数class CFraction{private:int nume; // 分子int deno; // 分母public:CFraction(int nu=0,int de=1); //构造函数,初始化用void set(int nu=0,int de=1); //置值,改变值时用void input();//按照"nu/de"的格式,如"5/2"的形式输入void simplify();//化简(使分子分母没有公因子)void amplify(int n);//放大n倍,如2/3放大5倍为10/3void 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){if(de!=0){nume=nu;deno=de;}else{cout<<"输入有误!"<<endl;}}void CFraction::set(int nu,int de){if(de!=0){nume=nu;deno=de;}}void CFraction::input(){int nu,de;char c;cout<<"请输入分数(m/n):"<<endl;cin>>nu>>c>>de;if(c!='/'){cout<<"分数格式不对!!"<<endl;}else if(de==0){cout<<"分母不能为0!!"<<endl;}nume=nu;deno=de;}void CFraction::simplify(){int n;n=gcd(nume,deno);nume=nume/n;deno=deno/n;}int gcd(int m,int n){int r;if (m<n){r=m;m=n;n=r;}while(r=m%n) // 求m,,n的最大公约数{m=n;n=r;}return n;}void CFraction::amplify(int n){nume=nume*n;}void CFraction::output(int style){int n;switch(style){case 0:cout<<"分数原样输出:"<<nume<<"/"<<deno<<endl;break;case 1:n=gcd(nume,deno);cout<<"化简后的分数为:"<<nume/n<<"/"<<deno/n<<endl;break;case 2:cout<<"带分数形式:" <<nume/deno<<'('<<nume%deno<<'/'<<deno<<')'<<endl;break;case 3:cout<<"近似值:" <<nume/double(deno)<<endl;break;default:cout<<"默认原样:" <<nume<<'/'<<deno<<endl;}}int main(){int m,n;CFraction c1,c2;cout<<"请输入c1:"<<endl;c1.input();cout<<"c1的信息为:"<<endl;c1.output();cout<<"改变c1的值后:"<<endl;cout<<"分别输入c1的分子与分母:"<<endl;cin>>m>>n;c1.set(m,n);c1.output();cout<<"测试c1的input函数:"<<endl;c1.input();c1.output();cout<<"用c2来测试函数:"<<endl;c2.input();cout<<"化简后的分数为:"<<endl;c2.simplify();c2.output();int x;cout<<"请输入分数扩大的倍数:"<<endl;cin>>x;c2.amplify(x);c2.output();cout<<"请设置函数的输出形式*(0~3):"<<endl;int a;cin>>a;c2.output(a);return 0;}

运行结果:

心得体会:

唯一想哭的一点是在处理最大公约数的时候犯了一个二的错误!

可我,仍在旅行的路上徘徊。等待着每一辆经过的车,让我走到更远的地方。

lily1143的专栏

相关文章:

你感兴趣的文章:

标签云: