C++面向对象程序设计上机考试题库[1](7)

2019-08-29 18:53

c3.display(); }

14.分别用成员函数和友元函数重载运算符,使对实型的运算符“*” 适用于复数运算。提示:两复数相乘的计算公式为:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i。 #include class complex {private:

double real; double imag; public:

complex(double r=0.0,double i=0.0){ real=r; imag=i ;}

friend complex operator *(complex c1,complex c2); void display(); };

complex operator * (complex c1,complex c2) {return

complex(c1.real*c2.real-c1.imag*c2.imag,c1.real*c2.imag+c2.real*c1.imag );}

void complex::display() {

cout<<\}

void main()

{complex c1(5,4),c2(2,10),c3,;

cout<<\

c1.display();

cout<<\

c2.display();

c3=c1*c2;

cout<<\

c3.display(); }

15.分别用成员函数和友元函数重载运算符,使对实型的运算符“/” 适用于复数运算。 提示:两复数相除的计算公式为:(a+bi)/(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad) /(c*c+d*d)i。

#include class complex

【第 31 页 共 48 页】

{private:

double real; double imag; public:

complex(double r=0.0,double i=0.0){ real=r; imag=i ;}

friend complex operator /(complex c1,complex c2); void display(); };

complex operator / (complex c1,complex c2) {return

complex( (c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag), (c2.real*c1.imag-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag));}

void complex::display() {

cout<<\}

void main()

{complex c1(5,4),c2(2,10),c3,;

cout<<\

c1.display();

cout<<\

c2.display();

c3=c1/c2;

cout<<\

c3.display(); }

16.定义一个国家基类Country,包含国名、首都、人口等属性,派生出省类Province,增加省会城市、人口数量属性。 #include #include using namespace std; class Country {public:

Country(string nam,string c,long int cp) {name=nam;capital=c;country_population=cp;}

【第 32 页 共 48 页】

protected: string name; string capital;

long int country_population; };

class Province:public Country {public:

Province(string nam,string c,long int cp,string pc,long int pp):Country(nam,c,cp)

{Province_capital=pc; Province_population=pp; };

void show()

{cout<<\

cout<<\

cout<<\ cout<<\

cout<<\ }

private:

string Province_capital;

long int Province_population; };

int main()

{Province prov1(\prov1.show(); return 0; }

17.定义一个车基类Vehicle,含私有成员speed,weight。派生出自行车类Bicycle,增加high成员;汽车类Car,增加seatnum(座位数)成员。从bicycle和car中派生出摩托车类Motocycle。

#include using namespace std; class Vehicle {public:

Vehicle(float sp,float w){speed=sp;weight=w;}

void display(){cout<<\private:

float speed; float weight; };

class Bicycle:virtual public Vehicle {public:

Bicycle(float sp,float w,float h):Vehicle(sp,w){high = h;} float high;

【第 33 页 共 48 页】

};

class Car:virtual public Vehicle {public:

Car(float sp,float w,int num):Vehicle(sp,w) {seatnum = num; }

protected: int seatnum; };

class Motorcycle:public Bicycle,public Car {public:

Motorcycle(float sp,float w,float h,int

num):Vehicle(sp,w),Bicycle(sp,w,h),Car(sp,w,num){}

void display(){

Vehicle::display();

cout<<\ } };

int main()

{Motorcycle m(120,120,120,1); m.display(); return 0; }

18.把定义平面直角坐标系上的一个点的类Cpoint作为基类,派生出描述一条直线的类Cline,再派生出一个矩形类Crect。要求成员函数能求出两点间的距离、矩形的周长和面积。设计一个完整程序。数据自拟。 #include #include using namespace std;

class Cpoint{ public:

void setX(float x){X=x;} void setY(float y){Y=y;} float getX(){return X;} float getY(){return Y;} protected:

float X,Y; };

class Cline:public Cpoint{ protected:

float d,X1,Y1; public:

【第 34 页 共 48 页】

void input(){

cout <<\请输入一个点的坐标值X1,Y1:\ cin>>X1>>Y1; }

float getX1(){return X1;} float getY1(){return Y1;} float dis(){

d=sqrt((X-X1)*(X-X1)+(Y-Y1)*(Y-Y1)); return d; }

void show(){

cout <<\直线长度为: \ } };

class Crect:public Cline{ public:

void input1(){

cout <<\请输入矩形另外一条边的长度d1:\ cin>>d1; }

float getd1(){return d1;} float getd(){ return d;} float area(){ a = d*d1; return a; }

float zhou(){ z=2*(d+d1); return z; }

void show1(){

cout <<\此矩形的面积和周长分别是 :\ }

protected:

float a, z,d1; };

int main(){ Cline l1; Crect r1; l1.setX(2); l1.setY(2); l1.input(); l1.dis(); l1.show();

【第 35 页 共 48 页】


C++面向对象程序设计上机考试题库[1](7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:3+4基础综合(2015年试卷)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: