《面向对象程序设计》编程题复习及其标准答案Word文档下载推荐.docx
- 文档编号:16285242
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:37
- 大小:31.33KB
《面向对象程序设计》编程题复习及其标准答案Word文档下载推荐.docx
《《面向对象程序设计》编程题复习及其标准答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》编程题复习及其标准答案Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
(2)定义一个Time类,实现对“++”的前缀、后缀重载。
P134
i++:
单目运算符天猫优惠券,我就要券
14、(单继承及派生类构造函数)
(1)定义一个person类,数据成员包括:
姓名name,年龄age,性别sex
成员函数:
构造函数及display函数
(2)定义一个派生类student,公有继承与person类,新增成员:
专业major,入学日期enterdate(Date类自定义)。
(3)主函数定义student对象,各类构造函数的调用顺序。
15、(多继承)
在14题基础上由person类再派生出teacher类,新增成员:
职称title,工资wage
16、(虚继承)
由student类和teacher类共同派生出graduate类,新增成员:
年级grade,将person类定义成虚基类,实现用虚继承解决二义性。
17、(抽象类及多态性)
定义一个抽象基类Shape,由它派生出5个派生类,Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangel(三角形)。
用虚函数分别计算几何图形面积,并求他们的和。
要求定义一个基类指针,使它指向每一个派生类对象,体现其多态性。
1、#include<iostream>
usingnamespacestd;
voidmax()
{
inta,b;
cout<<
"
请输入两个数:
"<
endl;
ﻩcin>>
a>
b;
if(a>
b)
ﻩcout<
b<
" "
a<<
endl;
else
ﻩﻩcout<
a<<
"<
endl;
}
intmain()
max();
ﻩreturn0;
2、#include<iostream>
using namespacestd;
voidmax(int a,int b)
ﻩ
ﻩif(a>b)
cout<
a<<endl;
ﻩelse
ﻩcout<<b<
<endl;
voidmax(inta,intb,intc)
ﻩif(a>
b&
& a>
c)
ﻩcout<
a<
<endl;
ﻩelseif(b>
ﻩcout<<b<
<endl;
ﻩelse
c<<
intmain()
max(2,5);
ﻩmax(7,5,3);
return0;
3、#include<
iostream>
usingnamespace std;
voidmax(int a,intb,intc=0)
if(a>
b &
&a>c)
ﻩﻩcout<
endl;
elseif(b>
c)
cout<<
b<
<endl;
ﻩelse
ﻩcout<
intmain()
ﻩmax(2,5);
ﻩmax(7,5,3);
return0;
4、#include<
iostream>
usingnamespacestd;
voidswap1(inta,int b)
inttemp;
temp=a;
ﻩa=b;
b=temp;
void swap2(int*a,int *b)
inttemp;
ﻩtemp=*a;
ﻩ*a=*b;
*b=temp;
voidswap3(int&
a,int&b)
ﻩinttemp;
ﻩtemp=a;
a=b;
ﻩb=temp;
intmain()
intx,y;
x=5;
y=7;
swap1(x,y);
ﻩcout<<
"x="
x<
y="
y<
endl;
x=5;
y=7;
ﻩswap2(&x,&
y);
ﻩcout<
<x<
<" y="
<endl;
x=5;
y=7;
ﻩswap3(x,y);
ﻩcout<
x<
" y="
y<<endl;
ﻩreturn 0;
5、#include<
iostream>
#include<
string>
usingnamespacestd;
classstudent
private:
int num;
stringname;
intage;
charsex;
public:
voidset()
{
ﻩcout<
"请输入:
学号,姓名,年龄,性别(f orm)"
<<
endl;
cin>
num>
name>>age>
sex;
}
voiddisplay()
ﻩ{
ﻩcout<
<"
学号:
num<
<endl;
cout<<
姓名:
name<
ﻩﻩcout<
年龄:
<age<
cout<
性别:
sex<<endl;
};
int main()
student s;
ﻩs.set();
ﻩs.display();
return 0;
6、#include<iostream>
#include<
string>
usingnamespacestd;
classstudent
private:
ﻩintnum;
stringname;
intage;
charsex;
public:
/*voidset()
ﻩ cout<<
请输入:
学号,姓名,年龄,性别(form)"
cin>>
name>>
age>>
sex;
ﻩ}
*/
ﻩstudent(int num,stringname,inta,ints)
ﻩcout<<
调用构造函数num="
num<
this->
num=num;
ﻩthis->
name=name;
age=a;
ﻩsex=s;
ﻩ}天猫优惠券,我就要券
void display()
ﻩ{
ﻩcout<<
学号:
cout<
<name<
endl;
<age<<
ﻩcout<<"性别:
sex<<endl;
~student()
析构函数学号:
num<<endl;
}
intmain()
students(1001,"张三"
25,'
f'
),s1(1002,"
李四"
24,'
m'
);
ﻩ//s.set();
s.display();
s1.display();
return 0;
7、#include<iostream>
#include<
using namespacestd;
class student
intnum;
ﻩstring name;
ﻩint age;
char sex;
public:
/*ﻩvoidset()
cout<<"
学号,姓名,年龄,性别(form)"<
endl;
cin>
>num>>
name>>
age>
>sex;
student()
ﻩﻩcout<
调用构造函数num="
0<
ﻩnum=0;
ﻩname="
;
ﻩﻩage=18;
ﻩsex='
;
ﻩstudent(intnum,stringname,int a,int s)
cout<<
调用构造函数num="
<num<<
this->
num=num;
ﻩthis->
name=name;
ﻩage=a;
ﻩsex=s;
void display()
cout<
"学号:
<num<
cout<
姓名:
name<<endl;
年龄:
<<age<<
性别:
sex<
endl;
~student()
<num<
};
intmain()
students(1001,"
张三",25,'f'
),s1(1002,"
24,'
),s2;
//s.set();
ﻩs.display();
endl;
s1.display();
ﻩcout<<endl;
s2.display();
cout<
return0;
8、#include<
iostream>
#include <
string>
using namespacestd;
天猫优惠券,我就要券
classstudent
private:
int num;
stringname;
intage;
ﻩcharsex;
public:
student(int num=0,stringname="
int a=18,ints='f'
)
ﻩcout<
调用构造函数num="
endl;
ﻩﻩthis->
num=num;
ﻩﻩthis->
name=name;
age=a;
ﻩﻩsex=s;
ﻩvoid display()
ﻩcout<<
num<
name<<
ﻩcout<<
"<<
age<
ﻩcout<
sex<
ﻩ}
~student()
ﻩcout<
天猫优惠券,我就要券 学号:
num<<
};
intmain()
ﻩstudents(1001,"
张三"
25,'
f'
),s1(1002,"
m'),s2;
//s.set();
s.display();
ﻩcout<
endl;
s1.display();
cout<
endl;
s2.display();
return 0;
9、#include<
iostream>
#include <
usingnamespacestd;
class student
private:
ﻩintnum;
ﻩstringname;
char sex;
public:
student(intnum=0,stringname="
inta=18,ints='f')
cout<
"调用构造函数num="
num=num;
ﻩﻩthis->
name=name;
ﻩage=a;
ﻩﻩsex=s;
ﻩvoiddisplay()
endl;
ﻩcout<
name<
age<
<endl;
~student()
ﻩﻩcout<
<"析构函数学号:
num<
intmain()
ﻩstudents[3]={student(1001,"张三"
25,'
),student(1002,"
24,'
m')};
for (inti=0;
i<3;
i++)
天猫优惠券,我就要券
ﻩs[i].display();
cout<
student *p;
ﻩp=newstudent(1003,"
王五"
23,'
p->
display();
cout<
ﻩdeletep;
return0;
10、#include<
iostream>
#include<
string>
usingnamespace std;
classstudent
private:
ﻩint num;
stringname;
int age;
charsex;
public:
ﻩstudent(intnum=0,stringname=""
inta=18,ints='
f')
ﻩcout<<
调用构造函数num="
<<num<
ﻩthis->
num=num;
ﻩﻩthis->
name=name;
age=a;
ﻩsex=s;
ﻩstudent(student&
s)
ﻩnum=s.num;
ﻩname=s.name;
ﻩﻩage=s.age;
sex=s.sex;
voiddisplay()
num<<endl;
ﻩﻩcout<<
<name<
<endl;
<age<
"性别:
ﻩ~student()
析构函数 学号:
num<
endl;
int main()
students1(1001,"
张三",25,'
ﻩstudents2(s1);
s1.display();
ﻩs2.display();
return0;
11、
#include<iostream>
#include <
usingnamespacestd;
classstudent
private:
intnum;
stringname;
ﻩfloat score;
ﻩstaticfloatsum;
staticintcount;
public:
student(intnum=0,stringname="",float s=80)
{
this->
num=num;
this->
name=name;
ﻩscore=s;
ﻩcount++;
voiddisplay()
ﻩﻩcout<
成绩:
<score<
ﻩvoidtotal();
staticfloataverage();
floatstudent:
:
sum=0.0;
int student:
count=0;
void student:
total()
sum+=score;
floatstudent:
:
average()
ﻩreturnsum/count;
ﻩstudents[3]={student(1001,"张三"
87),student(1002,"
),student(1003,"
王五",90)};
for(int i=0;
i<
3;
i++)
s[i].total();
ﻩcout<
"平均成绩:
student:
average()<
endl;
return0;
12、
#include<
iostream.h>
//#include<
string>
//usingnamespacestd;
classTime
private:
int hour;
ﻩintminute;
intsecond;
public:
Time(inth=12,intm=0,int s=0)
ﻩhour=h;
ﻩminute=m;
ﻩsecond=s;
friendﻩvoiddisplay(Time&
voiddisplay(Time& t)
ﻩcout<
t.hour<
时"
t.minute<<
分"
t.second<
秒"
intmain()
ﻩTimet,t1(13,12,22);
display(t);
display(t1);
return0;
13、
(1)
//方法1:
多次重载+
#include<iostream.h>
//#include<string>
//usingnamespacestd;
classComplex
private:
ﻩfloatreal;
ﻩfloat image;
public:
Complex(float real,floatimage)
ﻩthis->
real=real;
this->
image=image;
Complex()
ﻩreal=0;
ﻩimage=0;
friendComplexoperator+(Complex&
a,Complex&
b);
friendComplex operator+(Complex&a,float b);
friendComplexoperator+(floata,Complex&
friend ostream&
operator<<
(ostream&
output,Complexa);
friendistream&
operator>
(istream&
input,Complexa);
Complexoperator+(Complex&
a,Complex&
return Complex(a.real+b.real,a.image+b.image);
Complexoperator+(Complex&a,floatb)
returnComplex(a.real+b,a.image);
Complexoperator+(floata,Complex&b)
ﻩreturnComplex(b.real+a,b.image);
ostream&operator<
(ostream&
output,Complexa)
if(a.image>
0)
ﻩoutput<
a.real<
+"<
a.image<
"i"
<<endl;
else
ﻩoutput<
<a.real<
a.image<<
i"<
ﻩreturnoutput;
istream&
operator>>
(istream&
input,Complexa)
input>
>a.real>>
a.image;
returninput;
intmain()
ﻩComplexa(3,4),b(1,2),c,d,e,f;
ﻩc=a+b;
d=a+5;
e=3+b;
ﻩcout<
c<
cin>>
f;
<endl;
return 0;
//方法2:
使用转换构造函数实现
#include<
iostream.h>
class Complex
private:
floatreal;
ﻩfloatimage;
Complex(floatreal,floatimage)
ﻩthis->
real=real;
this->im
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 编程 复习 及其 标准答案