2013第五周上机任务【项目二 分数类】
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; }