Введення
Даний програмний продукт складається з двох самостійних бібліотек: строкових типів і консольно-графічних компонентів, які можуть бути використані в інших цілях, і використовує (демонструє) їхні програми.
Зміст бібліотек:
Строкові типи: базова рядок, рядок-ідентифікатор, комплексне число.
Консольно-графічні компоненти: меню, рамка, список, консоль, ввід-діалог.
Програма дозволяє створити до дев'яти строкових об'єктів і маніпулювати ними, відображаючи їх поточний стан в списку, результати процедур на консолі і використовуючи меню для введення команд і діалоги для введення параметрів.
Нижче відображені структура і взаємодія класів та об'єктів, основні алгоритми.
1. Спрощена структура бібліотек, ієрархія класів
.1 Строкові типи
Є наступні типи (малюнок 1):
В· BaseString - базова рядок - містить С-рядок глобально заданої (або меншої) довжини, контролює доступ, забезпечує введення-виведення.
В· Identifier - рядок-ідентифікатор - стежить, щоб збережена рядок відповідала правилам складання ідентифікаторів мови С.
В· Complex - комплексне число - містить символьне подання комплексного числа у форматі В«1234i567В» зі знаками або без. Забезпечує алгебраїчне додавання і висновок у форматі В«(1234, i 567)В».
В
Рисунок 1 - бібліотека строкових типів.
.2 Графічні компоненти
Є наступні компоненти й системи (малюнок 2):
В· Item - пункт меню - містить координати, напис, що спричинюється функцію і масив підміню. Має функції малювання і стирання, при стирання екран зафарбовується чорним (якщо щось було затерто, старе вміст не відновлюється).
В· Menu - меню - містить масив кореневих пунктів меню, контролює загальний процес виконання програми: стежить за натисканнями на навігаційні клавіші, згортає і розгортає пункти та їх підміню, викликає обробники натискань. Алгоритм зображений нижче (малюнок 3).
В· Frame - рамка - в конструкторі виводить псевдографічні рамку, в деструкції стирає її. Є функція перемальовування.
В· List - список - рамка, що виводить потрібну напис на будь сходинці з номером.
В· Console - консоль - потоковий висновок тексту в рамці.
В· DialogInput - діалог введення рядка - тільки мал...