LOL I have to laugh at the throwing of the can.
I can relate. Mine has dent's all over it.
There is no immediate solution. It does take time. I swear by
the coins in the can. Don't throw it
When your puppy barks
shake it and say no barking and mean it. You must continue this
each and every time he barks. That means getting yourself
up from a comfortable position and shake that can when needed.
He has to understand that when he barks and the can shakes
it's noise that means no barking. If he dosen't get it after a couple
of days continue this and put him in the kitchen with a gate for
a time out. They are just like children! They will wear you down
eventually if you let them.
The important thing is to be consistant. Leave the can on a table
where he can see it and reach for it everytime and shake it.
This is what I did and it did work but it does take time.
Good luck,