面向对象程序设计复习题.docx
- 文档编号:17412634
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:32
- 大小:35.64KB
面向对象程序设计复习题.docx
《面向对象程序设计复习题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计复习题.docx(32页珍藏版)》请在冰点文库上搜索。
面向对象程序设计复习题
理论考试(第十五周考)
题型:
一、选择题(10%)
一、看程序写结果(20%)(4*5)
二、程序改错(16%)(4*4)
三、写出继承后各类的成员及访问权限(10%)
四、文件输入输出(8%)
五、程序完型填空(6%)
六、编程题(30%)(类、继承、运算符重载)
上机考试(第十四周考)
题型:
程序改错题(8%)
编程题(继承与运算符重载)(12%)
复习范围:
一、习题复习要求:
第二章:
1、6
第三章:
2、4、6、9、10
第四章:
2、7
第五章:
5、6、7、8、9
第六章:
4
第七章:
4、5
二、实验复习要求:
实验5类和对象
(2)
二.实验内容
1.定义一个圆类,计算圆的面积和周长。
使用构造函数和析构函数实现对数据的输入、输出。
2.定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。
同时编写主函数使用这个类,实现对学生数据的赋值和输出。
要求:
(1)使用成员函数实现对输出的输入、输出
(2) 使用构造函数和析构函数实现对数据的输入、输出。
3.建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1、3、5个学生的数据。
4.定义一个圆类,计算圆的面积和周长。
要求:
分别用成员函数和友元函数来求圆的面积和周长。
实验6运算符重载
二.实验内容
1.复数类加减法乘除运算(用成员函数定义运算符重载)。
复数类的定义:
classcomplex//复数类声明
{public:
//外部接口
complex(doubler=0.0,doublei=0.0)//构造函数
{real=r,imag=i;}
complexoperator+(complexc2);//运算符"+"重载成员函数
complexoperator-(complexc2);//运算符"-"重载成员函数
complexoperator*(complex);//运算符"*"重载成员函数
complexoperator/(complex);//运算符"/"重载成员函数
complexoperator=(complexc2);//运算符"="重载成员函数
voiddisplay();//输出复数
private:
//私有数据成员
doublereal;//复数实部
doubleimag;//复数虚部
};
2.复数类比较运算(用友元函数定义运算重载)。
注意:
1)复数类比较运算按复数的模比较两个复数的大小。
2)复数相等判断当两个复数的实部和虚部都相等,两个复数才相等,否则不相等的。
类的定义
classcomplex//复数类声明
{
public:
complex(doubler=0.0,doublei=0.0)
{real=r;imag=i;}//构造函数
friendintoperator>(complexc1,complexc2);
//运算符">"重载友元函数
friendintoperator>=(complexc1,complexc2);
//运算符">="重载友元函数
friendintoperator<(complexc1,complexc2);
//运算符"<"重载友元函数
friendintoperator<=(complexc1,complexc2);
//运算符"<="重载友元函数
friendintoperator==(complexc1,complexc2);
//运算符"=="重载友元函数
friendintoperator!
=(complexc1,complexc2);
//运算符"!
="重载友元函数
voiddisplay();//显示复数的值
private:
//私有数据成员
doublereal;
doubleimag;
};
实验7继承与派生
1.编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。
要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。
3.编写一个程序计算出球、圆柱和圆锥的表面积和体积。
要求:
(1) 定义一个基类圆,至少含有一个数据成员半径;
(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。
(3)定义主函数,求球、圆柱、圆锥的和体积。
三、增加部分
(1)看程序写结果。
1.#include
classP{
intx,y;
public:
P(){x=13;y=1;}
~P(){cout<<"P"< }; voidmain() {Pobj1,obj2; } Result: 2.#include #include intcount=0; classPoint{ intx,y; public: Point(){x=1;y=1;count++;} ~Point(){count--;} friendvoiddisplay(); }; voiddisplay() {cout<<"Thereare"< voidmain() {Pointa; display(); {Pointb[5]; display(); } display(); } Result: 3.#include #include classCsample{ inti; public: Csample(){cout<<"constructor1"< Csample(intval){cout<<"Constructor2"< voidDisplay(){cout<<"i="< ~Csample(){cout<<"Destructor"< }; voidmain() {Csamplea,b(10); a.Display(); b.Display(); } Result: 4.#include intcount=0; classPixel{ intx,y; public: Pixel(){x=40;y=12;count++;} ~Pixel(){count--;} voiddisplay(); }; voiddisplay() {cout<<"Thereare"< voidmain() {Pixelfirst; display(); Pixelpixels[4]; display(); } Result: 5.#include classCsample{ inti; public: Csample(){cout<<"constructor1"< Csample(intval){cout<<"Constructor2"< voidgeti(inta) {i=a;} voidDisplay(){cout<<"i="< ~Csample(){cout<<"Destructor"< }; voidmain() {Csamplea,b(20); a.geti(10); a.Display(); b.Display(); } Result: 6.A)Statetheoutputproducedbytheprogrambellow. B)Statetheoutputifthekeywordvirtualistakenout. #include classFirst{ public: intx; First(inta){x=a;} virtualvoiddisplay(){cout< }; classSecond: publicFirst{ inty; public: Second(inta,intb): First(a){y=b;} voiddisplay(){cout< }; voidmain() {First*pt,obj1(20); Secondobj2(15,12); pt=&obj1; (*pt).display(); pt=&obj2; (*pt).display(); } Result: A) B) 7.A)Statetheoutputproducedbythefollowingprogram. B)Statetheoutputproduced,ifthekeyboardvirtualistakenout. #include #include classDec{ public: intx; Dec(inta){x=a;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 复习题