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

Java第五次作业

2017-11-06 00:00 435 查看
第一题:

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();
}
}



第三题:

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功能:



outerRect功能:



join功能:



distance功能:



若输入错误:



以上为第五次作业
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java