自己设计的三角形的类

/*  
* 程序的版权和版本声明部分  
* Copyright (c)2013, 烟台大学计算机学院学生  
* All rightsreserved.  
* 文件名称:score.cpp                             
* 作    者:张浩                              
* 完成日期:2013年4月3日  
* 版本号: v1.0        
* 输入描述: 
* 问题描述:
* 输出:  
*/    
#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
	Triangle(){a=1;b=1;c=1;} //(2)设计默认构造函数,即不指定参数时,默认各边长为1;
	Triangle(double x, double y, double z)	{a=x; b=y; c=z;} //(1)使用带参数构造函数,即Triangle(double x, double y, double z),三边长在调用时由实参直接给出

	double perimeter(void);//计算三角形的周长
	double area(void);//计算并返回三角形的面积
	void showMessage();
private:
	double a,b,c; //三边为私有成员数据
};

double Triangle::perimeter(void)  
{  
    return (a + b + c);  
}  
  
double Triangle::area(void)  
{  
    double s = (a + b + c) / 2;    
    return sqrt(s * (s - a) * (s - b) * (s - c));   
} 

void Triangle::showMessage()
{
	cout<<"三角形的三边长分别为:"<<a<<' '<<b<<' '<<c<<endl;
	cout<<"该三角形的周长为:"<<perimeter()<<' '<<"面积为:"<<area()<<endl<<endl;
}

void main(void)
{
	Triangle Tri1;	//定义三角形类的一个实例(对象)
	Tri1.showMessage();
	Triangle Tri2(7,8,9);	//定义三角形类的一个实例(对象)
	Tri2.showMessage();
	system("pause");
}


运行结果:

心得体会:呵呵呵。。。。

```markdown ### 代码概述 设计一个用于表示三角形,使用 `Point` 存储顶点坐标,所有坐标字段为 `int` 型。中包含计算面积和坐标平移的功能,通过对象调用方法完成操作。 ### 代码解析 ```java class Point { int x, y; public Point(int x, int y) { this.x = x; this.y = y; } } class Triangle { Point p1, p2, p3; // 构造函数初始化三个顶点 public Triangle(int x1, int y1, int x2, int y2, int x3, int y3) { this.p1 = new Point(x1, y1); this.p2 = new Point(x2, y2); this.p3 = new Point(x3, y3); } // 计算三角形面积(返回double避免除法截断) public double getArea() { return Math.abs((p1.x * (p2.y - p3.y) + p2.x * (p3.y - p1.y) + p3.x * (p1.y - p2.y))) / 2.0; } // 对三角形整体进行平移 public void translate(int dx, int dy) { p1.x += dx; p1.y += dy; p2.x += dx; p2.y += dy; p3.x += dx; p3.y += dy; } } public class Main { public static void main(String[] args) { // 创建三角形对象(三个顶点) Triangle t = new Triangle(0, 0, 4, 0, 0, 3); // 输出原始面积 System.out.println("面积: " + t.getArea()); // 平移操作 t.translate(1, 1); System.out.println("平移后面积: " + t.getArea()); } } ``` - 使用 `int` 型定义所有坐标值,符合整数要求。 - `Triangle` 封装三个 `Point` 对象,代表三角形的顶点。 - `getArea()` 使用行列式公式计算面积,结果以 `double` 返回保证精度。 - `translate(int dx, int dy)` 实现坐标的整数平移。 - 主中创建对象并测试功能。 ### 知识点 1. **int 型使用**:用于存储整数坐标,体现数据型的明确性与简洁性。 2. **构造函数**:在对象创建时初始化三个点,确保状态完整。 3. **几何面积公式**:利用 $ \frac{1}{2} |x_1(y_2{-}y_3){+}x_2(y_3{-}y_1){+}x_3(y_1{-}y_2)| $ 求解由整数坐标构成的三角形面积。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值