跪求解答以下十道C++题
或者有耐心的话,等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.