Java第五次作业

第一题:

package org.jsoft.Hw;

public class Point {
    public int x,y;
    public Point(int x,int y){
        this.x=x;
        this.y=y;
    }
    public int getX() {
        return x;
    }

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

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }
    public void display(){
        System.out.println("The point is at:("+x+","+y+")");
    }
}

package org.jsoft.Hw;

public class TestPoint {
public static void main(String[] args) {
    Point p=new Point(0,0);
    p.display();
    p.setX(100);
    p.setY(42);
    p.display();
}
}

第二题:

package org.jsoft.Hw;

public class Rectangle {
    /*声明Rectangle的属性*/
    public Point a=new Point(0,0);
    public int width;
    public int height;
    public Point getP() {
        return a;
    }
    public void setP(Point p) {
        this.a = p;
    }
    public void setPoint(int x,int y){
        a.setX(x);
        a.setY(y);
    }
    public int getWidth() {
        return width;
    }
    public void setWidth(int width) {
        this.width = width;
    }
    public int getHeight() {
        return height;
    }
    public void setHeight(int height) {
        this.height = height;
    }
    /*Rectangle的构造方法*/
    public Rectangle(Point p,int width,int height){
        this.a=p;
        this.width=width;
        this.height=height;
    }
    public Rectangle(int x,int y,int width,int height){
        this.a.x=x;
        this.a.y=y;
        this.width=width;
        this.height=height;
    }
    public Rectangle(Rectangle r){        
    }
    public Rectangle(){
    }
    public int getArea(){
        return width*height;
    }
    public void display(){
        System.out.println("The rectangle's width and height is:"+getWidth()+","+getHeight());
    }
    
}
 

 

package org.jsoft.Hw;

public class TestRectangle {
    public static void main(String[] args) {
        /* 不同的构造方法 */
        Rectangle r = new Rectangle();
        Point a = new Point(10, 10);
        r.display();
        r.setP(a);
        r.setHeight(67);
        r.setWidth(50);
        r.display();
        Rectangle r1 = new Rectangle(a, 50, 67);
        r1.display();
        r1.a.display();
        Rectangle r2 = new Rectangle(10, 10, 50, 67);
        r2.display();

        Rectangle r3 = new Rectangle(r);
        r3.display();
        /* 矩形面积 */
        r.getArea();
        r1.getArea();
        r2.getArea();
        r3.getArea();
    }
}
 

194007_E9uC_3715361.png

 

第三题:

package org.jsoft.Hw;

public class Circle {
    Point p=new Point(0,0);
    Rectangle r=new Rectangle(0,0,0,0);
    double radius;
    public Point getP() {
        return p;
    }
    public void setP(Point p) {
        this.p = p;
    }
    public void setP(int x,int y) {
        this.p.x = x;
        this.p.y = y;
    }
    public double getRadius() {
        return radius;
    }
    public void setRadius(float radius) {
        this.radius = radius;
    }
    Circle(){
    }
    Circle(Point p, float r){
    }
    Circle(int x, int y, double d){
        this.p.x=x;
        this.p.y=y;
        this.radius=d;
        
    }
    Circle(Circle c){
    }
    public boolean isInside(Point p){ //判断点与圆的位置关系
        if(((p.x-this.p.x)*(p.x-this.p.x)+(p.y-this.p.y)*(p.y-this.p.y))<=(radius*radius))
            return true;
        return false;}
    public Circle outerRect(Rectangle r){ //返回一个矩形的外接圆
        Circle outer_c=new Circle(r.getP().x+r.width/2,r.getP().y+r.height/2,Math.sqrt((r.width*r.width+r.height*r.height))/2);
        /*System.out.println(r.getP().x);
        System.out.println(r.getP().y);
        System.out.println(r.width);
        System.out.println(r.height);
        System.out.println(Math.sqrt((r.width*r.width+r.height*r.height))/2);*/
        return outer_c;
    }
    public Circle join(Circle c1, Circle c2){ //返回两个参数圆的最小外接圆
        Circle c=new Circle((c1.p.x+c2.p.x)/2,(c1.p.y+c2.p.y)/2,Math.sqrt((c1.p.x-(c1.p.x+c2.p.x)/2)*(c1.p.x-(c1.p.x+c2.p.x)/2)+(c1.p.y-(c1.p.y+c2.p.y)/2)*(c1.p.y-(c1.p.y+c2.p.y)/2))+c1.radius);
        return c;
    }
    public float distance(Circle c1, Circle c2){ //返回两个参数圆圆心之间的距离
        return (float)Math.sqrt((c1.getP().x-c2.getP().x)*(c1.getP().x-c2.getP().x)+(c1.getP().y-c2.getP().y)*(c1.getP().y-c2.getP().y));
    }
    public String toString(){//返回本圆的基本信息,格式为(圆心x坐标值,圆心y坐标值,圆半径)
        System.out.println(("("+this.p.x+","+this.p.y+","+this.radius+")"));
        return null;
    }
}

 

package org.jsoft.Hw;

import java.util.Scanner;

public class TestCircle {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        boolean flag=false;
        while(flag==false){
        System.out.print("请输入命令(isInside/outerRect/join/distance/quit):");
        String choose=input.nextLine();
        switch(choose){
        case "isInside":{
            System.out.print("请指定圆心的x坐标:");
            int x=input.nextInt();
            System.out.print("请指定圆心的y坐标:");
            int y=input.nextInt();
            System.out.print("请指定半径长度:");
            int radius=input.nextInt();
            System.out.print("请输入测试点的x坐标:");
            int test_x=input.nextInt();
            System.out.print("请输入测试点的y坐标:");
            int test_y=input.nextInt();
            Circle c=new Circle(x,y,radius);
            Point p=new Point(test_x,test_y);
            if(c.isInside(p)==true){
                System.out.println("isInside的结果为:测试点("+p.x+","+p.y+")在你所指定的圆"+"("+c.p.x+","+c.p.y+","+c.radius+")内");
            }
            else{
                System.out.println("isInside的结果为:测试点("+p.x+","+p.y+")不在你所指定的圆"+"("+c.p.x+","+c.p.y+","+c.radius+")内");}
            }
            flag=true;
            break;
        case "outerRect":{
            System.out.print("请指定矩形的左下角点的x坐标:");
            int x=input.nextInt();
            System.out.print("请指定矩形的左下角点的y坐标:");
            int y=input.nextInt();
            System.out.print("请指定矩形的宽:");
            int width=input.nextInt();
            System.out.print("请指定矩形的高:");
            int height=input.nextInt();
            Rectangle r=new Rectangle(x,y,width,height);
            Circle c=new Circle();
            Circle c1=c.outerRect(r);
            System.out.println("outerRect的结果为:矩形("+r.a.x+","+r.a.y+","+r.width+","+r.height+")的外接圆为"+"("+c1.p.x+","+c1.p.y+","+c1.radius+")");
            flag=true;
        }
        break;
        case "join":{
            System.out.print("请指定圆心的x坐标:");
            int x=input.nextInt();
            System.out.print("请指定圆心的y坐标:");
            int y=input.nextInt();
            System.out.print("请指定半径的长度:");
            int radius=input.nextInt();
            System.out.print("请指定圆心的x坐标:");
            int x1=input.nextInt();
            System.out.print("请指定圆心的y坐标:");
            int y1=input.nextInt();
            System.out.print("请指定半径的长度:");
            int radius1=input.nextInt();
            Circle c=new Circle(x,y,radius);
            Circle c1=new Circle(x1,y1,radius1);
            Circle c2=c.join(c, c1);
            System.out.println("join的结果为:参数圆("+c.p.x+","+c.p.y+","+c.radius+")和("+c1.p.x+","+c1.p.y+","+c1.radius+")的最小外接圆是("+c2.p.x+","+c2.p.y+","+c2.radius+")");
            flag=true;
        }
            break;
        case "distance":{
            System.out.print("请指定圆心的x坐标:");
            int x=input.nextInt();
            System.out.print("请指定圆心的y坐标:");
            int y=input.nextInt();
            System.out.print("请指定半径的长度:");
            int radius=input.nextInt();
            System.out.print("请指定圆心的x坐标:");
            int x1=input.nextInt();
            System.out.print("请指定圆心的y坐标:");
            int y1=input.nextInt();
            System.out.print("请指定半径的长度:");
            int radius1=input.nextInt();
            Circle c=new Circle(x,y,radius);
            Circle c1=new Circle(x1,y1,radius1);
            System.out.println("distance的结果为:参数圆("+c.p.x+","+c.p.y+","+c.radius+")和("+c1.p.x+","+c1.p.y+","+c1.radius+")的圆心之间的距离是"+c.distance(c, c1));
            flag=true;
        }
            break;
        case "quit":
            flag=true;
            break;
        default:{
                System.out.println("对不起,你输入的命令有误,请重新输入!");
                flag=false;
                break;}
        }
        }
        System.out.println();
        System.out.println("程序运行结束");
        
    }
}
 

isInside功能:

194255_dPmm_3715361.png

outerRect功能:

194439_tUj4_3715361.png

join功能:

194634_LE82_3715361.png

distance功能:

194740_CcXp_3715361.png

若输入错误:

194818_X6Q6_3715361.png

以上为第五次作业

转载于:https://my.oschina.net/u/3715361/blog/1563378

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值