小型特殊計算器

要求:運算符重載

上代碼

#include<iostream>
using namespace std;
class Complex
{
	public:
		Complex(){real=0;imag=0;}
		Complex(double r,double i){real=r;imag=i;}
		Complex operator +(Complex &c2);//重載+ 
	        Complex operator -(Complex &c2);//重載- 
	        Complex operator *(Complex &c2);//重載*
		Complex operator /(Complex &c2);//重載/ 
		friend ostream &operator <<(ostream&,Complex&);//重載輸出流 
		friend istream &operator >>(istream&,Complex&);//重載輸入流 
	private:
		double real;
		double imag;
		
};
Complex Complex::operator + (Complex &c2)//+ 
{
	return Complex(real+c2.real,imag+c2.imag);
 } 
 Complex Complex::operator - (Complex &c2)//- 
{
	return Complex(real-c2.real,imag-c2.imag);
 } 
 Complex Complex::operator *(Complex &c2)//*
{
 	return Complex(real*c2.real-imag*c2.imag,imag*c2.real+real*c2.imag);
}  
Complex Complex::operator /(Complex &c2)// /
{
	return Complex((real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag),(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag));
 } 
istream& operator>>(istream& input,Complex &c)//輸入 
{
	input>>c.real>>c.imag;
	return input;  
}
 ostream & operator <<(ostream &output,Complex &c)//輸出 
 {
 	cout<<"("<<c.real;
	if(c.imag>=0)
	cout<<"+";
	cout<<c.imag<<"i)"<<endl;
	return output; 
 }
 void welcome()//系統主菜單 
{
   cout<<"                                 "<<endl;
   cout<<"       $-------------------------&"<<endl;
   cout<<"       !                         !"<<endl;
   cout<<"       !   **小型特殊計算器**     !"<<endl;
   cout<<"       !                         !"<<endl;
   cout<<"       $-------------------------&"<<endl;
   cout<<endl<<endl;
   cout<<"請選擇您的操作(0-2):"<<endl;
   cout<<"        1.標準計算器"<<endl;
   cout<<"        2.複數計算器"<<endl; 
   cout<<"        0.退出"<<endl;
   cout<<"請輸入編號(0-2): ";
}
 int main()
 {
 	cout<<"製作者:十七"<<endl; 
 	while(1)
 	{
	    welcome();
 		int a;
 		cin>>a;
 		if(a==1)
 		{
      	double c1,c2,c3;
      	cout<<"請輸入第一個數:";
		cin>>c1;
		cout<<"請輸入第二個數:"; 
		cin>>c2;
		cout<<"請輸入運算法則:";
		char m;
		cin>>m;
		if(m=='+') c3=c1+c2;
 	    if(m=='-') c3=c1-c2;
 	    if(m=='*') c3=c1*c2;
 	    if(m=='/') c3=c1/c2;
 	    cout<<"運算結果爲:"<<c3<<endl; 
		 }
		if(a==2)
		{
		Complex c1,c2,c3;
 	    cout<<"請輸入第一個數:";
		cin>>c1;
		cout<<"請輸入第二個數:"; 
		cin>>c2;
		cout<<"請輸入運算法則:";
		char m;
		cin>>m;
		if(m=='+')  c3=c1+c2;
 	    if(m=='-')  c3=c1-c2;
 	    if(m=='*')  c3=c1*c2;
 	    if(m=='/')  c3=c1/c2;
 	    cout<<"運算結果爲: "<<c3;
		}
		if(a==0)
		return 0;
	 }
 	
 	return 0;
 }

binggo敲打


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章