It's easy to make programs that solve a PARTICULAR KIND of equations. For example, here's a program that solves a quadratic equation Ax²+Bx+C=0:
input A, B, C
However in order to solve ARBITRARY equations, you'd need to write a parser (to turn your input equation into an annotated parse tree), and a huge set of algorithms to manipulate the resulting parse tree.
It's NOT an easy task, as there are hundreds of different types of equations (polynomial: Ax³+Bx=0, differential: dx/dt+x=0, integral: ∫f(x)dx + x = 0, non-linear: x³sin(x)=π, series: AΣx = 4, complex: e^(iωt)=1, vector, matrix, parametric... the list goes on and on), and each requires a totally different approach to solving.
Even top software packages like Maple can't solve ALL types of equations.