This is sort of a common problem, caused by loose connections.
A loose connection causes a higher resistance, which leads to excess heating at the connection. When the connection heats up, the resistance goes up more, which leads to more heat. The heat will also cause expansion, which can lead to the further loosening of the connection. Eventually components become weakened to the point of failure.
In this situation you're going to need a new terminal block, and a new cord for the range. Ranges don't come with cords from the manufacturer, so you should be able to find one easily at your local big box or hardware store. Looks like you've got an old style 3-wire cord, so you'll want to ask for that when you go shopping. Just ask for a "3-wire range cord", they should be able to get what you need. The terminal block might be a bit more tricky to get, and may require ordering it right from the manufacturer.
If you're not comfortable with this type of work, you could contact a local appliance repair shop. They should be able to do this type of repair fairly quickly, and hopefully cheaply (cheap in price, not in quality).
When the new terminal block is wired up, make sure all terminals are tightened to the manufacturer recommend torque. Then come back after a few days/weeks of use, and tighten the connections again. Most folks never tighten the connections after the initial installation, which (in my opinion) is why the situation you're in is so common (another factor is that folks don't tighten the terminals to the manufacturers recommended torque in the first place).
On a side note... There should be a grommet in the hole where the cord enters the range. This grommet is meant to protect the cord from the sharp edge of the hole, and prevent damage to the cord. You might want to measure the size of the hole, and pick up a grommet while you're at the hardware store.