GUI or Not to GUI? GUIs are nice but they can be time consuming to design, build, and maintain. If your program is small or seldom used it may be difficult to justify the extra effort.
Some programming languages have a GUI included as part of the language. Java and Python (Tkinter) are two examples as well as some Basic programming dialects.
NO GUI
A terminal program consists of an input file, a program, and the output file. A simple text editor can be used to create an input file and view the output file or the output can be directed to a printer.
A terminal program could also plot graphs and drawings for pen plotters. In Fortran, a library is used to translate subroutine calls to the necessary commands to select and drive the plotter pen. These subroutines are referred to as Calcomp routines named after a popular plotter manufacturer. Nowadays there are similar libraries for many computer languages that simulate these routines that can generate Postscript, PDF, and many other graphic files.
Many people don't realize that a html file does not require a web server to display it. A web browser can process the html file directly from your computer. This means a terminal program can output a html file and use the "pre" directive to contain printed output and the "canvas" to contain the vector graphics output.
The input file can be organized to look like input screen when opened in a screen text editor. Use one line for each input variable and then put some descriptive text after it. Most languages will read the input value and ignore the rest of the line.
SORT OF A GUI
Another option is to use a spreadsheet like MS Office Excel or LibreOffice Calc. You may be able to program everything right in the spreadsheet. Spreadsheets have many mathematical, financial, and statistical functions. They also have a lot of plotting options.
If the problem is more complicated, the spreadsheet scripting language can be used to write a program. Enter your input on one page with a run button at the bottom. The script will run, reading the input from the input spread sheet, crunch the numbers, and then write the output another tabbed sheet.
GUI
Selecting a GUI depends on which programming language and operating system you are using. After that you need to determine how much you want to pay for it. Some operating systems have their own or a preferred GUI.
TCL/TK has been around for a while. Usually for C++ but Python includes an interface called Tkinter.
Qt is probably the most used GUI. Free for personal and open source applications. There is a price for commercial applications. Portable to many operating systems. Can be used with C++ and Python.
wxWidgets is free for any application. Can be used with C++ and Python.
Microsoft: If your writing a Windows application there are a lot of Windows GUIs from Microsoft.