第三周项目2——分数类的雏形
来源:互联网 发布:java多线程实现方法 编辑:程序博客网 时间:2024/05/03 22:48
问题及代码:
/* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:data.cpp *作 者:赵敏 *完成日期:2015年4月1日 *版 本 号:v1.0 * *问题描述:C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理复数),再如分数。我们可以自定义类支持这些数据类型。 本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,二则也为运算符重载等积累些感性认识。*/#include <iostream>#include <cmath>#include <cstdio>using namespace std;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();//按照"nu/de"的格式,如"5/2"的形式输入 void simplify();//化简(使分子分母没有公因子) void amplify(int n);//放大n倍,如2/3放大5倍为10/3 int gcd(int,int); void output(int style=0);//输出:以8/6为例,style为0时,原样输出8/6;//style为1时,输出化简后形式4/3;//style为2时,输出1(1/3)形式,表示一又三分之一;//style为3时,用小数形式输出,如1.3333;//默认方式0};CFraction::CFraction(int nu,int de){ if(de!=0) { nume=nu; deno=de; }}void CFraction::set(int nu,int de){ if(de!=0) { nume=nu; deno=de; }}void CFraction::input(){ char c; while(1) { cout<<"输入分数:"; cin>>nume>>c>>deno; if(c!='/') cout<<"输入格式错误!"<<endl; if(deno==0) cout<<"输入错误!"<<endl; }}void CFraction::simplify(){ int a=gcd(nume,deno); nume=nume/a; deno=deno/a;}int CFraction::gcd(int m, int n){ int r; do { r=m%n; m=n; n=r; }while(r!=0); return m;}void CFraction::amplify(int n){ nume=nume*n;}void CFraction::output(int style){ int b; switch(style) { case 0: cout<<"分数:"<<nume<<'/'<<deno<<endl; case 1 : b=gcd(nume,deno); cout<<"化简后:"<<nume/b<<'/'<<deno/b<<endl; case 2: cout<<"化简:"<<nume/deno<<'('<<nume%deno<<'/'<<deno<<')'<<endl; case 3: cout<<"小数:"<<nume/double(deno) <<endl; break; default: cout<<"原样:" <<nume<<'/'<<deno<<endl; }}int main(){ CFraction d1,d2(5,6); d1.output(); cout <<"d2的数值:"; d2.output(); cout<<"将d2加倍:"; d2.amplify(3); d2.output(); return 0;}
运行结果:
学习心得:
main函数定义错了,导致输出不正确。
0 0
- 第三周项目2——分数类的雏形
- 第三周 项目二:分数类的雏形
- 第六周项目1——分数类的雏形
- 第6周项目1—分数类的雏形
- 第六周项目1—分数类的雏形
- 第4周项目2——分数类的雏形
- 第六周项目-分数类的雏形
- 第五周项目2-分数类的雏形
- 第五周 项目2 分数类的雏形
- **第二学期第五周项目2--分数类的雏形
- 第五周项目2-分数类的雏形
- 第3周-项目2-分数类的雏形
- 第3周项目2-分数类的雏形
- 第4周项目2-分数类的雏形
- 第4周项目2--分数类的雏形
- 2015-第4周项目2-分数类的雏形
- 第4周项目2分数类的雏形
- 第4周项目2-分数类的雏形
- Zend Framework1-Resources官方示例翻译
- 第四周【项目3-用对象数组操作长方柱类】
- 三角形类的构造函数-使用带参数构造函数
- 深入理解数据库磁盘存储(Disk Storage)
- 算法篇-字符串-周期串
- 第三周项目2——分数类的雏形
- STM32工程文件说明(野火开发板)
- C复习
- Java 性能优化系列之1[设计与程序优化]
- 开源 java CMS - FreeCMS2.3 Web页面信息采集
- eclipse打开一直显示Version 1.6.0_34 of the JVM is not suitable for this product
- 第4周项目1——三角形类的构造函数(1)
- 三角形类的构造函数-默认构造函数
- 第四周上机项目3用对象数组操作长方柱类