| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 433 人关注过本帖
标题:编写一个简单的复数的加减法计算程序
只看楼主 加入收藏
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
结帖率:96.23%
收藏
已结贴  问题点数:9 回复次数:1 
编写一个简单的复数的加减法计算程序
下面是我写的代码,求指点错误。
#include<iostream>
using namespace std;
class dlbcomplex
{public:
    dlbcomplex(){real=0;imag=0;}
    dlbcomplex(int r,int i):real(r),imag(i){}
    dlbcomplex operator +(dlbcomplex &);
    dlbcomplex operator -(dlbcomplex &);
    friend istream& operator >>(istream&,dlbcomplex&);
    void display();
private:
    int real;
    int imag;
};
dlbcomplex dlbcomplex::operator +(dlbcomplex &c2)
{return dlbcomplex(real+c2.real,imag+c2.imag);
}
dlbcomplex dlbcomplex::operator -(dlbcomplex &c2)
{return dlbcomplex(real-c2.real,imag-c2.imag);
}
void dlbcomplex::display()
{
    cout<<real<<"+"<<imag<<endl;
}
istream& operator >>(istream &input,dlbcomplex &c3)
{
    input<<c3.real<<"+"<<c3.imag<<endl;
    return input;
}
int main()
{
    dlbcomplex c1,c2,c3;
    cout<<输入你要计算的两个复数<<endl;
    cin>>c1;
    cin>>c2;
    char a;
    cout<<给出你要的计算方式<<endl;
    cin>>a;
    if(a=="+")
    {c3=c1+c2;
    c3.display();
    }
    else
    {c3=c1-c2;
    c3.display();
    }
    return(0);
}
搜索更多相关主题的帖子: private display include public 
2013-02-01 20:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:9 
随手这么一写,我没有检查,你自己检查一下
程序代码:
#include <iostream>

class dlbcomplex
{
public:
    dlbcomplex() : real_(0), imag_(0)
    {
    }
    dlbcomplex(int r,int i) : real_(r), imag_(i)
    {
    }
    dlbcomplex operator+( const dlbcomplex& );
    dlbcomplex operator-( const dlbcomplex& );

private:
    int real_;
    int imag_;

    friend std::istream& operator>>( std::istream&, dlbcomplex& );
    friend std::ostream& operator<<( std::ostream&, const dlbcomplex& );
};

inline dlbcomplex dlbcomplex::operator+( const dlbcomplex& c )
{
    return dlbcomplex( real_+c.real_, imag_+c.imag_ );
}
inline dlbcomplex dlbcomplex::operator-( const dlbcomplex& c )
{
    return dlbcomplex( real_-c.real_, imag_-c.imag_ );
}
std::istream& operator>>( std::istream& is, dlbcomplex& c )
{
    char ch;
    int real, imag;
    if( is>>ch )
    {
        if( ch != '(' )
        {
            is.putback( ch );
            is.setstate( std::ios_base::failbit );
        }
        else if( is>>real>>ch )
        {
            if( ch != ',' )
            {
                is.putback( ch );
                is.setstate( std::ios_base::failbit );
            }
            else if( is>>imag>>ch )
            {
                if( ch != ')' )
                {
                    is.putback( ch );
                    is.setstate( std::ios_base::failbit );
                }
                else
                {
                    c.real_ = real;
                    c.imag_ = imag;
                }
            }
        }
    }
    return is;
}
std::ostream& operator<<( std::ostream& os, const dlbcomplex& c )
{
    return os << '(' << c.real_ << ',' << c.imag_ << ')';
}

using namespace std;

int main()
{
    dlbcomplex c1, c2;
    cout << "输入你要计算的两个复数" << endl;
    cin >> c1 >> c2;

    char op;
    cout << "给出你要的计算方式" << endl;
    cin >> op;

    if( op == '+' )
    {
        cout << (c1+c2) << endl;
    }
    else if( op == '-' )
    {
        cout << (c1-c2) << endl;
    }

    return 0;
}

程序代码:
输入你要计算的两个复数
(1,2) (3,4)
给出你要的计算方式
+
(4,6)

程序代码:
输入你要计算的两个复数
(1,2) (3,4)
给出你要的计算方式
-
(-2,-2)

2013-02-02 09:04
快速回复:编写一个简单的复数的加减法计算程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017022 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved