读书人

一个求各种图形总面积的程序主函数报

发布时间: 2012-09-06 10:37:01 作者: rapoo

一个求各种图形面积的程序,主函数报错
#include <iostream>
const double PI=3.1416;
using namespace std;
class Shap //求基本图形面积
{
public:
virtual double Area() const=0;
};
class Triangle:public Shap //三角形
{
public:
Triangle(double h,double w)
{H=h;W=w;}
double Area() const
{return 0.5*H*W;}
private:
double H,W;
};
class Rectangle:public Shap //长方形
{
public:
Rectangle(double h,double w)
{H=h;W=w;}
double Area() const
{return H*W;}
private:
double H,W;
};
class Circle:public Shap //圆形
{
public:
Circle(double r)
{R=r;}
double Area()const
{return PI*R*R;}
private:
double R;
};
class Trapezoid:public Shap //梯形
{
public:
Trapezoid(double t,double b,double h)
{T=t;B=b;H=h;}
double Area()const
{return 0.5*(T+B)*H;}
private:
double T,B,H;
};
class Squre:public Shap //正方形
{
public:
Squre(double s)
{S=s;}
double Area() const
{return S*S;}
private:
double S;
};
class IOshap
{
public:
IOshap();
~IOshap(){delete p;}
private:
Shap *p;
};
IOshap::IOshap()
{int n;
cout<<"请输入图形编号n值:\n";
cin>>n;
while(n<1||n>5)
{cin>>n;
if(n<1||n>5)
{cout<<"n值范围:1≤n≤5,请重新输入正确值。\n}";
}
switch(n)
{case 1: double x1, y1;
cout<<"请输入三角形的高、底:\n";
cin>>x1>>y1;
p=new Triangle(x1,y1);
cout<<"三角形面积为:"<<p->Area()<<endl;break;
case 2: double x2,y2;
cout<<"请输入长方形的长、宽:\n";
cin>>x2>>y2;
p=new Rectangle(x2,y2);
cout<<"长方形面积为:"<<p->Area()<<endl;break;
case 3: double x3;
cout<<"请输入圆的半径:\n";
cin>>x3;
p=new Circle(x3);
cout<<"圆形面积为:"<<p->Area()<<endl;break;
case 4: double x4,y4,z4;
cout<<"请依次输入梯形的上底、下底、高:\n";
cin>>x4>>y4>>z4;
p=new Trapezoid(x4,y4,z4);
cout<<"梯形面积为:"<<p->Area()<<endl;break;
case 5: double s;
cout<<"请输入正方形的边长:\n";
cin>>s;
p=new Squre(s);
cout<<"正方形面积为:"<<p->Area()<<endl;break;
}
}
void main()
{IOshap q;
}
报错信息:error C2601: 'main' : local function definitions are illegal
应该怎么改

[解决办法]
括号不匹配。
另外学会如何美化代码就不会有这种问题了。

[解决办法]
报错信息:error C2601: 'main' : local function definitions are illegal
一楼正解

读书人网 >C++

热点推荐