Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 66 стр.

UptoLike

65
res = res + ">=";
break;
case TypeInequation.e:
res = res + "=";
break;
case TypeInequation.l:
res = res +"<";
break;
case TypeInequation.g:
res = res + ">";
break;
case TypeInequation.n:
res = res + "<>";
break;
default:
throw new Exception
("Не существует такого вида ограничения");
}
// вывод правой части ограничения
res = res + ob.b;
return res;
}
}
В классе Constraint используется принцип полиморфизма при
работе с объектами функций левой части ограничения. Класс содержит
ссылку на абстрактный класс Function, которая может хранить адрес
объекта класса Line, Ellipse, Hyperbola или Parabola, задающего
конкретную функцию. При вводе ограничения у пользователя
запрашивается вид нужной функции и создается объект соответствующего
класса, адрес которого сохраняется в переменной-ссылке function. При
вызове методов Input(), Output() и Calculate() через ссылку
function будут вызываться виртуальные функции того класса, адрес
которого хранится в function. Такие вызовы выполняются как в функциях
ввода/вывода ограничения, так и в методах проверки выполнения некоторых
условий для точки. Таким образом, анализировать в этих методах тип
функции левой части ограничения уже не потребуется.
Далее определим методы класса Set. Отметим, что в этом классе
отсутствует метод ввода информации о системе ограничений. Ввод
выполняется в конструкторе класса Set при создании массива ограничений
(в конструкторе каждого ограничения).
                       res = res + ">=";
                       break;
               case TypeInequation.e:
                       res = res + "=";
                       break;
               case TypeInequation.l:
                       res = res +"<";
                       break;
               case TypeInequation.g:
                       res = res + ">";
                       break;
               case TypeInequation.n:
                       res = res + "<>";
                       break;
               default:
                      throw new Exception
                              ("Не существует такого вида ограничения");
             }
             // вывод правой части ограничения
             res = res + ob.b;
             return res;
         }
     }

      В классе Constraint используется принцип полиморфизма при
работе с объектами функций левой части ограничения. Класс содержит
ссылку на абстрактный класс Function, которая может хранить адрес
объекта класса Line, Ellipse, Hyperbola или Parabola, задающего
конкретную функцию.         При вводе ограничения у пользователя
запрашивается вид нужной функции и создается объект соответствующего
класса, адрес которого сохраняется в переменной-ссылке function. При
вызове методов Input(), Output() и Calculate() через ссылку
function будут вызываться виртуальные функции того класса, адрес
которого хранится в function. Такие вызовы выполняются как в функциях
ввода/вывода ограничения, так и в методах проверки выполнения некоторых
условий для точки. Таким образом, анализировать в этих методах тип
функции левой части ограничения уже не потребуется.
      Далее определим методы класса Set. Отметим, что в этом классе
отсутствует метод ввода информации о системе ограничений. Ввод
выполняется в конструкторе класса Set при создании массива ограничений
(в конструкторе каждого ограничения).




65