《2022年面向对象程序设计 2.docx》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计 2.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品_精品资料_系领导审批并签名A / B 卷广州高校 20222022学年第一学期考试卷课程面对对象程序设计考试形式(闭卷,考试)学院系专业班级学号姓名题次一二三四五六七八九十总分 评卷人分数20204020100评分一、 填空题( 20 分)1、是特别的成员函数,在创建和初始化对象时调用.2、是局部于类的成员,它供应一种同类对象的 机制.3、 运算符重载的作用是使运算符可以操作自定义的,但重载后运算符原有的 不变.4、 派生类不能拜访基类的成员,但可以拜访基类的公有成员和成员.5、 具有的类称为抽象类.6、Windows 应用程序是靠 来驱动的,其主函数的主要任务是对窗口进行初始化工作和
2、.7、MFC 是用消息映射表来实现消息与之间的映射的,MFC 通过个宏来声明和实现消息映射表.8、在文档 /视图结构的框架中,视图类类的对象用来显示数据并接受用户操作.文档类 对象的作用是储备和治理数据.9、CPaintDC 是 类中最常用的派生类,它只能使用在CView 类的 函数中.可编辑资料 - - - 欢迎下载精品_精品资料_10、 消息 WM_MOUSEMOVE的消息响应函数的函数名为 .11、 资源是供 Windows 应用程序使用的特别数据,它们驻留在硬盘上的 中.常用的资源有菜单、快捷键、 、位图等.12、 内存中的对象可以以文件的形式储备在永久性储备介质中,而当应用程序再把它
3、从永久性储备介质读入后,该对象能复原为原先的状态,就该对象称之为 .二、简述题( 20 分,每题 5 分)( 1)简述构成文档 / 视图结构应用程序框架的4 个 MFC派生类,并说出它们的功能.( 2 )为什么拆分窗口的显示更新必需要同步?文档类的成员函数Update All Views 的作用是什么?( 3)怎样才能使控件成为窗口的子窗口并且在窗口中可见?按钮控件能制造哪三种不同的形式?可编辑资料 - - - 欢迎下载精品_精品资料_4 如何把绘图工具载入设备描述环境进行绘画?请以画笔为例写出执行步骤.三、阅读以下程序,写出执行结果.(40 分,每题 5 分)1、#include class
4、 Abcpublic:Abc a=0 . b=0.c=0 .Abcint i,int j,int ka=i. b=j .c=k .void getint&i,int&j,int&ki=a.j=b .k=c.Abc operator * Abc obj.private:int a,b,c . .AbcAbc:operator * Abc objAbc tempobj .tempobj.a=a*obj.a .tempobj.b=b*obj.b .tempobj.c=c*obj.c .return tempobj .可编辑资料 - - - 欢迎下载精品_精品资料_void main Abc obj1
5、1,2,3,obj25,5,5,obj3.int a,b,c.obj3=obj1*obj2 .obj3.geta,b,c .cout ”obj1*obj2:t ” ”a=”a t ”b=”b t ”c=”c tendl . obj2 * obj3.geta,b,c .cout ”obj2*obj3:t ” ”a=”a t ”b=”b t ”c=”c tendl .2、#include class BASE1public:BASE1int icout”调用基类 BASE1 的构造函数 :”iendl . .class BASE2public:BASE2int jcout”调用基类 BASE2 的
6、构造函数 :”jendl . .class A: public BASE1, public BASE2public:Aint a,int b,int c,int d: BASE2b, BASE1c, b2a,b1dcout ”调用派生类 A 的构造函数. ”a+b+c+dendl . private:BASE1 b1 .BASE2 b2 . .void main A ojb11,22,33,44 .3、#include template 可编辑资料 - - - 欢迎下载精品_精品资料_void funT&x,T&yT temp .temp=x .x=y . y=temp.void fundou
7、ble x, int ydouble temp .temp=x . x=y . y=temp .void main int i,j .i=30 .j=10 .funi,j .cout ”=i”i t ”j= ”jendl .double a,b.a=1.23.b=3.21.funa,b .cout ”a=”a t ”b=”bendl .double m=10 . int n=30 .funm,n .cout ”m= ”m t ”n=”nendl .4、#include void main double x=123.456 .cout.width10 .cout.setfios:dec,ios:
8、basefield .coutxendl .cout.setfios:left .coutxendl .cout.width15 .cout.setfios:right,ios:left . coutxendl .cout.setfios:showpos .coutxendl .cout-xendl .cout.setfios:scientific .coutxendl .5、#include enum BREED GOLDEN, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB .可编辑资料 - - - 欢迎下载精品_精品资料_class Mammalpublic
9、:Mammal:itsAge2, itsWeight5/ constructorsMammalint GetAge const return itsAge . void SetAgeint age itsAge = age . int GetWeight const return itsWeight. void SetWeightint weight itsWeight = weight. void Speakconst cout Mammal sound.n. void Sleepconst cout shhh. Im sleeping.n. protected:int itsAge .in
10、t itsWeight . .class Dog : public Mammalpublic:Dog:itsBreedGOLDENDogBREED GetBreed const return itsBreed. void SetBreedBREED breed itsBreed = breed. void WagTail const cout Tail wagging.n. void BegForFood const cout Begging for food.n. private:BREED itsBreed . .int mainDog fido .fido.Speak .fido.Wag
11、Tail .cout Fido is fido.GetAge years oldn.return 0.6、#include class Base可编辑资料 - - - 欢迎下载精品_精品资料_public: void whocout”Base class”endl . .class Derived1: public Basepublic: void whocout”Derived1 class ”endl. .class derived2: public Basepublic: void whocout”Derived2 class ”who .P=&obj2 . p-who .P=&obj3
12、 . p-who .Obj1.who . Obj2.who . Obj3.who .7、#include class example private:int date. static int count.public:exampleint y=10:datey cout” date= ”dateendl .Count+ .static int displayreturn count. .int example:count=0.void mainexample e1. example e220.coute1.Displayendl.coute2.Displayendl.coutexample:D
13、isplayendl.8、指出以下程序中的错误,并说明理由#include可编辑资料 - - - 欢迎下载精品_精品资料_class Student public:void Student.void Displaycinnamenumber .cout 姓名name学号 numberendl . private:char *name=noname.int number=0. .四、编程题:( 20 分,每题 10 分)1、 编写一个程序,实现小型公司的工资治理.该公司主要有4 类人员:经理、兼职技术人员、销售员和销售经理.要求储备这些人员的编号、姓名和月工资,运算月工资并显示全部信息.月工资运
14、算方法是:经理拿固定月薪8000 元, 兼职技术人员按每小时100 元领取月薪,销售员按当月销售额的4%提成,销售经理既拿固定月工资又拿销售提成,固定月工资为5000 元,销售提成为所管部门当月销售总额的0.5% .要求补充未完成的代码,使其成为一个完整的程序.#include class Employeepublic:employeecoutnoname .salary=0 .void Pay void DisplayProtected:Int no . char name10 . float salary . .Class technician: public Employee/ 派生技术
15、人员 public:可编辑资料 - - - 欢迎下载精品_精品资料_Technician hourlyrate=100.0 .void Paycoutnameworkhours .salary=hourlyrate*workhours.void Displaycout ”兼 职 技 术 人 员 ”name ” 编 号 为 ”no ”本 月 工资: ”salaryendl .private:/ 补充下面内容 .Class Saleman: public Employee/ 派生销售员类 public:Salesman commrate=0.04f ./ 销售提成比例void Pay coutna
16、me ”本月销售额: ”. /补充下面内容void Displaycout ” 销 售 员 ”name ”编 号 为 ”no ” 本 月 工资: ”salaryendl .Protected:Float commrate. sales. .Class Manager: virtual public Employee public:Manager /补充函数体内容可编辑资料 - - - 欢迎下载精品_精品资料_Void Pay/ 补充函数体内容void Displaycout ” 经 理 ”name ”编 号 为 ”no ” 本 月 工资: ”salaryendl .Protected:floa
17、t monthlypay . .Class SalesManager:/补充此处类的内容 .void main manager m1 . Technician t1 . Salesman s1. Salesmanager sm1.可编辑资料 - - - 欢迎下载精品_精品资料_m1.pay . m1.display . t1.pay. t1.display .s1.pay. s1.display . sm1.pay. sm1.display .2、 定义一个时间类Time,能供应和设置由时、分、秒组成的时间,并编出应用程序,要求包括定义时间对象,设置时间,运行时间上加1 秒的操作,输出该对象的时间,输出格式为:AM (例如: 11:20: 15AM ,上午 11 时 20 分 15 秒)可编辑资料 - - - 欢迎下载