收藏 分销(赏)

2023年面向对象程序设计资料.doc

上传人:二*** 文档编号:4745563 上传时间:2024-10-11 格式:DOC 页数:13 大小:44.54KB
下载 相关 举报
2023年面向对象程序设计资料.doc_第1页
第1页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、系领导审批并署名A / B卷广州大学 20232023 学年第 一 学期考试卷课程 面向对象程序设计 考试形式(闭卷,考试)学院 系 专业 班级 学号 姓名 题次一二三四五六七八九十总分评卷人分数20204020100评分一、 填空题(20分)1、 _ _是特殊的成员函数,在对象作用域结束时自动调用。2、 友元关系是非传递的和_ _,除非特别声明,否则,通常情况下若F是A的友元,A_ _F的友元。3、 运算符函数既可以重载为_ _函数,也可以重载为友元函数。4、 在具有继承关系的类层次结构中,构造函数的执行顺序是:_ _、_ _ _、 。5、 具有纯虚函数的类称为_ _。6、 Windows应

2、用程序的主窗口一般都是_ _类的派生类,而窗口函数则被封装到_ _类中。7、 MFC是用消息映射表来实现消息与 _之间的映射的,MFC通过_ _ _个宏来声明和实现消息映射表。8、 MFC采用 结构来实现数据和数据显示的分离。应用程序的数据是由文档类_ _对象来存储和管理。9、 CPaintDC是_ _类中最常用的派生类,它只能使用在 _ _类的OnDraw函数中。10、 消息 的消息响应函数的函数名为OnMouseMove。11、 是供Windows应用程序使用的特殊数据,它们驻留在硬盘上的可执行文献中。常用的资源有 、快捷键、图标、位图等。12、 _ _就是指应用程序把数据对象以文献的形式

3、写入永久性存储体后,应用程序还能从永久性存储体来读取它,并且可以依据该文献在内存中重新创建该对象的机制。二、简述题(20分,每题5分)(1)Windows应用程序的主函数有哪3个重要任务? 什么是消息循环?(2)简述文档/视图结构中文档类和视图类的作用。并说明在文档/视图结构的应用程序中,视图类的对象是如何来获取文档类对象中的数据的。(3)应用程序的界面有哪三种方式?分别说明该界面应用程序的外观。 (4) 鼠标消息分为哪两类?它们之间有什么区别?三、阅读下列程序,写出执行结果。(40分,每题5分) 1、#includeclass counter public : void setnum ( i

4、nt i ) num = i ; void shownum ( ) cout num t ; static int num ; ;int counter : num = 1 ;void main() int i ; for( i = 0 ; i 5 ; i + ) counter:num += i ; cout counter:num t ; coutendl;2、#include class Apublic: A()a=5; void printa()coutA:a=aendl;private: int a; friend class B;class Bpublic: void displa

5、y1(A t)t.a+; coutdisplay1:a=t.aendl; void display2(A t)t.a-; coutdisplay2:a=t.aendl;void main() A obj1; B obj2; obj1.printa(); obj2.display1(obj1); obj2.display2(obj1); obj1.printa();3、#include template class base public: base(T i,T j)x=i; y=j; T sum()return x+y; private: T x,y; ;void main( ) base o

6、bj2(3.3,5.5); coutobj2.sum()endl; base obj1(3,5); coutobj1.sum()endl; 4、#includeclass Base public: void abc()coutBase classendl;class Derived1: public Base public: void abc()coutDerived1 classendl;class Derived2: public Base public: void abc()coutDerived2 classabc();p=&obj2; p-abc();p=&obj3; p-abc()

7、;obj1.abc(); obj2.abc(); obj3.abc();5、#include class parent_class int private1 , private2 ; public : parent_class ( int p1 , int p2 ) private1 = p1; private2 = p2; int inc1 () return + private1; int inc2 () return + private2 ; void display () cout private1= private1 , private2= private2 endl ; ;clas

8、s derived_class : private parent_class int private3 ; parent_class private4 ; public: derived_class ( int p1 , int p2 , int p3 , int p4 , int p5 ): parent_class ( p1 , p2 ) , private4 ( p3 , p4 ) private3 = p5 ; int inc1 ( ) return parent_class : inc1 ( ) ; int inc3 ( ) return + private3 ; void disp

9、lay ( ) parent_class : display ( ) ; private4.display ( ) ; cout private3= private3 endl ; ;void main ( ) derived_class d1 ( 17 , 18 , 1 , 2 , -5 ) ; d1 . inc1 ( ) ; d1 . display ( ) ; 6、#includeclass Apublic : A(int n) i=n ; cout“初始化i的值为:”get_i()n; A() cout“释放A的对象。”n ; int get_i () return i ; priva

10、te : int i ; ;class B : public A public : B(int n, int m) : A(n)j=m ; cout“初始化j的值为:”get_j()n ; B()cout“释放B的对象。”n ; int get_j () return j ; private : int j ; ;void main()B obj (1,2) ;cout“创建了一个B的对象。值为: ”obj.get_i()“ ”obj.get_j()n ; 7、#includeclass A public:virtual void act1();void act2() act1();void

11、A:act1()coutA:act1() called. endl;class B : public Apublic:void act1();void B:act1()coutB:act1() called. endl;void main()B b; b.act2();8、指出下列程序中的错误,并说明理由class COMPLEX public : COMPLEX(double r=0, double i=0) ; COMPLEX operator-(const COMPLEX & other) ; COMPLEX operator=(const COMPLEX & other) ;priva

12、te : double real=0, image=0 ;void main()float x ; COMPLEX y (10,20), z (2,3), sum ; sum= x-y ; sum=sum-z ; sum- ;四、编程题:(20分,每题10分)1使用虚函数编程求球体和圆柱体的体积及表面积。由于球体和圆柱体都可以看作由圆继承而来,所以可以定义圆类circle 作为基类。在 circle 类中定义一个数据成员 radius 和两个虚函数area( ) 和 volume( ) 。由circle 类派生 sphere 类和 column 类。在派生类中对虚函数 area( ) 和 vl

13、ume( ) 重新定义,分别求球体和圆柱体的体积及表面积。补充指定部分。#includeconst double PI=3.14;class circlepublic:circle(double r)radius=r; /补充此处protected:double radius;class sphere:public circlepublic:sphere(double r):circle(r)double area()return 4.0*PI*radius*radius;double volume()return 4.0*PI*radius*radius*radius/3.0;class column: public circle /补充此处 ;void main()int a,b,c; circle *p; cout输入球体半径a; sphere sobj(a); p=&sobj; cout球体的体积= /补充此处 cout球体的表面积 /补充此处 cout输入圆柱体的半径,高bc; column cobj(b,c); p=&cobj; cout圆柱体的体积=volume()endl; cout圆柱体的表面积=area()endl;2使用成员函数或友员函数编程序重载运算符“+”,使该运算符能实现两个字符串的连接。

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服