/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作    者:王蕊*完成日期:2016年4月3日*版 本 号:v1.0**问题描述:先构造函数和输出output函数(可以先只实现一种输出方式),再set函数,再input函数,等等。*输入描述:无。*程序输出:无。
*/
#include<iostream>
#include<Cmath>
#include<cstdlib>
using namespace std;
int gcd(int m, int n);
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();void simplify();void amplify(int n);void output(int style=0);
};
CFraction::CFraction(int nu,int de)
{if (de!=0){nume=nu;deno=de;}else{cerr<<"初始化中发生错误,程序退出\n";exit(0);}
}
void CFraction::set(int nu,int de)
{if (de!=0){nume=nu;deno=de;}
}
void CFraction::input()
{int nu,de;char c;while(1){cout<<"输入分数(m/n): ";cin>>nu>>c>>de;if(c!='/')cout<<"输入格式错误!\n ";else if (de==0)cout<<"分母不能为零!\n ";elsebreak;}nume=nu;deno=de;
}
void CFraction::simplify()
{int n=gcd(deno, nume);deno/=n;nume/=n;
}
int gcd(int m, int n)
{int r;if (m==0){return n;}while(r=m%n){m=n;n=r;}return n;
}
void CFraction::amplify(int n)
{nume*=n;
}
void CFraction::output(int style)
{int n=gcd(nume,deno);switch(style){case 0:cout<<"初始:" <<nume<<'/'<<deno<<endl;break;case 1:cout<<"化简: "<<nume/n<<'/'<<deno/n<<endl;break;case 2:cout<<"分数:" <<nume/deno<<'('<<(nume/n)%(deno/n)<<'/'<<deno/n<<')'<<endl;break;case 3:cout<<"近似值:" <<nume/double(deno)<<endl;break;default:cout<<"默认:" <<nume<<'/'<<deno<<endl;}
}
int main()
{CFraction c1,c2(8,6);c1.output(0);cout<<"改变c1: "<<endl;c1.set(2,7);c1.output();cout<<"输入c1: "<<endl;c1.input();c1.output(0);c2.output(0);c2.output(1);c2.output(2);c2.output(3);c2.output();cout<<"化简c2: "<<endl;c2.simplify();c2.output(0);cout<<"放大c2: "<<endl;c2.amplify(5);c2.output(0);c2.output(1);return 0;
}

运行结果:

第六周项目一-分数类的雏形(2)相关推荐

  1. 第六周项目一-分数类的雏形(1)

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年4月3日*版 本 号:v1.0 ...

  2. 第六周项目1-分数类的雏形

    代码: /* *Copyright (c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:; *作 者:岳成艳: *完成日期:2016年4月13号: ...

  3. 第十三周项目一-分数类中的运算符重载

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月25日*版 本 号:v1. ...

  4. 第六周项目2建立链栈算法库

    /* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第六周项目2.cpp 作 者:彭子竹 完成日期:2015年10月23日 版 ...

  5. 第九周项目二时间类的重载<<与>>,一目。

    /* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: * 完成日期:2014 年4 月22 日 * 版 本 号:v1.0 * ...

  6. 第五周 22 分数类的雏形

    /* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:text.cpp *作者:李德彪 *完成日期:2015年4月2日 *版本号:v ...

  7. 第六周项目三-IP地址类

    <pre class="cpp" name="code">/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights ...

  8. 第六周项目六——复数模板类

    可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时指定的实际类型.     (1)要求类成员函数在类外定义.     (2)在此基础上,再实现减法.乘法和除法     你可以 ...

  9. 第十三周项目四-立体类族共有的抽象类

    /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月1日 *版 本 ...

最新文章

  1. 编程之美2.5 寻找最大的K个数
  2. 皮一皮:这是人干的事?
  3. 计算机应用基础 a)卷,《计算机应用基础》(A卷)44648
  4. 里程碑!我的github排名进入前100名!
  5. Boost:程序选项program options实例
  6. MySQL服务的启动与停止-使用命令行工具
  7. with dlz mysql 条件_Flask Bind-DLZ + Mysql DNS管理平台
  8. Android Studio 3.4增可视化资源管理工具 可管理和预览项目资源
  9. php soap debug,php soap客户端调试实例
  10. 代理模式 委派模式 策略模式_策略模式
  11. 揭开KPI异常检测顶级AI模型面纱
  12. amazon php 空间,如何将PHP图像资源放入Amazon Web Services?
  13. linux下DHCP服务器设置——让自己的智能手机上自己的wifi网络
  14. 1.6. 6.x Mini 安装后需要做的一些事
  15. 金山词霸2006窗口消失不见,只能看见最大化界面
  16. OPPO K9 Pro刷root强解锁BL刷面具Magisk框架 oppo k9pro root教程
  17. 聊天服务器项目报告,网络聊天室实现报告
  18. Android studio中出现keeps stopping现象
  19. 加餐 | Java 面试通关攻略
  20. Oracle报错1031,dataguard 归档日志报1031错误的一次处理

热门文章

  1. C++知识点62——模板实参推断与函数模板的特化
  2. 浏览器ERR_PROXY_CONNECTION_FAILED解决方法
  3. 内存泄漏normal block at
  4. 少儿编程python教材_少儿编程|Python环境安装
  5. 华为云域名注册_关于域名购买的常识介绍,想建站的必看
  6. python psycopg2_Ubuntu 安装 PostgreSQL 和 python-psycopg2基础教程(以及错误解决)
  7. visual assist x太卡了_LeetCode69. x 的平方根
  8. 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册
  9. 判断是不是一个数组?
  10. Illustrator+FontLab 进行字体设计教程