编写一个程序,计算三角形,正方形的面积
代码如下:
#include "iostream"
using namespace std;
class CShape //定义基类
{
public:
virtual float Area( void)=0;//定义为虚函数,求面积
};
class CTriangle: public CShape //定义派生类三角形,公有继承方式
{
private:
float w,h;
public:
CTriangle(float a=0.0,float b=0.0);
virtual float Area( void); //定义为虚函数
};
class CSquare: public CShape //定义派生类正方形,公有继承方式
{private:
float s;
public:
CSquare(float a=0.0);
virtual float Area( void);
};
class CCircle: public CShape //定义派生类圆形,公有继承方式
{private:
float r;
public:
CCircle(float a=0.0);
virtual float Area( void);
};
CTriangle::CTriangle(float a,float b) //三角形类的构造函数定义
{ w=a;
h=b;
}
float CTriangle::Area() //三角形面积的求法的函数定义
{
return (w*h)/2;
}
CSquare::CSquare(float a) //正方形类的构造函数定义
{
s=a;
}
float CSquare::Area() //正方形面积的求法的函数定义
{
return s*s;
}
CCircle::CCircle(float a) //圆形类的构造函数定义
{
r=a;
}
float CCircle::Area( void) //圆形面积求法的函数定义
{
return 3.14159*r*r;
}
void main()
{
int m;
while(m!=4)
{
cout<<"---------欢迎使用计算图形面积系统--------"<<endl;
cout<<"* 1、三角形 * "<<endl;
cout<<"* 2、正方形 * "<<endl;
cout<<"* 3、圆 * "<<endl;
cout<<"* 4、退出系统 * "<<endl;
cout<<"---------------------------------"<<endl;
cout<<"请输入要进行的操作:";cin>>m;
while (m<1||m>4)
{
cout<<"输入错误!请重新输入:";
cin>>m;
}
switch (m)
{
case 1:
{
float a,b;
cout<<"三角形的底和高:"; cin>>a>>b;
CTriangle T(a,b);
cout<<"三角形的面积:"<<T.Area()<<endl;
break;
}
case 2:
{
float a;
cout<<"正方形的边长:"; cin>>a;
CSquare S(a);
cout<<"正方形的面积:"<<S.Area()<<endl;
break;
}
case 3:
{
float a;
cout<<"圆的半径:"; cin>>a;
CCircle C(a);
cout<<"圆的面积:"<<C.Area()<<endl;
break;
} case 4:break;
}
}
}
扩展资料
语言特点
支持数据封装和数据隐藏
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。
每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
支持继承和重用
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
参考资料来源:百度百科-C++
double p,i,s;
p = (a + b + c) / 2;
i = p * (p - a) * (p - b) * (p - c);
s = System.Math.Sqrt(i);
正方形面积就太简单了。
s=a*a
#include<math.h>
#include <iostream>
using namespace std;
void main()
{
double p,i,s,a,b,c;
s=0;
cin>>a;
cin>>b;
cin>>c;
p = (a + b + c) / 2;
i = p * (p - a) * (p - b) * (p - c);
s=sqrt(i);
cout<<"s="<<s<<endl;
}