
- •Лабораторна робота №1
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості Масиви динамічної пам'яті
- •Приклад виконання завдання 1
- •Лістинг програми
- •Приклад виконання завдання 2
- •Лістинг програми
- •Приклад виконання завдання 3
- •Лістинг програми
- •Контрольні запитання
- •Лабораторна робота №2
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Читання і запис текстових файлів
- •Читання і запис бінарних файлів
- •Відкриття бінарних файлів
- •Файли з послідовним доступом
- •Запис даних у файл з послідовним доступом
- •Файли з довільним доступом
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №3
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості
- •Обмеження доступу до членів класу
- •Специфікатори доступу
- •Вбудовані функції-члени
- •Приклад виконання завдання 1.
- •Приклад виконання завдання 2.
- •Приклад виконання завдання 3.
- •Контрольні запитання
- •Лабораторна робота №4
- •Порядок виконання роботи
- •Завдання 2
- •Теоретичні відомості Конструктори і деструктори
- •Правила роботи з конструкторами і деструкторами
- •Варіант 10. Розробити описовий алгоритм, схему алгоритму і написати метод для підрахування кількості слів в текстовому файлі.
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №5
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Принципи спадкування в ооп
- •Оголошення похідних класів
- •Конструктори похідного класу
- •Функції члени похідного класу
- •Заборонені члени класу (Protected)
- •Приклад виконання Завдання 1
- •Контрольні запитання
- •Лабораторна робота №6
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Перевантаження операторів
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Приклад виконання завдання 3
- •Приклад виконання завдання 4
- •Контрольні запитання
- •Лабораторна робота №7
- •Порядок виконання роботи
- •Завдання 1.
- •Завдання 2.
- •Теоретичні відомості
- •Структура наслідування класів
- •Постановка задачі
- •Розробити клас трикутника, чотирикутника, кола, точки
- •Контрольні запитання
- •Лабораторна робота №8
- •Порядок виконання роботи
- •Завдання 1
- •Контрольні запитання
- •Лабораторна робота №9
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Множинне спадкування
- •Контрольні запитання
- •Лабораторна робота №10
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Шаблони
- •Параметризовані класи
- •Визначені об’єкти-потоки
- •Операції поміщення та вилучення
- •Приклад виконання Завдання з варіанту 2
- •Контрольні запитання.
- •Лабораторна робота №11
- •Порядок виконання
- •Завдання 1
- •Завдання 2
- •Завдання 3 Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).
- •Ітератори
- •Для роботи з вектором необхідно:
- •Приклад роботи з вектором
- •Алгоритми
- •Застосування алгоритмів до вектора
- •Приклад 1 виконання Завдання 1
- •Приклад 2 виконання Завдання 2
- •Приклад 3 виконання завдання №3
- •Контрольні запитання
- •Завдання 1
- •Теоретичні відомості Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання
- •Завдання 2.
- •Теоретичні відомості
- •Стандартні потоки для базових класів
- •Форматування даних при обмінах з потоками
- •Маніпулятори
- •Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Розробити клас трикутника, чотирикутника, кола, точки
Клас точки
Даний клас добавлено один член класу який задає колір точки та переоприділений метод show базового класу. Також в конструкторі викликається конструктор базового класу в якому параметр конструктора задає кількість точок в класі. В даному класі використовується одна точка.
class CPoint:public shape {
private:
int color; /*колір точки*/
public:
CPoint();/*конструктор*/
virtual~point();/*деструктор*/
virtual void show();//переоприділення функції показу фігури
};
/*реалізація конструктора*/
CPoint::CPoint():shape(1) {
}
/*реалізація деструктора*/
CPoint::~CPoint(){
}
реалізація функції показу(show)
void CPoint::show(){
setcolor(2);
line(p[0].x,p[0].y,p[0].x,p[0].y);
}
Клас трикутника
Реалізація подібна попередньому класові за винятком кількості точок які зберігає в собі клас (3 точки)
class CTriangle:public CShape {
public:
CTriangle();
~CTriangle();
virtual void show();
};
CTriangle::CTriangle():shape(3) {
}
CTriangle::~CTriangle() {
}
void Сtriangle::show() {
moveto(p[0].x,p[0].y);
lineto(p[1].x,p[1].y);
lineto(p[2].x,p[2].y);
lineto(p[0].x,p[0].y);
}
Клас чотирикутника
Аналогічно попередньому класові за винятком кількості точок для даного класу кількість точок рівняється 4
class CQuadrorange: public CShape {
public:
CQuadrorange();
~CQuadrorange();
virtual void show();
};
CQuadrorange::CQuadrorange():shape(4){
}
CQuadrorange::~CQuadrorange() {
}
void CQuadrorange::show() {
moveto(p[0].x,p[0].y);
lineto(p[1].x,p[1].y);
lineto(p[2].x,p[2].y);
lineto(p[3].x,p[3].y);
lineto(p[0].x,p[0].y);
}
Клас кола
В даному класі використовується одна точка яка задає координати центра кола. Добавлено один член класу, який зберігає в собі радіусом кола, і одну функцію, яка задає радіус кола. Переоприділена віртуальна функція show, яка відповідає за відображення геометричної фігури на екрані.
class CColo: public CShape {
private:
int radius; /* зберігає радіус кола */
public:
CColo();
~CColo();
void set_radius(int); /*функція що встановлює радіус кола*/
virtual void show();
};
/* задає тільки одну точку – центр кола на екрані */
CColo::CColo():shape(1) {
radius =0 ;
}
CColo::~CColo() {
}
void CColo::set_radius(int r) {
radius=r;
}
void CColo::show() {
circle(p[0].x,p[0].y,radius);}
Розробити контейнер класів фігур для управління групою фігур на екрані.
Створимо клас за допомогою якого можна керувати групою геометричних фігурами на екрані. В класі створено вказівник на групу фігур. Добавлені функції руху всіх геометричних фігур та добавлення геометричних фігур в контейнер.
class CConteiner {
private:
CShape *CShapes[MAX_SHAPE];/*масив фігур якими потрібно керувати на екарані монітора*/
int count;/*кількість заданих фігур*/
int exit;
public:
CConteiner();/*конструктор */
~CConteiner();/*деструктор*/
void action();/*виконує рух групи фігур на екрані*/
void add_shape(shape*);/*добавляє фігуру до контейнера */
};
CConteiner::CConteiner() {
count=0;
}
CConteiner::~CConteiner() {
}
void CConteiner::add_shape(shape* fig) {
if (count<MAX_SHAPE) {
shapes[count]=fig;
count++;
}
}
void CConteiner::action() {
for (int i=0;i<count;i++) {
shapes[i]->get_move()->current_movex=0;
shapes[i]->get_move()->current_movey=0;
}
while (1) {
exit=1;
for (int i=0;i<count;i++) {
if((shapes[i]->get_move()->current_movex<shapes[i]->get_move()->endx)
||(shapes[i]->get_move()->current_movey<shapes[i]->get_move()->endy)){
shapes[i]->move();
shapes[i]->get_move()->current_movex+=shapes[i]->get_move()->stepx;
shapes[i]->get_move()->current_movey+=shapes[i]->get_move()->stepy;
exit=0;
delay(10);
}
}
if (exit) break;
}
}
Літинг програми
#include <iostream.h>
#include <conio.h>
#include <graphics.h>
#include <stdio.h>
#include <math.h>
#include <dos.h>
структура точки яка зберігає в собі координати по х и по y
typedef struct _point {
int x;
int y;
} POINT, *PPOINT;
/* об’явлення типу функції для вирахування координат при русі фігури на екрані /*
typedef double (func)(double);
/* об’явлення типів руху фігури */
enum TYPE {MT_LINE=0, /* рух по прямій лінії */
MT_OBERT, /*поворот фігури */
MT_RESHAPE, /* зміна розмірів фігури */
MT_USER} ; /* рухи користувачів, тип руху може задавати користувач за допомогою функції */
/*Структура, яка зберігає в собі дані про рух фігури */
typedef struct _move {
TYPE type; /* тип руху */
int stepx; /* крок по х */
int stepy; /* крок по y */
int endx; /* кінцева точка по х */
int endy; /* кінцева точка по y */
int centr_x; /* центр координат */
int centr_y; /* центр координат */
func*func_x; /* функції руху по х */
func*func_y; /* функції руху по y */
void*tag; /* можна зберігати різні дані */
int erase; /* визначає стирати фігури при русі чи ні */
int current_movex; /* зарезервовано програмою */
int current_movey; /* зарезервовано програмою */
} MOVE,*PMOVE;
class shape {
protected:
POINT* p; /* вказівник на масив точок */
int count; /* кількість точок */
int current; /* поточна точка */
PMOVE m_move; /* структура типу руху фігури */
public:
shape(int); /* конструктор вхідний параметр кількість точок у фігури */
virtual~shape();/* деструктор */
void set_point(int,int); /* додає точку */
void set_move(PMOVE); /* встановлює тип руху */