C primer plus第6版中文版编程练习答案第11章Word文件下载.docx
- 文档编号:5722990
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:46
- 大小:21.68KB
C primer plus第6版中文版编程练习答案第11章Word文件下载.docx
《C primer plus第6版中文版编程练习答案第11章Word文件下载.docx》由会员分享,可在线阅读,更多相关《C primer plus第6版中文版编程练习答案第11章Word文件下载.docx(46页珍藏版)》请在冰点文库上搜索。
doubleang;
Modemode;
voidset_mag();
voidset_ang();
voidset_x();
voidset_y();
Vector();
Vector(doublen1,doublen2,Modeform=RECT);
voidreset(doublen1,doublen2,Modeform=RECT);
~Vector();
doublexval()const{returnx;
}
doubleyval()const{returny;
doublemagval()const{returnmag;
doubleangval()const{returnang;
voidpolar_mode();
voidrect_mode();
Vectoroperator+(constVector&
b)const;
Vectoroperator-(constVector&
Vectoroperator-()const;
Vectoroperator*(doublen)const;
friendVectoroperator*(doublen,constVector&
a);
friendostream&
operator<
<
(ostream&
os,constVector&
v);
};
}
#endif
//vector.cpp
#include"
vector.h"
constdoubleRad_to_deg=45.0/atan(1.0);
voidVector:
:
set_mag()
mag=sqrt(x*x+y*y);
set_ang()
if(x==0.0&
&
y==0.0)
ang=0.0;
else
ang=atan2(y,x);
set_x()
x=mag*cos(ang);
set_y()
y=mag*sin(ang);
Vector:
Vector()
x=y=mag=ang=0.0;
mode=RECT;
Vector(doublen1,doublen2,Modeform)
mode=form;
if(form==RECT)
{
x=n1;
y=n2;
set_mag();
set_ang();
}
elseif(form==POL)
mag=n1;
ang=n2/Rad_to_deg;
set_x();
set_y();
cout<
"
Incorrect3rdargumenttoVector()--"
;
vectorsetto0\n"
x=y=mag=ang=0.0;
mode=RECT;
reset(doublen1,doublen2,Modeform)
~Vector()
polar_mode()
mode=POL;
rect_mode()
VectorVector:
operator+(constVector&
b)const
returnVector(x+b.x,y+b.y);
operator-(constVector&
returnVector(x-b.x,y-b.y);
operator-()const
returnVector(-x,-y);
operator*(doublen)const
returnVector(n*x,n*y);
Vectoroperator*(doublen,constVector&
a)
returna*n;
ostream&
operator<
v)
if(v.mode==Vector:
RECT)
os<
(x,y)=("
<
v.x<
"
v.y<
)"
elseif(v.mode==Vector:
POL)
(m,a)=("
v.mag<
<
v.ang*Rad_to_deg<
Vectorobjectmodeisinvalid"
returnos;
//randwalk.cpp
intmain()
usingVECTOR:
Vector;
srand(time(0));
doubledirection;
Vectorstep;
Vectorresult(0.0,0.0);
unsignedlongsteps=0;
doubletarget;
doubledstep;
ofstreamfout;
fout.open("
savesteps.txt"
);
cout<
Entertargetdistance(qtoquit):
while(cin>
>
target)
cout<
Entersteplength:
if(!
(cin>
dstep))
break;
fout<
TargetDistance:
target<
StepSize:
dstep<
endl;
while(result.magval()<
fout<
steps<
result<
direction=rand()%360;
step.reset(dstep,direction,Vector:
POL);
result=result+step;
steps++;
After"
steps,thesubject"
"
hasthefollowinglocation:
\n"
result.polar_mode();
or\n"
Averageoutwarddistanceperstep="
<
result.magval()/steps<
steps=0;
result.reset(0.0,0.0);
Bye!
cin.clear();
while(cin.get()!
='
\n'
)
continue;
cin.get();
return0;
2、
doubleset_mag()const;
doubleset_ang()const;
voidset_x(doublemag,doubleang);
voidset_y(doublemag,doubleang);
doublemagval()const{returnset_mag();
doubleangval()const{returnset_ang();
doubleVector:
set_mag()const
returnsqrt(x*x+y*y);
set_ang()const
return0.0;
returnatan2(y,x);
set_x(doublemag,doubleang)
set_y(doublemag,doubleang)
x=y=0.0;
set_x(n1,n2/Rad_to_deg);
set_y(n1,n2/Rad_to_deg);
x=y=0.0;
v.set_mag()<
v.set_ang()*Rad_to_deg<
3、
els
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- primer plus第6版中文版编程练习答案第11章 plus 中文版 编程 练习 答案 11