La modifica che ti suggerivamo era soltanto per utilizzare un vettore con "do", "re", "mi"... per il resto non è affatto detto che il programma funzioni, devi rivedere il resto. Io sinceramente non ho ben capito cosa tu voglia fare, ma a leggere il codice credo ti basti sostituire

codice:
         cout << "Inserisci il numero dei diesis in chiave: ";
         cin >> ndc; 
         tonal = scala[ndc + 1];
         cout << "la tonalità è " << tonal << endl;
semplicemente con

codice:
         cout << "Inserisci il numero dei diesis in chiave: ";
         cin >> ndc; 
         cout << "la tonalità è " <<  scala[ndc + 1] << endl;
Per quanto riguarda goto, in quel caso puoi semplicemente non usarlo, visto che è inutile. In generale non c'è una maniera standard per rimpiazzarli, dipende dai casi, basta conoscere bene come funzionano i cicli iterativi e i costrutti condizionali.

Tra l'altro, dopo quel menù iniziale ci va un'istruzione di input su risposta, altrimenti non ha molto senso.