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

java求点的象限和点的距离

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

  • 写回答

6条回答 默认 最新

  • Taylor 淡定哥 2023-02-25 09: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() 方法根据两点的坐标差来计算它们之间的距离,即
    (x1x2)2+(y1y2)2


    其中 $x_1$、$y_1$ 是第一个点的坐标,$x_2$、$y_2$ 是第二个点的坐标。最后使用 Math.round() 方法将结果四舍五入到整数。

    展开全部

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

报告相同问题?

问题事件

  • 系统已结题 3月4日
  • 已采纳回答 2月25日
  • 修改了问题 2月25日
  • 创建了问题 2月25日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部