Вам нужен замечательный, удивительный и невероятный GCMathParser, доступный (БЕСПЛАТНО!) На apptree.net: http://apptree.net/parser.htm Он делает именно то, что вы просите, и даже позволяет выполнять переменные замены (3x +42, оценка с х = 7). Он даже поддерживает математические функции, такие как sin (), cos (), tan (), их инверсии, dtor (), log (), ....
редактировать долгое время спустя ...
Хотя GCMathParser довольно крутой, у него есть недостаток - он не расширяемый. Так что если вам нужна функция, которую она не поддерживает изначально, то это тоже плохо. Поэтому я решил что-то с этим сделать и придумал полностью собственный математический анализатор и оценщик: http://github.com/davedelong/DDMathParser