Технология объектно-ориентированного программирования

ПРИМЕРЫ ПРОГРАММ НА С++

Файл СОДЕРЖАНИЕ Стр.
FIGURES1.CPP Одна окружность в центре экрана, наследование  
FIGURES2.CPP Окружность и треугольник – конструкторы, чистая виртуальная функция, абстрактный класс
FIGURES3.CPP Две окружности и два треугольника  
FIGURES4.CPP Использование указателя на базовый класс  
FIGURES5.CPP Четыре указателя и цикл для вывода на экран  
FIGURES6.CPP Интерфейс: изменение цвета - {Tab}, выход - {Esc}  
FIGURES7.CPP Функция движения фигуры и интерфейс  
FIGURES8.CPP Головная программа и заголовочный файл
FIGURES8.H Заголовочный файл с описанием классов  
2-1.CPP Пустое окно с полной функциональностью (Win API32)  
8-3.CPP Фигуры Лиссажу (Win API32)  
AMPER_A.CPP Закон Ома: головная программа (C++Builder)
AMPER_1.CPP Закон Ома: обработчики (EXE требует библиотеку)  
AMPER1.CPP Закон Ома: головная программа (C++Builder)
AMPER1_.CPP Закон Ома: обработчики с проверкой ввода

Санкт-Петербург

// ПРОГРАММА FIGURES1

#include <graphics.h>

#include <bios.h>

Class TFigure

{ private:

int color;

int width;

public:

void setcolor ( int c );

void setwidth ( int w );

};

Void TFigure :: setcolor ( int c )

{ color = c; }

Void TFigure :: setwidth ( int w )

{ width = w; }

Class Circle : public TFigure

{ private:

int xC;

int yC;

int rad;

public:

void draw ( int x, int y, int r );

};

Void Circle :: draw (int x, int y, int r )

{ circle ( x, y, r );

}

Main ()

{ Circle c1;

int grmode, grdriver= DETECT;

initgraph ( &grdriver, &grmode, "" );

c1.setcolor ( WHITE );

c1.setwidth ( 1 );

c1.draw ( getmaxx()/2, getmaxy()/2, 50 );

bioskey(0);

closegraph();

return 0;

}

// ПРОГРАММА FIGURES2

#include <graphics.h>

#include <bios.h>

#define MAX_POINTS 4

Class TFigure

{ private:

int color;

int width;

int num_p;

int x[MAX_POINTS];

int y[MAX_POINTS];

public:

virtual void draw ( void ) = 0;

void setcol ( int c );

void setwidth ( int w );

void setnum_p ( int n );

void setxy ( int n, int xn, int yn );

int getcol ( void );

int getwidth ( void );

int getxn ( int n );

int getyn ( int n );

};

Void TFigure :: setcol ( int c )

{ color = c; }

Void TFigure :: setwidth ( int w )

{ width = w; }

void TFigure :: setnum_p ( int n )

{ num_p = n; }

Int TFigure :: getwidth ( void )

{ return width; }

Int TFigure :: getcol ( void )

{ return color; }

Void TFigure :: setxy ( int n, int xn, int yn )

{ x[n] = xn;

y[n] = yn;

}

Int TFigure :: getxn ( int n )

{ return x[n]; }

Int TFigure :: getyn ( int n )

{ return y[n]; }

Class Circle : public TFigure

{ private:

int rad;

public:

Circle ( int x, int y, int r );

virtual void draw ( void );

};

Circle :: Circle ( int a, int b, int r )

{ setnum_p ( 1 );

setxy ( 0, a, b );

rad = r;

}

Void Circle :: draw ( void )

{ setlinestyle ( 0, 0, getwidth() );

setcolor ( getcol() );

circle ( getxn ( 0 ), getyn ( 0 ), rad );

}

Class Triangle : public TFigure

{ public:

virtual void draw ( void );

Triangle ( int a1, int b1, int a2, int b2, int a3, int b3 );

};

Triangle :: Triangle ( int a1, int b1, int a2, int b2, int a3, int b3 )

{ setnum_p ( 3 );

setxy ( 0, a1, b1 );

setxy ( 1, a2, b2 );

setxy ( 2, a3, b3 );

}

Void Triangle :: draw ( void )

{ setlinestyle ( SOLID_LINE, 1, getwidth() );

setcolor ( getcol() );

line ( getxn(0), getyn(0), getxn(1), getyn(1) );

line ( getxn(1), getyn(1), getxn(2), getyn(2) );

line ( getxn(0), getyn(0), getxn(2), getyn(2) );

}

Main ()

{ Circle c1(320, 240, 150);

Triangle t1 = Triangle ( 100, 100, 400, 150, 250, 300 );

int grmode, grdriver=DETECT;

initgraph ( &grdriver, &grmode, "" );

c1.setcol ( MAGENTA );

c1.setwidth ( NORM_WIDTH );

c1.draw ();

t1.setcol ( YELLOW );

t1.setwidth ( THICK_WIDTH );

t1.draw ();

bioskey(0);

closegraph();

return 0;

}

// ПРОГРАММА FIGURES3

#include <graphics.h>

#include <bios.h>

#define MAX_POINTS 4

Class TFigure

{ private:

int color;

int width;

int num_p;

int x[MAX_POINTS];

int y[MAX_POINTS];

public:

virtual void draw ( void ) = 0;

void setcol ( int c );

void setwidth ( int w );

void setnum_p ( int n );

void setxy ( int n, int xn, int yn );

int getcol ( void );

int getwidth ( void );

int getxn ( int n );

int getyn ( int n );

};

Void TFigure :: setcol ( int c )

{ color = c; }

Void TFigure :: setwidth ( int w )

{ width = w; }

void TFigure :: setnum_p ( int n )

{ num_p = n; }

Int TFigure :: getwidth ( void )

{ return width; }

Int TFigure :: getcol ( void )

{ return color; }

Void TFigure :: setxy ( int n, int xn, int yn )

{ x[n] = xn;

y[n] = yn;

}

Int TFigure :: getxn ( int n )

{ return x[n]; }

Int TFigure :: getyn ( int n )

{ return y[n]; }

Class Circle : public TFigure

{ private:

int rad;

public:

Circle ( int x, int y, int r );

virtual void draw ( void );

};

Circle :: Circle ( int a, int b, int r )

{ setnum_p ( 1 );

setxy ( 0, a, b );

rad = r;

}

Void Circle :: draw ( void )

{ setlinestyle ( 0, 0, getwidth() );

setcolor ( getcol() );

circle ( getxn ( 0 ), getyn ( 0 ), rad );

}

Class Triangle : public TFigure

{ public:

virtual void draw ( void );

Triangle ( int a1, int b1, int a2, int b2, int a3, int b3 );

};

Triangle :: Triangle ( int a1, int b1, int a2, int b2, int a3, int b3 )

{ setnum_p ( 3 );

setxy ( 0, a1, b1 );

setxy ( 1, a2, b2 );

setxy ( 2, a3, b3 );

}

Void Triangle :: draw ( void )

{ setlinestyle ( SOLID_LINE, 1, getwidth() );

setcolor ( getcol() );

line ( getxn(0), getyn(0), getxn(1), getyn(1) );

line ( getxn(1), getyn(1), getxn(2), getyn(2) );

line ( getxn(0), getyn(0), getxn(2), getyn(2) );

}

Main ()

{ Circle c1( 320, 240, 150 );

Circle c2( 320, 240, 50 );

Triangle t1( 100, 100, 400, 150, 250, 300 );

Triangle t2( 400, 400, 600, 400, 500, 300 );

int grmode, grdriver=DETECT;

initgraph ( &grdriver, &grmode, "" );

c1.setcol ( MAGENTA );

c1.setwidth ( NORM_WIDTH );

c1.draw ();

c2.setcol ( GREEN );

c2.setwidth ( THICK_WIDTH );

c2.draw ();

t1.setcol ( YELLOW );

t1.setwidth ( NORM_WIDTH );

t1.draw ();

t2.setcol ( BLUE );

t2.setwidth ( THICK_WIDTH );

t2.draw ();

bioskey(0);

closegraph();

return 0;

}

// ПРОГРАММА FIGURES4

#include <graphics.h>

#include <bios.h>

#define MAX_POINTS 4

Class TFigure

{ private:

int color;

int width;

int num_p;

int x[MAX_POINTS];

int y[MAX_POINTS];

public:

virtual void draw ( void ) = 0;

void setcol ( int c );

void setwidth ( int w );

void setnum_p ( int n );

void setxy ( int n, int xn, int yn );

int getcol ( void );

int getwidth ( void );

int getxn ( int n );

int getyn ( int n );

};

Наши рекомендации