跪求解答以下十道C++题

11,12我真的没有精力做了,我这里还有很多工作要做。请问别人。

或者有耐心的话,等10天左右。也许我会自由。

问题8有问题。如果排序函数是成员函数,那么参数应该是数组,根本没有指定数组长度的参数。除非sort函数被声明为static,并且同时声明了一个static student*数组,否则可以跟踪student类的每个对象,并且可以对所有对象进行排序。这道题先别做,找老师改。

另外能不能加点分?写这么多才50分。。。。。。。。

============================================================================

所有程序都通过了VC 6.0测试。

============================================================================

1.

# include & ltmath.h & gt

# include & ltiostream.h & gt

class shape { public:virtual float area()= 0;};

类圆:公共形状{ int x,y;浮动r;

public: circle(int xx,int yy,float rr)

{ x = xxy = yyr = rr}

浮动区(){

返回float(3.14 * r * r);}};

类矩形:公共形状{

int x1,y1,x2,y2;

公共:

矩形(int xx1,int yy1,int xx2,int yy2)

{ x 1 = xx1;y 1 = YY 1;x2 = xx2y2 = yy2}

浮动区(){

返回float(ABS(x 1-x2)* ABS(y 1-y2));}};

void main(){

circle *pc=new circle(1,2,2);

rectangle * pr =新矩形(1,2,3,4);

shape * pS[2];pS[0]= PC;pS[1]= pr;

for(int I = 0;我& lt2;i++)

{ cout & lt& ltpS[I]-& gt;area()& lt;& ltendl}}

============================================================================

2.

# include & ltiostream.h & gt

类别线圈

{

私人:

double m _ UnLead

双m _ Lead

double m _ Total

公共:

线圈()

{

m _ un lead = 0;

m _ Lead = 0;

}

线圈(双m_UnLead,双m_Lead)

{

这-& gt;m _ Lead = m _ Lead

这-& gt;m _ UnLead = m _ UnLead

}

双GetTotal()

{

m _ Total = 17.0 * m _ UnLead+16.0 * m _ Lead;

返回m _ Total

}

};

void main()

{

双UnLead,铅;

cout & lt& lt"输入无铅油的数量:"

CIN & gt;& gtUnLead

cout & lt& lt"输入铅油的数量:"

CIN & gt;& gt铅;

线圈油(无铅、铅);

cout & lt& lt"总收入是:"

}

============================================================================

3.

# include & ltiostream.h & gt

类矩形

{私人:

漂浮壁架、莎草;

公共:

矩形(){ }

矩形(浮点l,浮点s)

{ ledge = l;莎草= s;}

浮动区域( )

{返回壁架*莎草;}

友空添加区(矩形& ampr1,矩形和矩形。R2);

};

void addarea(矩形& ampr1,矩形和矩形。r2)

{ cout & lt& lt"总面积:"

}

void main()

{矩形Rectl(3,2),Rect2(4,3);

addarea(Rectl,rect 2);

}

============================================================================

4.

# include & ltiostream.h & gt

# include & ltmath.h & gt

阶级情结

{

公共:

Complex() : _real(0),_imag(0) {}

显式复数(双r) : _real(r),_imag(0) {}

复数(双r,双i) : _real(r),_imag(i) {}

复杂& amp运算符+=(const double & amp;d)

{

_ real+= d;

返回* this

}

复杂& amp运算符+=(const Complex & amp;c)

{

_ real+= c . _ real;

_ imag+= c . _ imag;

返回* this

}

复杂& amp运算符-=(const double & amp;d)

{

_ real-= d;

返回* this

}

复杂& amp运算符-=(const Complex & amp;c)

{

_ real-= c . _ real;

_ imag-= c . _ imag;

返回* this

}

复杂& amp运算符* =(const double & amp;d)

{

_ real * = d;

_ imag * = d;

返回* this

}

复杂& amp运算符* =(const Complex & amp;c)

{

double re = _ real

double im = _ imag

_ real = re * c . _ real-im * c . _ imag;

_ imag = re * c . _ imag+im * c . _ real;

返回* this

}

复杂& amp运算符/=(const double & amp;d)

{

_ real/= d;

_ imag/= d;

返回* this

}

复杂& amp运算符/=(const Complex & amp;c)

{

double re = _ real

double im = _ imag

double d = c . _ real * c . _ real+c . _ imag * c . _ imag;

_ real =(re * c . _ real+im * c . _ imag)/d;

_ imag =(im * c . _ real-re * c . _ imag)/d;

返回* this

}

复杂的Conj()常量

{

返回复数(_real,-_ imag);

}

double Real()const { return _ Real;}

double Imag()const { return _ Imag;}

void Real(const double & amp;re){ _ real = re;}

void Imag(const double & amp;im){ _ imag = im;}

空集(const double & ampre,const double & ampim){ _ real = re;_ imag = im}

double Modsq()const { return _ real * _ real+_ imag * _ imag;}

double Mod()const { return sqrt(_ real * _ real+_ imag * _ imag);}

私人:

double _ real

double _ imag

};

内联复合运算符+(const Complex & amp;c)

{

返回复数(c.Real()、c . Imag());

}

内联复合运算符。c)

{

返回复数(-c.Real(),-c . Imag());

}

内联复合运算符+(const Complex & amp;c,const double & ampd)

{

返回复数(c.Real() + d,c . Imag());

}

内联复合运算符+(const double & amp;const Complex & ampc)

{

返回复数(d + c.Real()、c . Imag());

}

内联复合运算符+(const Complex & amp;c1,const Complex & ampc2)

{

返回复合体(c1。实数()+ c2。Real(),c1。Imag() + c2。imag());

}

内联复合运算符。c,const double & ampd)

{

返回复数(c.Real() - d,c . Imag());

}

内嵌复合运算符-(const double & amp;const Complex & ampc)

{

返回复数(d - c.Real(),-c . Imag());

}

内联复合运算符。c1,const Complex & ampc2)

{

返回复合体(c1。Real() - c2。Real(),c1。Imag() - c2。imag());

}

内联复合运算符*(const Complex & amp;c,const double & ampd)

{

return Complex(c.Real() * d,c . Imag()* d);

}

内嵌复合运算符*(const double & amp;const Complex & ampc)

{

return Complex(c.Real() * d,c . Imag()* d);

}

内联复合运算符*(const Complex & amp;c1,const Complex & ampc2)

{

双实数= c1。Real() * c2。Real() - c1。Imag() * c2。imag();

double imag = c1。Real() * c2。Imag() + c1。Imag() * c2。real();

return Complex(real,imag);

}

内联复数运算符/(常数复数& ampc,const double & ampd)

{

返回复数(c.Real() / d,c . Imag()/d);

}

内嵌复合运算符/(const double & amp;const Complex & ampc)

{

double DD = c . Real()* c . Real()+c . Imag()* c . Imag();

返回复数((d * c.Real())/dd,(-d * c . Imag())/DD);

}

内联复数运算符/(常数复数& ampc1,const Complex & ampc2)

{

双d = c2。Real() * c2。实数()+ c2。Imag() * c2。imag();

双实数= (c1。Real() * c2。Real() + c1。Imag() * c2。imag())/d;

double imag = (c1。Imag() * c2。Real() - c1。Real() * c2。imag())/d;

return Complex(real,imag);

}

内嵌双实数(常数复形& ampc)

{

返回c . Real();

}

内嵌双图像(const复杂& ampc)

{

返回c . Imag();

}

直列双ABS(const Complex & amp;c)

{

返回sqrt(c . Real()* c . Real()+c . Imag()* c . Imag());

}

内嵌双范数(const Complex & ampc)

{

返回c . Real()* c . Real()+c . Imag()* c . Imag();

}

内联复杂conj(const Complex & amp;c)

{

返回复数(c.Real(),-c . Imag());

}

牡蛎&;操作员& lt& lt(ostream & amp操作系统,const复杂& ampc)

{

os & lt& ltc . Real()& lt;& lt"+" & lt;& ltc . Imag()& lt;& lt“我”;

返回OS;

}

int main()

{

复形a(1,2),b,c;

c = a+b;

cout & lt& ltc & lt& ltendl

c = a-b;

cout & lt& ltc & lt& ltendl

返回0;

}

============================================================================

5.

# include & ltiostream.h & gt

# include & ltmath.h & gt

类t点

{

私人:

int x,y;

公共:

void设定点(int m,int n);

void move(int xoffset,int yoffset);

tpoint(int m,int n);

int getx();

int gety();

朋友双距离(tpoint a,t point b);

};

int tpoint::getx()

{

返回x;

}

int tpoint::gety()

{

返回y;

}

tpoint::tpoint(int m,int n)

{

x = m;

y = n;

}

void tpoint::setpoint (int m,int n)

{

x = m;

y = n;

}

void tpoint::move(int xoffset,int yoffset)

{

x+= xoffset;

y+= yoffset;

}

双倍距离(t点a,t点b)

{

int k,l;

k = a . x-b . x;

l = a . y-b . y;

返回sqrt(k * k+l * l);

}

void main()

{

t点a(3,4),b(6,8);

tpoint p(5,6);

p.move(5,4);

int m,n;

m = p . getx();

n = p . gety();

double d =距离(a,b);

cout & lt& lt“距离是”& lt& ltd;

cout & lt& lt\ n p的xc条例是:“& lt& ltm;

cout & lt& lt\ n p的坐标是:“& lt& ltn & lt& lt”\ n”;

}

============================================================================

6.

# include & ltiostream.h & gt

西瓜类{

私人:

浮动重量;

静态浮动总量;

静态int totaln

公共:

西瓜(漂浮w)

{ weight = w;

total w+=重量;

total n++;

}

~西瓜()

{ total w-=重量;

total n-;

}

void显示();

静态void total disp();

};

浮动西瓜::totalw = 0;

int西瓜::total n = 0;

void西瓜::display()

{ cout & lt& lt“西瓜的重量是:“;

cout & lt& lt重量& lt& lt\ n ';

}

void西瓜::totaldisp()

{ cout & lt& lt"总重量是:";

cout & lt& lttotalw & lt& lt\ n ';

cout & lt& lt"总数是:";

cout & lt& lttotaln & lt& ltendl

}

void main(){

西瓜w 1(3.5);

w 1 . display();

西瓜::total disp();

西瓜w2(6);

w2 . display();

西瓜::total disp();

西瓜w3(6);

w3 . display();

西瓜::total disp();

w2 .西瓜::~西瓜();

西瓜::total disp();

}

============================================================================

7.

# include & ltiostream.h & gt

const float PI =(float)3.1415926;

void main()

{

int iType

浮动半径,a,b,面积;

cout & lt& lt“图表是什么类型的?(1-圆2-矩形3-正方形):";

CIN & gt;& gtiType

开关(类型)

{

案例1:

cout & lt& lt“圆的半径是:“;

CIN & gt;& gt半径;

面积= PI *半径*半径;

cout & lt& lt该区域是:“< & ltarea & lt& ltendl

打破;

案例二:

cout & lt& lt"矩形的长度是:";

CIN & gt;& gta;

cout & lt& lt矩形的宽度是:“;

CIN & gt;& gtb;

cout & lt& lt该区域是:“< & ltarea & lt& ltendl

打破;

案例三:

cout & lt& lt”正方形的边长是”;

CIN & gt;& gta;

面积= a * a

cout & lt& lt该区域是:“< & ltarea & lt& ltendl

打破;

默认值:

cout & lt& lt"不是合法的输入值!"& lt& ltendl

}

}

============================================================================

8.

有点不对劲

============================================================================

9.# include & ltiostream.h & gt

类堆栈

{

private:int base[10];

public:int size;

STACK();

无效推送(整数a)

{

base[size++]= a;

}

int p()

{

返回base[-size];

}

};

STACK::STACK(){ size = 0;};

int main()

{

堆栈s;

cout & lt& lt“出栈”< & ltendl

s . push(5);

s . push(2);

s . push(6);

s . push(7);

s . push(3);

cout & lt& lts . p()& lt;& ltendl

cout & lt& lts . p()& lt;& ltendl

cout & lt& lts . p()& lt;& ltendl

cout & lt& lts . p()& lt;& ltendl

cout & lt& lts . p()& lt;& ltendl

返回0;

}

============================================================================

10.

# include & ltiostream.h & gt

# include & ltiomanip.h & gt

阶级人士

{

int号;

字符名称[10];

public:void输入()

{

cout & lt& lt“不可以”:CIN & gt;& gt没有;

cout & lt& lt”名称:“;CIN & gt;& gt姓名;

}

无效显示()

{

cout & lt& lt“没有。”

cout & lt& lt"名称:"

}

};

班级学生:公众人物

{

private:char department[6];

public:void输入()

{

person::input();

cout & lt& lt”班级编号:“;CIN & gt;& gt出发;

}

无效显示()

{

person::disp();

cout & lt& lt"类别号:"

}

};

班主任:公众人物

{

private:char department[10];

public:void输入()

{

person::input();

cout & lt& lt"部门:";CIN & gt;& gt出发;

}

无效显示()

{

person::disp();

cout & lt& lt"部门:"

}

};

void main()

{

学生s 1;

老师t 1;

cout & lt& lt”输入一个学生数据:\ n”;s 1 . input();

cout & lt& lt”输入教师数据:\ n”;t 1 . input();

cout & lt& lt”显示一个学生数据:\ n”;s 1 . disp();

cout & lt& lt”显示教师数据:\ n”;t 1 . disp();

}

============================================================================

11.

============================================================================

12.