第 5 章:单元实验——前往火星的航行票

欢迎来到本书的第一个单元实验,现在是时候使用我们在本单元学习到的知识来编写程序了! 我们的目标是在 Go 游乐场编写一个太空航行票务生成器,它需要用到变量、常量、switchiffor ,并使用 fmt 包和 math/rand 包来显示文本、对齐文本以及生成随机数。

在计划以火星为目的地的旅行时,能够从一个地方获知多家太空航行公司的票价将是一件非常方便的事情。 虽然现在已经有不少聚合各大航空公司飞机票价格的网站,但目前还没有网站推出过相应的太空航行票务服务。 不过这对于我们来说并非难事,毕竟我们可以通过 Go 来让计算机解决这一问题。

为此,我们需要构建一个原型程序,它可以随机生成 10 张太空航行票,并将它们打印到格式工整、标题美观的表格里面,就像这样:

太空航行公司

飞行天数

飞行类型

价格(百万美元)

Virgin Galactic

23

往返

96

Virgin Galactic

39

单程

37

SpaceX

31

单程

41

Space Adventures

22

往返

100

Space Adventures

22

单程

50

Virgin Galactic

30

往返

84

Virgin Galactic

24

往返

94

Space Adventures

27

单程

44

Space Adventures

28

往返

86

SpaceX

41

往返

72

程序打印的表格应该包含以下四列:

  • 提供服务的太空航行公司

  • 以天为单位,到达火星所需的单程飞行时间

  • 票价是否包含返程票

  • 以百万美元为单位的票价

对于每张太空航行票,从 Space Adventures、SpaceX、Virgin Galactic 这三间太空航行公司中随机选择一间作为服务商。

使用 2020 年 10 月 13 日作为所有太空航行票的出发日期,火星和地球在那一天的距离为 62,100,000 公里。

在每秒 16 公里至每秒 30 公里之间随机选择一种作为宇宙飞船的飞行速度,该速度决定了飞行的时长以及价格。 宇宙飞船每次飞行的价格从 3600 万美元到 5000 万美元不等,速度越快的航线价格也越贵,至于双程票则需要收取双倍费用。

请在完成实验之后,将你的解答发布到本书在 forums.manning.com/forums/get-programming-with-go 的论坛里面。 如果你在解题的过程中被难住了,那么可以随时到论坛里面请求帮助,又或者去看看本书附录提供的参考答案。