首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

第五周-项目2-分数类

2013-04-05 
第五周-项目二-分数类/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All

第五周-项目二-分数类

/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: object.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 n=0,int de=1);    //置值,改变值时用void input();//按照"nu/de"的格式,如"5/2"的形式输入void simplify();//化简(使分子分母没有公因子)void amplify(int n);//放大n倍,如2/3放大5倍为10/3void 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,3,认为是方式0};void CFraction::input(){int nu,de;char a;cout<<"请输入nu,a,de:";cin>>nu>>a>>de;if(a!='/'){cout<<"格式错误!!!"<<endl;exit(0);}else{nume=nu;deno=de;           //切记!!!因为函数调用完,内存空间就释放啦,nume,deno的值不变啊}}void CFraction::set(int nu,int de){nume=nu;deno=de;}CFraction::CFraction(int nu,int de):nume(nu),deno(de){}void CFraction::simplify(){int r,x,y;x=nume;y=deno;while(y>0){r=x%y;x=y;y=r;}nume=nume/x;deno=deno/x;}void CFraction::amplify(int n){nume=nume*n;}void CFraction::output(int style)  {  int n;    switch(style)      {      case 0:          cout<<"原样:" <<nume<<'/'<<deno<<endl;           break;      case 1:          cout<<"化简形式: "<<nume<<'/'<<deno<<endl;              break;      case 2:          cout<<"带分数形式:" <<nume/deno<<'('<<nume%deno<<'/'<<deno<<')'<<endl;           break;      case 3:          cout<<"近似值:" <<nume/double(deno)<<endl;           break;     default:          cout<<"默认原样:" <<nume<<'/'<<deno<<endl;          }  }  int main(){CFraction t;t.set(8,6);t.output(0);t.simplify();t.output(1);t.output(2);t.output(3);return 0;}


结果:第五周-项目2-分数类

感受:有点复杂啊,想想吧!!!

热点排行