我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C++实现小型复数计算器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C++实现小型复数计算器

小型复数计算器项目设计,供大家参考,具体内容如下

一、问题描述及功能要求

1、实现复数的设置和显示。
2、声明一个复数类Complex,重载运算符 “+”、 “-”、 “*”、 “/”,使之能用于复数的加、减、乘、除,运算符重载函数作为Complex类的成员函数。
3、声明一个复数类Complex,重载运算符 “+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如:c1+c2,i+c1, c1+i,均合法(设i为整数,c1,c2为复数),分别求两个复数之和、整数和复数之和,并显示运算结果。
4、实现用运算符 = = 进行复数的相等比较,并显示比较结果。
5、在程序中还应该有构造函数,析构函数,并要用到友元函数。

二、代码实现 带有注释

废话不说,直接代码,欢迎指正。


#include <iostream>
#include <process.h>
using namespace std;//标准命名空间
void home_page()//打印首页
{

    cout<<"\t\t\t--------------欢迎来到复数四则计算器----------------"<<endl;
    cout<<"\t\t\t|                                                  |"<<endl;
    cout<<"\t\t\t|                  服务类型:(1~4):             |"<<endl;
    cout<<"\t\t\t|                1.实数与实数运算;                |"<<endl;
    cout<<"\t\t\t|                2.实数与虚数运算;                |"<<endl;
    cout<<"\t\t\t|                3.虚数与虚数运算;                |"<<endl;
    cout<<"\t\t\t|                4.退出程序。                      |"<<endl;
    cout<<"\t\t\t|                                                  |"<<endl;
    cout<<"\t\t\t----------------------------------------------------"<<endl;
}
void second_page()//打印次页
{
    cout<<"\t\t\t----------------------------------------------------"<<endl;
    cout<<"\t\t\t|                                                  |"<<endl;
    cout<<"\t\t\t|选择你要进行的运算类型(1~6):                 |"<<endl;
    cout<<"\t\t\t|                1.进行加法运算;                  |"<<endl;
    cout<<"\t\t\t|                2.进行减法运算;                  |"<<endl;
    cout<<"\t\t\t|                3.进行乘法运算;                  |"<<endl;
    cout<<"\t\t\t|                4.进行除法运算;                  |"<<endl;
    cout<<"\t\t\t|                5.进行比较运算;                  |"<<endl;
    cout<<"\t\t\t|                6.返回上层目录;                  |"<<endl;
    cout<<"\t\t\t|                                                  |"<<endl;
    cout<<"\t\t\t----------------------------------------------------"<<endl;
}
void third_page()//程序退出提示语句
{
    cout<<"程序已安全退出,感谢您的光顾,为达您的满意,我们力求下次做得更好!"<<endl;
}
class Complex
{
private:
    double real;//定义虚数的实部
    double imag;//定义虚数的虚部
public:

    Complex(double r=0,double i=0):real(r),imag(i) {} //构造函数初始化虚数的实部和虚部
    friend Complex operator +(Complex &c1,Complex &c2)//实现两虚数(或实数)相加
    {
        return Complex(c1.real+c2.real,c1.imag+c2.imag);
    }
    friend Complex operator -(Complex &c1,Complex &c2)//实现两虚数(或实数)相减
    {
        return Complex(c1.real-c2.real,c1.imag-c2.imag);
    }
    friend Complex operator *(Complex &c1,Complex &c2)//实现两虚数(或实数)相乘
    {
        return Complex(c1.real*c2.real-(c1.imag*c2.imag),
                       c1.real*c2.imag+c2.real*c1.imag);
    }
    friend Complex operator /(Complex &c1,Complex &c2)//实现两虚数(或实数)相除
    {
        return Complex(((c1.real*c2.real)-(c1.imag*c2.imag))/
                       ((c2.real*c2.real)+(c2.imag*c2.imag)),
                       ((c1.real*c2.imag)+(c2.real*c1.imag))/
                       ((c2.real*c2.real)+(c2.imag*c2.imag)));
    }
    friend bool operator ==(Complex &c1,Complex &c2)//实现两虚数(或实数)相比较
    {
        if(c1.real==c2.real&&c1.imag==c2.imag)
        {
            return true;
        }
        else
            return false;
    }
    void set_real()//实现给实部赋值
    {
        cin>>real;
    }
    void set_imag()//实现给虚部赋值
    {
        cin>>imag;
    }
    void display()//显示运算结果
    {
        if(imag==0)
        {
            cout<<"结果为:"<<real<<endl;
        }
        else
            cout<<"结果为:"<<real<<"+"<<imag<<"i"<<endl;
    }
    ~Complex(){}//析构函数
} ;
int main()//主函数
{
    int choice,choice1;//定义选择标志
    while(1)
    {
        home_page();
        cout<<"请选择所需的服务:"<<endl;
        cin>>choice;

        switch(choice)
        {
        case 1:
            second_page();
            cout<<"请选择你要进行的运算:"<<endl;
            cin>>choice1;

            switch(choice1)
            {

            case 1:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个实数"<<endl;
                c2.set_real();
                c3=c1+c2;//+号为已重载运算符,下同
                c3.display();
                return main();//返回主函数,类似于递归,下同
            }
            break;
            case 2:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个实数"<<endl;
                c2.set_real();
                c3=c1-c2;
                c3.display();
                return main();
            }
            break;
            case 3:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个实数"<<endl;
                c2.set_real();
                c3=c1*c2;
                c3.display();
                return main();
            }
            break;
            case 4:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个实数"<<endl;
                c2.set_real();
                c3=c1/c2;
                c3.display();
                return main();
            }
            break;
            case 5:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个实数"<<endl;
                c2.set_real();
                if(c1==c2)
                    cout<<"两数相等"<<endl;
                else
                    cout<<"两数不相等"<<endl;
                    return main();
            }
            case 6:
            {

                return main();
            }
            }
            break;
        case 2:
            second_page();
            cout<<"请选择你要进行的运算:"<<endl;
            cin>>choice1;

            switch(choice1)
            {
            case 1:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                c3=c1+c2;
                c3.display();
                return main();
            }
            break;
            case 2:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                c3=c1-c2;
                c3.display();
                return main();
            }
            break;
            case 3:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                c3=c1*c2;
                c3.display();
                return main();
            }
            break;
            case 4:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                c3=c1/c2;
                c3.display();
                return main();
            }
            break;
            case 5:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个实数"<<endl;
                c1.set_real();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                if(c1==c2)
                    cout<<"两数相等"<<endl;
                else
                    cout<<"两数不相等"<<endl;
                    return main();
            }
            break;
            case 6:
            {

                return main();
            }
            }

        case 3:
            second_page();
            cout<<"请选择你要进行的运算:"<<endl;
            cin>>choice1;

            switch(choice1)
            {
            case 1:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个虚数的实部"<<endl;
                c1.set_real();
                cout<<"请输入第一个虚数的虚部"<<endl;
                c1.set_imag();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                c3=c1+c2;
                c3.display();
                return main();
            }
            case 2:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个虚数的实部"<<endl;
                c1.set_real();
                cout<<"请输入第一个虚数的虚部"<<endl;
                c1.set_imag();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                c3=c1-c2;
                c3.display();
                return main();
            }
            break;
            case 3:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个虚数的实部"<<endl;
                c1.set_real();
                cout<<"请输入第一个虚数的虚部"<<endl;
                c1.set_imag();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                c3=c1*c2;
                c3.display();
                return main();
            }
            break;
            case 4:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个虚数的实部"<<endl;
                c1.set_real();
                cout<<"请输入第一个虚数的虚部"<<endl;
                c1.set_imag();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                c3=c1/c2;
                c3.display();
                return main();
            }
            break;
            case 5:
            {
                Complex c1(0.0,0.0),c2(0.0,0.0),c3(0.0,0.0);
                cout<<"请输入第一个虚数的实部"<<endl;
                c1.set_real();
                cout<<"请输入第一个虚数的虚部"<<endl;
                c1.set_imag();
                cout<<"请输入第二个虚数的实部"<<endl;
                c2.set_real();
                cout<<"请输入第二个虚数的虚部"<<endl;
                c2.set_imag();
                if(c1==c2)
                    cout<<"两数相等"<<endl;
                else
                    cout<<"两数不相等"<<endl;
                    return main();
            }
            case 6://返回上层目录
            {

                return main();
            }
            }
            break;

        case 4://退出程序

            third_page();
            break;
        }
        break;
    }
    return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C++实现小型复数计算器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

iOS怎么实现小型计算器

iOS怎么实现小型计算器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先呢,编辑这个计算器用到了两种控件,Label和Button控件,Label控件用于显示结果,而Bu
2023-06-29

C#如何实现简易计算器小功能

这篇文章主要介绍C#如何实现简易计算器小功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下简易的登陆界面。具有幻灯片效果。(picturebox time控件)计算器支持多位数,小数,括号的运算。音乐是一
2023-06-29

怎么用C#实现简单的计算器小程序

这篇文章主要介绍“怎么用C#实现简单的计算器小程序”,在日常操作中,相信很多人在怎么用C#实现简单的计算器小程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C#实现简单的计算器小程序”的疑惑有所帮助!
2023-06-29

怎么用C++实现简单的计算器小功能

本文小编为大家详细介绍“怎么用C++实现简单的计算器小功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用C++实现简单的计算器小功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。限制:1、只能使用分支语句
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录