Apply structured and modular design principles to write programs that meet written specifications and requirements. Develop a pseudo-code design using appropriate program structure (sequence, selection, repetition and nesting) to solve a given programming problem. Use appropriate selection and repetition statements to implement the design. Create user-defined functions to implement a modular design. Use appropriate parameter passing mechanisms for passing data into and getting data back from functions. Use ostream and iomanip formatting manipulators to display tabulated data. Design and implement a menu-driven interface.