What is the difference between "should have " and "could have"?

Please give several example sentences.

Should indicates obligation or correctness. Could indicates what might have been.

I could have seen you if it weren't so foggy.

I could have been wrong about the story.

If he had been in shape, he could have easily won that race.

He should have exercised more.

The witness should have told the truth.

Should I study or play a computer game?