How do I upload sketch (and parameters) through a user interface
1) Why not just

system("avrdude ...");


That's more or less what the Arduino IDE does.

2) If you really want to embed the data in the executable, see
Embedding Blobs in
Binaries.
You would need to re-link and re-upload the program each time you change
that data. You won't need the Arduino IDE, as it's only job is basically
to call avr-g++ and avrdude. You can use the IDE if you find it's CLI
easier than those of the standard tools.

If you put the data in EPPROM instead, the avrdude can upload it without
re-uploading the program.