HM104 立方体比较

HM104 立方体比较

HM104 立方体比较

来源: 第 104 集 类和对象-封装-设计案例1-立方体类

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

设计立方体类 Cube。长、宽、高三个属性设为私有,对外提供公共的 set / get 接口。再提供两个行为:

  • 面积:\(2 \times (长 \times 宽 + 宽 \times 高 + 长 \times 高)\)
  • 体积:\(长 \times 宽 \times 高\)

例如长宽高都是 \(10\) 时,面积 \(600\),体积 \(1000\)。

还要判断两个立方体是否相等:长、宽、高分别相等才算相等。必须分别用两种函数完成,且两种判断结果必须一致:

  • 全局函数 isSame:传入两个立方体,用引用传递,避免值传递再拷贝一份。
  • 成员函数 isSameByClass:用一个已知对象调用,再传入另一个立方体,因此只需要一个参数。类内可以直接读自身的私有长宽高。

读入 \(n\) 个立方体,再处理 \(q\) 次询问。

输入格式

第一行一个整数 \(n\)(\(1 \le n \le 100\))。

接下来 \(n\) 行,每行三个整数 \(L,W,H\)(\(1 \le L,W,H \le 1000\)),用 set 接口写入第 \(i\) 个立方体(编号从 \(1\) 开始)。

下一行一个整数 \(q\)(\(1 \le q \le 1000\))。

接下来 \(q\) 行,每行一种询问:

  • 1 i:输出第 \(i\) 个立方体的面积
  • 2 i:输出第 \(i\) 个立方体的体积
  • 3 i j:用全局函数判断第 \(i\) 个与第 \(j\) 个是否相等,相等输出 YES,否则 NO
  • 4 i j:用成员函数判断第 \(i\) 个与第 \(j\) 个是否相等,相等输出 YES,否则 NO

输出格式

每个询问一行,行末换行。

样例

输入 #1

2
10 10 10
10 10 10
4
1 1
2 1
3 1 2
4 1 2

输出 #1

600
1000
YES
YES

输入 #2

2
10 10 10
10 10 11
2
3 1 2
4 1 2

输出 #2

NO
NO

说明

  • 属性必须私有,类外通过 set / get 访问。
  • 全局函数要传两个对象;成员函数用自身对比传入的那个,只传一个。
  • 两种判断对同一对立方体的结果必须相同。
  • 引用传参避免把立方体再拷贝一份。

信息

ID
1103
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者