Здравейте, беше ми зададена следната задача(прилагам я с моето решение):
/* Представяне на функционална зависимост между три реални числа
имащи вида: F(X, Y, Z) = (X сигма1 Y) сигма2 (X сигма3 Z),
където всчка от операциите сигма1, сигма2 и сигма3 е заместена
със някое от математическите дейстшия събиране, изваждане,
умножение, деление.
  @Изготвил: Тодор Тодоров
  */
#include <iostream>
using namespace std;
class mathFunc { // Създаване на клас mathFunc
	char SIGMA1, SIGMA2, SIGMA3;
public:
	mathFunc() {}
	void Read() { // Въвеждане на сигма1, сигма2, сигма3
		cout<<"Vyvedete stoinosti za Sigma:\n";
		cout<<"SIGMA1 = ";
		cin>>SIGMA1;
		cout<<"SIGMA2 = ";
		cin>>SIGMA2;
		cout<<"SIGMA3 = ";
		cin>>SIGMA3;
	
	}
	double Sum(double x,double y, double z) {
		/* Използвайки сигма1. сигма2 сигма3 създаваме метод, чрез който
		да решим дадената функция
		*/
		double sum=0, sum1=0, sum2=0;
		switch (SIGMA1) { //В sum1 се записва получената стойност на Х и У
		case '+':
			sum1 = x+y;
			break;
		case '-':
			sum1 = x-y;
			break;
		case '*':
			sum1 = x*y;
			break;
		case '/':
			sum1 = x/y;
			break;
		default:
			sum1 = x*y;
			break;
		}
		switch (SIGMA3) { //В sum2 се записва получената стойност на Х и Z
		case '+':
			sum2 = x+z;
			break;
		case '-':
			sum2 = x-z;
			break;
		case '*':
			sum2 = x*z;
			break;
		case '/':
			sum2 = x/z;
			break;
		default:
			sum2 = x*z;
			break;
		}
		switch (SIGMA2) { 
		/* Тук се пресмятат междинните стойности получени в sum1 и sum2
		и получаваме решение на функцията със зададените параметри
		  */
		case '+':
			sum = sum1+sum2;
			break;
		case '-':
			sum = sum1-sum2;
			break;
		case '*':
			sum = sum1*sum2;
			break;
		case '/':
			sum = sum1/sum2;
			break;
		default:
			sum = sum1*sum2;
			break;
		}
		return sum;
	}
	void Write (double x,double y, double z) { // Изход
		cout<<"F("<<x<<", "<<y<<", "<<z<<") = ("<<x<<" "<<SIGMA1<<" "<<y<<") "<<SIGMA2<<
			" ("<<x<<" "<<SIGMA3<<" "<<z<<") = "<<Sum(x,y,z)<<endl;
	}
};
int main () {
	double x,y,z;
    do { 
		/* В цикъл до въвеждане на стойност единица за Z се въвеждат 
		тройки стойности за X, Y, Z, както и сигма1, сигма2 и сигма3
		   */
		
		cout<<"Vyvedete stoinosti za x, y, z: \n";
		cout<<"	X = ";  
		cin>>x;
		cout<<"	Y = ";
		cin>>y;
		cout<<"	Z = ";
		cin>>z;
		cout<<"F("<<x<<", "<<y<<", "<<z<<") = ("<<x<<" SIGMA1 "<<y
			<<") SIGMA2 ("<<x<<" SIGMA3 "<<z<<")\n";
		
		mathFunc F1;
		F1.Read();
		F1.Sum(x,y,z);
		F1.Write(x,y,z);
	} while (z != 1);
	return 0;
}
Въпросът ми е следният. Някой може ли да ми каже има ли начин тези 3 switch case-a да могат да се заместят само с един или пък с отделен метод при използването на който да се извършва определеното аритметично действие за подадени x,y или x,z например.