Форум программистов, компьютерный форум CyberForum.ru

Отмена действия - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Цыфровой корень С++ http://www.cyberforum.ru/cpp-beginners/thread1005956.html
Есть программа вычисляя цифровой корень числа, это ясно. Но преподаватель дал дополнительное задание: С клавиатуры ввести массив длинных беззнаковых целых чисел. Используя разработанную функцию, найти цифровой корень каждого из введенных чисел. Результат представить в форме таблицы. Было у кого такое? с рекурсией ... #include "stdafx.h" #include<stdlib.h> #include<stdio.h>...
C++ Переопределение операций со строками Операция переопределения Замена в строке первых n символов на символ с наименьшим кодом из входящих в строку почему-то работает некорректно #include <iostream> #include <conio.h> using namespace std; class Stroka { private: http://www.cyberforum.ru/cpp-beginners/thread1005952.html
C++ Одномерный массив
Дан одномерный массив, размером n элементов. Посчитать max , заменить максимумом первый и последний элементы массива. Нужно написать программу.
Рекурсия в структурах C++
struct Element { Element *next; Element *prev; List Sub; }; class List { public:
C++ Как построить небинарное дерево? http://www.cyberforum.ru/cpp-beginners/thread1005904.html
(дерево двоичное, но не бинарное) Надеюсь, меня поняли) числа могут повторяться)
C++ STL: контейнеры. Произвольная вставка элементов Доброго времени суток! Можно ли вставить элемент в контейнер STL (не важно какой) в произвольное место? Имеется в виду, в случаи вектора: std::vector<int> ints { 1, 5, 7, 8, 23 }; Допустим, я хочу добавить элемент 3 позади элемента7, т.е позади индекса . Какие варианты есть? подробнее

Показать сообщение отдельно
LASpace
 Аватар для LASpace
34 / 34 / 3
Регистрация: 27.01.2013
Сообщений: 142
12.11.2013, 21:46     Отмена действия
Доброе время суток! Сорри если не там тему создал
Дело вот в чем, необходимо реализовать в программе откат действия (ctrl+z). Программа напоминает visio от Microsoft, куча прямоугольников с привязаными к ним данными. Можно менять положение прямоугольников и через специальное меню можно изменять привязанные к эти прямоугольникам данные и параметры.
Вопрос вот в чем: как именно лучше завоминать действия юзера? Добавление/Удаление/Изменение данных.

Я додумался вот до чего:
С каждым действием юзера создавать экземпляр структуры действие ( struct ST_ACTION ) и добавлять в лог ( ну пусть будет список TList или контейнер vector )
Структура ST_ACTION должна содержать:
- тип действия
- все параметры которые могут измениться
- размер лога ( static )
- номер положения в логе
- номер текущего пложения в логе ( для ctrl+shift+z ) ( static )
- методы перехода по логу ( отмена действия и отмена отмены действия )
- методы частичной и полной очистки лога

Может кто делал что то подобное или знает как умные дяди это реализуют??? Буду рад любому совету и критике)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru