第八周项目3(拓展)-分数和整形数的4则运算
来源:互联网 发布:淘宝预定是什么意思 编辑:程序博客网 时间:2024/05/15 01:16
/**程序的版权和版本声明部分:*Copyright(c)2014,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:田成琳*完成日期:2014 年 4 月 15 日*版本号:v1.0*对任务及求解方法的描述部分:*输入描述:无*问题描述:实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、*程序输出:- -*问题分析:*算法设计:*/#include<iostream>using namespace std;int gongbeis(int,int);class CFraction{private: int nume; // 分子 int deno; // 分母public: CFraction(int n=0,int d=0); void set(int n,int d); friend CFraction operator + (CFraction &a,CFraction &b); friend CFraction operator + (int t,CFraction &a); friend CFraction operator + (CFraction &a,int t); friend CFraction operator - (CFraction &a,CFraction &b); friend CFraction operator - (int t,CFraction &a); friend CFraction operator - (CFraction &a,int t); friend CFraction operator * (CFraction &a,CFraction &b); friend CFraction operator * (int t,CFraction &a); friend CFraction operator * (CFraction &a,int t); friend CFraction operator / (CFraction &a,CFraction &b); friend CFraction operator / (int t,CFraction &a); friend CFraction operator / (CFraction &a,int t); void output(); void setfy();};CFraction::CFraction(int n,int d){ nume=n; deno=d;}void CFraction::set(int n,int d){ nume=n; deno=d;}void CFraction::output(){ cout<<nume<<"/"<<deno<<endl;}CFraction operator + (CFraction &a,CFraction &b){ int c=gongbeis(a.deno,b.deno); a.nume*=(c/a.deno); a.deno=c; b.nume*=(c/b.deno); b.deno=c; a.nume+=b.nume; a.setfy(); CFraction t(a.nume,a.deno); return t;}CFraction operator + (int t,CFraction &a){ CFraction d; int c=gongbeis(a.deno,t); a.nume*=(c/a.deno); a.deno=c; d.nume=t*c; d.deno=c; a.nume+=d.nume; a.setfy(); CFraction b(a.nume,a.deno); return b;}CFraction operator + (CFraction &a,int t){ CFraction d; int c=gongbeis(a.deno,t); a.nume*=(c/a.deno); a.deno=c; d.nume=t*c; d.deno=c; a.nume+=d.nume; a.setfy(); CFraction b(a.nume,a.deno); return b;}CFraction operator - (CFraction &a,CFraction &b){ int c=gongbeis(a.deno,b.deno); a.nume*=(c/a.deno); a.deno=c; b.nume*=(c/b.deno); b.deno=c; a.nume-=b.nume; a.setfy(); CFraction t(a.nume,a.deno); return t;}CFraction operator - (int t,CFraction &a){ CFraction d; int c=gongbeis(a.deno,t); a.nume*=(c/a.deno); a.deno=c; d.nume=t*c; d.deno=c; a.nume-=d.nume; a.setfy(); CFraction b(a.nume,a.deno); return b;}CFraction operator - (CFraction &a,int t){ CFraction d; int c=gongbeis(a.deno,t); a.nume*=(c/a.deno); a.deno=c; d.nume=t*c; d.deno=c; a.nume-=d.nume; a.setfy(); CFraction b(a.nume,a.deno); return b;}CFraction operator * (CFraction &a,CFraction &b){ a.nume*=b.nume; a.deno*=b.nume; a.setfy(); CFraction t(a.nume,a.deno); return t;}CFraction operator * (int t,CFraction &a){ a.nume*=t; a.setfy(); CFraction b(a.nume,a.deno); return b;}CFraction operator * (CFraction &a,int t){ a.nume*=t; a.setfy(); CFraction b(a.nume,a.deno); return b;}CFraction operator / (CFraction &a,CFraction &b){ int z; z=b.nume; b.nume=b.deno; b.deno=z; a.nume*=b.nume; a.nume*=a.deno; a.setfy(); CFraction t(a.nume,a.deno); return t;}CFraction operator / (int t,CFraction &a){ CFraction d; int z; z=a.nume; a.nume=a.deno; a.deno=z; a.nume*=t; a.setfy(); CFraction b(a.nume,a.deno); return b;}CFraction operator / (CFraction &a,int t){ CFraction d; d.nume=1; d.deno=t; a.nume*=d.nume; a.deno*=d.deno; a.setfy(); CFraction b(a.nume,a.deno); return b;}int main(){ CFraction t,t1(4,5),t2(3,5),t3(4,15),t4(9,5),t5(-3,2),t6(6,11); CFraction t7(5,16),t8(1,3),t9(1,5),t10(1,5),t11(15,51),t12(1,8); cout<<"t1="; t1.output(); cout<<"t2="; t2.output();cout<<"t1+t2="; t=t1+t2; t.output(); cout<<"t3-t4="; t=t3-t4; t.output(); cout<<"t5*t6="; t=t5*t6; t.output(); cout<<"t7/t8="; t=t7/t8; t.output(); cout<<"3+t9="; t=3+t9; t.output(); cout<<"t10-2="; t=t10-2; t.output(); cout<<"t11*3="; t=t11*3; t.output(); cout<<"t12/2="; t=t12/2; t.output(); return 0;}int gongbeis(int a,int b){ int i; for(i=1; i<=a*b; i++) if(i%a==0&&i%b==0) break; return i;}void CFraction::setfy(){ int i,t; if(nume>deno) t=nume; else t=deno; for(i=2; i<=t; i++) { while(nume%i==0&&deno%i==0) { nume/=i; deno/=i; } }}
运行结果:
心得体会:吃饭去。
0 0
- 第八周项目3(拓展)-分数和整形数的4则运算
- 第八周项目3-2:分数类中的运算符重载(涉及分数和整数的运算)
- 第7周-项目3-分数类中的运算符重载-拓展分数的加减乘除(分数与整型 )
- 分数,整形数运算
- 第8周项目3(2)分数类的运算符重载(拓展)
- 第八周项目3 利用运算重载符进行分数的大小比较和计算
- 第八周项目三 分数类中的运算符重载-(2)分数与分数、分数与整数的四则运算
- 第八周项目三 分数类中的运算符重载-(1)分数的加减乘除
- 第八周上机实践项目3——分数类的运算符重载(1)
- 分数和整形数的四则运算
- 第八周 项目3 分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3-分数类中的运算符重载
- 第八周 项目3 分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3 分数类中的运算符重载
- 优秀程序员必须知道的32个算法,提高你的开发效率
- [Unity3D] 使用Google Drive发布Unity3D Web程序
- 解决异常java.lang.UnsatisfiedLinkError: Unable to load library 'virt'
- 实现复数类中的运算符重载
- 为PE文件添加CRC32自效验
- 第八周项目3(拓展)-分数和整形数的4则运算
- wikioi3304——by rfy
- 二叉树遍历(前中后层序/非递归)
- POJ 1308 Is It A Tree?
- Hadoop问题
- C#迁移之callXBFLibrary - ADO.net
- dictionary order
- ScheduledThreadPoolExecutor的一个实例
- Spring ioc依赖倒置