您的位置:首页 > 编程语言 > Java开发

吉软_Java_第六次作业

2017-11-08 00:00 465 查看




编写一个圆类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类


1.

package org.jsoft;
public class Point {
private int x,y;

public Point(int x,int y){
System.out.println("初始坐标:("+x+","+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 int display(int a,int b){
System.out.println("The point is at:("+a+","+b+")");
return x ;
}
}

2.

package org.jsoft;

public class Rectangle {
private Point point;
private int width;
private int height;
private int x;
private int y;
public Rectangle(int x,int y,int width,int height){
System.out.println("这个矩形坐标为:"+"("+x+","+y+")");
System.out.println("这个矩形的宽高为:"+"("+width+","+height+")");
}
public int getX(){
return x;
}
public void setX(int x){
this.x = x;
System.out.println("更改x坐标:"+x);
}
public int getY(){
return y;
}
public void setY(int y){
this.y =y;
System.out.println("更改x坐标:"+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;
}

public void display(){
System.out.println("矩形的宽和高是:"+width+","+height);
}
public String getArea(){
return "矩形面积为:" + height*width;
}

}

//测试

package org.jsoft;

import java.util.Scanner;

public class TextRectangle {

public static void main(String[] args) {
Rectangle r=new Rectangle(0,0,0,0);
Scanner sc=new Scanner(System.in);

System.out.println("请输入x:");
r.setX(sc.nextInt());

System.out.println("请输入y:");
r.setY(sc.nextInt());

System.out.println("请输入width:");
r.setWidth(sc.nextInt());

System.out.println("请输入height:");
r.setHeight(sc.nextInt());

r.display();
String m = r.getArea();
System.out.println(m);
}

}

3.

package org.jsoft;

public class Circle {
private Point p;
private float r;

public Circle(double x,double y,double r){

}
public Circle(int x,int y,float r){
}
public Circle(Point p, float r){}
public Circle(Circle c){}

public Point getP(){
return p;
}
public void setP(int x,int y){
p = new Point(x,y);
}
public float getR(){
return r;
}
public void setR(float r){
this.r=r;
}
public boolean isInside(Point p){
double result=((p.getX()-this.p.getX())*(p.getX()-this.p.getX()))+((p.getY()-this.p.getY())*(p.getY()-this.p.getY()));
if(result<=r*r){
return true;
}else return false;
}
public String outerRect(Rectangle r){
int a=r.getX()+r.getWidth()/2;
int b=r.getY()+r.getHeight()/2;
double d=(a-r.getX())*(a-r.getX())+(b-r.getY())*(b-r.getY());
return "外接圆圆心:"+a+","+b+" " + "半径:"+d;
}
public Circle join(Circle c1, Circle c2){
double r= Math.sqrt((c1.getP().getX()-c2.getP().getX())*(c1.getP().getX()-c2.getP().getX())+(c1.getP().getY()-c2.getP().getY())*(c1.getP().getY()-c2.getP().getY()))/2;
double x = Math.abs(Math.abs(c1.getP().getX())-Math.abs(c2.getP().getX()))/2;
double y = Math.abs(Math.abs(c1.getP().getY())-Math.abs(c2.getP().getY()))/2;
Circle c=new Circle(x,y,r);
return c;
}
}

//测试

package org.jsoft;

import java.util.Scanner;

public class TextCircle {
public static void main(String[] args) {
Circle c=new Circle(0, 0, 0);
Point p=new Point(0,0);
Rectangle l=new Rectangle(0,0,0,0);
Scanner sc=new Scanner(System.in);
System.out.println("请输入圆心坐标:");
c.setP(sc.nextInt(), sc.nextInt());
System.out.println("请输入圆的半径:");
c.setR(sc.nextFloat());

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("请输入矩形的x:");
l.setX(sc.nextInt());
System.out.println("请输入矩形的y:");
l.setY(sc.nextInt());
System.out.println("请输入矩形的宽:");
l.setWidth(sc.nextInt());
System.out.println("请输入矩形的高:");
l.setHeight(sc.nextInt());
System.out.println(c.outerRect(l));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: