There are plenty of GUI-toolkits, GTK and Qt come to mind as two. See How do I build a GUI in C++? for more suggestions.
Or if you want to do the board "by-hand" then you might want to try SDL.
As for chess algorithms, it depends what you're looking for. A chess AI? A way to compute if someone is in check/checkmate? I think it might be more interesting to try and come up with your own first, then look around at others. Although if you just want some suggestions or reading material, then this and this looks promising.