JAVA题目~由Point类组合成Triangle类 Exp04-1

2023-11-11

【问题描述】先定义Point类,再定义Triangle类,在Triangle类中定义三个Point对象来表示一个三角形的三个顶点,然后定义一个方法isTri()对这三个点是否能构成三角形进行判定。构造方法先调用isTri(),如果三个点能够构成三角形,则对三角形对象进行初始化,否则给出提示并退出程序。最后定义两个方法getPerimeter()和getArea(),分别求三角形的周长和面积。
在TestTriangle类的main()方法中创建一个Triangle对象,从键盘输入该对象三个顶点的坐标,然后求该三角形的周长和面积(小数点后保留3位),或者给出不能构成三角形的提示。

【样例输入1】
1 1
2 2
3 3

【样例输出1】

Please enter the coordinates of p1:
1 1
Please enter the coordinates of p2:
2 2
Please enter the coordinates of p3:
3 3
Can't form a triangle!

【样例输入2】
1 1
2 0
0 3

【样例输出2】

Please enter the coordinates of p1:
1 1
Please enter the coordinates of p2:
2 0
Please enter the coordinates of p3:
0 3
Perimeter=7.256
Area=0.500


import java.util.Scanner;

class Point {
	private double x, y;

	public Point(double x, double y) {
		super();
		this.x = x;
		this.y = y;
	}

	public double getX() {
		return x;
	}

	public void setX(double x) {
		this.x = x;
	}

	public double getY() {
		return y;
	}

	public void setY(double y) {
		this.y = y;
	}

	public double getDisstance(Point p) {
		double dist = Math.sqrt((this.getX() - p.getX()) * (this.getX() - p.getX())
				+ (this.getY() - p.getY()) * (this.getY() - p.getY()));
		return dist;
	}

}

class Triangle {
	Point a;
	Point b;
	Point c;

	public Triangle(Point a, Point b, Point c) {
		super();
		this.a = a;
		this.b = b;
		this.c = c;
	}

	public boolean isTri() {
		double m, n, z;
		m = a.getDisstance(b);
		n = b.getDisstance(c);
		z = c.getDisstance(a);
		if ((m + n) > z && (m + z) > n && (n + z) > m) {
			return true;
		} else
			return false;
	}

	public Point getA() {
		return a;
	}

	public void setA(Point a) {
		this.a = a;
	}

	public Point getB() {
		return b;
	}

	public void setB(Point b) {
		this.b = b;
	}

	public Point getC() {
		return c;
	}

	public void setC(Point c) {
		this.c = c;
	}

	public double getPerimeter() {
		double m, n, z;
		m = a.getDisstance(b);
		n = b.getDisstance(c);
		z = c.getDisstance(a);
		return m + n + z;

	}

	public double getArea() {
		double m, n, z, half;
		m = a.getDisstance(b);
		n = b.getDisstance(c);
		z = c.getDisstance(a);
		half = (m + n + z) / 2;
		return Math.sqrt(half * (half - m) * (half - n) * (half - z));
	}
}

public class TestTriangle {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.printf("Please enter the coordinates of p1:\n");
		double ax = sc.nextDouble();
		double ay = sc.nextDouble();
		Point a = new Point(ax, ay);
		System.out.printf("Please enter the coordinates of p2:\n");
		double bx = sc.nextDouble();
		double by = sc.nextDouble();
		Point b = new Point(bx, by);
		System.out.printf("Please enter the coordinates of p3:\n");
		double cx = sc.nextDouble();
		double cy = sc.nextDouble();
		Point c = new Point(cx, cy);
		sc.close();
		Triangle d = new Triangle(a, b, c);
		if (d.isTri() == true) {
			double d2 = d.getArea();
			double d1 = d.getPerimeter();
			System.out.printf("Perimeter=%.3f\n", d1);
			System.out.printf("Area=%.3f\n", d2);
		} else {
			System.out.printf("Can't form a triangle!\n");
			System.exit(0);
		}
	}
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA题目~由Point类组合成Triangle类 Exp04-1 的相关文章

随机推荐

  • 用了SSD开机还是很慢?这些拖慢开机的原因你知道吗

    一 4K未对齐 如今新装机多半会选择安装SSD 固态硬盘 而要想让固态硬盘发挥应有的实力 4K对齐是一项必做的操作 4K对齐需要在分区环节完成 可以借助Win10安装程序 使用Win10安装程序分区后自动为4K对齐状态 或者专用的分区软件
  • 存储系统概述——SRAM静态随机存储器

    一 存储系统的概述 目前存储器的特点是 速度快的存储器价格贵 容量小 价格低的存储器速度慢 容量大 在计算机存储器体系结构设计时 我们希望存储器系统的性能高 价格低 那么在存储器系统设计时 应当在存储器容量 速度和价格方面的因素作折中考虑
  • c语言顺序表

    1 创建顺序表 产生随机数 2 查找元素的位置 3 插入元素 4 删除元素 5 输出元素 6 1 颜色和坐标函数 6 2 菜单 6 3蛇 7 完整代码 8 效果图片 开始 库函数 创建结构体 include
  • echarts线性渐变

    1 0 0 1分别代表了右 下 左 上四个位置的颜色坐标 然后再在下方编写 offset 0 color 00FF00 代表颜色坐标为0的颜色 offset 0 5 color 3A8EE6 代表颜色坐标为0 5的颜色 offset 0 8
  • Helm学习笔记

    文章目录 概念 定义 helm组件 helm的工作流程 helm安装 helm仓库 helm部署应用 helm应用的更新或回退或卸载 概念 定义 学习helm首先得了解helm是什么 我们先来看一下helm的定义 helm是将kuberne
  • 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。

    1 把两个函数放在同一个程序文件中 作为一个文件进行编译和运行 include
  • 【C++】类和对象&封装

    C 面向对象三大特征 多态 继承 封装 对象与类 对象 C 中认为万事万物都可以看作一个对象 而对象具有两个特征 属性和行为 属性 属性指的是对象具有的性质 例如将书看为一个对象 那么书具有的属性就是内容 目录 出版社 书名 行为 行为就是
  • spring cloud eureka 消费者使用服务名访问,不能访问的问题

    这里说一下我自己犯的一个错误 我有三个项目eureka server provide service consumer service 以下我统称为ABC三个项目 现在的步骤是这样的 先访问C项目的一个接口 接口里面用restTemplat
  • LAMPSECURITY: CTF6 内网拿到root 20211226

    LAMPSECURITY CTF6 参考博客 https blog csdn net weixin 42652002 article details 112132466 spm 1001 2101 3001 6650 2 utm mediu
  • 第14.17节 爬虫实战3: request+BeautifulSoup实现自动获取本机上网公网地址

    一 引言 一般情况下 没有特殊要求的客户 宽带服务提供商提供的上网服务 给客户家庭宽带分配的地址都是一个宽带服务提供商的内部服务地址 真正对外访问时通过NAT进行映射到一个公网地址 如果我们想确认自己的公网地址还不是很容易 但百度提供了一项
  • 使用oracle LogMiner查看日志文件

    LogMiner的使用 作者 tolywang http tolywang itpub net 发表于 2005 01 19 11 03 分类 Oracle数据库管理 出处 http tolywang itpub net post 48 1
  • Kubernetes学习篇之组件

    Kubernetes学习篇之组件 文章目录 Kubernetes学习篇之组件 前言 概述 控制平面组件 Control Plane Components kube apiserver etcd kube scheduler kube con
  • 代码质量度量标准_Codacy:一个新的容易使用的代码质量和审查自动化解决方案...

    Codacy被超过一千家公司使用来进行代码审查和分析 不仅展示代码的质量 而且随着时间推移的进步 不久前 我为公司组织了一次关于 代码质量和为什么开发人员应该关心它 的演讲 在这次演示中 我证明了一些工具的有效性 这些对于年轻开发者和久经沙
  • kubeadm安装k8s

    1 禁用防火墙 systemctl stop firewalld systemctl disable firewalld 2 禁用SELINUX 执行如下命令 vim etc sysconfig selinux 修改文件中的SELINUX为
  • Magento2.x中文语言包及安装使用

    下载 magento2中文语言包 安装 上传到mage2 store app i18n Magento zh Hans CN文件夹 备注 mage2 store vendor magento language zh hans cn 运行脚本
  • c++二分查找—来自编程珠玑

    c 二分查找 来自编程珠玑 二分查找法 Binary search algorithm 是一个很常见的算法 从 编程珠玑 里再次看到时又有新的收获 直接看代码吧 下面是常见的实现代码 int binary search int a int
  • linux vim使用

    读本文之前请注意 1 本文的目标是提供一些vim的使用技巧 利用这些技巧可以提高vim的操作效率 部分技巧在vi上也可以使用 但是现在基本上都是用vim了 2 本文是整理和总结使用技巧 而非讲解vim入门 因此不会涉及最基本的使用 例如如何
  • 笔试

    文章目录 前言 27 时钟抖动jitter 时钟偏移skew 28 EDA开发工具 29 时序约束 30 DMA 31 乒乓buffer 32 BRAM DRAM 33 设计描述方式 34 延迟设计 35 DDR带宽计算 总结 往期精彩 前
  • xml建模包括以下_建模干货,1分钟速学,Photoscan空三结果完美导入CC

    关注公众号 三维前沿 获取更多倾斜摄影 激光点云资讯 相信大家都经历过 有时CC空三总是失败或错误 最崩溃的是 一顿操作猛如虎 定睛一看原地杵 此时 Photoscan空三能力其实可优于CC 头疼的是 又不想放弃用CC来建模 所以今天 为你
  • JAVA题目~由Point类组合成Triangle类 Exp04-1

    问题描述 先定义Point类 再定义Triangle类 在Triangle类中定义三个Point对象来表示一个三角形的三个顶点 然后定义一个方法isTri 对这三个点是否能构成三角形进行判定 构造方法先调用isTri 如果三个点能够构成三角