Создание библиотеки классов и управляемую пользователем программу с псевдографическим интерфейсом
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
Complex (int re, int im) - конструктор из значений действительной и мнимой частей
Complex (Complex& orig) - конструктор копирования
bool isCorrect (char* str) - является ли некоторая С-строка комплексным числом
bool isCorrect (BaseString str) - является ли некоторая базовая строка комплексным числом
void getReal(char* ) -копирование действительного поля в массив символов
void getImage(char* ) - копирование мнимого поля в массив символов
const Complex& operator= (const Complex& orig) - оператор присваиванияoperator+ (const Complex& adden) - оператор сложенияoperator- (const Complex& orig) - оператор вычитанияostream& outer (ostream& s) - метод потокового выводаistream& iner (istream& s) - метод потокового ввода
Дополнительные функции:
ostream& operator <<(ostream& s, const Complex& str) - оператор потокового вывода
istream& operator >>(istream& s, Complex& str) - оператор потокового ввода
2.2 Графические компоненты - меню
.2.1 Глобальные константы
const int menuWidth = 16 - какой ширины будет рисоваться каждый пункт
const int lineColor = 1 - цвет линий, обрамляющих пункты
const int activeColor = 10 - цвет активного в данный момент пункта
const int enabledColor = 3 - цвет включённого пунктаint passiveColor = 4 - цвет отключённого пункта
библиотека алгоритм строка
2.2.2 Item - пункт меню
Защищённые поля:* caption - надписьleft, top - координаты группы пунктовindex - номер данного пунктаunderMenuLen - число пунктов подменю в группе** underMenu - массив указателей для пунктов подменю* upperItem - указатель на старший пункт
Открытые поля:
bool enabled, activied - включён и активен ли пункт
Открытые методы:
Item(Item* upperItem, char* caption, int left, int top, int index) - конструктор - инициализирует всё, кроме подменю
~Item() - виртуальный деструктор
void (*onEnter) (Item* sender, Menu* place) - указатель на обработчик события входа в меню - получает аргументами указатель на текущие меню и пункт
void createUndermenu (int left, int top, int itemsN ...) - создание подменю, выводящегося в конкретной точке, из серии заголовков. На место точек при вызове ставится itemsN C-строк.
int getIndex() - возврат номера пункта
Item* getUpperItem() - возврат указателя на старший пункт* moveUp() - перемещение вверх по подменю, возвращает указатель на предыдущий включённый пункт* moveDown() - перемещение вниз по подменю, возвращает указатель на следующий включённый пункт* goToRoot() - закрытие всех подменю и возврат указателя на корневой пунктopen() - вывод пункта на экранclose() - скрытие пункта (очистка экрана)* openUnderMenu() - открытие (вывод) подменю и передача ему активности (переприсваивание поля activied), возврат указателя на пункт, ставший активнымcloseUnderMenu() - скрытие подменю и возврат активности данному пункту* operator[] (int i) - возврат указателя на i-й элемент подменю или 0, если подменю нет
.2.3 Menu - меню
Защищённые поля:** roots - массив указателей для корневых элементовrootsN - число корневых элементов
Защищённые методы:open() - первая прорисовка корневых элементов* moveRight(Item* current) - перемещение вправо по корневым пунктам, возврат указателя на следующий от аргумента включённый пункт* moveLeft(Item* current) - перемещение влево по корневым пунктам, возврат указателя на предыдущий от аргумента включённый пункт
Открытые методы:~Menu() - виртуальный деструктор* operator[] (int i) - возврат указателя на i-й корневой элементperform() - управление процессом через меню (алгоритм на рисунке 4).
.3 Графические компоненты - панели
.3.1 Глобальные константы= 2+7*16 - цвет рамокint dialogColors = 12+2*16 - цвет диалогового окна
.3.2 Frame - рамка
Защищённые поля:
char* caption - надпись
int left, top, width, height - координаты и размеры
Открытые методы:(int left, int top, int width, int height, char* caption) - конструктор - сохранение аргументов и прорисовкаvoid redraw() - перерисовка рамки пустой
~Frame() - деструктор - стирание
.3.3 List - список - потомок рамки
Открытые методы:(int left, int top, int width, int N, char* caption) - конструктор drawLine (int i, char* caption) - вывод данной строки на данной строчке.
void redraw() - перерисовка списка пустым с номерами строк
.3.3 Console - консоль - потомок рамки
Открытые методы:
Console (int left, int top, int width, int height, char* caption) - конструктор output(char* c) - добавление в поток строки
.3.4 DialogInput - диалоговое окно ввода
Скрытые поля:
int left, top, width - координаты и ширина (высота всегда под 1 строку заголовка и 1 строку для ввода)
Открытые методы:(int left, int top, int width, char* caption) - конструктор - рисование
~DialogInput() - деструктор - стирание
.4 Модуль данного приложения
.4.1 Глобальные константы
const int window1left = 3, window1top = 14, window1width = 16 - координаты и приращение ширины (к длине базовой строки) 1-го окна - списка (высота - по числу элементов
const int window2left = 55, window2top = 4 - координаты второго угла - консоли (размеры - до краёв экрана)
const int window3left = 36, window3top = 21 - координаты третьего окна номеров параметров
.4.2 Form - форма - потомок меню
Поля:
int objectsN - число объектов для экспериментов
int arg1, arg2, val - номера операндов
List* window1 - указатель на первое окно (список)
Console* window2 - указатель на второе окно (консоль)
BaseString** array - массив указателей под объекты для манипуляций
Методы:
Form() - конструктор - создание пунктов меню для данной задачи
~Form() - деструктор - удаление строковых объектов и окон
void drawOperandsWindow() - рисование окна под номера операндов
void drawOperands() - вывод номеров операндов в их окне
void outputObject(int i) - вывод информации об i-м объекте в окно 1
.4.3 Обработчики нажатий меню
void (Item* sender, Menu* place) - формат всех обработчиков, далее перечислены только имена и соответствующие пункты меню
initializeObject - Инициализация -> Количество элементов
inputOperands - Инициализация -> Начальное значение
cre