Berne-Jungfraujoch(schilthorn)-lucerne-zurich

I want to visit berne-jungfraujoch and take the cable car ride to schilthorn. Then head to lucerne and visit mt pilatus and/or rigi and then go to zurich. Wanna know any suggestions on where to stay and if you would make any alterations on this plan. Another thing, with this itinerary should I buy a swiss pass and which one?

Thanks