第六周项目一-分数类的雏形(2)
/**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)
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年4月3日*版 本 号:v1.0 ...
- 第六周项目1-分数类的雏形
代码: /* *Copyright (c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:; *作 者:岳成艳: *完成日期:2016年4月13号: ...
- 第十三周项目一-分数类中的运算符重载
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月25日*版 本 号:v1. ...
- 第六周项目2建立链栈算法库
/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第六周项目2.cpp 作 者:彭子竹 完成日期:2015年10月23日 版 ...
- 第九周项目二时间类的重载<<与>>,一目。
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: * 完成日期:2014 年4 月22 日 * 版 本 号:v1.0 * ...
- 第五周 22 分数类的雏形
/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:text.cpp *作者:李德彪 *完成日期:2015年4月2日 *版本号:v ...
- 第六周项目三-IP地址类
<pre class="cpp" name="code">/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights ...
- 第六周项目六——复数模板类
可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时指定的实际类型. (1)要求类成员函数在类外定义. (2)在此基础上,再实现减法.乘法和除法 你可以 ...
- 第十三周项目四-立体类族共有的抽象类
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月1日 *版 本 ...
最新文章
- 编程之美2.5 寻找最大的K个数
- 皮一皮:这是人干的事?
- 计算机应用基础 a)卷,《计算机应用基础》(A卷)44648
- 里程碑!我的github排名进入前100名!
- Boost:程序选项program options实例
- MySQL服务的启动与停止-使用命令行工具
- with dlz mysql 条件_Flask Bind-DLZ + Mysql DNS管理平台
- Android Studio 3.4增可视化资源管理工具 可管理和预览项目资源
- php soap debug,php soap客户端调试实例
- 代理模式 委派模式 策略模式_策略模式
- 揭开KPI异常检测顶级AI模型面纱
- amazon php 空间,如何将PHP图像资源放入Amazon Web Services?
- linux下DHCP服务器设置——让自己的智能手机上自己的wifi网络
- 1.6. 6.x Mini 安装后需要做的一些事
- 金山词霸2006窗口消失不见,只能看见最大化界面
- OPPO K9 Pro刷root强解锁BL刷面具Magisk框架 oppo k9pro root教程
- 聊天服务器项目报告,网络聊天室实现报告
- Android studio中出现keeps stopping现象
- 加餐 | Java 面试通关攻略
- Oracle报错1031,dataguard 归档日志报1031错误的一次处理
热门文章
- C++知识点62——模板实参推断与函数模板的特化
- 浏览器ERR_PROXY_CONNECTION_FAILED解决方法
- 内存泄漏normal block at
- 少儿编程python教材_少儿编程|Python环境安装
- 华为云域名注册_关于域名购买的常识介绍,想建站的必看
- python psycopg2_Ubuntu 安装 PostgreSQL 和 python-psycopg2基础教程(以及错误解决)
- visual assist x太卡了_LeetCode69. x 的平方根
- 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册
- 判断是不是一个数组?
- Illustrator+FontLab 进行字体设计教程