第五周任务2

原创 2012年03月23日 23:06:10
#include <iostream>
#include<math.h>
using  namespace std;
class CFraction
{
public:
    CFraction(int nu=0,int de=1):nume(nu),deno(de){}
 void set(int nu,int de);
 void input();
 void simplify();
 int amplify(int n); //最好是没有括号 的部分
    void output(int style=2);
 int g(int,int);
 void showmessage();
private:
 int nume;
 int deno;
};
int main()
{
 CFraction t1(18,12);
 t1.output(2);
 //cout<<t1.amplify(int n=2)<<endl;
 t1.set(3,4);
 t1.simplify();
 t1.input();
 //CFraction t2(12,18);
 //t2.set(int su,int de);
 //t2.showmessage();
 return 0;
}
//置值,改变值时用
void CFraction::set(int nu,int de)//nu,de不能被赋值
{
 if(de!=0)
 {
  nume=nu;
  deno=de;
 }
 else
 {
  cout<<"分母不能为0"<<endl;
  exit(0);
 }

}
//按照“nu/de"的格式输入
void CFraction::input()
{
 char c;
 //int nu,de;
 while (1)
 {
  cin>>nume>>c>>deno;
  if(c!='/')
   cout<<"格式不对"<<endl;
  else if (deno==0)
  {
   cout<<"分母不能为0"<<endl;
  }
  else
   break;
 }
 //nume=nu;
 //deno=de;
}
int CFraction::amplify(int n=2)
{
 //cin>>n;
 nume*=n;
 return nume;
}
//求最大公约数
int CFraction::g(int x,int y)//不在类中定义?
{
 int r;
 while(y!=0)
 {
  r=x%y;
  x=y;
  y=r;
 }
 return x;
}
//化简
void CFraction::simplify()
{
 int n=g(nume,deno);
 nume=nume/n;
 deno=deno/n;

}

//输出数
void CFraction::output(int style)
{   
 switch(style)
 {
 case 0:cout<<nume<<'/'<<deno<<endl;break; 
 case 1:int i;i=g(nume,deno);cout<<(nume/i)<<'/'<<(deno/i)<<endl;break;
 case 2:int nu,de;i=g(nume,deno);nu=nume/i;de=deno/i;cout<<(nume/deno)<<'('<<(nume%deno)<<'/'<<deno<<')'<<endl;break;
 default:cout<<nume<<'/'<<deno<<endl;break;
 }
}


 
 

 

 

#include <iostream>
#include<math.h>
using  namespace std;
class CFraction
{
public:
    CFraction(int nu=0,int de=1):nume(nu),deno(de){}
 void set(int nu,int de);
 void input();
 void simplify();
 int amplify(int n); 
    void output(int style=2);
 int g(int,int);
 void showmessage();
private:
 int nume;
 int deno;
};
int main()
{
 CFraction t1(18,12);
 t1.output(2);
 //cout<<t1.amplify(int n=2)<<endl;
 t1.set(3,4);
 t1.simplify();
 t1.input();
 //CFraction t2(12,18);
 //t2.set(int su,int de);
 //t2.showmessage();
 return 0;
}
//置值,改变值时用
void CFraction::set(int nu,int de)//nu,de不能被赋值
{
 if(de!=0)
 {
  nume=nu;
  deno=de;
 }
 else
 {
  cout<<"分母不能为0"<<endl;
  exit(0);
 }

}
//按照“nu/de"的格式输入
void CFraction::input()
{
 char c;
 //int nu,de;
 while (1)
 {
  cin>>nume>>c>>deno;
  if(c!='/')
   cout<<"格式不对"<<endl;
  else if (deno==0)
  {
   cout<<"分母不能为0"<<endl;
  }
  else
   break;
 }
 //nume=nu;
 //deno=de;
}
int CFraction::amplify(int n=2)
{
 //cin>>n;
 nume*=n;
 return nume;
}
//求最大公约数
int CFraction::g(int x,int y)//不在类中定义?
{
 int r;
 while(y!=0)
 {
  r=x%y;
  x=y;
  y=r;
 }
 return x;
}
//化简
void CFraction::simplify()
{
 int n=g(nume,deno);
 nume=nume/n;
 deno=deno/n;

}

//输出数
void CFraction::output(int style)
{   
 switch(style)
 {
 case 0:cout<<nume<<'/'<<deno<<endl;break; 
 case 1:int i;i=g(nume,deno);cout<<(nume/i)<<'/'<<(deno/i)<<endl;break;
 case 2:int nu,de;i=g(nume,deno);nu=nume/i;de=deno/i;cout<<(nume/deno)<<'('<<(nume%deno)<<'/'<<deno<<')'<<endl;break;
 default:cout<<nume<<'/'<<deno<<endl;break;
 }
}


 


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java上机 第五周 任务2 创建一个梯形类

/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. *...

第五周上机任务2

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:练习.cpp...

第五周任务2:构造分数“类”

#include using namespace std; int gcd(int,int); class CFraction {private: int nume; // 分子 ...

第五周实验报告(任务2)

C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,...

第五周任务(2)

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:  ...

第五周任务2(分数的化简)

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

第五周任务1-2

//Triangle.h class Triangle { public: Triangle();//设计默认构造函数,即不指定参数时,默认各边长为1 float Perimeter(vo...

第五周任务1-2

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

第五周任务(2)

#include using namespace std; enum OutStyle{original, simplified, mixed, approximate}; int gcd(i...

C#上机 第五周 任务1和任务2 出现次数和逆序

/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. *...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)