关于撤销和重做的需求分析报告

关于撤销和重做的需求分析报告

ID:38636890

大小:40.00 KB

页数:5页

时间:2019-06-16

关于撤销和重做的需求分析报告_第1页
关于撤销和重做的需求分析报告_第2页
关于撤销和重做的需求分析报告_第3页
关于撤销和重做的需求分析报告_第4页
关于撤销和重做的需求分析报告_第5页
资源描述:

《关于撤销和重做的需求分析报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、关于系统撤销和重做功能的需求分析目的与意义:在已有系统的基础上增加撤销和重做的功能。在客户操作过程中,经常会产生误操作或者是不想要的操作,如果没有这个功能,就很难回到之前的操作状态;可能会已经做了大量的操作,由于一步错误的操作,所有的努力将前功尽弃,就得从头来做,这对任何操作者来说,应该是很头疼的事情;在连续的操作中,有时需要对比每一步之间的数据和视图差别,添加了这两个功能来回对比就很方便。目前主流的图形处理软件都具备了撤销和重做的功能,客户更容易接受可逆操作的应用软件。实现机制:要想实现撤销和重做的功能,就必须要保存每一步操作的记录,这样才能根据保存的记录返回到上一步的操作或者重做刚被撤销

2、的操作,而且还要满足所有的操作按照本身的先后顺序来保存。而数据结构中栈的存取机制就刚好满足了这种需求。我们可以定义两个栈,一个撤销栈,一个重做栈。程序运行前,两个栈都是空栈,第一步操作执行时,把第一步操作压入撤销栈中,第二步操作执行时,把第二步操作压入撤销栈中,这时第二步操作就居于栈顶。如果这时想要撤销,就把栈顶上的操作弹出来,根据记录的操作类型,实现撤销,同时把它压入重做栈中,继续撤销的话,就会把第一步操作从撤销栈中弹出来,根据它的操作类型,实现撤销,也被压入重做栈中。这时重做栈就保存了两步操作,可以实现两次重做,原理同上。在系统上的运用:根据上面的实现原理,我们可以拿到系统中来试用。但是

3、具体实现我们需要做哪些步骤呢?1、实现一个操作接口类:1)任何操作都可继承这个接口;2)接口类中定义了撤销和重做的方法;2、实现一个栈管理类:1)定义两个栈,栈中存放的类型是操作类;2)实现两个函数:撤销和重做,菜单上撤销和重做直接调用这两个函数;3)定义让操作压入撤销栈的函数,程序运行时的每一步操作都调用此函数;3、继承操作接口类,实现具体的操作类:1)每一个操作类都实现了接口中定义的撤销和重做方法;2)栈管理类会根据执行的菜单选项决定调用具体操作类的撤销还是重做方法;3)实现撤销和重做方法时,涉及到后台的数据添加及变动(这应该是最繁琐的任务);4)系统中的操作很多,实现这些操作类,是一个

4、挺大的工程;5)后期的任务就集中在写这些操作类。实现的框架代码:1、栈管理类:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceSimulCarrying{publicclassUndoStackManager{publicUndoStackManager(){}///

///撤销栈///Stackun_stack=newStack();////

5、//重做栈///

Stackre_stack=newStack();publicvoidClearStack(){this.un_stack.Clear();this.re_stack.Clear();}//////获取一个值,指示是否有可撤销的操作///publicboolCanUndo{get{returnun_stack.Count!=0;}}//////获取一个值,指示是否有可重复的操作///publicboolCanR

6、edo{get{returnre_stack.Count!=0;}}///

///撤销上一操作,运行撤销菜单时被调用///publicvoidUndo(){if(this.CanUndo){IUndoableOperateop=un_stack.Pop();op.Undo();re_stack.Push(op);}}//////重复被撤销的操作,运行重做菜单时被调用///publicvoidRedo(){if(this.CanRedo){IUndoableOperateop=re_stack.Pop();op.Redo

7、();un_stack.Push(op);}}///

///将某一操作存放到撤销栈中,运行每一步操作时被调用//////publicvoidPushToUndoStack(IUndoableOperateop){this.un_stack.Push(op);this.re_stack.Clear();}}}2、操作接口类及两个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。