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

2019-08-29 18:53

Teacher Student Graduate #include #include using namespace std;

class Person {public:

Person(char *nam,char s,int a) {strcpy(name,nam);sex=s;age=a;}

protected: char name[20]; char sex; int age; };

class Teacher:virtual public Person {public:

Teacher(char *nam,char s,int a,char *t):Person(nam,s,a) {strcpy(title,t); }

protected: char title[10]; };

class Student:virtual public Person {public:

Student(char *nam,char s,int a,float sco): Person(nam,s,a),score(sco){} protected: float score; };

class Graduate:public Teacher,public Student

【第 26 页 共 48 页】

{public:

Graduate(char *nam,char s,int a,char *t,float sco,float w): Person(nam,s,a),Teacher(nam,s,a,t),Student(nam,s,a,sco),wage(w){} void show( ) {cout<<\ cout<<\ cout<<\

cout<<\ cout<<\ cout<<\ } private:

float wage; };

int main( )

{Graduate grad1(\ grad1.show( ); return 0; }

10. 写一个程序,定义抽象类型Shape,由他派生三个类:Circle(圆形),Rectangle(矩形),Trapezoid(梯形),用一个函数printArea分别输出三者的面积,3个图形的数据在定义对象是给定。 #include using namespace std;

class Shape {public:

virtual double area() const =0; //纯虚函数 };

class Circle:public Shape {public:

Circle(double r):radius(r){} virtual double area() const {return 3.14159*radius*radius;}; protected:

double radius; };

class Rectangle:public Shape {public:

Rectangle(double w,double h):width(w),height(h){} virtual double area() const {return width*height;}

【第 27 页 共 48 页】

protected:

double width,height; };

class Trapezoid:public Shape {public:

Trapezoid(double w,double h,double len):width(w),height(h),length(len){} virtual double area() const {return 0.5*height*(width+length);} protected:

double width,height,length; };

void printArea(const Shape &s)

{cout<

int main() {

Circle circle(12.6); cout<<\

printArea(circle); Rectangle rectangle(4.5,8.4); cout<<\ printArea(rectangle);

Trapezoid trapezoid(4.5,8.4,8.0); cout<<\ printArea(trapezoid); return 0; }

11.声明一个Shape抽象类,在此基础上派生出Rectangle和Circle类,二者都有GetArea( )函数计算对象的面积,GetPerim( )函数计算对象的周长。 #include using namespace std; class Shape {public: Shape(){} ~Shape(){}

virtual float GetPerim()=0; virtual float GetArea()=0; };

class Rectangle:public Shape {public:

Rectangle(float i,float j):L(i),W(j){} ~Rectangle(){}

float GetPerim(){return 2*(L+W);} float GetArea(){return L*W;}

【第 28 页 共 48 页】

private: float L,W; };

class Circle:public Shape {public:

Circle(float r):R(r){}

float GetPerim(){return 3.14*2*R;} float GetArea(){return 3.14*R*R;} private: float R; };

void main() {Shape * sp;

sp=new Circle(10);

cout<GetPerim ()<GetArea()<

cout<GetPerim()<GetArea()<

12.分别用成员函数和友元函数重载运算符,使对实型的运算符“-”适用于复数运算。 #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 );} void complex::display() {

cout<<\}

void main()

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

cout<<\

c1.display();

【第 29 页 共 48 页】

cout<<\

c2.display();

c3=c1-c2;

cout<<\

c3.display(); }

13.分别用成员函数和友元函数重载运算符,使对实型的运算符“+” #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 );}

void complex::display() {

cout<<\}

void main()

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

cout<<\

c1.display();

cout<<\

c2.display();

c3=c1+c2;

cout<<\

【第 30 页 共 48 页】

适用于复数运算。


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

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

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

马上注册会员

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