Station Status Board – Task 2

The status summary program you built has become essential to station operations. The engineering team runs it every hour and reviews the output to ensure all systems are functioning properly. But a new workflow has emerged that the current program cannot support.

Throughout each shift, crew members radio the control room with questions about specific subsystems. A technician working on the navigation array asks, "What's the current Navigation reading?" The life support engineer wants to know, "Is Life Support showing normal status?" The dock supervisor needs to confirm, "What's the DockingClamps pressure?" These questions come in constantly, and right now, the only way to answer them is to scan through the entire printed summary by eye.

The chief engineer wants your program to handle these queries directly. After loading and displaying the full status summary as before, the program should allow the crew to ask about specific subsystems by name. When someone enters a subsystem name, the program should immediately display that subsystem's current reading and status. If the requested subsystem doesn't exist in the data, the program should indicate that clearly.

The status file format remains unchanged:

ReactorCooling 42% NORMAL 35% 58% 35% 127 14:23
PowerDistribution 119V NORMAL 115V 124V 117V 134 14:23
LifeSupport 198000ppm NORMAL 195000ppm 205000ppm 195000ppm 128 14:23
Navigation 0.02deg WARNING 0.00deg 0.08deg 0.05deg 131 14:23
ThermalRegulation 18C NORMAL 16C 22C 15C 129 14:23
WasteRecycling 87% NORMAL 82% 95% 80% 126 14:23
CommArray 94% NORMAL 89% 98% 85% 133 14:23
DockingClamps 3201kPa NORMAL 3150kPa 3280kPa 3100kPa 130 14:23

Remember that you only need the first three fields for each subsystem: name, current reading, and status.

After displaying the full summary, your program should prompt the user to enter a subsystem name. It should then look up that subsystem and display its information. The program should continue accepting queries until the user enters "exit" or "quit" to end the session.

For the example data shown above, a correct program interaction might look like:

=== Station Status Summary ===
ReactorCooling: 42% [NORMAL]
PowerDistribution: 119V [NORMAL]
LifeSupport: 198000ppm [NORMAL]
Navigation: 0.02deg [WARNING]
ThermalRegulation: 18C [NORMAL]
WasteRecycling: 87% [NORMAL]
CommArray: 94% [NORMAL]
DockingClamps: 3201kPa [NORMAL]

Systems checked: 8
Systems with warnings: 1

Enter subsystem name (or 'quit' to exit): Navigation
Navigation: 0.02deg [WARNING]

Enter subsystem name (or 'quit' to exit): LifeSupport
LifeSupport: 198000ppm [NORMAL]

Enter subsystem name (or 'quit' to exit): HullIntegrity
System not found: HullIntegrity

Enter subsystem name (or 'quit' to exit): quit
Session ended.

The crew will use this program throughout their shifts, so the lookup needs to work reliably. Some crew members might type subsystem names with slight variations in capitalization, but for now, exact matches are acceptable. The chief engineer notes that this query pattern—looking up information by name—appears in many station systems, and understanding how to handle it well will be valuable as you work on other projects.