/*
*Copyright(c)2016,烟台大学计算机与控制工程学院
*All rights reserved
*文件名称:123.cpp
*作 者:王蕊
*完成日期:2016年4月3日
*版 本 号:v1.0
*
*问题描述:实现一个成员函数,测试一个。
*输入描述:无。
*程序输出:无。
*/
#include <iostream>
using namespace std;
class CFraction
{
private:
int nume;
int deno;
int simplify_nume;
int simplify_deno;
public:
CFraction(int nu = 0,int de = 1);
void set(int nu = 0,int de = 1);
void input();
void simplify();
void amplify(int 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 temp;
cin >> nume >> temp >> deno;
}
void CFraction::simplify()
{
int temp;
int nu = nume;
int de = deno;
while(nu%de)
{
temp = nu%de;
nu = de;
de = temp;
}
simplify_nume = nume/de;
simplify_deno = deno/de;
}
void CFraction::amplify(int n)
{
deno *= n;
nume *= n;
}
void CFraction::output(int style)
{
if(style == 0)
cout << nume << "/" << deno << endl;
else if(style == 1)
cout << simplify_nume << "/" << simplify_deno << endl;
else if(style == 2)
if((float)nume/(float)deno < 1.0)
cout << nume << "/" << deno << endl;
else if((float)nume/(float)deno == 1.0)
cout << nume/deno << endl;
else
cout << nume/deno << "(" << nume%deno << "/" << deno << ")" << endl;
else
cout << nume/deno << endl;
}
int main()
{
CFraction demo(8,6);
demo.simplify();
demo.output(0);
demo.output(1);
demo.output(2);
demo.output(3);
demo.amplify(2);
demo.output(0);
demo.set(5,2);
demo.output(0);
demo.input();
demo.output(0);
return 0;
}
运行结果:
第六周项目一-分数类的雏形(1)
最新推荐文章于 2020-06-11 17:10:36 发布