图形管理
课题描述:该系统管理图形信息,具备以下功能:
(1)添加图形
(2)删除图形
(3)根据图形编号查询图形信息
课题设计(100分)
(1)图形父类Shape设计(30分)
1)属性:图形名称、图形编号、颜色、边框宽度(6分)
2)构造器:Shape(String shapeName, String shapeID, String color, double borderWidth)(6分)
3)get方法、set方法(6分)
4)重写toString方法:打印图形的所有属性信息(6分)
5)重写equals函数:实现比较两种图形的图形编号是否相同,如果相同则返回true,否则返回false(6分)
(2)矩形Rectangle设计(20分)
1)继承Shape(2分)
2)新增属性:长、宽(5分)
3)构造器:Rectangle(String shapeName, String shapeID, String color, double borderWidth, double length, double width)(5分)
4)get方法、set方法(4分)
5)重写toString方法:打印矩形的所有属性信息(4分)
(3)圆Circle设计(20分)
1)继承Shape(2分)
2)新增属性:半径(5分)
3)构造器:Circle(String shapeName, String shapeID, String color, double borderWidth, double radius)(5分)
4)get方法、set方法(4分)
5)重写toString方法:打印圆的所有属性信息(4分)
(4)接口设计(10分)
面积计算接口,接口中有计算面积的方法(10分)
(5)接口实现类设计(10分)
矩形实现面积计算接口:实现计算矩形面积的方法,输出“矩形面积为:”加上计算结果(5分)
圆实现面积计算接口:实现计算圆面积的方法,输出“圆面积为:”加上计算结果(5分)
(6)主控类设计(执行main方法的类)(10分)
创建一个ShapeTest类,在该类中创建一个矩形数组、一个圆数组,每个数组的长度为5。分别对每个数组实现添加图形、删除图形、通过图形编号查询图形、计算面积操作(10分)
public class Test {
public static void main(String[] args) {
ShapeTest shapeTest = new ShapeTest();
shapeTest.add_R();
shapeTest.Count_R();
shapeTest.Query_R();
shapeTest.delete_R();
System.out.println("================");
shapeTest.Add_C();
shapeTest.Count_C();
shapeTest.Query_c();
shapeTest.Delete_C();
}
}
package com.test.Image;
//在该类中创建一个矩形数组、一个圆数组,每个数组的长度为5。
// 分别对每个数组实现添加图形、删除图形、通过图形编号查询图形、计算面积操作(10分)
public class ShapeTest {
//矩形数组
Rectangle[] rectangle= new Rectangle[9];
//圆数组
Circle[] circles= new Circle[9];
//添加矩形
public void add_R(){
System.out.println("以添加"+"矩形1为例");
rectangle[0]=new Rectangle("矩形1","123","红色","50cm","20","30");
System.out.println("添加成功");
}
//删除矩形
public void delete_R(){
rectangle[0]=null;
System.out.println("删除成功");
}
//查询矩形
public void Query_R(){
for (int i = 0; i < rectangle.length; i++) {
if (rectangle[i]!=null&&rectangle[i].getShapeID().equals("123")){
System.out.println(rectangle[i]);
System.out.println("查询成功");
return;
}
}
System.out.println("没有找到该图形");
}
//计算矩形面积
public void Count_R(){
new R_Image(20,30).AreaAdd();
}
//添加圆
public void Add_C(){
System.out.println("以添加"+"圆1为例");
circles[0]=new Circle("圆1","123","红色","90cm","20");
System.out.println("添加成功");
}
//删除圆
public void Delete_C(){
circles[0]=null;
System.out.println("删除成功");
}
//查询圆
public void Query_c(){
for (int i = 0; i < circles.length; i++) {
if (circles[i]!=null&&circles[i].getShapeID().equals("123")){
System.out.println(circles[i]);
System.out.println("查询成功");
return;
}
}
System.out.println("没有找到该图形");
}
//计算圆面积
public void Count_C(){
new C_Image(20).AreaAdd();
}
}
package com.test.Image;
import java.util.Objects;
//1)属性:图形名称、图形编号、颜色、边框宽度(6分)
//2)构造器:Shape(String shapeName, String shapeID, String color, double borderWidth)(6分)
//3)get方法、set方法(6分)
//4)重写toString方法:打印图形的所有属性信息(6分)
//5)重写equals函数:实现比较两种图形的图形编号是否相同,如果相同则返回true,否则返回false(6分)
public class Shape {
public String shapeName;
public String shapeID;
public String color;
public String borderWidth;
public Shape(String shapeName, String shapeID, String color, String borderWidth) {
this.shapeName = shapeName;
this.shapeID = shapeID;
this.color = color;
this.borderWidth = borderWidth;
}
public String getShapeName() {
return shapeName;
}
public void setShapeName(String shapeName) {
this.shapeName = shapeName;
}
public String getShapeID() {
return shapeID;
}
public void setShapeID(String shapeID) {
this.shapeID = shapeID;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getBorderWidth() {
return borderWidth;
}
public void setBorderWidth(String borderWidth) {
this.borderWidth = borderWidth;
}
@Override
public String toString() {
return "图形{" +
"图形名称='" + shapeName + '\'' +
", 图形编号='" + shapeID + '\'' +
", 颜色='" + color + '\'' +
", 边框宽度='" + borderWidth + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Shape shape = (Shape) o;
return Objects.equals(shapeID, shape.shapeID);
}
}
package com.test.Image;
//1)继承Shape(2分)
//2)新增属性:长、宽(5分)
//3)构造器:Rectangle(String shapeName, String shapeID, String color, double borderWidth, double length, double width)(5分)
//4)get方法、set方法(4分)
//5)重写toString方法:打印矩形的所有属性信息(4分)
public class Rectangle extends Shape{
public String Wide;
public String Long;
public Rectangle(String shapeName, String shapeID, String color, String borderWidth, String wide, String aLong) {
super(shapeName, shapeID, color, borderWidth);
Wide = wide;
Long = aLong;
}
public String getWide() {
return Wide;
}
public void setWide(String wide) {
Wide = wide;
}
public String getLong() {
return Long;
}
public void setLong(String aLong) {
Long = aLong;
}
@Override
public String toString() {
return "矩形{" +
", 图形名称='" + shapeName + '\'' +
", 图形编号='" + shapeID + '\'' +
", 颜色='" + color + '\'' +
", 边框宽度='" + borderWidth + '\'' + "宽='" + Wide + '\'' +
", 长='" + Long + '\'' +
'}';
}
}
package com.test.Image;
//矩形实现面积计算接口:实现计算矩形面积的方法,输出“矩形面积为:”加上计算结果(5分)
public class R_Image implements AreaImage {
public double width;
public double length;
public R_Image(double width, double length) {
this.width = width;
this.length = length;
}
@Override
public void AreaAdd() {
System.out.println("矩形面积为:"+width * length);
}
}
package com.test.Image;
//1)继承Shape(2分)
//2)新增属性:半径(5分)
//3)构造器:Circle(String shapeName, String shapeID, String color, double borderWidth, double radius)(5分)
//4)get方法、set方法(4分)
//5)重写toString方法:打印圆的所有属性信息(4分)
public class Circle extends Shape{
public String Radius;
public Circle(String shapeName, String shapeID, String color, String borderWidth, String radius) {
super(shapeName, shapeID, color, borderWidth);
Radius = radius;
}
public String getRadius() {
return Radius;
}
public void setRadius(String radius) {
Radius = radius;
}
@Override
public String toString() {
return "Circle{" +
", 图形名称='" + shapeName + '\'' +
", 图形编号='" + shapeID + '\'' +
", 颜色='" + color + '\'' +
", 边框宽度='" + borderWidth + '\'' +"半径='" + Radius + '\'' +
'}';
}
}
package com.test.Image;
//圆实现面积计算接口:实现计算圆面积的方法,输出“圆面积为:”加上计算结果(5分)
public class C_Image implements AreaImage{
public double radius;
public C_Image(double radius) {
this.radius = radius;
}
@Override
public void AreaAdd() {
System.out.println("圆面积为:"+Math.PI * radius * radius);
}
}
package com.test.Image;
//面积计算接口,接口中有计算面积的方法(10分
public interface AreaImage {
void AreaAdd();
}