java57_孙明明_JAVA_作业1106

一、

package org.jsoft.HomeWork;

public class Point {
int x;
int y;
public Point(int x,int y){
setX(x);
setY(y);

}

//get 和set方法.

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 String disPlay(int x,int y){
    return "The point is at:"+"("+x+","+y+")";//输出点的坐标。
}}

//测试point 类

package org.jsoft.HomeWork;

public class TestPoint {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
  Point p=new Point(100, 43);
  System.out.println("The point is at:"+"("+p.getX()+","+p.getY()+")");

//通过get方法来获得x,y 的值并输出。
  System.out.println(p.disPlay(100,42)); //通过调用disPlay方法来输出点坐标。
    }

}
095443_tmOY_3715009.png

二、

package org.jsoft.HomeWork;


public class Rectangle {
Point point;

int width;
int height;
public Rectangle(Point p,int width,int heigth){
    
    
}
public Rectangle(int x,int y,int width,int heigth){
    
}
public Rectangle(Rectangle r){
    
}
public Rectangle(){
    
}public Point getPoint() {
    return point;
}
public void setPoint(Point point) {
    this.point = point;
}
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;
}
public int getArea(){//getArea 方法用来计算面积。
    int area=width*height;
    
    return area ;
            
    
}public String display(){//disPlay方法来输出矩形的基本信息。
       
    
    return "矩形的高为:"+height+"\n"+"矩形的宽为:"+width    ;
 }
}

package org.jsoft.HomeWork;

import java.util.Scanner;

public class TestRectangle {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
System.out.println("请输入 矩形的宽和高(整数):");
        Scanner sc=new Scanner(System.in);//从键盘输入
 int a=sc.nextInt(); //输入的第一个值赋值给a
 int b=sc.nextInt();   //输入的第二个值赋值飞b
 Rectangle r=new Rectangle(); //实例化Rectangle 对象r
 r.height=b;  //将b 的值赋值给高
 r.width=a;//将a的值赋值给宽
System.out.println("矩形的面积是:"+r.getArea()); //调用getArea方法并输出
 System.out.println(r.display());//调用disPlay方法并输出

    }

}
100134_5Sx1_3715009.png

 

三、

package org.jsoft.HomeWork;

import java.awt.Point;
import java.awt.Rectangle;

public class Circle {
    Point p;
    double x,y,r;

    //一系列get和set 方法
    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 getR() {
        return r;
    }
    public void setR(double r) {
        this.r = r;
    }

    
    public Point getP() {
        return p;
    }
    public void setP(Point p) {
        this.p = p;
    }
    
    
    
    
    //各种带参数和不带参数的构造方法
public Circle(){    
}
public Circle(Point p,float r){
    
}
public Circle (double x,double y,double  r ){
setX(x);
setY(y);
setR(r);
}public Circle(Circle c){
    
}
//普通方法


public boolean isInside(double  x1,double y1)//判断一个点是否在圆内
{
    if((x1-getX())*(x1-getX())+(y1-getY())*(y1-getY())<=getR()*getR())

//如果(x-a)的平方+(x-b)的平方<=半径的平方,即点a,b 在圆内

{
        return true;
        }
    else{
        return false;
    }

    
}public    String  outRect(double x1,double y1,double width,double height)
//返回一个矩形的外接圆
{   double x=(width+height)/2+x1;//圆心得横坐标等于宽加高除以2 加上矩形左下角的横坐标
    double y=(width+height)/2+y1;//圆心得纵坐标等于宽加高除以2 加上矩形左下角的纵坐标
    double r=Math.sqrt(width*width+height*height); //半径等于根号下(宽的平方加高的平方)
 return "外接圆为:("+x+","+y+","+r+")";
}public String join(double x1,double y1,double r1, double x2,double y2,double r2)//返回两个参数圆的最小外接圆

    double xx= (x2+x1)/2;//外接圆x坐标等于连个参数圆的横坐标相加除以2
    double yy= (y2+y1)/2;//外接圆y标等于连个参数圆的纵坐标相加除以2
    double rr=(Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))+r1+r2)/2;

//半径等于 c1,c2圆心之间的距离加上两个圆的半径除以二
    
    return     "c1、c2最小外接圆的圆心 为:"+xx+","+yy+"\n"+"半径为:"+rr;
} public double distance(double x1,double y1,double x2,double y2)//返回两个参数圆圆心之间的距离

    double xx=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

//两个圆心之间的距离等于:根号下((x1-x2)的平方加(y1-y2)的平方)
    return xx;
}public String toString()//返回本圆的基本信息,格式为(圆心x坐标值,圆心y坐标值,圆半径)。
{  
    x=getX(); //将获得的x赋值给x
    y=getY();//将获得的y赋值给y
    r=getR();//将获得的r赋值给r
    
    return "("+x+","+y+","+r+")";//输出x,y,r   
}
}

 

//测试  Circle类:

package org.jsoft.HomeWork;

import java.util.Scanner;

public class TestCircle {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入圆心的坐标以及圆的半径:");
        System.out.println("圆心横坐标x:");
        Scanner sc=new Scanner(System.in);
        double x=sc.nextInt();
        System.out.println("圆心纵坐标y:");
        double y=sc.nextInt();
        System.out.println("圆 的半径r:");
        float r=sc.nextFloat();
        System.out.println("请输入你要选择的功能:");
        System.out.println("1、判断一个点是否在圆内"+"\n"+"2、返回一个矩形的外接圆"+"\n"+"3、返回两个参数圆的最小外接圆"+"\n"+"4、返回两个参数圆圆心之间的距离"+"\n"+"5、返回圆的基本信息");
        int  a=sc.nextInt();

Circle cir=new Circle(x,y,r);
if(a==1)//如果输入的数字为1 则执行此条语句

{
    System.out.println("请输入你要判断的点的坐标:");
System.out.println("横坐标x:");
double x1=sc.nextFloat();
System.out.println("纵坐标y:");
double  y1=sc.nextFloat();
System.out.println(cir.isInside(x1,y1));//调用Circle 中的isInside方法,并输出。
}else if (a==2){//返回一个矩形的外接圆。假设矩形的左下角定点在坐标原点
    System.out.println("请输入矩形左下角x坐标:");
    double x1=sc.nextDouble();
    System.out.println("请输入矩形左下角y坐标:");
    double y1=sc.nextDouble();
    System.out.println("请输入矩形的宽:");
    double width=sc.nextDouble();
    System.out.println("请输入矩形的高:");
    double height=sc.nextDouble();
    System.out.println(cir.outRect(x1,y1,width, height));//调用Circle中的outRect方法,并输出。
}else if (a==3){//返回两个参数圆的最小外切圆
    System.out.println("请输入两个圆的圆心坐标及半径:"+"\n"+"第一个圆c1的圆心横坐标x1:");
     double x1=sc.nextDouble();
     System.out.println("第一个圆圆心的纵坐标y1:");
     double y1=sc.nextDouble();
     System.out.println("第一个圆的半径:");
     double r1=sc.nextDouble();
     System.out.println("请输入第二个圆c2的圆心坐标x2:");
     double x2=sc.nextDouble();
     System.out.println("第二个圆圆心的纵坐标y2:");
     double y2=sc.nextDouble();
     System.out.println("第二个圆的半径:");
     double r2=sc.nextDouble();
     System.out.println(cir.join(x1,y1,r1,x2,y2,r2));//调用Circle 中的join方法,并输出。
}else if (a==4){//返回两个参数圆圆心之间的距离 
    System.out.println("输入第一个圆c1的横坐标:");
    double x1=sc.nextDouble();
    System.out.println("输入纵坐标:");
    double y1=sc.nextDouble();
    System.out.println("输入第二个圆c2的横坐标:");
    double x2=sc.nextDouble();
    System.out.println("输入纵坐标:");
    double y2=sc.nextDouble();
    System.out.println("两个圆的圆心的距离为:"+cir.distance(x1,y1,x2 ,y2));

//调用Circle中的disPlay方法并输出。
    
    
}else if(a==5){//显示圆的基本信息
    System.out.println(cir.toString());//调用Circle中的toString方法并输出。
    
}

else {
    System.out.println("输入错误!请重新运行");
}

    }

}

101611_VurE_3715009.png

101637_rfPb_3715009.png

101704_r2LQ_3715009.png

101904_I77S_3715009.png

101949_8kDm_3715009.png

102009_WGaM_3715009.png

102027_s1RV_3715009.png

 

四、

 

package org.jsoft.HomeWork;

import java.util.Scanner;

public class TestRectangle2 extends Circle

//继承Circle, 防止一些Circle的属性不能用,此题中可不加,因为都Circle中的属性都是public{
public static void main(String[] args) {
    
do//循环语句,用于一小段程序结束后继续执行上一次程序(例如执行完inInside后可以继续执行join)

{
    System.out.println("请输入命令(isInside/outerRect/join/distance/quit):");
    Scanner sc=new Scanner(System.in);
    String a1=sc.next();

    if (a1.equals("isInside"))//如果输入的字符串等于"isInsdide"则执行接下来的语句。

{
        System.out.print("请指定圆心的x坐标:");
        double a2=sc.nextDouble();
System.out.print("请指定圆心的y坐标:");
double a3=sc.nextDouble();
System.out.print("请指定半径的长度:");
double a4=sc.nextDouble();
System.out.print("请输入测试点的x坐标:");
double a5=sc.nextDouble();
System.out.print("请输入测试点的y坐标:");
double a6=sc.nextDouble();
Circle c=new Circle(a2,a3,a4);
String aa;
boolean bb=c.isInside(a5, a6);// 执行Circle中isInside方法,并将返回的值赋值给b 
if(bb==true)//如果b=true 则aa为在

{
    aa="在";}
    else{
        aa="不再";// 如果b=false则aa为不在
    }
System.out.println("isInside的结果为:测试点("+a5+","+a6+")"+aa+"你所指定的圆("+a2+","+a3+","+a4+")内");

//输出各项数据并打印出结果在或不在。

    }
    else if(a1.equals("outerRect")) //如果输入的字符串等于"outerRect"则执行下面语句

{
        System.out.print("请输入矩形左下角x坐标:");
        double x1=sc.nextDouble();
        System.out.print("请输入矩形左下角y坐标:");
        double y1=sc.nextDouble();
        System.out.print("请输入矩形的宽:");
        double width=sc.nextDouble();
        System.out.print("请输入矩形的高:");
        double height=sc.nextDouble();
        Circle c=new Circle();
        System.out.println("outerRect的结果为:矩形("+x1+","+y1+","+width+","+height+")的"+    c.outRect(x1, y1, width, height));//调用Circle 中的outRect方法并输出
    }else if (a1.equals("join"))//如果输入的字符串为“join”则执行下面语句

{
        System.out.println("请输入两个圆的圆心坐标及半径:"+"\n"+"第一个圆c1的圆心横坐标x1:");
         double x1=sc.nextDouble();
         System.out.print("第一个圆圆心的纵坐标y1:");
         double y1=sc.nextDouble();
         System.out.print("第一个圆的半径:");
         double r1=sc.nextDouble();
         System.out.print("请输入第二个圆c2的圆心坐标x2:");
         double x2=sc.nextDouble();
         System.out.print("第二个圆圆心的纵坐标y2:");
         double y2=sc.nextDouble();
         System.out.print("第二个圆的半径:");
         double r2=sc.nextDouble();
            Circle c=new Circle();
         System.out.println(c.join(x1,y1,r1,x2,y2,r2));//调用Circle中的join方法并输出结果。
    
    } else if (a1.equals("distance"))//如果输入的字符串为"distance"则执行下面的语句

        System.out.print("输入第一个圆c1的横坐标:");
        double x1=sc.nextDouble();
        System.out.print("输入纵坐标:");
        double y1=sc.nextDouble();
        System.out.print("输入第二个圆c2的横坐标:");
        double x2=sc.nextDouble();
        System.out.print("输入纵坐标:");
        double y2=sc.nextDouble();
        Circle c=new  Circle();
        System.out.println("两个圆的圆心的距离为:"+c.distance(x1,y1,x2 ,y2));

//调用Circle中的distance方法并输出结果    }
    else if (a1.equals("quit")){
        System.out.println("程序结束!再见!!");
        break; // 如果输出的为“quit” 则结束循环。
        
    }
    
    }while(true);
    }
    
}
 

103504_rrQ3_3715009.png

103524_c759_3715009.png

103545_QZDP_3715009.png

 

 

 

 

转载于:https://my.oschina.net/u/3715009/blog/1563013

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值