Цель программы — рисование кривой на экране и изменение ее цвета.
Программу следует реализовать, используя объектно-ориентированный подход программирования.
Описание исследуемого объекта
Для рисования кривой на экране соответственно должны присутствовать методы прорисовки всего экрана в целом.
Так как ПК во время работы программы должен быть переведен в графический режим и обратно выведен из него — при завершении работы, в программе эти действия так же реализованы.
Так как программа имеет набор взаимосвязанных методов и переменных, обрабатываемых ими многократном цикле, то для реализации поставленной задачи наиболее благоприятным является подход, основанный на принципах ООП.
Программная реализация
В программу были включены следующие модули:
Bios.h.
Stdio.h.
Conio.h.
Dos.h.
String.h.
Graphics.h.
Был создан один класс MouseRelling, который включает в себя конструкторы и деструкторы.
Использование конструктора и деструктора показано на данном отрезке программы.
// Конструктор + Инициализация + Исполнение программы.
MouseRelling:MouseRelling ().
{.
x=-1;
y=-1;
LineColor=0;
InitGr ();
NextColor ();
// Если мышь неопределена — выход.
if (!InitMouse ()) return;
ShowMouse ();
do.
{.
// Считать состояние мыши.
GetInfMouse ();
// Если нажата левая кнопка мыши.
if (MouseBL==1).
{.
// Скрыть световое перо мышки.
HideMouse ();
// Она нажата впервые — рисуем просто точку.
if ((x==-1) && (y==-1)).
{.
x=MouseX;
y=MouseY;
putpixel (x, y, LineColor);
moveto (x, y);
}.
// Если не впервые — соединяем предыдущую точку и текущую — прямой.
else.
{.
moveto (x, y);
x=MouseX;
y=MouseY;
lineto (x, y);
};
// Показать световое перо.
ShowMouse ();
};
// Если нажаты клавиши.
if (kbhit ()).
{.
switch (getch ()).
{.
case 32: NextColor (); break; // space — пробел — меняем цвет.
case 45: return; break; // Alt+X — выход из программы.
};
};
// Если нажата правая кнопка мышки — выход из программы.
if (MouseBR==1) return;
}.
while (1);
};
// Деструктор
MouseRelling:~MouseRelling ().
{.
ClosGr ();
};