cin.get() is not pausing the program because you are always using cin >> before it. cin >> leaves the whitespace character from pressing Enter in the input stream, so when cin.get() is called it immediately takes this whitespace character, essentially making it seem like it does nothing. To fix this, either put cin.ignore() before cin.get(), or put cin.get() twice. cin.ignore() followed by cin.get() would be better, in case there is no whitespace character for the first cin.get() to absorb.
That was probably a terrible explanation, but hopefully you'll understand it.
The following isn't really a problem, but it is something you should be aware of. In your menu function, there is no reason to both pass choice in as a parameter AND return it at the end of the function. You should either not pass it in at all and instead declare a new variable in the function that you then return, or you could pass it in by reference like this:
This way the value of your choice variable in main will be changed to whatever the choice variable in menu is changed to, thus getting rid of the need to return anything. It's up to you to choose which way you would rather do this.
As for how to end the program when the user presses Q, what you're doing right now looks good, but if you ever want to exit the program you can just use return 0; or exit();, which I believe requires something to be included but I don't remember what.