У3.2 Многоуровневый Redo

Упражнения

У3.1 Небольшая интерактивная система (программистский проект)

Этот небольшой программистский проект является лучшим способом проверки понимания тем этой лекции и ОО-техники в целом.

Напишите текстовый редактор, ориентированный на работу со строками, поддерживающий следующие операции:

· p: печать введенного текста;

· : передвигает курсор к следующей строке, если она есть (используйте код l, если это более удобно);

· передвигает курсор к предыдущей строке, если она есть (используйте код h, если это более удобно);

· i: вставляет новую строку после позиции курсора.

· d: удаляет строку в позиции курсора;

· u: откат последней операции, если она не была Undo; если же это Undo, то выполняется повтор redo.

Можно добавить новые команды или спроектировать более привлекательный интерфейс, но во всех случаях следует создать законченную, работающую систему. (Возможно, вы сразу начнете с улучшений, описанных в следующем упражнении.)

Дополните одноуровневую схему предыдущего упражнения переопределением смысла операции отката u:

· u: откат последней операции, отличной от Undo и Redo.

Добавьте операцию повтора Redo:

· r: повтор последней операции, если она применима.