// Source: "Software Design ...", John A Robinson, Newnes, 2004, page 147. #include "loc.h" enum { nfrigid, ntemperate, torrid, stemperate, sfrigid, error }; const char *zones[6] = { "North frigid", "North temperate", "Torrid", "South temperate", "South frigid", "None" // Flag to indicate error return }; const char *location::zone() const { if (!name[0]) // No location loaded in this object return zones[error]; // Error return if (latitude < 23.5) return zones[torrid]; if (latitude < 66.5) { if (ns == 'N') return zones[ntemperate]; return zones[stemperate]; } if (ns == 'N') return zones[nfrigid]; return zones[sfrigid]; }