
大一课程设计涉及几何图形。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
3. 几何图形 (满分 50 分)
版本 1:满分 10 分 需要设计一个抽象类 GeometricObject,并为其定义两个子类,Triangle 和 Circle。 GeometricObject 类设计需遵循以下规范:
■ 包含一个名为 color 的 Color 类型私有数据成员,用于表示对象的颜色。
■ 包含一个名为 filled 的 Boolean 类型私有数据成员,用于指示对象是否填充。
■ 包含一个名为 dateCreated 的 Date 类型私有数据成员,用于记录对象的创建日期。
■ 提供一个无参构造方法,用于创建默认的 GeometricObject 对象。
■ 提供一个带有指定 color 和 filled 参数的有参构造方法,用于创建具有特定属性的 GeometricObject 对象。
■ 提供所有相关数据成员的访问器和修改器方法。
■ 定义两个抽象方法,分别为 draw 和 erase,用于实现图形的绘制和删除功能。
■ 定义一个抽象方法 getArea,用于计算对象的面积。
■ 定义一个抽象方法 getPerimeter,用于计算对象的周长。
■ 重写 toString 方法,以便于输出对象的信息。
Triangle 类设计需遵循以下规范:
■ 包含三个名为 side1、side2 和 side3 的 double 类型私有数据成员,默认值为 1.0。要求这三个数据成员保留两位小数。
■ 提供一个无参构造方法,用于创建默认三角形对象。
■ 提供一个带有指定 side1、side2 和 side3 参数的有参构造方法,用于创建具有特定边长的三角形对象。
■ 提供所有三个数据成员的访问器和修改器方法。
■ 实现父类 GeometricObject 的所有抽象方法的具体实现逻辑.
■ 重写 toString 方法,以方便输出三角形的信息.
Circle 类设计需遵循以下规范:
■ 包含一个名为 radius 的 double 类型私有数据成员, 用于表示圆的半径, 数据域保留两位小数.
■ 包含一个名为 PI 的静态常量, 其值为 3.14.
■ 提供一个无参构造方法, 用于创建默认圆对象.
■ 提供一个带有指定 radius 参数的有参构造方法, 用于创建具有特定半径的圆对象.
■ 提供 radius 数据成员的访问器和修改器方法.
■ 实现父类 GeometricObject 的所有抽象方法的具体实现逻辑.
■ 重写 toString 方法,以方便输出圆的信息.
测试类 TestGeometricObject1 设计需遵循以下规范:
■ 提供一个静态方法 GeometricObject[] RandomCreateGeometricObject(), 该方法能够随机生成 Circle 类和 Triangle 类对象的数组并返回该数组 。
■ 以随机生成的数组为参数, 输出数组中每个对象的基本信息、周长和面积 。
■ 在类中添加其他测试用例来验证功能的正确性 。
版本 2:满分 20 分 需要将上述抽象类 GeometricObject 修改为接口, 该接口只保留四个抽象方法的定义: draw、erase、getArea 和 getPerimeter 。声明类 Circle 和 Triangle 实现该接口 。类的基本要求与版本一相同 ,同时为每个类增加一种将当前对象序列化到指定文件的方法 writeToFile(File f)。 测试类 TestGeometricObject2 设计需遵循以下规范:
■ 提供一个静态方法 Boolean RandomCreateGeometricObject(), 该方法能够随机生成 Circle 类和 Triangle 类对象的数组并返回真 (序列化成功) 或假 (序列化失败)。
■ 将 GeometricObjects.dat 文件中存储的所有对象读出至 GeometricObject 对象数组中 ,然后以该数组作为参数调用函数输出数组中每个对象的基本信息、周长和面积 。
■ 在类中添加其他测试用例来验证功能的正确性 。新增 Rectangle 类也实现接口 GeometricObject ,并修改测试类TestGeometricObject2 ,以体现开-闭原则 。
版本 3:满分 20 分 在第2步的基础上 , 需要设计并实现一个具备图形用户界面 (GUI) 的几何图形绘制系统 。该系统应具备以下功能:根据用户选择的几何图形类型(如圆形、三角形等)进行相应的图形绘制和删除操作;相关参数应通过界面输入;同时能够计算所绘制图形的周长和面积 。
全部评论 (0)


