版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Problem A:平面上的点oint类Point p(a, b);(IV)Description在数学上,平面直角坐标系上的点用X轴和Y#includep.show();p.showCounter();轴上的两个坐标值唯一确定。现在我们封装一#include个“Point类来实现平面上的点的操作。using namespace std;q.showSumOfPoint();根据“append.cc”,完成Point类的构造方法和class PointPoint q1(q), q2(1);show()、showCounter()、showSumOfPoint()方private:Point:s
2、howCounter();法;实现showPoint()函数。double x_,y_;showPoint(q1, q2, q);接口描述:static int sum,num;Point:showSumOfPoint();showPoint()函数:按输出格式输出Point对象,public:调用Point:show()方法实现。Point:show()方法:按输出格式输出Point对象。Point():x_(0),y_(0)num+;sum+;Problem A:复数类的构造、析构和输出Point:showCounter ()方法:按格式输出当前程Description序中Point对象的
3、计数。Point(double封装一个复数类CPLX,用来处理复数功能和运Point:showSumOfPoint ()方法:按格式输出程xx):x_(xx),y_(1)num+;sum+;算,支持以下操作:序运行至当前存在过的Point对象总数。Point(doublexx,double1. CPLX:CPLX(double, double)构造:参数为实部、Inputyy):x_(xx),y_(yy)num+;sum+;虚部,用传入的参数初始化对象,产生一行以输入多行,每行为一组坐标“x,y”,表示点的xPoint(const“CREATE()”开始的输出,并输出复数的实部和坐标和y坐标,
4、x和y的值都在double数据范Point&p)x_=p.x_;y_=p.y_;num+虚部;围内。;sum+;2. CPLX:CPLX()析构:产生一行以“RELEASE。”OutputPoint()num-;开始的输出,并输出复数的实部和虚部;对每个Point对象,调用show()方法输出其值,void3. CPLX:print():产生一行以“PRINT()”开始的输或者用showPoint()函数来输出(通过参数传入show()coutsetprecision(16)出,并以格式(a, bi)”的形式输出复数;的)Point对象的值:X坐标在前,Y坐标在Point:(x_,后,Y坐标前
5、面多输出一个空格。每个坐标的y_)endl;输出精度为最长16位。调用用showCounter()staticvoid你设计一个CPLX类,使得main()函数能够运方法和showSumOfPoint()输出Point对象的计showCounter()coutsetprecisio行并得到正确的输出。调用格式见append.cc数统计,输出格式见sampleon(16)Current : numInputC语言的输入输出被禁用。points.endl;staticvoid输入的第一个整数n,表示用n组测试样例。每组测试输入两个实数,分别为实部和虚部。Sample InputshowSumOfP
6、oint()coutsetprecOutput1,2ision(16)In total : sum每组测试数据对应一组输出,两组输出之间用3,3points.acb)=In total : 6 points.CREATE(): 10 0PRINT(): (10, 0i)endl;CREATE(): 0 0RELEASE(): 10 0 Complex real part is 10, imaginary part is 0.RELEASE(): 10 0CREATE(): 0 100Problem B:复数类的成员访问PRINT(): (0, 100i)DescriptionCREATE():
7、 0 0RELEASE(): 0 100封装一个复数类CPLX,用来处理Complex real part is 0, imaginary part is 100.复数功能和运算,支持以下操作:RELEASE(): 0 100CREATE(): 1 -11. CPLX:CPLX()构造:初始化一个PRINT(): (1, -1i)实部、虚部均为0的复数,产生CREATE(): 0 0RELEASE(): 1 -1一行以CREATE。”开始的输出,Complex real part is 1, imaginary part is -1.并输出复数的实部和虚部;RELEASE(): 1 -1CRE
8、ATE(): -7 -72. CPLX:CPLX()析构:产生一行PRINT(): (-7, -7i)以“RELEASE。”开始的输出,并输CREATE(): 0 0RELEASE(): -7 -7出复数的实部和虚部;Complex real part is -7, imaginary part is -7.#includeCPLX:real():返回实部;CPLX:imag():返回虚部。CPLX:real(double):传参修改RELEASE(): -7 -7 #include实部;#includeusing namespace std;CPLX:imag(double):传参修改#in
9、cludeclass CPLX虚部;using namespace std;private:class CPLXdouble x,y;private:public :你设计一个CPLX类,使得main()double x,y;CPLX(double xx,double yy)函数能够运行并得到正确的输public :x=xx;y=yy;出。调用格式见append.ccCPLX(doublexx=0,doublecoutCREATE(): xyx=xx;this-y=yy;coutRELEASE(): xyendl; 组测试样例。每组测试输入两个coutCREATE(): xyendl;void
10、 print()实数,分别为实部和虚部。CPLX()coutPRINT():(x,OutputcoutRELEASE(): xyendl;yi) cases;52 3double imag()return y;for(int i = 1; i a b;-7 -7;coutSample OutputCPLX& CPLX:real(double xx) x=xx;return *this;CREATE(): 0 0CPLX cplx(a, b);Complex real part is 2, imaginarycplx.print();part is 3.CPLX& CPLX:imag(doubl
11、e yy)RELEASE(): 2 3y=yy;cout = cases;上的点的坐标(x,y); m为3时后voidshowPoint()cout3DPointfor(int i = 1; i = cases; +i)面有3个浮点数x、y、z,表示(x,y,zT a b;每组测试数据对应一行输出。int main()cout若输入为平面上的点,则输出:=cases;CPLX cplx;若输入为3维的点,则输出:“3Dfor(int i = 1; i = cases; i+)cplx.real(a);Point (x,y,y)”,x、y 和 z 为输入的cplx.imag(b);坐标值。dou
12、ble x, y, z;cout Complex real part is Sample Inputint point_type;cplx.real() , imaginary part is point_type;. endl;3 1 2 3if(point_type = 2)3 0 0 0cout = xy;endl;3 -1 -1 -1Point p(x, y);)2 0 0p.showPoint();Problem A:立体空间中的点(I)Sample OutputDescription3D Point (1,2,3)if(point_type = 3)设计一个平面上的点Point类和
13、3维的点3D Point (0,0,0)Point_3D类,满足Point_3D类继承自Point类,2D Point (-1,1)cinxyz;用于读取输入的数据,输出所构造的两种点的3D Point (-1,-1,-1)Point_3D p(x, y, z);坐标。2D Point (0,0)p.showPoint();设计Point类需支持一下操作:Point:Point()无参构造。#includePoint:Point(double,double)两个坐标参数构造。using namespace std;Point:showPoint()按格式输出 Point 对象class Poi
14、nt设计Point_3D类需支持一下操作:protected:Problem A:立体空间中的点(IIPoint_3D:Point_3D()无参构造。int x,y;DescriptionPoint_3D:Point_3D(double,double,double)三个public:设计一个平面上的点 Point 类和 3 维的点坐标参数构造。Point():x(0),y(0)Point_3D类,满足Point_3D类继承自Point类,Point_3D:showPoint()按格式输出 Point_3D 对Point(doublex1,double用于读取输入的数据,输出所构造的两种点的象。
15、y1):x(x1),y(y1)坐标。并统计输入的两种点的个数。void showPoint()cout2D设计Point类需支持一下操作:PointPoint:Point()无参构造。你设计Point类和Point_3D类,使得main()函(x,yTendl;Point:Point(double,double)两个坐标参数构造。数能够正确运行。;Point:x()返回x坐标函数调用格式见append.ccoclassPoint_3D:publicPoint:y()返回y坐标append.cc中巳给出main()函数。Point /Point_3D 从 Point 中派Point:x(int)
16、修改x坐标并返回Input生Point:y(int)修改y坐标并返回Point:showPoint()按格式输出 Point 对象Sample Output构造函数初始化列表Point:showNumber()返回Point对象总数的静Invariable test output :int z()return Z;态函数3D Point (-100,0,100)int z(int zz)return Z;设计Point_3D类需支持一下操作:Point (0,100,100)voidshowPoint()cout3DPointPoint_3D:Point_3D()无参构造。(X,Y,Z)end
17、l;Point_3D:Point_3D(double,double,double)三个Test data output :void setPoint(double xx,double yy,double坐标参数构造。3D Point (1,2,3)zz)X=xx;Y=yy;Z=zz;Point_3D:z()返回 z 坐标。3D Point (0,0,0)static int showNumber()return m;Point_3D:z(int)修改z坐标并返回。2D Point (-1,1);Point_3D:showPoint()按格式输出 Point_3D 对3D Point (-1,-
18、1,-1)int Point:n=0;象。2D Point (0,0)int Point:m=0;Point_3D:setPoint(double,double,double)根据Number of 2D Points : 2三个坐标参数修改Point_3D对象的坐标。Number of 3D Points : 3Point_3D:showNumber()返回 Point_3D 对象总int main()数的静态函数。#includeusing namespace std;coutInvariable test output :endl;class PointPoint_3D p3d;你设计P
19、oint类和Point_3D类,使得main()函protected:p3d.setPoint(-100, 0, 100);数能够正确运行。int X,Y;p3d.showPoint();函数调用格式见append.ccostatic int n;p3d.x(0);append.cc中巳给出main()函数。static int m; /n,m 被初始化为p3d.y(100);Input0coutPoint输入的第一个整数n,表示有n组测试数据,public:(p3d.x(),“p3d.y(),“p3d.z()“后面的输入每行为一组测试数据。每组测试数Point():X(0),Y(0)n+;/
20、 无endl;据的第一行是一个整数m,m有两种取值:2、参构造coutnTest data output :cases;3个浮点数x、y、z,表示一个3维的点的坐标int x()return X;for(int i = 1; i point_type;data output :”之后为测试数据对应的输出:n;if(point_type = 2)每组测试数据对应一行输出。void showPoint()coutxy;x和y为输入的坐标值。(X,YTxyz;5int Z;Point_3D p(x, y, z);3 1 2 3public:p.showPoint();3 0 0 0Point_3D(
21、):Z(0)m+;2 -1 1Point_3D(doublexx,double3 -1 -1 -1yy,doublecoutNumber of 2D Points :2 0 0zz):Point(xx,yy),Z(zz)m+; /Point:showNumber()-Point_3D:showNumber()endl;classDerived:publicSample InputcoutNumber of 3D Points :Base/Derived 从 Base 中Jerry mPoint_3D:showNumber() - 1endl;派生Jemmy f)public:Tom mint
22、b;Droopy mProblem B:还会用继承吗?Derived(intSample OutputDescriptiont):Base(t)coutDerived=我叫Jerry,是一只男老鼠,我的叫声是:吱吱定义一个Base类,包括1个int类型的属性,b is created.endl;吱!以及满足输出格式要求的构造函数、拷贝构造Derived()coutDerived我叫Jemmy,是一只女老鼠,我的叫声是:吱函数和析构函数。=b is erased.endl;吱吱!定义Base类的子类Derived,包括1个int类析构函数我叫Tom,是一只男猫,我的叫声是:喵喵喵!型的属性, 以
23、及满足输出格式要求的构造函Derived(const Derived&我叫Droopy,是一条男狗,我的叫声是:汪汪数、拷贝构造函数和析构函数。d):Base(d),b(d.b)coutDerive汪!Inputd = b is copied.endl;#include第1行N0表示测试用例个数。Derived(intx,intusing namespace std;每个测试包括2个int类型的整数。y):Base(x),b(y)coutDerived =class AnimalOutput“b is created.cases;public AnimalBase = 10 is copied
24、.for (int i = 0; i data1data2;char sex;Base = 10 is copied.Base base1(data1),Mouse(stringn,charDerived = 20 is copied.base2(base1);m)name=n;sex=m;if(sex=m) cout我叫Derived = 20 is ”,是一只男老鼠,;else coutBase = 10 is erased.Derived derived1(data1,我叫name,是一只女老鼠,;Derived = 20 is erased.data2), der
25、ived2(derived1);void cry()cout我的叫声是:吱吱吱!Base = 10 is erased.endl;Base = 10 is erased.;分号必不可少Base = 10 is erased.Problem A:动物类抽象类class Dog:Descriptionpublic Animal#include每种动物都有自己的叫声,如狗public:using namespace std;的叫声是汪汪汪,猫的叫声是string name;class Base喵喵喵,老鼠的叫声是吱吱吱。char sex;public:构造类 Animal,Dog,Cat,Mouse
26、,Dog(stringn,charint a;他们都有成员数据name和sex,m)name=n;sex=m;if(sex=m) cout我叫Base(int t):a(t)coutBase = a is表示名字和性别。一个成员函数name,是一条男狗,;else cout我created.endl;拷贝构造函数cry(),输出他们的叫声,在main叫name”,是一条女狗,;Base()coutBase =a is函数中采用多态性调用他们。void cry()cout我的叫声是:汪汪汪!erased.endl;析构函数Inputendl;Base(const Base& b)a=b.a;co
27、utBase =动物的姓名和性别; /分号必小可少a is copied.endl;Outputclass Cat:;动物的信息public Animalpublic:坐标和y坐标,x和y的值都在(setprecision(16)x_,string name;double数据范围内。setprecision(16)y_)ischar sex;Outputcreated.endl;Cat(stringn,char输出每个Point对象的构造和析m)(name=n;sex=m;if(sex=m) cout我 叫构行为。对每个Point对象,调Point(double xx=0)name,是一只男猫
28、,;else cout我用show()方法输出其值:X坐标叫name,是一只女猫,;在前,Y坐标在后,Y坐标前面x_=y_=xx;void cry()(cout我的叫声是:喵喵喵!多输出一个空格。每个坐标的输coutPointendl;出精度为最长16位。输出格式(setprecision(16)x_,;分号必不可少见 sample。C语言的输入输出被禁用。setprecision(16)y_)iscreated.endl;int main( )Sample Input(1,2void show()string nam;3,3char s;2,1coutnams;Sample Output(s
29、etprecision(16)x_,Animal *p;Point : (0, 0) is created.setprecision(16)y_)cry();Point : (1, 2) is erased.Point(Point &p)cinnams;Point : (3, 3) is created.Mouse m2(nam, s);Point : (3, 3)x_=p.x_;y_=p.y_;p=&m2;Point : (3, 3) is erased.coutcry();Point : (2, 1) is created.(setprecision(16)x_nams;Point : (
30、2, 1)setprecision(16)y_)isCat c1(nam, s);Point : (2, 1) is erased.copied.cry();Point : (1, 1) is created.Point();cinnams;Point : (0, 0);Dog d1(nam, s);Point : (1, 1)Point:Point()p=&d1;Point : (0, 0)p-cry();Point : (1, 1) is erased.coutPointreturn 0;Point : (0, 0) is erased.(setprecision(16)x_,Point
31、: (0, 0) is erased.setprecision(16)y_)iserased.“endl;Problem B:平面上的点oint类(II)#include;Description#includeint main()在数学上,平面直角坐标系上的点用X轴和Yusing namespace std;轴上的两个坐标值唯一确定。现在我们封装一class Point char c;个“Point类来实现平面上的点的操作。private:double a, b;根据“append.cc”,完成Point类的构造方法和double x_,y_;Point q;show()方法,输出各Point
32、对象的构造和析构public:while(std:cinacb)次序。Point(double xx,double yy)接口描述:Point p(a, b);Point:show()方法:按输出格式输出Point对象。x_=xx;p.show();Inputy_=yy;输入多行,每行为一组坐标“x,y”,表示点的xcoutPointPoint q1(q), q2(1);q1.show();q2.show();Point : (2, 1) is created.(setprecision(16)x,setprecision(16)y)isPoint : (2, 1) is copied.q.s
33、how();)Point : (2, 1)Point : (2, 1) is erased.copied.endl;Problem C:平面上的点Point 类(III)Point : (2, 1) is erased.Point()/析 构函数DescriptionPoint : (0, 0) is copied.在数学上,平面直角坐标系上的点用XPoint : (1, 1) is created.coutPoint:轴和Y轴上的两个坐标值唯一确定。现Point : (0, 0) is copied.(setprecision(16)x,在我们封装一个“Point类”来实现平面Point :
34、 (1, 1) is copied.setprecision(16)y)is上的点的操作。Point : (0, 0) is copied.erased.endl;根据“append.cc”,完成Point类的构造Point : (0, 0);方法和show()方法,输出各Point对象Point : (1, 1)Point:Point(double xx,double yy) 的构造和析构次序。实现showPoint()函 数。Point : (0, 0)Point : (0, 0) is erased.x=xx;y=yy;coutPoint:接口描述:Point : (1, 1) is e
35、rased.(setprecision(16)x,showPoint()函数按输出格式输出PointPoint : (0, 0) is erased.setprecision(16)y)is对象,调用Point:show()方法实现。Point : (1, 1) is erased.created.endl;Point:show()方法:按输出格式输出Point : (0, 0) is erased.Point对象。InputPoint : (0, 0) is erased.void showPoint(Point p) p.show();输入多行,每行为一组坐标“x,y”,表示#includevoid showPoint(Point q1,Point q2,Point q)点的x坐标和y坐标,x和y的值都在#includeq1.show();q2.show();q.show();double数据范围内。using namespace std;int main()Outputclass Point输出每个Point对象的构造和析构行为。private:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋建筑工程清包合同格式
- 集资房指标转让协议书
- 婚前购房协议书范本
- 技术合作三方协议
- 国际快递服务协议范本
- 2024年购车借款协议书范本
- 股权分红协议书模板
- 二手购房合同协议范本
- 正规汽车租赁合同文本
- 2024年模范委托付款协议书
- 坐标纸(网格型坐标纸-直接打印即可)
- 占比分析类PPT模板
- GB/T 21633-2020掺混肥料(BB肥)
- GB/T 21435-2008相变加热炉
- 河南省洛阳市《综合能力测试》事业单位国考真题
- 智慧消防整体解决方案消防大数据一体化管理平台解课件
- 《推窗风来》中考语文作文优秀6篇
- 腹部血管疾病的超声诊断课件整理
- 《客源国概论》期末考试题
- 公司吸烟管理规定范文
- 《江苏省建筑业10项新技术(2021)》
评论
0/150
提交评论