If you're planning to spend a couple of weeks or more in Switzerland then it's probably worth building an itinerary around the half dozen greatest scenic routes, with a few nights in each of a number of places.
I would consider the "must-do" rail routes to be:
Zurich to Bellinzona.
The Bernina Bus from Lugano to Tirano.
The Bernina Express from Tirano to St. Moritz, Davos and/or Chur.
The Glacier Express from Davos and/or Chur to Zermatt
The Jungraujoch mountain railway
The Golden Panorama Express from Lucerne to Interlaken, Zweiseimmen and Montreux.
So, an example itinerary built around these routes might be:
(Fly into Zurich)
Zurich-Lugano (there are fast express trains but you're better off taking one of the slower trains with panorama cars to Bellinzona and change there to a Lugano train)
(Stay in Lugano for a couple of days)
Bernina Bus from Lugano to Tirano and then Bernina Express from Tirano to Davos
(Stay in Davos for a couple of days - or perhaps Klosters, which isn't far away and is much nicer)
Glacier Express from Davos to Zermatt
(Couple of days in Zermatt)
Zermatt to the Bernese Oberland
(A few days in one of the beautiful mountain villages in the Bernese Oberland - Wengen and Grindelwald are the most convenient for mountain railway connections)
One one of the days in the Bernese Oberland you should take the Golden Panorama Express to Lucerne. You can return the same way, or by mainline train via Bern.
Then take the other part of the Golden Panorama route from Interlaken to Zweisimmen, Montreux and Geneva.
(Fly back from Geneva)
You can easily book an open-jaw ticket into Zurich and out of Geneva with BA or Swiss, or you can use Eurostar and TGV.
The Bernina Express and Glacier Express must be reserved in advance, but you can travel those routes almost as easily on regular trains. The scenery's the same, and the local trains are very comfortable.
A Swiss pass does not cover the Jungfraujoch mountain railway, but you do get a small discount on the outrageous return fare of 150 Swiss francs (about £100).
Expect to pay between 100 and 150 Swiss francs per night for a double room in a family-run hotel in each of these places.
If you have less time then the Bernese Oberland is the place to head for, as it offers an unsurpassed combination of scenery and mountain railways. You get a Swiss Transfer Ticket that gives you a journey from you arrival airport (or border) to anywhere in Switzerland and back for around £80 (£120 first class). And you can get a rail pass for the Bernese Oberland area for a few days which covers nearly all railways and cable cars in the area.
You can book all your train tickets and reservations through
STC in London, and download a map of Swiss railways
here.