If I were you I tried to solve it myself because it helps you improve your programming skills.
Here is a sample pseudo code for implementing it :
solve(int rowNo, int totalRows)
{
if (rowNo>totalRows)
dump the board configuration
for all the cells in current row
if it is possible to place a queen in this cell
{
place a queen in this cell
solve(rowNo+1, totalRows)
}
}
Then call it with this values
solve(1, 8);
you can dump the board every time you reach to a leaf state in states tree, or you can increase a global counter.
Hope it helps.