Grades don't necessarily reflect your skills or your hard work! There's also the issue of personal motivation. From what I've heard from you, you've been feeling like computer science isn't your thing afterall, right? It's only natural that if you need force yourself to study every time your grades will drop. Maybe you can turn this around and take it as a sign that this field doesn't really suit you nor does it really bring forth your potential?
And it's totally OK to let yourself break down and cry. It's also OK to argue with your family and refuse to feel guilty for putting your own issues in the first priority when you just need that. It's not right for your parents to put your care towards them on a test like that. They should give you some room when you need it.
As for the uncertainty about your future, that one I'm afraid I have nothing to say about. I can merely sympathize since I'm always anxious about my future as well. Perhaps, instead of trying to make concrete plans for the future, you could try to think about the things you already have? Not to remind yourself that you should be grateful for those things (that's a recipe for self-blame) but to provide yourself some sense of comfort? For example you're not going to get kicked out of your home right after you graduate, no?

I had no idea since you're always so cheerful on skype. I should have asked! Take care
