吉软-java57-第六次作业

b45c1bb4043c2c0e1254ae238bfc6b2af462ce3a.png

Point类:

package org.jisoft.ZuoYe;

public class Point {
    int x,y;
    
    public Point(int x,int y){
        this.x = x;
        this.y = y;
        System.out.println("初始化坐标:");
        System.out.println("("+x+","+y+")");
    }
    public void setX(int x1){
        System.out.println("获得x坐标:" + x1);
        x = x1 ;
    }
    public int getX(){
        return x;
    }
    
    public void setY(int y1){
        System.out.println("获得x坐标:" + y1);
        y = y1 ;
    }
    public int getY(){
        return y;
    }
    
    public int display(int x,int y){
        System.out.println("Point坐标为:" + "("+ getX() + "," + getY() +")");
        return y;
    }
}

测试Point类:

package LianXi171105;
import java.util.Scanner;

public class TestPoint {

    public static void main(String[] args) {
        Point p1 = new Point(0,0);
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请设定x坐标:");
        int a = sc.nextInt();
        p1.setX(a);
        
        System.out.println("请设定y坐标:");
        int b = sc.nextInt();
        p1.setY(b);
        
        p1.display(a,b);
        
    }
}

 

b40f7420bbe825c7354eb23f4b89677d924c7c55.png

Rectangle类:

package org.jisoft.ZuoYe;

public class Rectangle {
    int x,y;
    int width;
    int height;
    
    public Rectangle(int x,int y,int width,int height){
        System.out.println("初始化坐标为:" + "(" + x + "," + y + ")");
        System.out.println("初始化宽为:" + width);
        System.out.println("初始化长为:" + height);
    }
    public void setX(int x1){
        x = x1;
        System.out.println("x轴坐标为:" + x1);
    }
    public int getX(){
        return x;
    }
    public void setY(int y1){
        x = y1;
        System.out.println("y轴坐标为:" + y1);
    }
    public int getY(){
        return y;
    }
    
    public void setWidth(int width){
        this.width=width;
        
        System.out.println("矩形宽为:" + width);
    }
    public int getWidth(){
        return width;
    }
    public void setHeight(int height){
        this.height=height;
        
        System.out.println("矩形高为:" + height);
    }
    public int getHeight(){
        return height;
    }

测试Rectangle类:

package org.jisoft.ZuoYe;
import java.util.Scanner;

public class TestRectangle {

    public static void main(String[] args) {
        Rectangle rec1 = new Rectangle(0,0,0,0);
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请设置矩形x轴坐标:");
        rec1.setX(sc.nextInt());
        System.out.println("请设置矩形y轴坐标:");
        rec1.setY(sc.nextInt());
        System.out.println("请设置矩形宽度:");
        rec1.setWidth(sc.nextInt());
        System.out.println("请设置矩形高度:");
        rec1.setHeight(sc.nextInt());
        
    rec1.display();
        System.out.println("矩形面积为:" +rec1.getArea());        
    }
}

编写一个圆类Circle
要求:
1. 该类拥有两个属性:
1) Point p代表圆心
2) float radius代表半径
2. 构造方法
1) Circle()
2) Circle(Point p, float r)
3) Circle(int x, int y, float r) //x, y代表圆心的两个坐标
4) Circle(Circle c)
3. 普通方法
0) 一系列get/set方法:
getPoint(), setPoint(Point p), setPoint(int x, int y)
getRadius(), setRadius(float r)
1) public boolean isInside(Point p) //判断一个点是否在圆内
2) public Circle outerRect(Rectangle r) //返回一个矩形的外接圆
3) public Circle join(Circle c1, Circle c2) //返回两个参数圆的最小外接圆
4) public float distance(Circle c1, Circle c2) //返回两个参数圆圆心之间的距离
5) public String toString() 
//返回本圆的基本信息,格式为(圆心x坐标值,圆心y坐标值,圆半径)。如:
(0, 0, 2)
4. 编写一个带main函数的测试类,测试Circle类

Circle类:

package org.jisoft.Circle;

import org.jisoft.ZuoYe.Point;
import org.jisoft.ZuoYe.Rectangle;

public class Circle {
    Point p ;
    double r;
    int x,y,x1,y1;
    
    public Circle(Point p,double r){ 
        System.out.println("初始化圆心坐标为:" + "(" + x + "," + y + ")");
        System.out.println("初始化半径为:" + r);
    }
    public Circle(){
        
    }
    public Circle(Circle c){
        
    }
    public Circle(int x, int y, double r){ //x, y代表圆心的两个坐标
        x1 = x;
        y1 = y;
        this.r = r;
    }
    
    
    public void setPoint(Point p){
        this.p = p;
    }
    public Point getPoint(){
        return p;
    }
    public void setPoint(int x,int y){
        this.x = x;
        this.y = y;
    }
    
    
    public void setR(int r){
        this.r = r;
    }
    public double getR(){
        return r;
    }
    
    //判断一个点是否在圆内
    public boolean isInside(Point p){
        double a = (p.getX()-x)*(p.getX()-x)+(p.getY()-y)*(p.getY()-y);
        if(a<=r*r){    
                return true;
            }
        else return false;    
    }
    
    //返回一个矩形的外接圆
    public String outerRect(Rectangle r) {
        double x = r.getX()+r.getWidth()/2 ;
        double y = r.getY()+r.getHeight()/2 ;
        double r1 = Math.sqrt((r.getWidth()/2)*(r.getWidth()/2)+(r.getHeight()/2)*(r.getHeight()/2));
        return "矩形外接圆坐标、半径为:" + x + "," + y + "  " + r1;
    }
    
    //返回两个参数圆的最小外接圆
    public Circle join(Circle c1, Circle c2){
        double r1 = (Math.sqrt((c1.getPoint().getX()-c2.getPoint().getX())*(c1.getPoint().getX()-c2.getPoint().getX())+(c1.getPoint().getY()-c2.getPoint().getY())*(c1.getPoint().getY()-c2.getPoint().getY()))+
                c1.getR()+c2.getR())/2;
        int x = Math.abs(c1.getPoint().getX()-c2.getPoint().getX())/2;
        int y = Math.abs(c1.getPoint().getY()-c2.getPoint().getY())/2;
        System.out.println("最小外接圆坐标为:" + "(" + x + "," + y +")" + "   " + "半径为:" + r1);
        return null; 
    }
    
    //返回两个参数圆圆心之间的距离
    public double distance(Circle c1,Circle c2){
        double d = Math.sqrt((c1.getPoint().getX()-c2.getPoint().getX())*(c1.getPoint().getX()-c2.getPoint().getX())+
                (c1.getPoint().getY()-c2.getPoint().getY())*(c1.getPoint().getY()-c2.getPoint().getY()));
        return d;
    }

测试Circle类:

package org.jisoft.Circle;

import java.util.Scanner;

import org.jisoft.ZuoYe.Point;
import org.jisoft.ZuoYe.Rectangle;

public class TestCircle {

    public static void main(String[] args) {
        Circle c = new Circle(0,0,0);
        Point p = new Point(0,0);
        Rectangle rec = new Rectangle(0,0,0,0);
        
        Scanner sc = new Scanner(System.in);
        System.out.println("请设定圆心坐标:");
        c.setPoint(sc.nextInt(),sc.nextInt());
        System.out.println("请设定圆半径:");
        c.setR(sc.nextInt());
        
        System.out.println("判断一个点是否在设定圆内:");
        System.out.println("请设定该点x轴坐标:");
        p.setX(sc.nextInt());
        System.out.println("请设定该点y轴坐标:");
        p.setY(sc.nextInt());
         if(c.isInside(p)){
             System.out.println("测试点在设定圆内");
         }
         else System.out.println("测试点不在设定圆内");
         
         System.out.println("***********返回一个矩形的外接圆**************");
         System.out.println("请设定矩形x轴坐标:");
         rec.setX(sc.nextInt());
         System.out.println("请设定矩形y轴坐标:");
         rec.setY(sc.nextInt());
         System.out.println("请设定矩形宽度:");
         rec.setWidth(sc.nextInt());
         System.out.println("请设定矩形高度:");
         rec.setHeight(sc.nextInt());
         System.out.println(c.outerRect(rec));
         Circle c1 = new Circle();
         Circle c2 = new Circle();
         System.out.println("请设定c1圆心坐标:");
         System.out.println("请设定圆心坐标:");         
         c1.p=new Point(sc.nextInt(),sc.nextInt());
         System.out.println("请设定c1圆半径:");
         c1.setR(sc.nextInt());
         System.out.println("请设定c2圆心坐标:");
         System.out.println("请设定圆心坐标:");
         c2.p = new Point(sc.nextInt(),sc.nextInt());
         System.out.println("请设定c2圆半径:");
         c2.setR(sc.nextInt());
         Circle c3 = new Circle();
         c3.join(c1,c2);
         
         System.out.println("***************返回两个参数圆圆心之间的距离**************");
         Circle c4 = new Circle();
         Circle c5 = new Circle();
         System.out.println("请设定c4圆心坐标:");
         System.out.println("请设定圆心坐标:");         
         c4.p = new Point(sc.nextInt(),sc.nextInt());
         System.out.println("请设定c4圆半径:");
         c4.setR(sc.nextInt());
         System.out.println("请设定c5圆心坐标:");
         System.out.println("请设定圆心坐标:");
         c5.p = new Point(sc.nextInt(),sc.nextInt());
         System.out.println("请设定c5圆半径:");
         c5.setR(sc.nextInt());
         Circle c6 = new Circle();
         System.out.println("直线距离为:" +c6.distance(c4,c5));
    }

}

运行结果:

001735_5OpJ_3715033.png

001810_JhBF_3715033.png

001858_RFoD_3715033.png

转载于:https://my.oschina.net/u/3715033/blog/1564291

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值