您的位置:首页 > 其它

2013第五周上机任务【项目2 分数类】

2013-04-03 20:47 507 查看
/*
* 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;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: