欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    面向对象程序设计作业题.doc

    • 资源ID:50967441       资源大小:36KB        全文页数:8页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象程序设计作业题.doc

    东北农业大学网络教育学院面向对象程序设计作业题(一)1  述什么是类,并举例说明。   2  简述什么是对象,并举例说明。   3  简述C+中类的成员函数的三种访问方法。   4阅读程序,简洁回答有关问题:程序:# include <iostream.h> /(1)# include <math.h> /(2)class point /(3) private: /(4) float X,Y; /(5) public: /(6) point (float xi, float yi ) X=xi ,Y=yi; /(7) float GetX() return X / (8) float GetY() return Y / (9) friend float distance (point & a ,point & b); / (10); /(11)void main () /(12) point pl (3.5,5.5), p2 (4.5,6.5); /(13) float d = distance (p1, p2); /(14) cout << “The distance is ” << d; /(15)float distance (point & a ,point & b) /(16) float dx = a.X b.X; /(17) float dy = a.Y b.Y; / (18) return sqrt ( dx * dx + dy * dy ); / (19)问题:1)第(10)行的作用,有什么特点?2) 如果把它改写成这个类的成员函数,应该怎样改?         4  创建一个Employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。把表示构造函数、ChangeName() 、Display()的函数原型放在类定义中,构造函数初始化每个成员,Display()函数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。(教材C+程序设计教程(钱能 著) 第289页 第12.2题)面向对象程序设计作业题(二) 1 文件包含预编译指令#include ,有那两种格式,它们有什么区别?    2 类的派生方式共有几种,基类成员权限在派生类中的权限怎样变化?    3 述面向对象程序设计方法相对于面向过程的程序设计方法的优越性。    4 阅读程序,简洁回答有关问题:程序:   # include <iostream.h>                      / (1)   class Clock             public:     Clock (int H=0,int M=0, int S=0)         / (2)        Hour=H ;Minute=M ;Second=S;     / (3)      Clock ( Clock & c)                  / (4)        Hour=c.Hour;Minute=c.Minute;Second=c.Second;/ (5)      void SetTime (int H=0,int M=0,int S=0)             / (6)        Hour=H ;Minute=M ;Second=S;               / (7)      void ShowTime ()                               / (8)        cout <<Hour<< “:” <<Minute<< “:” <<Second <<endl;   / (9)      Clock ()                                         / (10)private:    int Hour , Minute , Second;                               / (11);void main( void )    Clock meClock (8,30,0);                                   / (12)    MeClock.ShowTime ( );                                    / (13)    Clock yourClock (meClock);                                / (14)    yourClock.SetTime ( );                                     / (15)     yourClock.ShowTime( );                                   / (16)问题:1)指出Clock类的外部接口的行号。2)指出Clock类的构造函数和拷贝构造函数以及析构函数所在行号。3)执行那行语句时系统自动调用了构造函数并写出被初始化的对象名。4)执行那行语句时系统调用了拷贝构造函数并写出被初始化的对象名。写出程序的运行结果。5 修改练习12.2种的类,将姓名构成类Name,其名和姓在该类中为保护数据成员,其构造函数为接收一个指向完整姓名字符串的指针,其Display()函数输出姓名。然后将Employee类中的姓名成员(字符数组)换成Name类对象。将所有原型化的函数加上成员函数定义,作为类的内部实现文件。构成完整的类库定义,要求类定义与类的成员函数定义分开。(教材C+程序设计教程(钱能 著) 第289页 第12.3题。) 面向对象程序设计作业题(三)1简述C中结构与C+中类的区别。   2简述C+中类的成员函数的三种访问方法。   3简述类和对象的区别与联系并举例说明。   4 阅读程序,简洁回答有关问题:程序: #include <iostream.h>#include <math.h>class Pointpublic: void Set(double ix,double iy) /设置坐标 x=ix; y=iy; double xOffset() /取y轴坐标分量 return x; double yOffset() /取x轴坐标分量 return y; double angle() /取点的极坐标 return (180/3.14159)*atan2(y,x); double radius() /取点的极坐标半径 return sqrt(x*x+y*y); protected: double x; /x轴分量 double y; /y轴分量;void main() Point p; double x,y; for(;) /重复输入x和y轴分量,直到x分量值小于0 cout <<"Enter x and y:n" cin >>x >>y; if(x<0) break; p.Set(x,y); cout <<"angle=" <<p.angle() <<",radius=" <<p.radius() <<",x offset=" <<p.xOffset() <<",y offset=" <<p.yOffset() <<endl; 问题:根据类的封装性,不改变该类的公有接口,不改写主函数的情况下,只改变该点类的定义与实现,要求把原有点类的私有成员x,y改写成另外两个私有数据成员a,r分别代表该点在极坐标系下的弧度值和半径值。请写出修改后的类的定义与实现。        5写出下面程序的运行结果,请用增加拷贝构造函数的方法避免存在的问题。#include <iostream.h> class Vectorpublic: Vector(int s=100); int& Elem(int ndx); void Display(); void Set(); Vector();protected: int size; int* buffer; Vector:Vector(int s) buffer=new intsize=s; for(int i=0; i<size; i+) bufferi=i*i; int& Vector:Elem(int ndx) if(ndx<0|ndx>=size) cout <<"error in index" <<endl; exit(1); return bufferndx; void Vector:Display() for(int j=0; j<size; j+) cout <<bufferj <<endl; void Vector:Set() for(int j=0; j<size; j+) bufferj=j+1; Vector:Vector() deletebuffer;  void main() Vector a(10); Vector b(a); a.Set(); b.Display();教材C+程序设计教程(钱能 著) 第329页 第14.2题。面向对象程序设计作业题(四) 1.简述C+程序在内存中的分配格局。   2.简述 C和C+动态内存的使用。   3.简述什么是浅拷贝和深拷贝。   4.阅读程序,简洁回答有关问题:程序:#include <iostream.h>class complex private:   int real ; int imag ; public: complex(float r=0,float i=0);complex operator + (complex& c);complex operator - (complex& c);complex operator - ( ); void print( );complex:complex(float r=0,float i=0)real=r; imag=i complex complex:operator + (complex& c)float r= real + c.real ;float i= imag + c.imag ;return complex(r ,i );complex complex:operator - (complex& c)float r= real - c.real ;float i= imag - c.imag ;return complex(r ,i );complex operator - ( )return complex(-real,-img);void complex:print( )cout<<"("<<real<<","<<imag<<")"<<endl;void main()complex x(2.5,3.8),y(4.7,5.4),z;z=x+y; z.print();z=x-y; z.print();z=-x; z.print();问题:本例是使用类的成员函数来实现复数类的运算符重载,请在不改变主函数的情况下,采用友元的形式来实现复数类的运算符重载。写出相应的程序。5重新编写下述程序,使函数Leisure()成为类Car和类Boat的函数。作为重新变成,在类Car和类Boat中,增加函数get() #include <iostream.h> class Boat; class Carpublic: Car(int j) size =j;  Friend int Leisure(int time,car&aobj,Boat&bobj);Protected: int size; int Leisure(int time, Car& aobj, Boat& bobj) return time * aobj.size*bobj.size; void main() Car c1(2); Boat b1(3); int time =4; cout <<Leisure(time,c1,b1);教材C+程序设计教程(钱能 著) 第348页 第15.3题。面向对象程序设计作业题(五)1.简述静态成员函数与一般成员函数的主要差别。    2.简述什么是先期联编,什么是迟后联编。    3.简述多继承中构造函数被调用顺序。   4. 阅读程序,简洁回答有关问题:下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生梯形类(trapezoid)、圆形类(circle),并给出具体的求面积函数 class shape public: virtual float area( )=0 ; float total(shape *s ,int n) float sum=0.0; for(int i=0;i<n;i+) sum+=si->area( ); return sum; 5根据16.12(类的分解) 节中所定义的Account类、Savings类和Checking类,编写一个应用程序,它取出一系列账号的存款,直到碰到一个标志结束的符号。要求程序用多态的方法实现,并输出取出的账号和金额数。(教材C+程序设计教程(钱能 著) 第380页 第16.2题。)

    注意事项

    本文(面向对象程序设计作业题.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开