Объектно-ориентированный язык программирования С++ в примерах. Сивохин А.В. - 74 стр.

UptoLike

Составители: 

void shape_refresh() /*-построение фигур списка на экране;*/
{ screen_clear();/*-очистка модельного экрана; */
sp_gslist_iter next(shape_list);/*-итератор списка;*/
shape* p; /*-указатель фигуры,заносимой в модель; */
while((p=next())!=0) p->draw();/*-занесение фигур; */
screen_refresh(); /*-построение фигур на экране; */
} /*-конец функции построения фигур на экране; */
Сервисная функция ставит одну фигуру на другую,задавая,
что south() одной должен быть сразу над north()другой:
void stack(shape* q,shape* p) /*-функция компоновки фигур;*/
{ point n=p->north();/*-север нижней фигуры; */
point s=q->south();/*-юг верхней фигуры; */
q->move(n.x-s.x,n.y-s.y+1);/*-изменение координат */
/* базовых точек переме-*/
/* щаемой фигуры; */
};/*-конец функции компоновки фигур для построения; */
4.3.Прикладная программа
Перейдем теперь к рассмотрению прикладной программы,раз-
рабатываемой с ориентацией на набор функций для управления
экраном и библиотеку построения геометрических фигур.Эти
компоненты могут быть представлены в виде заголовочных фай-
лов,содержащих определение типов,и библиотеки,составленной
из откомпилированных вариантов определяемых функций.
В прикладной программе определяется новая более сложная
фигура,немного похожая на лицо человека,а затем в главной
функции осуществляется ее построение и одевание на нее шля-
пы.Наконец,все это изображение перемещается по экрану.
class myshape:public rectangle /*-лицо человека; */
{ line* l_eye; /*-левый глаз; */
line* r_eye; /*-правый глаз; */
line* mouth; /*-рот; */
74
 void shape_refresh() /*-построение фигур списка на экране;*/
      { screen_clear();/*-очистка модельного экрана;          */
        sp_gslist_iter next(shape_list);/*-итератор списка;*/
        shape* p; /*-указатель фигуры,заносимой в модель;     */
        while((p=next())!=0) p->draw();/*-занесение фигур; */
        screen_refresh(); /*-построение фигур на экране;      */
      } /*-конец функции построения фигур на экране;          */


 Сервисная функция ставит одну фигуру на другую,задавая,
что south() одной должен быть сразу над north()другой:


  void stack(shape* q,shape* p) /*-функция компоновки фигур;*/
       { point n=p->north();/*-север нижней фигуры;           */
         point s=q->south();/*-юг верхней фигуры;             */
         q->move(n.x-s.x,n.y-s.y+1);/*-изменение координат    */
                                   /* базовых точек переме-*/
                                   /* щаемой фигуры;          */
       };/*-конец функции компоновки фигур для построения;    */


               4.3.Прикладная программа


  Перейдем теперь к рассмотрению прикладной программы,раз-
рабатываемой с ориентацией на набор функций для управления
экраном и библиотеку построения геометрических фигур.Эти
компоненты могут быть представлены в виде заголовочных фай-
лов,содержащих определение типов,и библиотеки,составленной
из откомпилированных вариантов определяемых функций.
  В прикладной программе определяется новая более сложная
фигура,немного похожая на лицо человека,а затем в главной
функции осуществляется ее построение и одевание на нее шля-
пы.Наконец,все это изображение перемещается по экрану.


  class myshape:public rectangle /*-лицо человека;            */
        { line* l_eye; /*-левый глаз;                         */
          line* r_eye; /*-правый глаз;                        */
          line* mouth; /*-рот;                                */


                            74