△【OJ】(二)---C---分数类的四则运算
来源:互联网 发布:ncut算法matlab 编辑:程序博客网 时间:2024/05/19 18:14
题目要求如下:
-----
------------------------------------------------------------------------------------------------------------------------------------------
代码如下:
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: 沈远宏 * 完成日期:2014 年 06月27日 * 版 本 号:v1.0 * 问题描述:Description编写分数类Fraction,实现两个分数的加、减、乘和除四则运算。主函数已给定。Input每行四个数,分别表示两个分数的分子和分母,以0 0 0 0 表示结束。Output空格分隔的两个分数的减和除的结果。*/#include <iostream>using namespace std;class Fraction{private: int deno;//分母 int nume;//分子 int k;//整数部分public: void output(); void set(int de,int nu); void simpilify(); friend istream& operator>>(istream& cin,Fraction &f); friend Fraction operator+(Fraction f1,Fraction f2); friend Fraction operator-(Fraction f1,Fraction f2); friend Fraction operator*(Fraction f1,Fraction f2); friend Fraction operator/(Fraction f1,Fraction f2); friend bool operator==(Fraction f,int j);};void Fraction::output(){ if(k==0) { cout<<nume<<"/"<<deno; } else { cout<<k; }}void Fraction::set(int de,int nu){ deno=de; nume=nu;}void Fraction::simpilify(){ int t,r,x=nume,y=deno; if(nume<0)x=-x; if(deno<0)y=-y; if(x<y)t=x,x=y,y=t; while(y!=0) { r=x%y; x=y; y=r; } deno=deno/x; nume=nume/x; if(deno<0) { deno=-deno; nume=-nume; } if(nume==deno) { k=1; } else if(nume==(-deno)) { k=-1; } else { k=0; }}istream& operator>>(istream& cin,Fraction &f){ cin>>f.nume>>f.deno; return cin;}Fraction operator+(Fraction f1,Fraction f2){ Fraction f3; f3.deno=f1.deno*f2.deno; f3.nume=f1.deno*f2.nume+f1.nume*f2.nume; f3.simpilify(); return f3;}Fraction operator-(Fraction f1,Fraction f2){ Fraction f3; f3.deno=f1.deno*f2.deno; f3.nume=f1.nume*f2.deno-f1.deno*f2.nume; f3.simpilify(); return f3;}Fraction operator*(Fraction f1,Fraction f2){ Fraction f3; f3.nume=f1.nume*f2.nume; f3.deno=f1.deno*f2.deno; f3.simpilify(); return f3;}Fraction operator/(Fraction f1,Fraction f2){ Fraction f3; f3.nume=f1.nume*f2.deno; f3.deno=f1.deno*f2.nume; f3.simpilify(); return f3;}bool operator==(Fraction f,int j)//{ bool i=false; if(f.deno==0&&f.nume==0) { i=true; } return i;}int main(){ Fraction f1,f2,f3; while(cin>>f1>>f2) { if(f1==0&&f2==0) break; f3=f1-f2; f3.output(); cout<<" "; f3=f1/f2; f3.output(); cout<<endl; } return 0;}
运行结果:
OJ要求结果输出例样:
0 0
- △【OJ】(二)---C---分数类的四则运算
- YTU-OJ-分数类的四则运算【C++】
- OJ分数的四则运算
- 分数的四则运算(c++)
- OJ第三批——Problem B:分数类的四则运算【C++】
- 第十七周oj刷题——Problem B: 分数类的四则运算【C++】
- 分数类的四则运算
- 分数类的四则运算
- 第十五周C++【任务二】设计分数类,开发一个窗口式程序,可以完成分数的四则运算
- 分数的四则运算及化简(C语言实现)
- [C++]分数计算器(四则运算)class
- 第八周项目三 分数类中的运算符重载-(2)分数与分数、分数与整数的四则运算
- 分数类和整数类的四则运算
- 分数类和整数的四则运算
- 分数的四则运算(c++重载练习)
- 分数(有理数)的四则运算PAT1088
- 分数的四则运算
- 分数的四则运算
- linux修改tmpfs大小并使之生效
- 90工作感悟
- 算法分析学习笔记(一) - 动态连通性问题的并查集算法(上)
- 对于花屏的现象。
- syslog函数在内核中的原型
- △【OJ】(二)---C---分数类的四则运算
- Javascript实现秒杀倒计时(时间与服务器时间同步)
- 派生类的构造函数
- 黑马程序员---Java中的线程
- 两行代码搞定MFC清屏功能
- Java版 a+b poj 1000道题
- android读写sd卡
- 找最佳餐馆(multiarmed bandit problem)机器学习笔记1
- 【OJ】(二)---D---列排序