圆柱体表面积和体积:
定义一个圆柱类Cylinder,成员数据为底圆半径r和圆柱高h,成员函数为构造函数,GetArea计算圆柱体的表面积,GetVolume计算圆柱体的体积。(注意π值取3.14)
main函数输入圆柱的半径和高,定义一个类对象,计算并输出圆柱的表面积和体积。
#include<iostream>
using namespace std;
const double PI=3.14;
class Cylinder{
private:
double m_r;
double m_h;
public:
Cylinder(double r,double h);
double GetArea();
double GetVolume();
};
Cylinder::Cylinder(double r,double h){
m_r=r;
m_h=h;
}
double Cylinder::GetVolume(){
cout<< PI*m_r*m_r*m_h;
return 0;
}
double Cylinder::GetArea(){
cout<< 2*PI*m_r*m_r+2*PI*m_r*m_h;
return 0;
}
int main(){
double r,h;
cin>> r >> h;
Cylinder aa(r,h);
aa.GetArea();
cout<< ' ';
aa.GetVolume();
}
坐标移动:
定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化)、成员函数Set(用于改变数据成员x、y的值)、成员函数LeftMove(点坐标向左移动detax)、成员函数上移UpMove(点坐标上移detay)、成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。
#include<iostream>
using namespace std;
class Point
{
public:
Point(double x=0, double y=0);
void Set(double x, double y);
void LeftMove(double dx);
void UpMove(double dy);
void Display();
private:
double m_x;
double m_y;
};
Point::Point(double x, double y)
{
m_x = x;
m_y = y;
}
void Point::Set(double x, double y)
{
m_x = x;
m_y = y;
}
void Point::LeftMove(double dx)
{
m_x = m_x - dx;
}
void Point::UpMove(double dy)
{
m_y = m_y + dy;
}
void Point::Display()
{
cout << "(" << m_x << "," << m_y << ")" << endl;
}
int main()
{
double x1, y1, x2, y2, dx, dy;
cin >> x1 >> y1;
cin >> dx;
cin >> dy;
cin >> x2 >> y2;
Point p1;
p1.Display();
p1.Set(x1, y1);
p1.Display();
p1.LeftMove(dx);
p1.Display();
p1.UpMove(dy);
p1.Display();
Point p2(x2, y2);
p2.Display();
return 0;
}
三角形面积之和:
定义一个三角形类Triangle,包括三个double型数据成员a、b和c表示三角形的三条边,成员函数包括构造函数、IsTriangle、GetArea。构造函数用于实现对数据成员的初始化;成员函数IsTriangle判断三条边是否构成三角形,成员函数GetArea返回三角形的面积。main函数中输入两组三角形的边长,用这两组边长实例化两个三角形类对象T1,T2,若T1、T2均能构成三角形,则输出两个三角形面积之和,否则输出failure。
#include<iostream>
#include<cmath>
using namespace std;
class Triangle{
private:
double m_a;
double m_b;
double m_c;
public:
Triangle(double a,double b,double c);
bool IsTriangle();
double GetArea();
};
Triangle::Triangle(double a,double b,double c){
m_a=a;
m_b=b;
m_c=c;
};
bool Triangle::IsTriangle(){
if (m_a+m_b>m_c && m_b+m_c>m_a && m_a+m_c>m_b)
return true;
else
return false;
}
double Triangle::GetArea(){
double s;
s = (m_a + m_b + m_c) / 2;
return sqrt(s * (s - m_a) * (s - m_b) * (s - m_c));
}
int main()
{
double a1,b1, c1, a2, b2, c2;
cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2;
Triangle T1(a1, b1, c1);
Triangle T2(a2, b2, c2);
if (T1.IsTriangle()==true && T2.IsTriangle()==true)
cout<<T1.GetArea()+T2.GetArea();
else
cout<<"failure";
return 0;
}