Lily and Gorden are both right. But the answer is not unique.
You can call middle aged women " 小姐”too. But some people, whether old or young women dislike to be called as"小姐”, because 小姐 sometimes means prostitutes. ( She is a 小姐。= She is a prostitute. so calling " 女士”is safer for you . haha .
Calling girls " 美女” is very popular in Guangdong. Even if the girl is not pretty, you should call her " 美女=beauty. 靓女/美女=beautiful girl This is how people call girls in Guangdong. And it is better to call waitress 美女/靓女 too. This makes the girls feel good about you that you don't remind them of the fact that they are waitresses.
Maybe in other places , there are different words, but 女士 is the FORMAL STANDARD CHINESE word. It's OK in verywhere I think.
About 姑娘, I only heard Chinese people from the North part call girls like this.
I used to be call as a " 小姑娘”with a strong north part accent by a north part man. haha
This is a good word, nothing bad. Usually south part people don't use it , it is just a habbit.