Не уверен, что это действительно то, что вы ищете, но ..
Любой объектно-ориентированный язык, такой как C ++ или C #, позволит вам создать базовый класс «Оператор» и затем извлечь из этого базового класса «PlusOperator» или «MinusOperator» и т.д. это стандартный способ избежать таких случаев.
Однако я не уверен, что это решит вашу проблему с производительностью.
Использование простой грубой силы для такой проблемы приведет к экспоненциальному решению. это будет работать быстро для небольшого ввода - скажем, завершение всех чисел. Но если вы хотите завершить операции, это гораздо большая проблема с большим количеством возможностей.
Поэтому вполне вероятно, что даже без CASE ваша программа не сможет ее решить.
Правильный способ решения проблем такого рода - использование некоторых расширенных методов поиска, в которых используется эвристическая функция. См., Например, A * (A-star) алгоритм .
Удачи!