2013第五周上机任务【项目2 分数类】
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:樊露露 * 完成日期:2013 年 4 月 3 日 * 版本号:v1.0 * * 输入描述:无 * 问题描述: * 程序输出:* 问题分析: * 算法设计:略 */ #include<iostream>using namespace std;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”的格式void simplify(); //化简void amplify(int n); //放大n倍void output(int style=0); //输出:};CFraction::CFraction(int nu,int de):nume(nu),deno(de){}void CFraction::set(int nu,int de){nume=nu;deno=de;}void CFraction::amplify(int n){cout<<nume<<"/"<<deno;nume=nume*n;cout<<"放大"<<n<<"倍后为:"<<nume<<"/"<<deno<<endl;}void CFraction::input(){cout<<"以此输入分数的分子和分母:"<<endl;cin>>nume>>deno;}void CFraction::simplify(){int i;for(i=1;i<=nume&&i<=deno;i++){if(nume%i==0&&deno%i==0){nume=nume/i;deno=deno/i;}}}void CFraction::output(int style){switch(style){case 0:cout<<"原样输出:"<<endl;cout<<nume<<"/"<<deno<<endl;break;case 1:simplify();cout<<"化简后输出:"<<endl;cout<<nume<<"/"<<deno<<endl;break;case 2:cout<<"小数形式输出:"<<endl;cout<<(float)nume/deno<<endl;break;}}int main(){CFraction Num;Num.set(66,99);Num.amplify(3);Num.input(); Num.output(0);Num.output(1);Num.output(2);return 0;}