C++走向远洋——31(六周,项目一,1.1)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:fenshu.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年3月23日 * 版本号:V1.1 * 问题描述:实现类中的成员函数 * 程序输入:无 * 程序输出:见运行结果 */ #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::input() { char a; cin>>nume>>a>>deno; } void CFraction::output(int style) { switch(style) { case 0: cout<<nume<<"/"<<deno<<endl; break; case 1: simplify(); break; case 2: cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl; break; case 3: cout<<nume*1.0/deno<<endl; } } void CFraction::simplify() { int i; if(nume>deno) nume=deno; for(i=nume;i>1;i--) { if(nume%i==0 && deno%i==0) { cout<<nume/i<<"/"<<deno/i<<endl; break; } } if(i<=1) cout<<nume/i<<"/"<<deno/i<<endl; } void CFraction::amplify(int n) { cout<<n*nume<<"/"<<deno<<endl; } int main() { CFraction Fenshu; Fenshu.set(2,3); Fenshu.output(); return 0; }
运行结果:
心得:
无