initial---- 2023-02-25 16:59 采纳率: 86.7%
浏览 125
已结题

java求点的象限和点的距离

java参考上述两个程序,请你设计一个点类(Point),其属性包括横坐标和纵坐标,方法包括计算点所在象限getQuadrant、两点之间距离calDistance(小数部分四舍五入)。在Main类中对Point类的两个方法进行测试。输入两点坐标,输出它们的象限和距离。本题不考虑原点。 输入:两行,分别表示两个点的横坐标、纵坐标
输出:一行三个数值:两个点的象限,两点之间距离(保留0位小数)
样例输入 Copy
1 2
3 4
样例输出 Copy
1 1 3

  • 写回答

6条回答 默认 最新

  • Taylor 淡定哥 2023-02-25 17:40
    关注
    
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            Point p1 = new Point(scanner.nextDouble(), scanner.nextDouble());
            Point p2 = new Point(scanner.nextDouble(), scanner.nextDouble());
            int quadrant1 = p1.getQuadrant();
            int quadrant2 = p2.getQuadrant();
            double distance = p1.calDistance(p2);
            System.out.println(quadrant1 + " " + quadrant2 + " " + Math.round(distance));
        }
    }
    
    class Point {
        private double x;
        private double y;
    
        public Point(double x, double y) {
            this.x = x;
            this.y = y;
        }
    
        public int getQuadrant() {
            if (x > 0 && y > 0) {
                return 1;
            } else if (x < 0 && y > 0) {
                return 2;
            } else if (x < 0 && y < 0) {
                return 3;
            } else if (x > 0 && y < 0) {
                return 4;
            } else {
                return 0;
            }
        }
    
        public double calDistance(Point p) {
            double dx = x - p.getX();
            double dy = y - p.getY();
            return Math.sqrt(dx * dx + dy * dy);
        }
    
        public double getX() {
            return x;
        }
    
        public double getY() {
            return y;
        }
    }
    
    

    1.首先在主函数中创建两个 Point 对象 p1 和 p2,并分别从标准输入中读取两个点的坐标。
    2.然后分别调用 p1 和 p2 的 getQuadrant() 方法,得到两个点所在的象限。
    3.接着调用 p1 的 calDistance() 方法,计算两个点之间的距离,并将其四舍五入到整数。
    4.最后将三个数值依次输出即可。

    注:calDistance() 方法根据两点的坐标差来计算它们之间的距离,即
    $$\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}$$
    其中 $x_1$、$y_1$ 是第一个点的坐标,$x_2$、$y_2$ 是第二个点的坐标。最后使用 Math.round() 方法将结果四舍五入到整数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月25日
  • 修改了问题 2月25日
  • 创建了问题 2月25日

悬赏问题

  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题