收藏 分销(赏)

2024年面向对象程序设计文档.doc

上传人:精**** 文档编号:8186370 上传时间:2025-02-07 格式:DOC 页数:11 大小:44.04KB 下载积分:8 金币
下载 相关 举报
2024年面向对象程序设计文档.doc_第1页
第1页 / 共11页
2024年面向对象程序设计文档.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
系领导 审批并署名 A / B卷 广州大学 ~ 年第 一 学期考试卷 课程 面对对象程序设计 考试形式(闭卷,考试) 学院 系 专业 班级 学号 姓名 题次 一 二 三 四 五 六 七 八 九 十 总分 评卷人 分数 20 20 40 20 100 评分 一、 填空题(20分) 1、 __ ___是特殊的组员函数,在创建和初始化对象时调用。 2、 _ ____是局部于类的组员,它提供一个同类对象的__ ___机制。 3、 运算符重载的作用是使运算符能够操作自定义的_ __,但重载后运算符原有的 _ _不变。 4、 派生类不能访问基类的_ __组员,但能够访问基类的公有组员和_ __组员。 5、 具备__ ___的类称为抽象类。 6、 Windows应用程序是靠_ _来驱动的,其主函数的重要任务是对窗口进行初始化工作和_ __。 7、 MFC是用消息映射表来实现消息与 ___之间的映射的,MFC通过_____个宏来申明和实现消息映射表。 8、 在文档/视图结构的框架中,视图类_ __类的对象用来显示数据并接收用户操作。文档类_ _对象的作用是存储和管理数据。 9、 CPaintDC是_ __类中最常用的派生类,它只能使用在CView类的_ __函数中。 10、 消息WM_MOUSEMOVE的消息响应函数的函数名为_ ___。 11、 资源是供Windows应用程序使用的特殊数据,它们驻留在硬盘上的_ _中。常用的资源有菜单、快捷键、__ ___、位图等。 12、 内存中的对象能够以文献的形式存储在永久性存储介质中,而当应用程序再把它从永久性存储介质读入后,该对象能恢复为本来的状态,则该对象称之为_ _ ___。 二、简述题(20分,每题5分) (1)简述组成文档/视图结构应用程序框架的4个MFC派生类,并说出它们的功效。 (2)为何拆分窗口的显示更新必须要同时?文档类的组员函数Update All Views的作用是什么? (3)怎样才能使控件成为窗口的子窗口并且在窗口中可见?按钮控件能创造哪三种不一样的形式? (4)怎样把绘图工具载入设备描述环境进行绘画?请以画笔为例写出执行步骤。 三、阅读下列程序,写出执行成果。(40分,每题5分) 1、#include<iostream.h> class Abc {public: Abc( ){a=0; b=0; c=0;} Abc(int i,int j,int k){a=i; b=j; c=k;} void get(int&i,int&j,int&k){i=a; j=b; k=c;} Abc operator * (Abc obj); private: int a,b,c; }; Abc Abc::operator * (Abc obj) {Abc tempobj; tempobj.a=a*obj.a; tempobj.b=b*obj.b; tempobj.c=c*obj.c; return tempobj; } void main() { Abc obj1(1,2,3),obj2(5,5,5),obj3; int a,b,c; obj3=obj1*obj2; obj3.get(a,b,c); cout<<”(obj1*obj2):\t”<<”a=”<<a<<’\t’<<”b=”<<b<<’\t’<<”c=”<<c<<’\t’<<endl; (obj2 * obj3).get(a,b,c); cout<<”(obj2*obj3):\t”<<”a=”<<a<<’\t’<<”b=”<<b<<’\t’<<”c=”<<c<<’\t’<<endl; } 2、#include <iostream.h> class BASE1 {public: BASE1(int i){cout<<”调用基类BASE1的结构函数:”<<i<<endl;} }; class BASE2 {public: BASE2(int j){cout<<”调用基类BASE2的结构函数:”<<j<<endl;} }; class A: public BASE1, public BASE2 {public: A(int a,int b,int c,int d): BASE2(b), BASE1(c), b2(a),b1(d) {cout<<”调用派生类A的结构函数;”<<a+b+c+d<<endl;} private: BASE1 b1; BASE2 b2; }; void main( ) {A ojb(11,22,33,44);} 3、#include <iostream.h> template <typename T> void fun(T&x,T&y) {T temp; temp=x; x=y; y=temp; } void fun(double x, int y) {double temp; temp=x; x=y; y=temp; } void main( ) {int i,j; i=30; j=10; fun(i,j); cout<<”i=”<<i<<’\t’<<”j=”<<j<<endl; double a,b; a=1.23; b=3.21; fun(a,b); cout<<”a=”<<a<<’\t’<<”b=”<<b<<endl; double m=10; int n=30; fun(m,n); cout<<”m=”<<m<<’\t’<<”n=”<<n<<endl; } 4、#include <iostream.h> void main( ) {double x=123.456; cout.width(10); cout.setf(ios::dec,ios::basefield); cout<<x<<endl; cout.setf(ios::left); cout<<x<<endl; cout.width(15); cout.setf(ios::right,ios::left); cout<<x<<endl; cout.setf(ios::showpos); cout<<x<<endl; cout<<-x<<endl; cout.setf(ios::scientific); cout<<x<<endl; } 5、#include <iostream.h> enum BREED { GOLDEN, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB }; class Mammal {public: Mammal():itsAge(2), itsWeight(5){} // constructors ~Mammal(){} int GetAge() const { return itsAge; } void SetAge(int age) { itsAge = age; } int GetWeight() const { return itsWeight; } void SetWeight(int weight) { itsWeight = weight; } void Speak()const { cout << "Mammal sound!\n"; } void Sleep()const { cout << "shhh. I'm sleeping.\n"; } protected: int itsAge; int itsWeight; }; class Dog : public Mammal {public: Dog():itsBreed(GOLDEN){} ~Dog(){} BREED GetBreed() const { return itsBreed; } void SetBreed(BREED breed) { itsBreed = breed; } void WagTail() const { cout << "Tail wagging...\n"; } void BegForFood() const { cout << "Begging for food...\n"; } private: BREED itsBreed; }; int main() { Dog fido; fido.Speak(); fido.WagTail(); cout << "Fido is " << fido.GetAge() << " years old\n"; return 0; } 6、#include<iostream.h> class Base {public: void who(){cout<<”Base class”<<endl;}; class Derived1: public Base {public: void who(){cout<<”Derived1 class”<<endl;}; class derived2: public Base {public: void who(){cout<<”Derived2 class”<<endl; Void main() {base obj1, *p; derived1 obj2; derived2 obj3; P=&obj1; p->who(); P=&obj2; p->who(); P=&obj3; p->who(); Obj1.who(); Obj2.who(); Obj3.who(); } 7、#include<iostream.h> class example { private: int date; static int count; public: example(int y=10):date(y) { cout<<”date=”<<date<<endl; Count++; } static int display() {return count;} }; int example::count=0; void main() {example e1; example e2(20); cout<<e1.Display()<<endl; cout<<e2.Display()<<endl; cout<<example::Display()<<endl; } 8、指出下列程序中的错误,并阐明理由 #include<iostream.h> class Student { public: void Student(){}; void Display() {cin>>name>>number; cout<<姓名<<name<<学号<<number<<endl;} private: char *name=noname; int number=0; }; 四、编程题:(20分,每题10分) 1、 编写一个程序,实现小型企业的工资管理。该企业重要有4类人员:经理、兼职技术人员、销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示所有信息。月工资计算措施是:经理拿固定月薪8000元,兼职技术人员按每小时100元领取月薪,销售员按当月销售额的4%提成,销售经理既拿固定月工资又拿销售提成,固定月工资为5000元,销售提成为所管部门当月销售总额的0.5%。要求补充未完成的代码,使其成为一个完整的程序。 #include <iostream.h> class Employee {public: employee(){cout<<”职工编号、姓名”; cin>>no>>name; salary=0; } void Pay(){} void Display(){} Protected: Int no; char name[10]; float salary; }; Class technician: public Employee //派生技术人员 { public: Technician() {hourlyrate=100.0;} void Pay(){cout<<name<<”本月工作时数:” cin>>workhours; salary=hourlyrate*workhours; } void Display() { cout<<”兼职技术人员”<<name<<”(编号为”<<no<<”)”本月工资:”<<salary<<endl; } private: //补充下面内容 }; Class Saleman: public Employee //派生销售员类 { public: Salesman(){ commrate=0.04f;} //销售提成百分比 void Pay() {cout<<name<<”本月销售额:”; //补充下面内容 } void Display() {cout<<”销售员”<<name<<”(编号为”<<no<<”)”本月工资:”<<salary<<endl; } Protected: Float commrate; sales; }; Class Manager: virtual public Employee { public: Manager(){ } //补充函数体内容 Void Pay(){ } //补充函数体内容 void Display() {cout<<”经理”<<name<<”(编号为”<<no<<”)”本月工资:”<<salary<<endl; } Protected: float 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秒)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服