Witam,
Ja to widzę tak
1) podajesz liczbę równań std::cin >> ilosc_rownan
2) tworzysz pętle while(ilosc_rownan--) //od razu zmniejszasz wartość może też na końcu pętli dodać ilosc_rownan-=1;
3) podajesz stringiem wyrażenie std::getline(std::cin, wyrazenie);
4)Tutaj zależy jak reprezentujesz potęgę, załóżmy że przy użyciu ^ przy czym nie zapisujesz x^1 tylko samo x
5)Wykorzystujesz metodę string find tworzysz zmienną : size_t found = wyrazenie.find("^")
6)Sprawdzasz co jest pod zmienną found:
if (found!=std::string::npos){/*rownanie linowe*/}else{/*równanie wyższego stopnia*/}
7)Petla znów się iteruje