S.M.
"Cries when trying to fix things"? As in, getting frustrated easily and not knowing how to deal with it? It can be hard at this age, because they're often good thinkers, and may have a creative or clever solution but still don't have the skill to actually pull it off. Something like that maybe?
It sounds like you're finding that spankings and time-outs aren't working for you. Mine never responded to the heavy-handed approach, either. Every time I lost my patience or let him get me upset, or completely control a situation, or force absolute compliance, it backfired, sooner or later. Even if I got immediate compliance, there would be some unresolved anger that just stewed.
Sometimes it was all I could do just to remain calm.
Have you tried to get him to talk about why he's angry -what's bothering him? When my 5-year-old gets all cranky for no apparent reason, he's usually also unable to explain why. I try very hard not to let him emotions get me upset, too. A LOT of times, it's just that he's hungry (or low blood sugar level), because if I offer him some crackers and juice and just not bother him for 10 minutes, he perks up. (As a parent, you kind of get a feel for the different angry moods.) Sometimes it's lack of sleep. The worst is when he's upset over something that happened hours ago at school because you're not even aware of it. He doesn't want to talk about it - maybe he's embarrassed, but it's bothering him all afternoon, later he goes off on his sister for something minor. Adults do that all the time, too. (Imagine if your mother-in-law or friend called you and got you upset about something and when your husband or kid does something minor, you snap at them. And it's not them you're mad at!)
Model active listening by listening to him. And at this age, they often can't or won't express their feelings very well, so you may have to use your intuition, "listen" to their body language and moods. You know your child better than anyone in the world. Plus, after you listen to what he has to say and acknowledge that you understand where he's coming from, you can say, "I've listened to what you had to say. It's only fair that I have a turn to talk and you listen to my side." Kids have a strong sense of fairness, so that often works.
When he's still upset, I might try a couple of times to ask him what's going on, but sometimes he just needs a little space. If you're stuck in a car, put on a song that he really enjoys - something to distract him from whatever is bothering him. Wait until he's in a better mood and he's receptive to bring up the anger issues. (The school councelor uses puppets or dolls/stuffed animals to talk to the kids. Even though they *know* it's the grown up doing the talking, if they can avoid looking at the grown up directly and talk to the toy instead, they may open up.)
I tell my son that everyone has the right to be angry and even express anger, but it's not acceptable to (hurt your sister, slam doors, break things, etc.) There are many kids books about handling anger and disappointment.
Personally, I'm a book nut, so I hope you don't mind if I recommend "Positive Discipline" and "Raising Cain". It won't give you a simple formula like "1 2 3 Magic" or a little script like "Love and Logic". (Just say this sentence over and over and refuse to discuss anything with him. If he tries to explain anything, shut him down by "resfusing to argue.") Those "methods" just shut down any useful communication - can you imagine a marriage counselor giving advice like that? What if a friend was upset with you and when they tried to explain why, you said "I'm going to count to three. One..." or "I love you too much to argue." Please! Forgive my rant.
I hope you can figure out what's going on in his mind and get him talking to you. Hopefully that will get you back on track. Good luck!