分子运算2013第八周上机任务【项目3-分数类中的运算符重载】
2013-04-24 21:06
543 查看
PS:今天上午,非常郁闷,有很多简单基础的题问搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!
每日一道理
喜马拉雅直冲霄汉,可上面有攀爬者的旗帜;撒哈拉沙漠一望无垠,可里面有跋涉者的脚印;阿尔卑斯山壁立千仞,可其中有探险者的身影;雅鲁藏布江湍急浩荡,可其中有勇敢者的故事。
文章结束给大家分享下程序员的一些笑话语录: 警告
有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他 说, “你知道不知道这个东西会危害你的健康?我是说, 你有没有注意到香烟 盒上的那个警告(Warning)?”
小伙子说,“没事儿,我是一个程序员”。
那妇女说,“这又怎样?”
程序员说,“我们从来不关心 Warning,只关心 Error”
/* * Copyright (c) 2013, 烟台大学盘算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:樊露露 * 完成日期:2013 年 4 月 24 日 * 版本号:v1.0 * * 入输描述:无 * 题问描述: * 程序输出: * 题问分析: * 法算计划:略 */ #include <iostream> #include <Cmath> using namespace std; class CFraction {private: int nume; // 分子 int deno; // 分母 public: CFraction(int nu=0,int de=1):nume(nu),deno(de){} void simplify();//化简 void display(); CFraction operator + (CFraction &t); CFraction operator - (CFraction &t); CFraction operator * (CFraction &t); CFraction operator / (CFraction &t); CFraction operator+(); //取正一目运算 CFraction operator-(); //取反一目运算 bool operator>(const CFraction &c); bool operator<(const CFraction &c); bool operator==(const CFraction &c); bool operator!=(const CFraction &c); bool operator>=(const CFraction &c); bool operator<=(const CFraction &c); }; void CFraction::simplify() { int m,n,r; m=fabs(deno); n=fabs(nume); while(r=m%n) { m=n; n=r; } nume/=n; deno/=n; if (deno<0) // 将分母转化为正数 { deno=-deno; nume=-nume; } } void CFraction::display() { cout<<"("<<nume<<"/"<<deno<<")"; } CFraction CFraction::operator +(CFraction &t) { CFraction c; c.nume=nume*t.deno+t.nume*deno; c.deno=deno*t.deno; c.simplify(); return c; } CFraction CFraction::operator -(CFraction &t) { CFraction c; c.nume=nume*t.deno-t.nume*deno; c.deno=deno*t.deno; c.simplify(); return c; } CFraction CFraction::operator *(CFraction &t) { CFraction c; c.nume=nume*t.nume; c.deno=deno*t.deno; c.simplify(); return c; } CFraction CFraction::operator /(CFraction &t) { CFraction c; c.nume=nume*t.deno; c.deno=deno*t.nume; c.simplify(); return c; } // 分数取正号 CFraction CFraction:: operator+() { return *this; } // 分数取负号 CFraction CFraction:: operator-() { CFraction x; x.nume=-nume; x.deno=-deno; return x; } // 分数比拟小大 bool CFraction::operator>(const CFraction &c) { int this_nume,c_nume,common_deno; this_nume=nume*c.deno; // 盘算分数通分后的分子,同分母为deno*c.deno c_nume=c.nume*deno; common_deno=deno*c.deno; //if (this_nume>c_nume) return true; 法无对应common_deno<0的形情 //上面的语句更练简的一种写法if ((this_nume-c_nume)*common_deno>0) return true; if ((this_nume>c_nume&&common_deno>0)||(this_nume<c_nume&&common_deno<0)) return true; // 将通分后的分子比拟小大 return false; } // 分数比拟小大 bool CFraction::operator<(const CFraction &c) { int this_nume,c_nume,common_deno; this_nume=nume*c.deno; c_nume=c.nume*deno; common_deno=deno*c.deno; if ((this_nume-c_nume)*common_deno<0) return true; return false; } // 分数比拟小大 bool CFraction::operator==(const CFraction &c) { if (*this!=c) return false; return true; } // 分数比拟小大 bool CFraction::operator!=(const CFraction &c) { if (*this>c || *this<c) return true; return false; } // 分数比拟小大 bool CFraction::operator>=(const CFraction &c) { if (*this<c) return false; return true; } // 分数比拟小大 bool CFraction::operator<=(const CFraction &c) { if (*this>c) return false; return true; } int main() { CFraction x(2,5),y(-5,8),s; cout<<"分数x=2/5 y=-5/8"<<endl; s=x+y; cout<<"x+y="; s.display(); cout<<endl; s=x-y; cout<<"x-y="; s.display(); cout<<endl; s=x*y; cout<<"x*y="; s.display(); cout<<endl; s=x/y; cout<<"x/y="; s.display(); cout<<endl; y=+y; x.display(); if (x>y) cout<<"大于"; if (x<y) cout<<"小于"; if (x==y) cout<<"即是"; y.display(); cout<<endl; return 0; }
每日一道理
喜马拉雅直冲霄汉,可上面有攀爬者的旗帜;撒哈拉沙漠一望无垠,可里面有跋涉者的脚印;阿尔卑斯山壁立千仞,可其中有探险者的身影;雅鲁藏布江湍急浩荡,可其中有勇敢者的故事。
文章结束给大家分享下程序员的一些笑话语录: 警告
有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他 说, “你知道不知道这个东西会危害你的健康?我是说, 你有没有注意到香烟 盒上的那个警告(Warning)?”
小伙子说,“没事儿,我是一个程序员”。
那妇女说,“这又怎样?”
程序员说,“我们从来不关心 Warning,只关心 Error”
相关文章推荐
- 2013第八周上机任务【项目3-分数类中的运算符重载】
- 2013第八周上机任务【项目1 实现复数类中的运算符重载(友元函数)】
- 第八周上机任务四--实现分数类中的运算符重载,分数类中的对象可以和整型数进行四则运算,且运算符合交换律
- 2013第八周上机任务【项目1 实现复数类中的运算符重载】
- 第八周上机任务项目3-分数类中运算符重载
- 2013第八周上机任务【项目2-Time类中的运算符重载】
- 2013第八周上机任务【项目2-Time类中的运算符重载】
- c++第八周【任务3】实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
- 第八周实验任务三--实现分数类中的运算符重载并可以完成分数的加减乘除、求反、比较的运算
- 2013第五周上机任务【项目2 分数类】
- 第八周上机任务项目1-1用类的成员函数完成运算符重载
- 第八周上机项目3分数类中的运算符重载
- 第八周任务三实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
- 第八周上机实践项目——分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载-(2)分数与分数、分数与整数的四则运算
- 第八周上机实践项目3——分数类的运算符重载(1)
- 第八周上机实践项目1-实现复数类中的运算符重载(可与double型运算的“基础工程”)
- 第八周实验报告任务4 实现分数类中的运算符重载,分数类中的对象可以和整数型进行四则运算,且运算符合交换律。
- 第八周项目3-2:分数类中的运算符重载(涉及分数和整数的运算)
- 第八周上机实践项目3-分数类中的运算符重载(分数与分数、分数与整数)