Java第五次作业_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();

}

}

6c1555302777729326ca3efa0910d9ec.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功能:

6c1555302777729326ca3efa0910d9ec.png

outerRect功能:

6c1555302777729326ca3efa0910d9ec.png

join功能:

6c1555302777729326ca3efa0910d9ec.png

distance功能:

6c1555302777729326ca3efa0910d9ec.png

若输入错误:

6c1555302777729326ca3efa0910d9ec.png

以上为第五次作业

来源:oschina

链接:https://my.oschina.net/u/3715361/blog/1563378

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值