近期整理下很久前写的程序,这里就把它放在博文中了,有些比较简单,但是很有学习价值。


下面就是自己很久前实现的复数重载代码,这里没有考虑特殊情况,像除法中,分母不为零情况。

#include <iostream>
/*
#include <conio.h>
#include<stdio.h>
#include<iomanip>
#include<string>
#include<sstream>
*/
using namespace std; class complex
{
double real,imag;
public:
complex(double,double);
void disp(char *);
friend complex operator + (complex,complex);
friend complex operator - (complex,complex);
friend complex operator * (complex,complex);
friend complex operator / (complex,complex);
}; complex::complex (double r=,double i=)
{
real = r;
imag = i;
} void complex::disp (char *str)
{
cout.unsetf(ios::showpos);
cout<<str<<"="<<real;
if (imag)
{
cout.setf(ios::showpos);
cout<<imag<<'i';
}
cout<<endl;
cout.unsetf(ios::showpos);
} complex operator + (complex cpl1,complex cpl2)
{
double t=cpl1.real+cpl2.real;
double i=cpl1.imag+cpl2.imag;
return complex(t,i);
} complex operator - (complex cpl1,complex cpl2)
{
double t=cpl1.real-cpl2.real;
double i=cpl1.imag-cpl2.imag;
return complex(t,i);
} complex operator * (complex cpl1,complex cpl2)
{
double t=cpl1.real*cpl2.real - cpl1.imag*cpl2.imag;
double i=cpl1.real*cpl2.imag + cpl1.imag*cpl2.real;
return complex(t,i);
} complex operator / (complex cpl1,complex cpl2)
{
double t=(cpl1.real*cpl2.real+cpl1.imag*cpl2.imag)/(cpl2.real*cpl2.real+cpl2.imag*cpl2.imag);
double i=(cpl1.imag*cpl2.real-cpl1.real*cpl2.imag)/(cpl2.real*cpl2.real+cpl2.imag*cpl2.imag);
return complex(t,i);
} int main(void)
{
complex c1(,),c2(,),c3();
c1.disp("c1");
c2.disp("c2");
c3=c1+c2;
c3.disp("c3");
c3=c1-c3;
c3.disp("c3");
c3=c1*c2;
c3.disp("c3");
c3=c1/c2;
c3.disp("c3");
getchar();
return ;
}

最新文章

  1. [LintCode] Best Time to Buy and Sell Stock II 买股票的最佳时间之二
  2. 使用CSS使内容垂直居中的N中方法。
  3. c#自定义日志记录
  4. 前端模板之EasyUI常用控件及参数
  5. Java基础知识强化之多线程笔记06:Lock接口 (区别于Synchronized块)
  6. Perl 中级教程 第5章课后习题
  7. 【HDOJ】2424 Gary&#39;s Calculator
  8. uva 719 Glass Beads(后缀自动机)
  9. hbase ganglia监控配置
  10. 关于mac下配置mysql心得
  11. Eclipse报错An internal error occurred during: &quot;J2EE Component Mapping Update&quot;. java.lang.NullPointerException
  12. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](七)
  13. 深入理解Java 栈数据结构
  14. idea便利配置使用配置
  15. 第一章:认识Ajax
  16. goreplay,tcpcopy
  17. 神兽保佑代码无bug O(∩_∩)O
  18. Pig拒绝连接错误
  19. 使用 libvirt创建和管理KVM虚拟机
  20. 五个步骤搞定敏捷UX设计

热门文章

  1. [OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (二)
  2. RelativeLayout的16种特有属性
  3. hdu1573 X问题【中国剩余定理】
  4. python的pickle和shelve模块
  5. [漏洞分析]thinkcmf 1.6.0版本从sql注入到任意代码执行
  6. grpc使用客户端技巧
  7. Codeforces.392E.Deleting Substrings(区间DP)
  8. Chrome 浏览器的Secure Shell插件
  9. Spark MLlib 之 大规模数据集的相似度计算原理探索
  10. 使用Maven自动部署Java Web项目到Tomcat问题小记