The GUIData and InputData structs should be placed in separate modules.
GUIData is responsible for holding all the values of the GUI that will be auto-filled from an input file and validating them as well. InputData holds all the values used in the output classes that perform calculations. It contains functions for parsing the old input file format from the original program.