Your overall ranking depends on a multitude of things: Damage per minute, Gold per minute, CS per minute, Kill participation, tower damage and destruction, and your total amount of deaths. Here are two examples of where I got either an S or an S+ on my bronze smurf account, both playing Garen, the best champion in the game:
http://imgur.com/a/gUrZB
Analyzing them I have an extremely high KDA with only 1 or 2 deaths and do the most damage on the team by far, comparative to their deaths. I destroyed most of the towers purely on my own, although that doesn't show, and had decent CS with around 7.0 per minute or actual good CS in the one which I had around 9.0. My gold count comparative to my own teammates and the enemy team was immensely high, averaging about 5k-7k just from the looks of it.
Just doing okay isn't enough to get an S or an S+, which I appreciate. It is my belief that the highest grade possible should only be received if you play to almost or to the highest level possible. A lot of gamers are spoiled now and days, receiving the best rewards with minimal effort put forward or little time put into the game so when they "carry" and don't get an S they get upset when in reality an S should only be received if you did everything good. Just beating up on some people who played slightly worse than you (or people who are playing at a C level) isn't deserving of an S. You have to do EVERYTHING extremely well.
That's why you got a B or a B+.