/* (程序头部注释开始)
* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生* All rights reserved.* 文件名称: 求一系列分数* 作 者: 王智凯* 完成日期: 12 年 3 月 19 日* 版 本 号:* 对任务及求解方法的描述部分* 输入描述:* 问题描述:* 程序输出:* 程序头部的注释结束*/
#include <iostream> using namespace std; class CFraction { public: CFraction(int nu=0,int de=1); void Set(int nu=0,int de=1); void input(); int get_common_divisor(); void Simplify(); void amplify(int n=2); void output(int style=0); private: int nume; int deno; int inp; int Simp; int ampli; int m; int d; }; 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; cout << "输入分数:(格式:nu / de)" << endl; while(1) { cin >> nume >> a >> deno; if(a != '/') { cout << "格式不正确,请重新输入!" << endl; } else { break; } } cout<<"该分数为:"<<endl; cout<< nume << "/" << deno << endl ; } int CFraction::get_common_divisor() { int max,min,x; if(deno > nume) { max = deno; min = nume; } else { max = nume; min = deno; } while (min != 0) { x =min; min =max % min; max = x; } return max; } void CFraction::Simplify()//化简 {
m = nume / get_common_divisor(); d = deno / get_common_divisor(); cout<< m <<"/"<< d <<endl;
}
void CFraction::amplify(int n) { ampli = n * m ; cout<<ampli<<"/"<< d <<endl; }
void CFraction::output(int style) { double x; double y; switch(style) { case 0: cout << nume << "/" << deno << endl; break; case 1: cout << m << "/" << d << endl; break; case 2: x = m / d; y = m % d; cout << x << "(" <<y << "/" << d << ")" << endl; break; default:; } }
void main( void) { CFraction C1; C1.Set(3,7); C1.input(); cout<<"化简后为:"<<endl; C1.Simplify(); cout<<"扩大3倍后为:"<<endl; C1.amplify(3); cout<<"当输入2 时变为:"<<endl; C1.output(2); }
第五周实验报告2
最新推荐文章于 2022-04-06 17:52:39 发布