题目
2023年10月26日神州十七号飞船发射圆满成功。神舟十七号飞船是神州飞船系列的一种,它由轨道舱、返回舱、推进舱和逃逸救生塔等组成。航天员可以在返回舱内驾驶飞船,轨道舱是航天员工作和休息的场所。在紧急情况下,可以利用逃逸救生塔逃生。在飞船两侧有多个太阳能电池翼,为飞船提供电能。根据描述画出相应的类图。
2023年10月26日神州十七号飞船发射圆满成功。神舟十七号飞船是神州飞船系列的一种,它由轨道舱、返回舱、推进舱和逃逸救生塔等组成。航天员可以在返回舱内驾驶飞船,轨道舱是航天员工作和休息的场所。在紧急情况下,可以利用逃逸救生塔逃生。在飞船两侧有多个太阳能电池翼,为飞船提供电能。根据描述画出相应的类图。
题目解答
答案
根据题目描述,神州十七号飞船的类图如下:
1. `ShenzhouSpaceship` 是基类,包含飞船编号、发射日期等属性及发射、对接等方法。
2. `Shenzhou17Spaceship` 继承自 `ShenzhouSpaceship`,并包含以下组成部分:
- `OrbitalModule`:轨道舱,包含工作区、休息区及环境控制方法。
- `ReentryModule`:返回舱,包含驾驶界面、座椅及返回地球方法。
- `PropulsionModule`:推进舱,包含发动机、燃料及推进方法。
- `EscapeTower`:逃逸救生塔,包含逃生机制及紧急逃生方法。
- 多个 `SolarPanel`(可用 `List` 表示),包含发电功率及展开、折叠方法。
类图如下:
```
+---------------------+ +---------------------+
| ShenzhouSpaceship | | Shenzhou17Spaceship |
+---------------------+ +---------------------+
| -飞船编号: String |<------| -轨道舱: OrbitalModule |
| -发射日期: Date | | -返回舱: ReentryModule |
| +发射(): void | | -推进舱: PropulsionModule |
| +对接(): void | | -逃逸救生塔: EscapeTower |
+---------------------+ | -太阳能电池翼: List |
^ +---------------------+
| 继承
|
+---------------------+ +---------------------+
| OrbitalModule | | ReentryModule |
+---------------------+ +---------------------+
| -工作区: String | | -驾驶界面: String |
| -休息区: String | | -座椅: String |
| +环境控制(): void | | +返回地球(): void |
+---------------------+ +---------------------+
+---------------------+ +---------------------+
| PropulsionModule | | EscapeTower |
+---------------------+ +---------------------+
| -发动机: String | | -逃生机制: String |
| -燃料: String | | +紧急逃生(): void |
| +推进(): void | +---------------------+
+---------------------+
+---------------------+
| SolarPanel |
+---------------------+
| -发电功率: double |
| +展开(): void |
| +折叠(): void |
+---------------------+
```
(注:类图中未体现所有方法和属性,核心关系已清晰表达。)
解析
本题考查面向对象编程中类图的设计,解题思路是根据题目对神舟十七号飞船各组成部分的描述,确定类之间的继承和组合关系,进而设计出相应的类图。
- 确定基类:
- 题目中提到神舟十七号飞船是神舟飞船系列的一种,所以可以创建一个基类
ShenzhouSpaceship来表示神舟飞船系列的通用属性和方法。 - 该基类包含飞船编号(
飞船编号: String)和发射日期(发射日期: Date)作为属性,以及发射(发射(): void)和对接(对接(): void)作为方法。
- 题目中提到神舟十七号飞船是神舟飞船系列的一种,所以可以创建一个基类
- 创建子类:
- 由于神舟十七号飞船是神舟飞船系列的具体实例,所以创建
Shenzhou17Spaceship类继承自ShenzhouSpaceship类。 Shenzhou17Spaceship类包含多个组成部分,这些组成部分通过组合关系与Shenzhou17Spaceship类关联。
- 由于神舟十七号飞船是神舟飞船系列的具体实例,所以创建
- 设计各组成部分的类:
- 轨道舱(
OrbitalModule):根据描述,轨道舱是航天员工作和休息的场所,所以该类包含工作区(工作区: String)、休息区(休息区: String)作为属性,以及环境控制(环境控制(): void)作为方法。 - 返回舱(
ReentryModule):航天员可以在返回舱内驾驶飞船,所以该类包含驾驶界面(驾驶界面: String)、座椅(座椅: String)作为属性,以及返回地球(返回地球(): void)作为方法。 - 推进舱(
PropulsionModule):推进舱为飞船提供推进力,所以该类包含发动机(发动机: String)、燃料(燃料: String)作为属性,以及推进(推进(): void)作为方法。 - 逃逸救生塔(
EscapeTower):在紧急情况下可以利用逃逸救生塔逃生,所以该类包含逃生机制(逃生机制: String)作为属性,以及紧急逃生(紧急逃生(): void)作为方法。 - 太阳能电池翼(
SolarPanel):飞船两侧有多个太阳能电池翼为飞船提供电能,所以该类包含发电功率(发电功率: double)作为属性,以及展开(展开(): void)和折叠(折叠(): void)作为方法。在Shenzhou17Spaceship类中,使用List来表示多个太阳能电池翼。
- 轨道舱(