The crucial point here is that [f] and [v] are identical sounds, except that [v] is voiced and [f] is not. If you are not familiar with that distinction, voiced sounds are pronounced with the vocal cords vibrating; unvoiced sounds are pronounced with no vibration. You can feel the difference if you put your hand against the front of your throat and pronounce [fffff] and [vvvvv]. You should feel a buzzing with the [v] sound, which is the vocal cords vibrating.
So far as your student is concerned, my first thought would be that he or she has either a first language or a household language that regularly does not voice final consonants. I know this is true of some Asian languages, and I think I have heard speakers with a German background do the same thing as your student - - that is, pronounce have like [haf].
A simple but often very effective drill involves minimal pairs - - in this case words that contrast only in that one has a final [v] sound and the other a final [f], such as save and safe. You can read the pairs aloud to the student and ask him or her to say which one has [v] and which has [f]. Then you can have the student read the list to you, correcting any mispronunciations. Here are some relevant minimal pairs: safe, save; belief, believe; calf, calve; dove (the bird), duff; fife, five, grief, grieve; half, halve; wife, wive; leaf, leave; life, live (adjective); luff, love; strife, strive; shelf, shelve; surf, serve; relief, relieve, Nerf, nerve; plaintiff, plaintive; proof, prove; reef, reeve. In the preceding list I have consistently put words with final [f] first, but it would be good to mix up the voiced-unvoiced order. And you might try some in which the [f] and [v] are not word final: dwarfs (verb), dwarves (noun); knives, knifes (verb); scarfs (verb); scarves; wolfs (verb), wolves.