First of all, make sure there are different shelves for each person. A shelf each tends to stop this happening a little bit, although it's not a foolproof plan.
Definitely tell that person (providing you know who it is) politely but firmly that they've eaten your food and you'd like them to reimburse you. Emphasise that you're a student with a tight budget and if they need anything, all they have to do is ask first (when they ask for something, say no but don't tell them that). If they keep taking your food, tell them to start contributing to your shopping bill or you'll start taking their food. In the meantime, keep as much food as you can in your room.
I've found that if you cook meals and then store them in the fridge then people won't touch them.