1、C+程序设计1、声明个 CPU类,包含等级(rank),频率(frequency) ,电压(voltage)属性,有两个公有成员函数 run(函数功能:输出“cpu 正在运行” ) ,stop(函数功能:输出“cpu 停止运行” ) 。其中 rank为枚举型 CPU_Rank,声明为 enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,frequency为单位是 MHz的整型数,voltage 为 double型电压值。编写构造函数和析构函数,在主函数中显示它们的调用顺序。2、 定义复数类 COMPLEX,并用成员函数为复数类 COMPLEX重载加、减及赋值运算符操作。3、
2、写一个程序,定义一个抽象类Shape,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle三角形。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。4、已知交通工具类定义如下。要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数),print(打印车轮数,重量和载人数)。5、声明一个车(vehicle)基类,具有 maxspeed、weight 成员变量,run、stop 成员函
3、数(简单输出提示“车正在行进” , “车停止” ) ,由此派生出自行车类(bicycle) 、汽车类(motorcar) 。自行车类有高度(height )属性,汽车(motorcar) 类有座位数(seatnum)。从bicycle 和 motorcar 派生出摩托车类 (motorcycle),在继承过程中,注意把 vehicle 设置为虚基类,同时编写各个类的构造函数和析构函数,在主函数中建立各个类对象,观察执行情况。6、定义类 X、Y、Z,函数 h(X *),满足:类 X有私有成员 i,Y的成员函数 g(X *)是 X的友元函数,实现对 X的成员 i加 1;类 Z是类 X的友元类,其成
4、员函数 f(X *)实现对 X的成员i加 5;函数 h(X *)是 X的友元函数,实现对 X的成员 i加 10。在一个文件中定义和实现类,在另一个文件中实现 main()函数。提示:按 Y、Z、X 顺序定义类,在 Y、Z 类前 前向声明 X , X * x表示 X类对象指针 x,访问 x对象数据成员 i变量的形式为 x-i。答案1、#include enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7;class CPUprivate:CPU_Rank rank;int frequency;float voltage;public:void run();void stop(
5、);CPU(CPU_Rank r,int f,float v);CPU();CPU(CPU ;void CPU:run()coutwheels=wheels;this-weight=weight;coutclass Shapepublic:virtual double area()const=0;class Square:public Shapepublic:Square(double s):side(s)double area() constreturn side*side;private:double side;class Trapezoid:public Shapepublic:Trap
6、ezoid(double i,double j,double k):a(i),b(j),h(k)double area() constreturn (a+b)*h/2);private:double a,b,h;class Triangle:public Shapepublic:Triangle(double i,double j):w(i),h(j)double area() constreturn(w*h/2);private:double w,h;void main()Shape *p5;Square se(5);Trapezoid td(2,5,4);Triangle te(5,8);
7、p0=p1=p2=double da=0;for(int i=0;iarea();coutclass vehicleprivate:int maxspeed;int weight;public:vehicle(int m,int w)maxspeed=m;weight=w;coutclass X;class Ypublic:void g(X* x);class Zpublic:void f(X* x);class Xprivate:int i;public:friend void Y:g(X*);friend class Z;friend void h(X*);X(int i1)i=i1;couti+;coutii+=5;coutii+=10;coutiendl;int main()X x(1);Y y;Z z;y.g(z.f(h(