\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors)
\newcommand\bs[1]{\mathbf{#1}}\\% Poor man's siunitx
\newcommand\unit[1]{\mathrm{#1}}
\newcommand\num[1]{#1}
\newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/}
\newcommand\squared{{}^2}
%
% Scale
\newcommand\milli{\unit{m}}
\newcommand\centi{\unit{c}}
\newcommand\kilo{\unit{k}}
\newcommand\mega{\unit{M}}
%
% Angle
\newcommand\radian{\unit{rad}}
\newcommand\degree{\unit{{}^\circ}}
%
% Time
\newcommand\second{\unit{s}}
%
% Distance
\newcommand\meter{\unit{m}}
\newcommand\m{\meter}
\newcommand\inch{\unit{in}}
\newcommand\feet{\unit{ft}}
\newcommand\mile{\unit{mi}}
\newcommand\mi{\mile}
%
% Volume
\newcommand\gallon{\unit{gal}}
%
% Mass
\newcommand\gram{\unit{g}}
\newcommand\g{\gram}
%
% Frequency
\newcommand\hertz{\unit{Hz}}
\newcommand\rpm{\unit{rpm}}
%
% Voltage
\newcommand\volt{\unit{V}}
\newcommand\V{\volt}
\newcommand\millivolt{\milli\volt}
\newcommand\mV{\milli\volt}
\newcommand\kilovolt{\kilo\volt}
\newcommand\kV{\kilo\volt}
%
% Current
\newcommand\ampere{\unit{A}}
\newcommand\A{\ampere}
\newcommand\milliampereA{\milli\ampere}
\newcommand\mA{\milli\ampere}
\newcommand\kiloampereA{\kilo\ampere}
\newcommand\kA{\kilo\ampere}
%
% Resistance
\newcommand\ohm{\Omega}
\newcommand\milliohm{\milli\ohm}
\newcommand\kiloohm{\kilo\ohm} % correct SI spelling
\newcommand\kilohm{\kilo\ohm} % "American" spelling used in siunitx
\newcommand\megaohm{\mega\ohm} % correct SI spelling
\newcommand\megohm{\mega\ohm} % "American" spelling used in siunitx
%
% Inductance
\newcommand\henry{\unit{H}}
\newcommand\H{\henry}
\newcommand\millihenry{\milli\henry}
\newcommand\mH{\milli\henry}
%
% Temperature
\newcommand\celsius{\unit{^{\circ}C}}
\newcommand\C{\unit{\celsius}}
\newcommand\fahrenheit{\unit{^{\circ}F}}
\newcommand\F{\unit{\fahrenheit}}
\newcommand\kelvin{\unit{\K}}
\newcommand\K{\unit{\kelvin}}\\% Power
\newcommand\watt{\unit{W}}
\newcommand\W{\watt}
\newcommand\milliwatt{\milli\watt}
\newcommand\mW{\milli\watt}
\newcommand\kilowatt{\kilo\watt}
\newcommand\kW{\kilo\watt}
%
% Torque
\newcommand\ozin{\unit{oz}\text{-}\unit{in}}
\newcommand\newtonmeter{\unit{N\text{-}m}}\end{aligned}\end{align} \]
Apr 16, 2025 | 261 words | 3 min read
11.2.3. Rockets
Instructions
Write a class named Rocket
that has attributes named name
,
booster_cost
, upper_stage_cost
, and fuel_cost
,
and has a method named cost_per_launch
. All of the class’s
attributes should be set during instantiation. The cost_per_launch
method should calculate the cost of a launch as the sum of the
booster_cost
, the upper_stage_cost
, and the
fuel_cost
, and then print out the cost to launch the rocket.
\[\text{cost per launch} = \text{booster cost} + \text{upper stage cost} + \text{fuel cost}\]
Next, write a ReusableRocket
class that inherits from Rocket
.
This class should have all the same attributes as Rocket
plus an
attribute named uses
that represents the number of times the rocket’s
booster stage can be used. The ReusableRocket
class should override
the inherited cost_per_launch
method such that it calculates the
launch cost as the booster_cost
divided by uses
, plus the
upper_stage_cost
, plus the fuel_cost
.
\[\text{reusable cost per launch} = \frac{\text{booster cost}}{\text{uses}} + \text{upper stage cost} + \text{fuel cost}\]
In the main
function of your program, create the five rockets listed
in Table 11.4. The first four rockets should be instances of
Rocket
, but the fifth one should be an instance of
ReusableRocket
. Then call the cost_per_launch
method on
each of them.
Sample Output
Ensure your program’s output matches the provided samples exactly.
This includes all characters, white space, and punctuation. In the
samples, user input is highlighted like
this for clarity, but your program should not highlight user
input in this way.
Sample Output
$ python3 rockets_login.py
This Atlas V cost $108.23 million per launch.
This Ariane 5 cost $139.79 million per launch.
This Long March 3B cost $49.88 million per launch.
This Soyuz 2 cost $35.04 million per launch.
This Falcon 9 cost $20.92 million per launch.
Deliverables
Save your finished program as rockets_login.py
, replacing
login
with your Purdue login. Then submit it along with all the
deliverables listed in Table 11.5
below.