Технология объектно-ориентированного программирования
ПРИМЕРЫ ПРОГРАММ НА С++
Файл | СОДЕРЖАНИЕ | Стр. |
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 );
};