流程图软件设计报告面向对象设计.doc
《流程图软件设计报告面向对象设计.doc》由会员分享,可在线阅读,更多相关《流程图软件设计报告面向对象设计.doc(36页珍藏版)》请在咨信网上搜索。
1、高级语言程序设计课程设计流程图编辑器2017-11-19组长:刘甜组员:林菁、董宁指导老师:陈彩目录1 题目简述- 3 -1.1菜单项的设置及其功能- 3 -1.2编辑功能的实现要求- 3 -1.3跟踪执行的实现要求- 3 -2 需求分析- 4 -2.1用例- 4 -2.1.1用例图- 4 -2.1.2用例描述- 5 -2.1.3用例标识- 8 -2.2动态特征- 12 -2.2.1时序图- 12 -2.3静态特征- 13 -2.3.1领域类图- 13 -3 静态建模- 15 -3.1类图- 15 -3.2类说明- 16 -4 动态建模- 16 -4.1时序图- 17 -4.1.1图元的创建-
2、 17 -4.1.2图元的编辑- 18 -4.1.3图元的高亮- 19 -4.1.4图元的处理- 20 -4.2活动图- 21 -4.3状态图- 23 -5 系统实现- 25 -5.1图元基类- 25 -5.2图元管理类- 26 -5.3图元工厂- 27 -5.4图元实体类- 28 -5.5体现访问者模式:选择处理类- 28 -5.6作为图元部分的调整节点单独作为一个类- 29 -6 面向对象技术分析- 30 -6.1软件复用(两个地方体现)- 30 -6.1.1图元基类- 30 -6.1.2 节点类作为单独的一个类,成为图元的组成部分- 30 -6.2 多态性(两个地方体现)- 30 -6.
3、2.1图元基类- 30 -6.2.2 访问者模式- 30 -6.3良好的封装性(两个地方体现)- 31 -6.3.1分工明确(三个)- 31 -6.3.2成员变量全部采用private属性- 31 -6.4良好的可扩展性- 31 -6.4.1应用了CObArray- 31 -6.4.2应用了访问者模式- 32 -6.5良好的可维护性- 32 -6.6良好的健壮性- 32 -6.7采用了工厂模式- 32 -6.8采用了访问者模式(两个)- 32 -6.9能够采用组合绝不用继承- 32 -6.9.1关节点对象是图元对象部分- 33 -6.9.2菱形处理对象是菱形对象的部分- 33 -6.9.3长方
4、形处理对象是长方形图元对象的部分- 33 -6.9.3图元对象是图元管理对象的部分- 33 -7 总结提高- 33 -7.1刘甜总结- 33 -7.1.1体会收获- 33 -7.1.2遇到的问题以及解决方案(3个重要的)- 33 -7.2林菁- 34 -7.3董宁- 34 -7.4小组得分- 35 -1 题目简述本设计系统要求设计一个程序流程图编辑软件,实现人机交互的功能。用不同图元分别表示起止点、输入输出框、处理框、判断框、连接点,用箭头表示控制流,画出流程图并在流程图中输入变量实现其中的计算功能。1.1菜单项的设置及其功能(1)图元创建:分别支持起止点、输入输出框、处理框、判断框、连接点、
5、控制流的创建;(2)起点选择:用户通过鼠标指定某个输出框、处理框或判定框,作为选中的起点;(3)终点选择:用户通过鼠标指定某个输出框、处理框或判定框,作为选中的终点;(4)跟踪执行:高亮度依次显示从起点到终点的所有控制流。1.2编辑功能的实现要求(1)图元的创建:菜单选择后,新图元出现在画面中;(2)控制流的创建:用鼠标按下来指定起点、鼠标释放来指定终点;(3)图元的移动:用鼠标拖动图元(控制流随起点和终点的图元移动);(4)图元的删除:选中图元、按del键,而且没有起点或终点的控制流同时被删除;(5)图元的文字编辑双击图元调用包含编辑控件的对话框。1.3跟踪执行的实现要求(1)输入输出框:接
6、收用户输入,包含变量名称,变量的值,输出消息对话框的内容;(2)逻辑计算表达式按照逻辑进行自动求值计算,分支选择由条件表达式结果决定;(3)控制流显示高亮度依次显示从起点到终点的所有控制流。(正文部分:五号宋体,首行缩进两个汉字,两端对齐,行间单倍距)简明扼要引入题目,使能开始分析与设计过程。组织内容时根据需要细分小节。2 需求分析2.1用例2.1.1用例图2.1.2用例描述创建图形用户创建系统1.要求创建2.选择矩形3.选择椭圆4.选择菱形5.选择箭头6.选择输入框1.创建空白图元2.创建矩形3.创建椭圆4.创建菱形5.创建箭头6.创建输入框创建矩形用户创建系统1选择左上角2选择右下角1记录
7、2创建矩形并记录创建椭圆用户创建系统1选择左上角2选择右下角1记录2定义了椭圆的外切矩形(创建椭圆并记录)创建菱形用户创建系统1选择左上角2选择右下角1记录2定义了客户区(选择客户区各边中点,创建菱形并记录)创建箭头用户创建系统1 选择一个图元2用鼠标拖动到另一个图元,放开1记录2判断是否可以创建,可以则创建一条由初始图元指向末端图元的带箭头直线,并且记录下带箭头直线以及它相连的两个图元。创建输入框用户创建系统1. 选择左上角2选择右下角1记录2创建客户区(客户区纵坐标不变,横坐标作相应变化,创建输入框并记录) 编辑图形用户创建系统1. 选择图形2. 选择矩形3. 选择椭圆4. 选择菱形5.
8、选择箭头6. 选择输入框1. 显示图形2. 编辑矩形3. 编辑椭圆4. 编辑菱形5. 编辑箭头6. 编辑输入框编辑矩形用户编辑系统1双击矩形2. 编辑文字1进入矩形编辑界面2. 显示用户输入文字编辑椭圆用户编辑系统1双击椭圆2. 编辑文字1进入椭圆编辑界面2. 显示用户输入文字编辑菱形用户编辑系统1双击菱形2. 编辑文字1进入菱形编辑界面2. 显示用户输入文字编辑箭头用户编辑系统1选择点2. 拖动该点到另一个图元1获取该点坐标2. 如果合法,更改该点坐标编辑输入框用户编辑系统1双击输入框2. 编辑文字1进入输入框编辑界面2. 显示用户输入文字删除图形用户编辑系统1 删除图形2 选择矩形3 选择
9、椭圆4. 选择菱形5. 选择箭头6. 选择输入框1. 将图形删除2. 删除矩形3. 删除椭圆4. 删除菱形5. 删除箭头6. 删除输入框删除矩形用户编辑系统1选择矩形2. 按delete键1定位到矩形对象,记录2. 删除矩形对象删除椭圆用户编辑系统1选择椭圆2. 按delete键1. 定位到椭圆对象,记录2. 删除椭圆对象删除菱形用户编辑系统1选择菱形2. 按delete键1. 定位到菱形对象,记录2. 删除菱形对象删除箭头用户编辑系统1选择箭头2. 按delete键1. 定位到带箭头直线,记录2. 删除带箭头直线删除输入框用户编辑系统1选择输入框2. 按delete键1. 定位到输入框,记录
10、2. 删除输入框显示流程用户总控制系统1. 选择开始流程2. 选择开始图元3. 选择结束图元1. 根据逻辑高亮控制流2. 判断合法起始图元高亮3. 高亮结束图元,开始高亮中间控制流2.1.3用例标识用例名称创建图形用例用例标识参与者用户简要说明启动创建图形基本事件流用户界面要求创建图形,创建空图,提供选择要创建的图元,调用创建图元用例前置条件用户启动程序主界面用例名称创建矩形用例用例标识参与者用户简要说明启动创建矩形基本事件流用户鼠标选择左上角和右下角,界面显示矩形,创建矩形对象前置条件已创建图形用例名称创建椭圆用例用例标识参与者用户简要说明启动创建椭圆基本事件流用户鼠标选择左上角和右下角,界
11、面显示椭圆的外接矩形,创建椭圆对象前置条件已创建图形用例名称创建菱形用例用例标识参与者用户简要说明启动创建菱形基本事件流用户鼠标选择客户区范围,确定客户区上、下、左和右的中点,作为菱形的顶点,创建菱形对象前置条件已创建图形用例名称创建输入框用例用例标识参与者用户简要说明启动创建输入框基本事件流用户鼠标创建客户区(客户区纵坐标不变,横坐标作相应变化),创建输入框并记录前置条件已创建图形用例名称创建箭头用例用例标识参与者用户简要说明创建带箭头直线基本事件流用户鼠标选择一个图元,按住拖动到另一个图元,放开,创建带箭头的直线前置条件已创建图形和相应图元用例名称编辑图形用例用例标识参与者用户简要说明编辑
12、图形基本事件流用户选择图形和图元,鼠标进行编辑前置条件当前选择的图形用例名称编辑矩形用例用例标识参与者用户简要说明编辑矩形基本事件流用户双击矩形框,编辑文字前置条件当前选择的图形用例名称编辑椭圆用例用例标识参与者用户简要说明编辑椭圆基本事件流用户双击椭圆,编辑文字前置条件当前选择的图形用例名称编辑菱形用例用例标识参与者用户简要说明编辑菱形基本事件流用户双击菱形,编辑文字前置条件当前选择的图形用例名称编辑箭头用例用例标识参与者用户简要说明编辑带箭头直线基本事件流用户选择直线,高亮该带箭头直线,鼠标拖动两端点或线移位前置条件当前选择的图形用例名称编辑输入框用例用例标识参与者用户简要说明编辑输入框基
13、本事件流用户双击输入框,编辑文字前置条件当前选择的图形用例名称删除图形用例用例标识参与者用户简要说明删除图形基本事件流用户界面要求删除图形,提供选择要删除的图元,调用删除图元用例前置条件用户启动程序主界面用例名称删除矩形用例用例标识参与者用户简要说明删除矩形基本事件流用户鼠标点击到矩形,按delete键删除前置条件当前选择的图形用例名称删除椭圆用例用例标识参与者用户简要说明删除椭圆基本事件流用户鼠标点击到椭圆,按delete键删除前置条件当前选择的图形用例名称删除菱形用例用例标识参与者用户简要说明删除菱形基本事件流用户鼠标点击到菱形,按delete键删除前置条件当前选择的图形用例名称删除箭头用
14、例用例标识参与者用户简要说明删除矩形基本事件流用户鼠标点击到带箭头的直线,按delete键删除前置条件当前选择的图形用例名称删除输入框用例用例标识参与者用户简要说明删除输入框基本事件流用户鼠标点击到输入框,按delete键删除前置条件当前选择的图形2.2动态特征2.2.1时序图创建图形的过程编辑图形的过程2.3静态特征2.3.1领域类图详细的类图写在了后面:3 静态建模3.1类图3.2类说明,类名说明CEllipse椭圆实体类CRectangle长方形实体类CArrowHead箭头实体类CLozengeDeal菱形实体类Clozenge平行四边形实体类CBasedGraph图元父类GreatG
15、raphFactory创建图元工厂类LozengeDeal菱形处理类父类AddLozengeDeal菱形处理类子类RectangleDeal长方形处理类父类AddRectangleDeal长方形处理类子类CConnectPoint关节点类CFlowGraphDocMFC菜单文档类CFlowGraphViewMFC菜单视图类CflowGraphAppMFc菜单App类CGraphManager图元管理这部分内容有:类图(类及关系),并用一句话说明每个类代表了什么事物。其他说明静态模型的设计图。组织内容时根据需要细分小节。4 动态建模这部分内容有:用时序图、活动图、状态图、协作图等说明各个对象如何
16、相互作用完成程序每项功能。组织内容时根据需要细分小节。4.1时序图4.1.1图元的创建4.1.2图元的编辑4.1.3图元的高亮4.1.4图元的处理4.2活动图4.3状态图5 系统实现这部分内容有:每个类的定义(类名、功能、属性,内部方法、接口方法、约束条件等。要求类的属性、方法要给出访问权限。方法要有参数和返回值的说明。不需要给出函数体中代码。组织内容时根据需要细分小节。由于没必要把所有的图元都列举出来,所以,本报告列举了椭圆形作为示例图源。5.1图元基类作为父类,主要的目标就是提供接口,另外由于使用COrray这个自带数组,如果可以向上转化,也就是子类直接转换成父类,那么添加,就会方便很多。
17、这个类提供的主要是接口,它的存在大大方便了图元管理类的编写,可以看到,我的图元管理类返回的都是CGraph,也就是这个父类的指针,因为用指针向上转化不会进行切割,所以在管理起来包括添加,查找都很有用。大大的复用了代码。Public:bool m_IsMark; / 是否标记bool m_hightlight;/是否高亮CPoint m_Start; / 开始点CPoint m_End; / 结束点CString m_text; / 描述文字CObArray m_Points; / 该图元包含的所有连接点(CConnentPoint)CString m_type;/表示类型virtual voi
18、d GetText(CString &str);virtual void SetText(CString &str);virtual void GetStartPoint(CPoint &pt);virtual void GetEndPoint(CPoint &pt);virtual void SetStartPoint(CPoint &pt);virtual void SetEndPoint(CPoint &pt); virtual bool IsIn(CPoint &pt); virtual bool IsOn(CPoint &pt);virtual bool IsOn(CConnectP
19、oint *pt); virtual bool IsSelected(CPoint &pt); virtual bool IsEditable();virtual bool IsControlFlow();virtual void SetPreviousGraph(CGraph *previousGraph);virtual void SetNextgraph(CGraph *nextGraph);virtual void SetIsMark(bool isMark);virtual void Draw(CDC *pdc) = 0;virtual void DrawFocus(CDC *pdc
20、) = 0;virtual void Move(int cx, int cy) = 0; virtual void AdjustSize(CPoint &pt);virtual void Serialize(CArchive& ar) = 0;virtual void highlight(CDC *pdc);public:CGraph();virtual CGraph();5.2图元管理类管理类的主要作用就是维护一个存储了所有图元类包括箭头的数组。秉承着谁的数据谁管理的原则,管理类的出现,是把具体的内部数据与View视图类分开,作为Doc的存在。提高了封装性,安全性。而且应用这个数组,其实是扩
21、展性的体现。public:CGraphManager();virtual CGraphManager();public:void DrawAll(CDC *pdc);void DeleteAll();void DeleteFocusGraph();void DeleteGraphAt(int ID);void DrawHightlight( CDC *pdc );bool SetFocusGraphID(CPoint &pt);bool IsAdjustSize(CPoint &pt);void AdjustSize(CPoint &pt);void Move(int cx, int cy);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流程图 软件设计 报告 面向 对象 设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。