vs2017\vs2019 构造复数类实现加减乘除四则运算

举报
悲恋花丶无心之人 发表于 2021/02/03 01:25:15 2021/02/03
【摘要】 这是针对于博客vs2017安装和使用教程(详细)和vs2019安装和使用教程(详细)的构造复数类实现加减乘除四则运算的新建示例 目录 一、项目结构 二、代码 三、运行程序 四、注意事项 一、项目结构 1.头文件 Complex.h 2.源文件 Complex.cppmain.cpp           ...

这是针对于博客vs2017安装和使用教程(详细)vs2019安装和使用教程(详细)的构造复数类实现加减乘除四则运算的新建示例

目录

一、项目结构

二、代码

三、运行程序

四、注意事项


一、项目结构

1.头文件

  • Complex.h

2.源文件

  • Complex.cpp
  • main.cpp

 

 

                                                                          


二、代码

1.Complex.h


  
  1. #pragma once
  2. class Complex {
  3. double real;//实部
  4. double imag;//虚部
  5. public:
  6. Complex(double r, double i);//构造函数
  7. //Complex operator+(Complex &c);//加法
  8. //Complex operator-(Complex &c);//减法
  9. //Complex operator*(Complex &c);//乘法
  10. //Complex operator/(Complex &c);//除法
  11. Complex *Compute(Complex &c,char op);
  12. double GetReal();
  13. double GetImag();
  14. void display();
  15. };

2.Complex.cpp


  
  1. #include<math.h>
  2. #include"Complex.h"
  3. #include<iostream>
  4. using namespace std;
  5. Complex::Complex(double r0, double i0) {
  6. real = r0;
  7. imag = i0;
  8. }
  9. double Complex::GetReal() {
  10. return real;
  11. }
  12. double Complex::GetImag() {
  13. return imag;
  14. }
  15. Complex *Complex::Compute(Complex &c, char op) {
  16. double r1, i1, temp;//防止重定义
  17. Complex *q;
  18. switch (op)
  19. {
  20. case '+':
  21. r1 = real + c.real;//实部相加
  22. i1 = imag + c.imag;//虚部相加
  23. q = new Complex(r1, i1);
  24. return q;
  25. break;
  26. case '-':
  27. r1 = real - c.real;//实部相减
  28. i1 = imag - c.imag;//虚部相减
  29. q =new Complex(r1, i1);
  30. return q;
  31. break;
  32. case '*':
  33. r1 = real * c.real - imag * c.imag;//实部
  34. i1 = imag * c.real + real * c.imag;//虚部
  35. q =new Complex(r1, i1);
  36. return q;
  37. break;
  38. case '/':
  39. temp = c.real*c.real + c.imag*c.imag;//分母
  40. r1 = (real * c.real + imag * c.imag) / temp;//实部
  41. i1 = (imag * c.real - real * c.imag) / temp;//虚部
  42. q =new Complex(r1, i1);
  43. return q;
  44. break;
  45. default:
  46. break;
  47. }
  48. }
  49. void Complex::display() {
  50. if (imag >= 0) {//虚部小于0,不应该出现+-
  51. cout << "(" << real << "+" << imag << "i)";
  52. }
  53. else
  54. {
  55. cout << "(" << real << imag << "i)";
  56. }
  57. }

3.main.cpp


  
  1. #include<iostream>
  2. using namespace std;
  3. #include"Complex.h"
  4. int main() {
  5. //Complex c1(1.0, 2.0);//测试构造函数
  6. //Complex c2(3.0, 4.0);
  7. //定义实部和虚部
  8. double r1;
  9. double i1;
  10. double r2;
  11. double i2;
  12. cout << "请输入两个复数的实部和虚部:" << endl;
  13. cin >> r1 >> i1 >> r2 >> i2;
  14. char op;//运算符
  15. cout << "请输入运算符:" << endl;
  16. cin >> op;
  17. Complex c1(r1, i1);
  18. Complex c2(r2, i2);
  19. //计算
  20. Complex *q = c1.Compute(c2, op);
  21. //输出结果
  22. cout << "计算结果为:" << endl;
  23. c1.display();
  24. cout << " " << op << " ";
  25. c2.display();
  26. cout << "= ";
  27. q->display();
  28. getchar();
  29. getchar();
  30. return 0;
  31. }

三、运行程序

1.点击“本地Windows调试器

                                                                              

2.我们以除法为例,计算(1+2i) / (3+4i)的结果,如下输入

                                                                             

3.输入运算符“/”

                                                                              

4.运行结果

                                                                            

5.负数的例子同理,计算(1-2i) / (3+4i)直接给出结果

                                                                            


四、注意事项

1.注意display()函数,作用是虚部小于0,不允许出现+-,即加一个负数

2.注意自己写的头文件用双引号""括起来而不是<>

3.Compute()函数返回值为Complex指针


返回至原博客:

vs2017安装和使用教程(详细)

vs2019安装和使用教程(详细)

文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。

原文链接:nickhuang1996.blog.csdn.net/article/details/87879977

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。