zoukankan      html  css  js  c++  java
  • 类与对象 CG作业1. 复数类Comple 。

     

    问题描述】一个完整的复数由实数部分和序数部分构成,请定义一个复数类,含有两个私有属性realPart和imagPart分别表示复数的实部和虚部,三个成员函数:initComplex实现复数成员变量的初始化,add函数实现复数的求和运算并返回计算后的复数,printComplex按要求格式输出复数。

    【输入形式】

    第一行:第一个复数的实数数据部分  第一个复数的虚数数据部分

    第二行:第二个复数的实数数据部分  第二个复数的虚数数据部分

    第三行:输入一个整数(1-3),选择执行switch语句

    【输出形式】

    实数数据+虚数数据i

      就这道题,在我们学结构体的时候出现过一次类似的,那一次是要求用结构体写的,

          这个题型无非注意两点

      “+”不能在开头

      系数为-1,1时要省略系数

           下面是代码(结构体写法)//有点丑

     1 #include  <iostream>
     2 using  namespace  std;
     3 struct Complex{
     4         double a,b;
     5 };
     6 void inputComplex(Complex &x){
     7     cin>>x.a>>x.b;
     8 }
     9 Complex add(Complex c1,Complex c2){
    10           Complex sum;
    11           sum.a=c1.a+c2.a;
    12           sum.b=c1.b+c2.b;
    13           return sum;
    14 }
    15  void printComplex(Complex x){
    16         if(x.a!=0&&x.b>0&&x.b!=1)cout<<x.a<<"+"<<x.b<<"i"<<'
    ';
    17         else if(x.a!=0&&x.b==1)cout<<x.a<<"+"<<"i"<<'
    ';
    18         else if(x.a!=0&&x.b<0)cout<<x.a<<x.b<<"i"<<'
    ';
    19         else if(x.a!=0&&x.b==0)cout<<x.a<<'
    ';
    20         else if(x.a==0&&x.b!=0&&x.b!=1)cout<<x.b<<"i"<<'
    ';
    21         else if(x.a==0&&x.b==1)cout<<"i"<<'
    ';
    22         else if(x.a==0&&x.b==0)cout<<0<<'
    ';
    23 
    24 
    25 
    26  }
    27 int  main()  {
    28         Complex  c1,c2;//定义复数变量
    29         inputComplex(c1);//初始化复数变量:从键盘终端输入复数实部和虚部数据
    30         inputComplex(c2);
    31         printComplex(add(c1,c2));//输出复数变量c1和c2相加后的结果复数。
    32         return  0;
    33 }

       下面是类的写法

    类与对象的笔记

    点这里查看笔记↑↑↑↑

     1 #include  <iostream>
     2 using  namespace  std;
     3 class Complex{
     4  private:
     5     double  realPart;//实部
     6     double  imagPart;//虚部,
     7  public:
     8     void initComplex(double real,double imag){//实现复数成员变量的初始化,
     9         realPart=real;
    10         imagPart=imag;
    11     };
    12     Complex add(Complex x){//函数实现复数的求和运算并返回计算后的复数,
    13         Complex ans;
    14       ans.realPart=realPart+x.realPart;
    15       ans.imagPart=imagPart+x.imagPart;
    16       return ans;
    17     }
    18 
    19     void  printComplex();//按要求格式输出复数。
    20 
    21 };
    22 
    23 void  Complex::printComplex(){
    24         if(realPart!=0){
    25             cout<<realPart;
    26            if(imagPart==1)cout<<"+i"<<'
    ';
    27            else if(imagPart>0&&imagPart!=1)cout<<"+"<<imagPart<<"i"<<'
    ';
    28            else if (imagPart<0&&imagPart!=-1)cout<<imagPart<<"i"<<'
    ';
    29            else if (imagPart==-1)cout<<"-i"<<'
    ';
    30         }
    31         else if(realPart==0){
    32            if(imagPart==1)cout<<"+i"<<'
    ';
    33            else if(imagPart!=-1&&imagPart!=1&&imagPart!=0)cout<<imagPart<<"i"<<'
    ';
    34            else if (imagPart==-1)cout<<"-i"<<'
    ';
    35            else if(imagPart==0)cout<<"0"<<'
    ';
    36         }
    37 
    38 
    39 }
    40 
    41 int  main()  {
    42         Complex  c1,c2;
    43         double  real,imag;
    44         cin>>real>>imag;
    45         c1.initComplex(real,imag);
    46         cin>>real>>imag;
    47         c2.initComplex(real,imag);
    48         int  sel;
    49         cin>>sel;
    50         switch(sel){
    51         case  1:
    52                 c1.printComplex();
    53                 break;
    54         case  2:
    55                 c2.printComplex();
    56                 break;
    57         case  3:
    58                 Complex  c=c1.add(c2);//add函数返回c1和c2相加后的结果复数对象
    59                 c.printComplex();
    60         }
    61         return  0;
    62 }

     

     

  • 相关阅读:
    make_shared和shared_ptr的区别
    bitcoined
    ofstream的使用方法--超级精细。C++文件写入、读出函数(转)
    visual studio 安装过程
    Socket通信原理探讨(C++为例)
    以太坊的记录和关注点
    以太坊的应用
    以太坊
    比特币、以太坊
    c++
  • 原文地址:https://www.cnblogs.com/ahijing/p/12598360.html
Copyright © 2011-2022 走看看