Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

C++高手求救啦.....

0 views
Skip to first unread message

非凡公子

unread,
Dec 12, 1997, 3:00:00 AM12/12/97
to


手邊有數題C++題目,有二題還想不出來,請高手幫小弟的忙
,希望能寄回我的信箱(可否在下星期一前,謝謝!!!)


由於電腦教室Turbo C++ 沒有complex.h引入檔,因此我們
要自己製作二個類別來處理複數的加(+),減至(-),乘(x),
除(/)以及直角座標與極座標之互換:Compx 類別及Polar
類別,Compx類別負責處理直角座標之複數,Polar類別負責
處理極座標之複數,Compx類別利用void topolar();成員函
數把直角座標轉為極座標,Polar類別利用operator Compx();
類別轉換成員函數把極座標轉為直角座標.

定義Compx類別基本架構如下:

......
#include <iostream.h>
#include <math.h>
......

class Compx
{
public:
Compx(); //default constructor
Compx(double,double); //constructor
......

Compx& operator+(Compx&);
Compx& operator-(Compx&);
Compx& operator*(Compx&);
Compx& operator/(Compx&);
void topolar(); //conversion to polar form
......

void show()
{cout<<"compx("<<re<<","<<im<<")"<<endl;}
......

private:
double re;
double im;
};
......

void Compx::topolar()
{
double tmp=re;
re=sqrt(pow(re,2.0)+pow(im,2.0));
im=atan2(im,rmp)*180.0/PI;
}
......

定義POlar類別基本架構如下:

......
class Polar
{
public:
Polar(); //default constructor
Polar(double,double); //constructor
......

Polar& operator+(Polar&);
Polar& operator-(Polar&);
Polar& operator*(Polar&);
Polar& operator/(Polar&);
operator Compx(); //conversion to complex form
......

void show()
{cout<<"polar("<<mag<<","<<phase<<")"<<endl;}
......

private:
double mag; //magnitude
double phasa; //phase in degrees
};
......

Polar::operator Compx()
{
double tmp;
tmp=mag*cos(phase*PI/180.0);
phase=mag*sin(phase*PI/180.0);
return Compx(tmp,phase);
}
......

主程式主要架構預定要對下面的複數作運算,請完成整個程式設計.
(註一:所有程式例中未完成部份"......"可以是一行或多行敘述,
也可以是完全沒有敘述.
註二:不得引入你的C++軟體中的complex.h 引入檔
註三:你的程式可以完全父在一個檔案或分開放在多個檔案裡 )


......
int main()
{
......
Compx c1(4.0,3.0),c2(0.0,1.0),c3(1.0,0.0);
cl.show(); c2.show(); c3.show();
Polar p1(5.0,45.0),p2(1.0,90.0),p3(2.0,180.0);
p1.show(); p2.show(); p3.show();

Compx e=c1;
c1+c2+c3; c1.show();
c1=e;
c1-c2-c3; c1.show();
c1=e;
c1*c2*c3; c1.show();
c1=e;
c1/c2/c3; c1.show();
c1=e;
c1.topolar(); c1.show();
c2.topolar(); c2.show();
c3.topolar(); c3.show();

Polar t=p1;
p1+p2+p3; p1.show();
p1=t;
p1-p2-p3; p1.show();
p1=t;
p1*p2*p3; p1.show();
p1=t;
p1/p2/p3; p1.show();
p1=t;
e=p1; p1.show(); e.show();
e=p2; p2.show(); e.show();
e=p3; p3.show(); e.show();
......

}

--
[1;31m [31;5m傲 [0m [1;32m觀 [33m天 [34m下 [35m痴 [36m情 [31m女 [37;40m [0m
[1;32m [32;5m笑 [0m [1;33m問 [34m情 [35m郎 [36m有 [31m幾 [32m個 [37;40m [0m
[1;33m [33;5m紅 [0m [1;34m塵 [35m情 [36m事 [31m揮 [32m不 [33m盡 [37;40m [0m
[1;34m [34;5m塵 [0m [1;35m俗 [36m鴛 [31m鴦 [32m有 [33m幾 [34m合 [37;40m [0m

[1;32m [33;5m非 [31m凡 [33m公 [31m子 [37;40;5m [0m

--
※ [36;1m風信遊子 [35m(bbs.cm.nctu.edu.tw) [37m ★ [33mPost From: [34m 140.127.119.240 [m★

0 new messages