第五周上机任务项目2-分数类
2013-03-29 18:46
344 查看
01./* 02.* 程序的版权和版本声明部分 03.* Copyright (c)2013, 烟台大学计算机学院学生 04.* All rightsreserved. 05.* 文件名称: CFraction .cpp 06.* 作 者:赵冠哲 07.* 完成日期:2013年3月29日 08.* 版本号: v1.0 09.* 输入描述: 10.* 问题描述: 11.*/ #include <iostream> using namespace std; class CFraction { private: int nume; // 分子 int deno; // 分母 public: CFraction(int nu=0,int de=1); void set(int nu,int de); void input(); void simplify(); //化简(使分子分母没有公因子) void amplify(int n); //放大n倍,如2/3放大5倍为10/3 void output(int style=0); //输出:以8/6为例,style为0时,原样输出8/6; //style为1时,输出化简后形式4/3; //style为2时,输出1(1/3)形式,表示一又三分之一; //style为3时,用小数形式输出,如1.3333; //不给出参数和非1、2,认为是方式0 }; int main() { CFraction cf1; cf1.input(); cf1.amplify(5); cf1.simplify(); cf1.output(0); cf1.output(1); cf1.output(2); cf1.output(3); return 0; } CFraction::CFraction(int nu,int de) { nume=nu; deno=de; } void CFraction::set(int nu,int de) { nume=nu; deno=de; cout<<"输入的分式为:"<<nume<<"/"<<deno<<endl; } void CFraction::input() //按照"nu/de"的格式,如"5/2"的形式输入 { cout<<" 请输入分子、分母:"; cin>>nume>>deno; } void CFraction::simplify() { int a,b,c,d,num1,num2,temp; num1=nume; num2=deno; c=nume; d=deno; if(num1>num2) { temp=num1; num1=num2; num2=temp; } a=num1; b=num2; while(b!=0) { temp=a%b; a=b; b=temp; } c=c/a; d=d/a; cout<<"化简后为:"<<c<<"/"<<d<<endl; } void CFraction::amplify(int n) { int a,b; a=nume; b=deno; a=a*n; b=b*n; cout<<"扩大倍数后为:"<<a<<"/"<<b<<endl; } void CFraction::output(int style) { if(style==3) { double a; a=double(nume)/double(deno); cout<<"用小数形式输出为:"<<a<<endl; } else if(style==2) { int b; if(nume>deno) { b=nume/deno; cout<<"写成假分数为:"<<b<<"("<<(nume-deno*b)<<"/"<<deno<<")"<<endl; } else { cout<<nume<<"/"<<deno<<endl; } } else if(style==1) { int a,b,c,d; int num1,num2,temp; num1=nume; num2=deno; c=nume; d=deno; if(num1>num2) { { temp=num1; num1=num2; num2=temp; } a=num1; b=num2; while(b!=0) { temp=a%b; a=b; b=temp; } c=c/a; d=d/a; cout<<"化简后为:"<<c<<"/"<<d<<endl; } else { cout<<"化简后为:"<<nume<<"/"<<deno<<endl; } } }
运行结果:
![](http://img.my.csdn.net/uploads/201303/29/1364554284_5674.jpg)
相关文章推荐
- 2013第五周上机任务【项目2 分数类】
- 分子运算2013第八周上机任务【项目3-分数类中的运算符重载】
- 第五周上机任务项目3-(编写基于对象的程序)
- 第八周上机任务项目3-分数类中运算符重载
- 第五周上机任务项目4
- 第五周上机实践项目——分数类的雏形
- 第五周上机任务项目1-(1带参数构造函数)--(纪念原创博文第100篇)
- 第五周上机任务项目1-(2,3默认参数构造函数)
- 第五周上机任务项目 2
- 2013第八周上机任务【项目3-分数类中的运算符重载】
- 第九周上机任务项目3-分数类
- 2013第五周上机任务【项目1 三角形类(构造函数)】
- 第五周上机任务项目1 分数的各种运算
- 2013第五周上机任务【项目1 三角形类(构造函数)】
- 2013第五周上机任务【项目3 长方体类】
- 第五周上机任务项目1-(4参数初始化表对数据成员初始化)
- 第五周上机任务项目一 长方体
- 第五周上机项目3 用多文件组织多个类的程序
- 第九周上机任务 项目二
- 第十三周上机任务项目3-汉诺塔