I have a somewhat different method but all my players really like it.
I give the players a choice:
1. Take the median +1 of the hit die in question: 7 for d12, 6 for d10, 5 for d8, 4 for d6, 3 for d4.
2. Roll using one lower die and add 2 to the number: 1d10+2 for d12, 1d8+2 for d10, 1d6+2 for d8, or 1d4+2 for d6.
Classes with a hit die of d4 do not roll one lower die and add 2 to the number. If they choose to roll, they use a normal d4.
This is for more challenging campaigns but I always hated overbearing DM's that made fighters and barbs keep the 1's they rolled.