goback add

大哥大姐帮助小弟我啊,这个程序纠结啊,在线坐等,先谢过了。。

10728 点击·9 回帖
li461277332
楼主
大哥大姐一定要帮帮啊,,,重谢!!麻烦了

一,定义表示形状的基类CShape,包括以下成员:
1)double Perimeter(void),用于求周长,纯虚函数,公有成员
2)double Area(void) 用于求面积,纯虚函数,公有成员
3)char*m _objName,表示对象名称,保护数成员
4)void ShowName(void) 用于显示对象名称,公有成员,若m_objName为空,则显示"No Name"否则显示其名称
5)公有成员CShape(void),作用是将m_objName设置为NULL
6)公有成员CShape(char*objname),作用是将objname的内容复制到m_objName中。
7)无析构函数
二,定义矩形类CRectangle和三角形类CTriangle,这两个类均以public方式派生自CShape类,根据这两个类的具体用途添加相关的数据成员和函数成员,实现其所有成员函数和继函自基类的纯虚函数。
三,主函数的功能:
1)定义基类指针pBase,
2)显示一个菜单,包括矩形,三角形,退出三个选项,选择前两项时,创建相应对象,令pBase指向该对象,并执行后续功能,选择退出时,直接退出程序。
3)显示pBase所指向对象的面积和周长。
4)说明:上述3个对象和主函数均放在同一个CPP文件中,文件名为Shape.cpp

喜欢0 评分0
灯火互联
沙发
 我晕 你这个C++ 麻烦哦 就算要编写 都要 半天  太麻烦了  有空我帮你弄弄看看吧

回复(0) 喜欢(0)     评分
li461277332
板凳
那先谢谢了,我头都大了。。

回复(0) 喜欢(0)     评分
灯火互联
地板
只要多宣传 论坛 所有的问题在这里都能解决。有问必答板块 要的就是 解决问题的效果

回复(0) 喜欢(0)     评分
li461277332
4楼
恩恩,明白

回复(0) 喜欢(0)     评分
灯火互联
5楼
给你找到一个

#include<iostream>

#include<cmath>

#include<iomanip>

#ifndef CSHAPE_H

#define CSHAPE_h

usingnamespace std;

constfloat PI=3.1;

class CShape//CShape抽象类定义

{

public:

     virtualfloat length()//图形长度

     {

         return 0.0;

     }

     virtualfloat area()//图形面积

     {

         return 0.0;

     }

     virtualfloat valum()//图形体积

     {

         return 0.0;

     }

     virtualfloat zc()//图形周长

     {

         return 0.0;

     }

     virtualvoid draw()=0;//描绘图形

    

};

 

class CPoint:virtualpublic CShape//CPoint类定义

{

protected:

     float x,y;

public:

     CPoint(float a,float b)

     {

         x=a;

         y=b;

     }

     void setpoint(float a,float b)

     {

         x=a;

         y=b;

     }

     void draw()

     {

         cout<<"点的坐标为:"<<"("<<x<<","<<y<<")"<<endl;

     }

    

};

class CLine:virtualpublic CShape//线类定义

{

protected:

     float x,y,z,k;

public:

     CLine(float a,float b,float c,float d)

     {

         x=a;

         y=b;

         z=c;

         k=d;

     }

     void setline(float a,float b,float c,float d)

     {

         x=a;

         y=b;

         z=c;

         k=d;

     }

     float length()

     {

         return(sqrt((x-z)*(z-z)+(y-k)*(y-k)));

     }

     void draw()

     {

         cout<<"两坐标分别为:"<<"("<<x<<","<<y<<")"<<",("<<z<<","<<k<<")"<<endl;

     }

};

 

class CRectangle:virtualpublic CShape//长方形类定义

{

 

protected:

     float length,width;

public:

     CRectangle(float l,float w)

     {

         length=l;

         width=w;

     }

     void setrectangle(float l,float w)

     {

         length=l;

         width=w;

     }

     float area()

     {

         return(length*width);

     }

     float zc()

     {

         return(2*(length+width));

     }

     void draw()

     {

         cout<<"长方形的长为:"<<length<<setw(10)<<"宽为:"<<width<<endl;

     }

};

 

class CCircle:virtualpublic CShape//圆类定义

{

protected:

     float radius;

public:

     CCircle(float r)

     {

         radius=r;

     }

     void setcircle(float r)

     {

         radius=r;

     }

     float area()

     {

         return(PI*radius*radius);

     }

     float zc()

     {

         return(2*PI*radius);

     }

     void draw()

     {

         cout<<"圆的半径为:"<<radius<<endl;

     }

};

 

class CCylinder:virtualpublic CShape//圆柱类定义

{

protected:

     float heigth,radius;

public:

     CCylinder(float r,float h)

     {

         heigth=h;

         radius=r;

     }

     void setcylinder(float r,float h)

     {

         heigth=h;

         radius=r;

     }

     float area()

     {

         return(PI*radius*radius+2*PI*radius);

     }

     float valum()

     {

         return(PI*radius*radius*heigth);

     }

     void draw()

     {

         cout<<"圆柱高度为:"<<heigth<<setw(10)<<"半径为:"<<radius<<endl;

     }

};

class CCone:virtualpublic CShape//定义一个圆锥类

{

protected:

     float mx,radius;

public:

     CCone(float a,float b)

     {

         mx=a;

         radius=b;

     }

     void setcone(float a,float b)

     {

         mx=a;

         radius=b;

     }

     float valum()

     {

         return(PI*radius*radius*sqrt(mx*mx-radius*radius));

     }

     void draw()

     {

         cout<<"母线长为:"<<mx<<setw(10)<<"半径长为:"<<radius<<endl;

     }

};

class CTriangle:virtualpublic CShape//三角形类定义

{

protected:

     float x,y,z;

public:

     CTriangle(float a,float b,float c)

     {

         x=a;y=b;z=c;

     }

     void settriangle(float a,float b,float c)

     {

         x=a;y=b;z=c;

     }

     float zc()

     {

         return(x+y+z);

     }

     float area()

     {

         float t=(x+y+z)/2;

         return(sqrt((t-x)*(t-y)*(t-z)));

     }

     void draw()

     {

         cout<<"三角形三边长分别为:"<<x<<","<<y<<","<<z<<endl;

     }

};

class CPolygon:virtualpublic CShape//多边形类定义

{

protected:

     float x;

     int y;

public:

     CPolygon(float a,int b)

     {

         x=a;

         y=b;

     }

     void setpolygon(float a,int b)

     {

         x=a;

         y=b;

     }

     float area()

     {

         return(sqrt(3.0)*x*x*y/4);

     }

     float zc()

     {

         return(x*y);

     }

     void draw()

     {

         cout<<"多边形的一边长为:"<<x<<setw(10)<<"边数为:"<<y<<endl;

     }

};

#endif

 

#include"CShape.h"

#include<iostream>

#include<iomanip>

usingnamespace std;

void main()

{  

     char d='y';

    

     int i(0);

     cout<<"欢迎进入本系统!";

     cout<<"请选择服务:"<<endl;

     cout<<"           1.点的计算。"<<endl;

     cout<<"           2.线的计算。"<<endl;

     cout<<"           3.圆的计算。"<<endl;

     cout<<"           4.圆柱的计算。"<<endl;

     cout<<"           5.圆锥的计算。"<<endl;

     cout<<"           6.长方形的计算。"<<endl;

     cout<<"           7.多边形的计算。"<<endl;

     cout<<"           8.三角形的计算。"<<endl;

     cout<<"           9.退出。"<<endl;

     while(d=='Y'||d=='y')

     {

         cout<<"请输入你的选择:"<<endl;

     cin>>i;

 

if(i==1)

{

     CShape *pshape;

     CPoint point(2.0,3.0);

     float a,b;

     cout<<"请输入点的坐标:";

     cin>>a>>b;

     point.setpoint(a,b);

     pshape=&point;

    pshape->draw();

}

elseif(i==2)

{

     CShape *pshape;

     CLine line(1.0,2.0,3.0,4.0);

     float a,b,c,d;

     cout<<"请依次输入两端点的坐标:";

     cin>>a>>b>>c>>d;

     line.setline(a,b,c,d);

     pshape=&line;

     pshape->draw();

     cout<<"线的长度为:"<<pshape->length()<<endl;

}

elseif(i==3)

{

     CShape *pshape;

     CCircle circle(2.0);

     float a;

     cout<<"请输入圆的半径:";

     cin>>a;

     circle.setcircle(a);

     pshape=&circle;

    pshape->draw();

    cout<<"圆的面积为;"<<pshape->area()<<setw(10)<<"圆的周长为;"<<pshape->zc()<<endl;

}

elseif(i==4)

{

     CShape *pshape;

     CCylinder yz(2.0,3.0);

     float a,b;

     cout<<"请输入圆柱的底面半径和高:";

     cin>>a>>b;

     yz.setcylinder(a,b);

     pshape=&yz;

    pshape->draw();

    cout<<"圆柱的面积为:"<<pshape->area()<<setw(10)<<"圆柱的体积为:"<<pshape->valum()<<endl;

 

}

elseif(i==5)

{

     CShape *pshape;

     CCone cone(5.0,4.0);

     float a,b;

     cout<<"请输入母线长和底面半径:";

     cin>>a>>b;

     cone.setcone(a,b);

     pshape=&cone;

     pshape->draw();

     cout<<"圆锥的体积为:"<<pshape->valum()<<endl;

}

elseif(i==6)

{

     CShape *pshape;

     CRectangle rectangle(3.0,2.0);

     float a,b;

     cout<<"请输入长方形的长和宽:";

     cin>>a>>b;

     rectangle.setrectangle(a,b);

     pshape=&rectangle;

     pshape->draw();

     cout<<"长方形的面积为:"<<pshape->area()<<setw(10)<<"长方形的周长为:"<<pshape->zc()<<endl;

}

elseif(i==7)

{

     CShape *pshape;

     CPolygon polygon(2.0,4);

     float a;

     int b;

     cout<<"请输入多边形的边长和边数:";

     cin>>a>>b;

     polygon.setpolygon(a,b);

     pshape=&polygon;

     pshape->draw();

     cout<<"多边形的面积为:"<<pshape->area()<<setw(10)<<"周长为:"<<pshape->zc()<<endl;

}

elseif(i==8)

{

     CShape *pshape;

     CTriangle triangle(3.0,4.0,5.0);

     float a,b,c;

     cout<<"请输入三角形三边长:";

     cin>>a>>b>>c;

     triangle.settriangle(a,b,c);

     pshape=&triangle;

     pshape->draw();

     cout<<"三角形的周长为:"<<pshape->zc()<<"面积为:"<<pshape->area()<<endl;

}

elseif(i==9)

{

     return;

}

else

{

     cout<<"输入错误,请重新输入!";

}

cout<<"是否继续其他操作(Y/N)?"<<endl;

cin>>d;

}

}

回复(0) 喜欢(0)     评分
li461277332
6楼
太感谢了。。。好长啊

回复(0) 喜欢(0)     评分
灯火互联
7楼

回复(0) 喜欢(0)     评分
电脑
8楼
挺难的

回复(0) 喜欢(0)     评分
1741843932
9楼
感谢楼主分享,谢谢!

回复(0) 喜欢(0)     评分