实验目的:1.使用带参数构造函数,即Triangle(float x, float y, float z),三边长在调用时由实参直接给出;
2.设计默认构造函数,即不指定参数时,默认各边长为1;
3.使用默认参数的构造函数,不给定实参时,默认边长为1;
4.在构造函数中使用参数初始化表对数据成员初始化
实验代码:
#include <iostream>
#include <cmath>
using namespace std;
class Triangle
{
public:
Triangle();
Triangle(float, float, float);
float perimeter(void); //计算三角形的周长
float area(void); //计算并返回三角形的面积
void showMessage();
private:
float a, b, c; //三边为私有成员
};
void Triangle::showMessage()
{
cout << "三角形的三边长分别为: " << a << " " << b << '\t' << c << endl;
cout << "该三角形的周长为: " << perimeter() << '\t' << "面积为: " << area() << endl;
}
void main(void)
{
Triangle Tri1; //定义三角形类的一个实例(对象)
Tri1.showMessage();
Triangle Tri2(7, 8, 9); //定义三角形类的一个实例(对象)
Tri2.showMessage();
}
Triangle::Triangle()
{
a = 1;
b = 1;
c = 1;
}
Triangle::Triangle(float x, float y, float z)
{
a = x;
b = y;
c = z;
}
float Triangle::perimeter(void) //计算三角形的周长
{
float perimeter;
perimeter = a + b + c;
return perimeter;
}
float Triangle::area(void)
{
float p;
p = (a + b + c) / 2;
float area;
area = sqrt(p * (p - a) * (p - b) * (p - c));
return area;
}
实验结果截图:
实验收获:
感觉还好啦,计算三角形的面积和表面积的实验已经不是第一次见了,所以编起来还算顺手,只是在代码上增加了带参数的构造函数而已,课本看好,应该是不会有什么大麻烦的,只是老师用了“坏心眼”,让人走了不少弯路,因为在给出的代码中有不少的错误,也算是训练了一下阅读代码和更正代码错误的能力吧,总体不算难。