第6周项目1-分数类的雏形(2)
2016-04-12 19:14
274 查看
<pre class="cpp" name="code">/* *Copyright(C) 2016,计算机与控制工程学院 *All rights reserved. *文件名:test.cpp *作者:张志新 *完成日期:2016年4月9日 *版本号:v1.0 * *问题描述:分数的输入输出(2)。 */ #include<iostream> using namespace std; class CFraction { private: int nume; // 分子 int deno; // 分母 public: CFraction(int nu=0,int de=1); //构造函数,初始化用 void input(); //按照"nu/de"的格式,如"5/2"的形式输入 void output(int style=0); //输出:以8/6为例,style为0时,原样输出8/6; //style为1时,输出1(1/3)形式,表示一又三分之一; //style为2时,用小数形式输出,如1.3333; //默认方式0 }; CFraction::CFraction(int nu,int de) { if(de!=0) { nume=nu; deno=de; } else { cout<<"输入格式错误"; } } 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"; else break; } nume=nu; deno=de; } void CFraction::output(int style) { switch(style) { case 0: cout<<nume<<"/"<<deno<<endl; break; case 1: cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl; break; case 2: cout<<(double)nume/deno<<endl; break; default: cout<<nume<<"/"<<deno<<endl; } } int main() { CFraction c; c.input(); c.output(0); c.output(1); c.output(2); c.output(3); return 0; }
学习心得:
在输入分子的函数中,输入的数要考虑特殊的情况,分母为零输入格式不正确的情况都要考虑。
相关文章推荐
- mysql的loaddatainfile的用法
- 美团机器学习中的数据清洗与特征挖掘实践
- LeetCode之16----3Sums Closest
- LeetCode之16----3Sums Closest
- Python 优雅的操作字典
- px、pt、dp和 sp
- 30分钟配置好-Puppet: 强大的中心化配置管理系统
- 分布式文件系统HDFS原理与操作
- hdu1754 I hate it【splay树】
- 剑指offer系列之34:数组中的逆序对
- (linux)复制的虚拟机网卡eth0变成了eth1或其他名称后修正方法
- [case分享]Exchange 2013通配证书无法分配POP和IMAP服务
- GDB相关
- #1286 : 子矩阵求和
- IP地址类
- GPT分区基础知识
- 局域网环境频繁掉线
- Power of Two
- leetcode- Remove Element
- python数据转换