第9周实验报告3
来源:互联网 发布:备案域名出售 编辑:程序博客网 时间:2024/06/02 03:19
实验目的:实现分数类中的运算符重载
* 程序头部注释开始
* 程序的版权和版本声明部分
* 烟台大学计算机学院学生
* 文件名称:
* 完成日期:
* 版本号:
* 程序头部的注释结束(此处也删除了斜杠)
#include<iostream> using namespace std; class CFraction { private: int nume; // 分子 int deno; // 分母 public: void Simplify(); //化简(使分子分母没有公因子) CFraction operator + (CFraction &c);CFraction operator - (CFraction &c);CFraction operator * (CFraction &c);CFraction operator / (CFraction &c);CFraction operator + ();CFraction operator - ();bool operator > (CFraction &c);bool operator < (CFraction &c);bool operator >= (CFraction &c);bool operator <= (CFraction &c);bool operator == (CFraction &c);bool operator != (CFraction &c);friend ostream& operator << (ostream&, CFraction&); friend istream& operator >> (istream&, CFraction&);};ostream& operator << (ostream& output, CFraction& cf){cout << cf.nume << "/" << cf.deno << endl;return output;}istream& operator >> (istream& input, CFraction& cf){cout << "请输入要置分数的分子和分母:";input >> cf.nume >> cf.deno;return input;} void main() { CFraction cf1, cf2, cf3; cin >> cf1 >> cf2;cout << "cf1 = " << cf1; cout << "cf2 = " << cf2;cf3 = cf1 + cf2;cout << "cf1 + cf2 = " ; cf3.Simplify();cf3 = cf1 - cf2;cout << "cf1 - cf2 = " ;cf3.Simplify();cf3 = cf1 * cf2;cout << "cf1 * cf2 = ";cf3.Simplify();cf3 = cf1 / cf2;cout << "cf1 / cf2 = ";cf3.Simplify();cout << "对cf1取正得: ";cf1 = + cf1;cout << "对cf2取反得: ";cf2 = - cf2;if(cf1 > cf2) cout << "cf1 > cf2" << endl;if(cf1 < cf2) cout << "cf1 < cf2" << endl;if(cf1 == cf2) cout << "cf1 = cf2" << endl; if(cf1 != cf2) cout << "cf1 ≠ cf2" << endl;if(cf1 >= cf2) cout << "cf1 ≥ cf2" << endl;if(cf1 <= cf2) cout << "cf1 ≤ cf2" << endl; system("pause");} void CFraction::Simplify() { int a[10], j = 0; for(int i = 1; i <= nume; i++) { if(nume % i == 0) { a[j] = i; j++; } } //定义a[10]数组用于存储nume的因数 int b[10], m = 0; for(int n = 1; n <= deno; n++) { if(deno % n == 0) { b[m] = n; m++; } } //定义b[10]数组用于存储deno的因数 for(int k = 0; k <= (j - 1); k++) { for(int p = 0; p <= (m - 1); p++) { if(a[k] == b[p]) { nume = nume / a[k]; deno = deno / a[k]; } } } cout << nume << "/" << deno << endl; } CFraction CFraction::operator + (CFraction &c){CFraction C;C.deno = deno * c.deno;C.nume = nume * c.deno + c.nume * deno;return C;}CFraction CFraction::operator - (CFraction &c){CFraction C;C.deno = deno * c.deno;if(nume * c.deno < c.nume * deno){ C.nume = -(c.nume * deno - nume * c.deno);}else C.nume = nume * c.deno - c.nume * deno;return C;}CFraction CFraction::operator * (CFraction &c){CFraction C;C.deno = deno * c.deno;C.nume = nume * c.nume;return C;}CFraction CFraction::operator / (CFraction &c){CFraction C;C.deno = deno * c.nume ;C.nume = nume * c.deno;return C;}CFraction CFraction::operator - (){CFraction C;C.deno = deno;C.nume = nume;cout << "-(" << C.nume << "/" << C.deno << ")" << endl;return C;}CFraction CFraction::operator + (){CFraction C;C.deno = deno;C.nume = nume;cout << "+(" << C.nume << "/" << C.deno << ")" << endl;return C;}bool CFraction::operator > (CFraction &c){deno = deno * c.deno;c.deno = deno;if((nume * c.deno) > (c.nume * deno))return true;elsereturn false;}bool CFraction::operator < (CFraction &c){deno = deno * c.deno;c.deno = deno;if((nume * c.deno) < (c.nume * deno))return true;elsereturn false;}bool CFraction::operator == (CFraction &c){deno = deno * c.deno;c.deno = deno;if((nume * c.deno) == (c.nume * deno))return true;elsereturn false;}bool CFraction::operator != (CFraction &c){deno = deno * c.deno;c.deno = deno;if((nume * c.deno) == (c.nume * deno))return false;elsereturn true;}bool CFraction::operator >= (CFraction &c){if((nume * c.deno) >= (c.nume * deno))return true;elsereturn false;}bool CFraction::operator <= (CFraction &c){if((nume * c.deno) <= (c.nume * deno))return true;elsereturn false;}
截图:
- 第9周实验报告3
- 第9周实验报告3
- 第9周实验报告3
- 第3周实验报告
- 第3周实验报告
- 第9周实验报告1
- 第9周实验报告1
- 第9周实验报告2
- 第9周实验报告5
- 第9周实验报告4
- 第9周实验报告4
- 第9周实验报告1
- 第9周实验报告2
- 第9周实验报告5
- 第3周实验报告3
- 第12周实验报告3
- 第13周实验报告3
- 第15周实验报告3
- 学车日记
- ubuntu install lamp
- 旋转控件(Spin)的使用
- 经典Spring AOP
- libDBConnector全能数据库连接器程序库架构及功能说明
- 第9周实验报告3
- <s:property >截取字符串
- asp.net 网站开发 很简单(涉及知识)
- Linux内核USB主设备驱动程序
- java生成4位随机数(含字母)
- awaiting command
- 观察者模式(Observer、Observable)
- 黑马程序员 JavaScript 容易出现的错误
- JS验证手机和邮箱