分数类和整数类的四则运算
来源:互联网 发布:nginx ffmpeg hls 编辑:程序博客网 时间:2024/05/01 10:17
/** 程序的版权和版本声明部分:* Copyright (c) 2013.烟台大学计算机学院。* All rights reserved.* 文件名称:分数类和整数类的四则运算* 作 者:冯冬影* 完成日期:2014 年 4月 17日* 版 本 号:v1.0* 对任务及求解方法的描述部分:* 输入描述:* 问题描述:* 程序输出:*/#include <iostream>#include<Cmath>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(); //化简(使分子分母没有公因子) CFraction operator+(CFraction &c); CFraction operator-(CFraction &c); CFraction operator*(CFraction &c); CFraction operator/(CFraction &c); CFraction operator+(int a); CFraction operator-(int a); CFraction operator*(int a); CFraction operator/(int a); friend CFraction operator+(int a,CFraction &c3); friend CFraction operator-(int a,CFraction &c3); friend CFraction operator*(int a,CFraction &c3); friend CFraction operator/(int a,CFraction &c3);};void CFraction::input(){ int nu,de; char k; cin>>nu>>k>>de; nume=nu; deno=de;}void CFraction::set(int nu,int de){ if(de!=0) { nume=nu; deno=de; }}CFraction::CFraction(int nu,int de){ if(de!=0) { nume=nu; deno=de; } else cout<<"初始化错误,请重新初始化!";}void CFraction::simplify() //化简(使分子分母没有公因子){ int t,r,a,b; a=nume; b=deno; if(a<b) { t=a; a=b; b=t; } while (b!=0) { r=a%b; a=b; b=r; } nume=nume/a; deno=deno/a; if(deno==1) cout<<nume<<endl; else cout<<nume<<"/"<<deno<<endl;}CFraction CFraction::operator+(CFraction &c){ int n,d; n=nume*c.deno+deno*c.nume; d=deno*c.deno; CFraction c3(n,d); return c3;}CFraction CFraction::operator-(CFraction &c){ int n,d; n=nume*c.deno-deno*c.nume; d=deno*c.deno; CFraction c3(n,d); return c3;}CFraction CFraction::operator*(CFraction &c){ int n,d; n=nume*c.nume; d=deno*c.deno; CFraction c3(n,d); return c3;}CFraction CFraction::operator/(CFraction &c){ int n,d; n=nume*c.deno; d=deno*c.nume; CFraction c3(n,d); return c3;}CFraction CFraction::operator+(int a){ int n,d; n=nume+a*deno; d=deno; CFraction c3(n,d); return c3;}CFraction CFraction::operator-(int a){ int n,d; n=nume-a*deno; d=deno; CFraction c3(n,d); return c3;}CFraction CFraction:: operator*(int a){ int n,d; n=a*nume; d=deno; CFraction c3(n,d); return c3;}CFraction CFraction:: operator/(int a){ int n,d; n=nume; d=deno*a; CFraction c3(n,d); return c3;}CFraction operator+(int a,CFraction &c3){ int n,d; n=c3.nume+a*c3.deno; d=c3.deno; CFraction c4(n,d); return c4;}CFraction operator-(int a,CFraction &c3){ int n,d; n=c3.nume-a*c3.deno; d=c3.deno; CFraction c4(n,d); return c4;}CFraction operator*(int a,CFraction &c3){ int n,d; n=a*c3.nume; d=c3.deno; CFraction c4(n,d); return c4;}CFraction operator/(int a,CFraction &c3){ int n,d; n=a*c3.deno; d=c3.nume; CFraction c4(n,d); return c4;}int main(){ CFraction c1,c2,c; cout<<"请输入第一个分数(按照n/m的格式):"; c1.input(); cout<<"请输入第二个分数(按照n/m的格式):"; c2.input(); int a=5; c=c1+c2; cout<<"c1+c2="; c.simplify(); c=c1-c2; cout<<"c1-c2="; c.simplify(); c=c1*c2; cout<<"c1*c2="; c.simplify(); c=c1/c2; cout<<"c1/c2="; c.simplify(); c=c1+a; cout<<"c1+"<<a<<"="; c.simplify(); c=c1-a; cout<<"c1-"<<a<<"="; c.simplify(); c=c1*a; cout<<"c1*"<<a<<"="; c.simplify(); c=c1/a; cout<<"c1/"<<a<<"="; c.simplify(); c=a+c2; cout<<a<<"+c2="; c.simplify(); c=a-c2; cout<<a<<"-c2="; c.simplify(); c=a*c2; cout<<a<<"*c2="; c.simplify(); c=a/c2; cout<<a<<"/c2="; c.simplify();}运行结果
0 0
- 分数类和整数类的四则运算
- 分数类和整数的四则运算
- 分数类的四则运算
- 分数类的四则运算
- 第八周项目三 分数类中的运算符重载-(2)分数与分数、分数与整数的四则运算
- 大整数类的四则运算和逻辑运算
- 分数类和整形数类的四则运算
- 第八周项目四----分数类和整形术的四则运算
- 项目4-分数类和整型数的四则运算
- YTU-OJ-分数类的四则运算【C++】
- 分数的表示和四则运算
- 第八周实验报告任务4 实现分数类中的运算符重载,分数类中的对象可以和整数型进行四则运算,且运算符合交换律。
- C++第8周项目4 -分数类和整型数的四则运算
- 第八周 项目四:分数类和整型数的四则运算
- 分数类和整型数的四则运算(只写了加法)
- 项目3扩展(选做)-分数类和整型数的四则运算
- 分数和整型数的四则运算
- 分数和整形数的四则运算
- 第十一天 乐在其中-Android与远端之JDBC
- 学习计划
- OCP-1Z0-051 第35题 主外键规则
- oracle9i、10g、11g区别
- 网络编程常见问题总结
- 分数类和整数类的四则运算
- Android布局 android:gravity 和 android:layout_Gravity一些细节问题
- UIScrollView的属性总结
- 设计模式之中介者
- 生产者消费者模型
- c++prime重学(四)基于第四版
- redis-py中pipline
- 学习Fragment笔记-选择Master/Dtail Flow创建项目开始(1)
- 配置防火墙端口