Najważniejsze będzie to, że musisz powiązać nazwy z symbolami i tutaj najprostszy sposób to będzie mapowanie. Możesz użyć (z bibliotek STL):
- std::map z biblioteki <map>
- std::unordered_map z biblioteki <unordered_map>
Polega to na tym, że tworzysz zbiór par: klucz - wartość, np. 1 - jeden, 2 - dwa (klucz nazywa się first, a wartość to second).
Niestety wszystkie wzory będziesz musiał zmapować ręcznie, więc straci to trochę na czytelności.
Potem musisz losować klucz ze zbioru i sprawdzać czy cin (domyślam się, że chcesz zrobić aplikację konsolową) jest zgodny z wartością klucza.
No i będziesz musiał dodać jakieś sprawdzanie, czy dany klucz już się wcześniej nie wylosował, np. może poprzez usuwanie danego klucza ze zbioru (w ten sposób na pewno nie wylosuje się po raz drugi, bo już go nie będzie)