Потрібна допомога з програмою.
#include <iostream>
#include <windows.h>
#include <graphics.h> //Графічна бібліотека, для роботи з статичними малюнками
using namespace std;
class Straight //Базовий клас "Пряма"
{
public: //Робить нижче наведені змінні та методи публічними(доступними)
int x1, x2, y1, y2; //Змінні цілочисельного типу, надають координати
int X, Y, r1, r2, k1, k2, W1, W2, Z1, Z2, a; //Змінні цілочисельного типу, надають координати вектора на кут
virtual void vv()
{
//Ввіртуальний метод вводу
}
virtual void vuv()
{
//Віртуальний метод виводу
}
};
class Vvod : public Straight //Клас - нащадок "Введення простої лінії" від класу "Пряма"
{
public: //Робить нижче наведені змінні та методи публічними(доступними)
void vv() //Метод введення
{
cout << "Введіть координати\n:";
cin >> x1;
cin >> y1;
cin >> x2;
cin >> y2;
}
void vuv() //Метод виведення
{
closegraph(); //Закриває графічне вікно
initwindow(500, 500); //Створює графічне вікно розміром 500х500 пікселей
setcolor(GREEN); //Надає слідуючим графічним елементам зеленого кольору
line(x1, y1, x2, y2); //Створення лінії з х,у - (початки) і х,у - (кінці)
}
};
class Delete : public Straight //Клас - нащадок "Видалення" від класу "Пряма"
{
public: //Робить нижче наведені змінні та методи публічними(доступними)
void vuv() //Метод виведення
{
closegraph(); //Закриває графічне вікно
initwindow(500, 500); //Створює графічне вікно розміром 500х500 пікселей
}
};
class Shift:public Straight //Клас - нащадок "Переміщення" від класу "Пряма"
{
public: //Робить нижче наведені змінні та методи публічними(доступними)
void vv() //Метод введення
{
cout << "Введіть координати\n:";
cin >> x1;
cin >> y1;
cin >> x2;
cin >> y2;
cout << "Введіть вектор: ";
cin >> X;
cin >> Y;
r1 = x1 + X;
r2 = x2 + X;
k1 = y1 + Y;
k2 = y2 + Y;
}
void vuv() //Метод виведення
{
closegraph(); //Закриває графічне вікно
initwindow(500, 500); //Створює графічне вікно розміром 500х500 пікселей
setcolor(GREEN); //Надає слідуючим графічним елементам зеленого кольору
line(x1, y1, x2, y2); //Створення лінії з х,у - (початки) і х,у - (кінці)
setcolor(GREEN); //Надає слідуючим графічним елементам зеленого кольору
line(r1, k1, r2, k2); //Створення лінії з х,у - (початки) і х,у - (кінці)
}
};
class Turn : public Straight //Клас - нащадок "Поворот" від класу "Пряма"
{
public: //Робить нижче наведені змінні та методи публічними(доступними)
void vv() //Метод введення
{
cout << "Введіть координати\n:";
cin >> x1;
cin >> y1;
cin >> x2;
cin >> y2;
cout << "Введіть кут: ";
cin >> a;
}
void vuv() //Метод виведення
{
closegraph(); //Закриває графічне вікно
initwindow(500, 500); //Створює графічне вікно розміром 500х500 пікселей
setcolor(GREEN); //Надає слідуючим графічним елементам зеленого кольору
line(x1, y1, x2, y2); //Створення лінії з х,у - (початки) і х,у - (кінці)
if (a == 45) //Перевірка умови, якщо здійснюється, то повертає значення "істина"
{
Z2 = (x2 + x1) - y1;
line(x1, y1, x2, Z2); //Створення лінії з х,у - (початки) і х,у - (кінці)
}
if (a == 90) //Перевірка умови, якщо здійснюється, то повертає значення "істина"
{
Z2 = x2 + x1;
line(x1, y1, x1, Z2); //Створення лінії з х,у - (початки) і х,у - (кінці)
}
if (a == 180) //Перевірка умови, якщо здійснюється, то повертає значення "істина"
{
W2 = x1 + x2;
line(W2, y1, x1, y1); //Створення лінії з х,у - (початки) і х,у - (кінці)
}
}
};
int main () //Головна функція
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int menu; //Зміна для вибору пункту меню, цілочисельного типу
while(1) //цикл з передумовою, працює безкінечно, тому що в умові стоїть "1"
{
Straight *A; //Створення об'єкт - вказівник від класу "Пряма", яка буде перегружатись
//Якщо об'єкт(не вказівник) пишеться для виклику методу через крапку("."),то
//об'єкт(вказівник) пишеться через стрілку "->"
cout << "\t\t\tMENU\n";
cout << "1 - Намалювати пряму\t\t2 - Видалити" << endl;
cout << "3 - Зрушити\t\t\t4 - Поворот" << endl;
cout << "5 - Вихід\t\t\t6 - Очистити консоль'" << endl;
cout << "\n Вибрати пункт меню: ";
cin >> menu;
switch(menu) //Оператор меню вибору
{
case 1: A = new Vvod; A->vv(); A->vuv(); break;
case 2: A = new Delete; A->vuv(); break;
case 3: A = new Shift; A->vv(); A->vuv(); break;
case 4: A = new Turn; A->vv(); A->vuv(); break;
case 5: return 0; break;
case 6: system("cls"); break;
default: cout << "Невірно вибраний пункт меню!\n";
}
}
system("pause>>int");
}