• 86.50 KB
  • 2022-04-22 11:21:47 发布

面向对象程序设计作业参考答案.doc

  • 14页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'习题一5、分析下面程序运行的结果。#usingnamespacestd;intmain(){cout<<”This”<<”is”;cout<<”a”<<”C++”;cout<<”program.”<usingnamespacestd;intmain(){inta,b,c;a=10;b=23;c=a+b;cout<<"a+b=";cout<usingnamespacestd;intmain(){inta,b;a=b=0;intc=a+b;cout<<”a+b=”<usingnamespacestd;intadd(intx,inty);intmain(){inta=0,b=0;intc=add(a,b);cout<<"a+b="<usingnamespacestd;classTime{public:voidset_time(void);voidshow_time(void);private:inthour;intminute;intsec;};Timet;intmain(){t.set_time();t.show_time();return0;}voidTime::set_time(void){cin>>hour;cin>>minute;cin>>sec;}voidTime::show_time(void){cout<usingnamespacestd;classCuboid{public:voidSetValue(){for(inti=0;i<3;i++){cin>>length[i];cin>>width[i];cin>>height[i];}}voidcalArea(){for(inti=0;i<3;i++){area[i]=length[i]*width[i]*height[i];}}voidshowArea(){calArea();for(inti=0;i<3;i++){cout<<"长方柱"<usingnamespacestd;classDate{public:Date(intm,intd,inty):month(m),day(d),year(y){}Date(intm,intd):month(m),day(d){year=2005;}Date(intm):month(m){day=1;year=2005;}Date(){month=1;day=1;year=2005;}voiddisplay(){cout<usingnamespacestd;classStudent{public:Student(intn,floats):num(n),score(s){}voiddisplay(){cout<display();ps++;ps++;ps->display();ps++;ps++;ps->display();return0;}6、阅读下面的程序,分析其执行结果,写出输入结果。#includeusingnamespacestd;classStudent{public:Student(intn,floats):num(n),score(s){}voidchange(intn,floats){num=n;score=s;}voiddisplay(){cout<display();p->change(101,80.5);p->display();return0;}其他部分仍同第6题的程序。(4)在(3)的基础上将main函数改为constStudent*p=&stud;答:有错误。p指针是个常量指针,指向的是一个常对象,故而解决的办法同题(2)。(5)在把main函数第3行改为Student*constp=&stud;答:没有错误。p指针是个指针常量,指向stud以后不能再指向其他对象。 习题四1、定义一个复数类Complex,重载运算符“+”、“=”,“*”,“、”,使之能进行复数的加、减、乘、除。运算符重载函数作为Complex类得成员函数。编程序,分别求两个复数之和、差、积和商。#include#includeusingnamespacestd;classComplex{public:Complex(doubler=0,doublei=0);Complexoperator+(constComplex&c);Complexoperator-(constComplex&c);Complexoperator*(constComplex&c);Complexoperator/(constComplex&c);voidprint()const;private:doublereal,imag;};Complex::Complex(doubler,doublei){real=r;imag=i;}ComplexComplex::operator+(constComplex&c){doubler=real+c.real;doublei=imag+c.imag;returnComplex(r,i);}ComplexComplex::operator-(constComplex&c){doubler=real-c.real;doublei=imag-c.imag;returnComplex(r,i);}ComplexComplex::operator*(constComplex&c){doubler=real*c.real-imag*c.imag;doublei=real*c.imag+imag*c.real;returnComplex(r,i);}ComplexComplex::operator/(constComplex&c){doublet=pow(c.imag,2)+pow(c.real,2);doubler=real*c.real+imag*c.imag;doublei=imag*c.real-real*c.imag;returnComplex(r/t,i/t);} voidComplex::print()const{cout<<"("<usingnamespacestd;classA{public:A(){a=0;b=0;}A(inti){a=i;b=0;}A(inti,intj){a=i;b=j;}voiddisplay(){cout<<"a="<#includeusingnamespacestd;classA{public:A(){cout<<"constrctingA"<usingnamespacestd;///基类ShapeclassShape{public:voidvirtualprintArea()=0;//纯虚函数};//派生类CircleclassCircle:publicShape{public:Circle(doubler=0):radius(r){}//构造函数voidprintArea(){cout<<3.14159*radius*radius<printArea();s=&rectangle;s->printArea();s=▵s->printArea();return0;} '