改写要求:重载>>和<<实现分数类对象的直接输入输出,重载+完成多个分数对象加法

#include <cstdlib>
#include <iostream> using namespace std;
class Fract
{ int num,den;
public:
friend ostream& operator << (ostream& output,Fract& temp);
friend istream& operator >> (istream& intput,Fract& temp1);
Fract operator + (Fract& temp1);
int gcd(int m,int n)
{
int r;
if(m<n)
{
r=m;m=n;n=r;
}
while(r=m%n)
{
m=n;
n=r;
}
return n;
} }; istream& operator >>(istream& input,Fract& temp1)
{
input>>temp1.num>>temp1.den;
return input;
} ostream& operator <<(ostream& output,Fract& temp)
{
output<<temp.num<<"/"<<temp.den<<endl;
return output;
} Fract Fract::operator + (Fract& temp1)
{
Fract sum;
int x,y,temp;
x=num*temp1.den+den*temp1.num;
y=den*temp1.den;
temp=gcd(x,y);
x=x/temp;
y=y/temp;
sum.num=x;
sum.den=y;
return sum;
} int main(int argc, char *argv[])
{
Fract temp1,temp2,temp;
cin>>temp1>>temp2;
temp=temp1+temp2;
cout<<temp;
system("PAUSE");
return EXIT_SUCCESS;
}

C++程序设计实践指导1.6分数运算改写要求实现的更多相关文章

  1. C++程序设计实践指导1.2二维数组的操作运算改写要求实现

    改写要求1:改写为以单链表表示二维数组 #include <cstdlib> #include <iostream> using namespace std; struct L ...

  2. C++程序设计实践指导1.15找出回文数改写要求实现

    改写要求1:用单链表实现 #include <cstdlib> #include <iostream> using namespace std; struct LinkNode ...

  3. C++程序设计实践指导1.14字符串交叉插入改写要求实现

    改写要求:1:以指针为数据结构开辟存储空间 改写要求2:被插入字符串和插入字符串不等长,设计程序间隔插入 如被插入字符串长度为12,待插入字符串长度为5 则插入间隔为2 改写要求3:添加函数Inser ...

  4. C++程序设计实践指导1.13自然数集中找合数改写要求实现

    改写要求1:用单链表实现 改写要求2:析构函数中依次将链表结点删除 #include <cstdlib> #include <iostream> using namespace ...

  5. C++程序设计实践指导1.12数组中数据线性变换改写要求实现

    改写要求1:分别用指针pa.pb代替数组 改写要求2:从键盘输入data元素 元素个数任意,输入0结束 #include <cstdlib> #include <iostream&g ...

  6. C++程序设计实践指导1.10二维数组元素换位改写要求实现

    改写要求1:改写为以单链表和双向链表存储二维数组 改写要求2:添加函数SingleLinkProcess()实现互换单链表中最大结点和头结点位置,最小结点和尾结点位置 改写要求3:添加函数Double ...

  7. C++程序设计实践指导1.1删除序列中相同的数改写要求实现

    改写要求1:改写为以指针为数据结构 #include <iostream> #include <cstdlib> using namespace std; class ARP ...

  8. C++程序设计实践指导1.7超长数列中n个数排序改写要求实现

    改写要求1:将以上程序改写为适合超长整数 改写要求2:将以上程序改写为适合超长数列 改写要求3:将数列中指定位置m开始的n个结点重新按降序排序 改写要求4:输出指定位置m开始的n个结点的超长整数 #i ...

  9. C++程序设计实践指导1.9统计与替换字符串中的关键字改写要求实现

    改写要求1:将字符数组str改为字符指针p,动态开辟存储空间 改写要求2:增加统计关键字个数的函数void CountKeyWords() 改写要求3: 增加替换函数void FindKeyWords ...

随机推荐

  1. iOS nav加角标

    写一个类别加上就可以啦 #import "UIBarButtonItem+Badge.h" #import "BadgeView.h" #import < ...

  2. (转) eclipse debug (调试) 学习心得

    1.Step Into (also F5) 跳入2.Step Over (also F6) 跳过3.Step Return (also F7) 执行完当前method,然后return跳出此metho ...

  3. Oracle 数据文件 reuse 属性 说明(转载)

    Oracle 表空间 创建参数 说明 http://blog.csdn.net/tianlesoftware/archive/2011/01/27/6166928.aspx 当我们对表空间添加数据文件 ...

  4. 【4】项目结构+基本的Tornado服务

    项目地址: Blog 简单的tornado服务分支: simple 项目结构 创建对应的文件夹并测试一个最简单的功能 main.py #!/usr/bin/env python # coding:ut ...

  5. Cows(poj 2481 树状数组)

    Cows Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 15301   Accepted: 5095 Description ...

  6. Effective Java2读书笔记-创建和销毁对象(四)

    第7条:避免使用终结方法 这一条讲的简直是不知所云.先简单记下来其中说出的几条: ①显式终止方法的典型例子有InputStream.OutputStream和java.sql.Connection上的 ...

  7. Histats申请Counter网站计数器 - Blog透视镜

    为了计算网页被浏览的次数,访客人数等统计数据,作为未来分析之用,可以向Histats申请免费的Counter网站计数器,它的功能相当齐全,同时也会保留一段时间的资料,当作统计比较的资料,更可以进一步付 ...

  8. Qt编程可不可以结合其他的第三方库和本土API?(有zeroMQ的Qt封装,还可轻易使用Python的库)

    作者:渡世白玉链接:http://www.zhihu.com/question/29030777/answer/59378712来源:知乎著作权归作者所有,转载请联系作者获得授权. 可以,十分可以,你 ...

  9. SqlBulkCopy 类

    1.SqlBulkCopy 简介  Microsoft SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表既可以在同一个服务器上,也可以在不同 ...

  10. 【ASP.NET MVC路由测试+性能调试工具】

    http://getglimpse.com https://github.com/Glimpse/Glimpse 百度网盘: http://pan.baidu.com/s/1jHuTtKa