流程图编辑器功能界面椭圆是开始结束框平行四边形是输入框长方形是输出处理结果框箭头是控制流菱形是处理框数据结构•CObArray•箭头实体类当中增加他的起点以及终点图元,然后增加一个方法,在管理类中,功能是获取我的下一个箭头,并且要求指出要第几个箭头•优点:可扩展,可以保存残缺的图,用了模板增强了健壮性。类图classSystemAddLozengeDeal+AddLozengeDeal()+~AddLozengeDeal()+highlightIndex():int+IsInputRight(int):bool+IsOutputRight(int):boolCArrowhead-m_AdjustPoint:int-m_FocusPoint:int-m_Next:CGraph*-m_Previous:CGraph*-AdjustFocusPoint():void+AdjustSize(CPoint&):void+CArrowhead()+~CArrowhead()+Draw(CDC*):void-DrawArrow(CDC*):void+DrawFocus(CDC*):void-GetDistance(int,int,int,int):double+GetNextgraph():CGraph*+GetPreviousGraph():CGraph*+highlight(CDC*):void+IsControlFlow():bool+IsEditable():bool+IsIn(CPoint&):bool+IsOn(CPoint&):bool+IsOn(CConnectPoint*):bool+Move(int,int):void+Serialize(CArchive&):void+SetNextgraph(CGraph*):void+SetPreviousGraph(CGraph*):void«propertyget»+GetAdjustPoint():intCObjectCConnectPoint-m_Point:CPoint-m_type:bool+CConnectPoint()+~CConnectPoint()+Draw(CDC*):void+IsOn(CPoint&):bool+Serialize(CArchive&):void+SetType(bool):void«propertyget»+GetPoint():CPoint«propertyset»+SetPoint(CPoint&):voidCGraphFactory+CGraphFactory()+~CGraphFactory()+CreateArrowLine():CGraph*+CreateControlFlow():CGraph*+CreateEllipse():CGraph*+CreateEnd():CGraph*+CreateJudgeDiamond():CGraph*+CreateLine():CGraph*+CreateProcessDiamond():CGraph*+CreateRectangle():CGraph*+CreateStart():CGraph*CEllipse-m_AdjustPoint:int-AdjustFocusPoint():void+AdjustSize(CPoint&):void-AdjustStartAndEnd():void+CEllipse()+~CEllipse()+Draw(CDC*):void+DrawFocus(CDC*):void+IsIn(CPoint&):bool+IsOn(CPoint&):bool+IsOn(CConnectPoint*):bool+Move(int,int):void+Serialize(CArchive&):void«propertyget»+GetAdjustPoint():intCWinAppCFlowGraphApp+CFlowGraphApp()+InitInstance():BOOL+OnAppAbout():voidCDocumentCFlowGraphDoc+m_GraphFactory:CGraphFactory+m_GraphManager:CGraphManager+AssertValid():void{query}#CFlowGraphDoc()+~CFlowGraphDoc()+Dump(CDumpContext&):void{query}+OnNewDocument():BOOL+OnOpenDocument(LPCTSTR):BOOL+Serialize(CArchive&):voidCViewCFlowGraphView+m_FocusGraph:CGraph*-m_IsControlFlow:bool+m_LBtnSignal:bool+m_LDoubleBtnSignal:bool+m_OperateType:int+m_Start1:CPoint+pedit:CEdit*+AssertValid():void{query}#CFlowGraphView()+~CFlowGraphView()+Dump(CDumpContext&):void{query}+GetDocument():CDrawFlowChartDoc*#OnBeginPrinting(CDC*,CPrintInfo*):void#OnCal():void#OnCreateArrowhead():void#OnCreateControlFlow():void#OnCreateDealDiamond():void#OnCreateDiamond():void#OnCreateEllipse():void#OnCreateEnd():void#OnCreateGenericLine():void#OnCreateRectangle():void#OnCreateStart():void+OnDraw(CDC*):void#OnEndPrinting(CDC*,CPrintInfo*):void#OnFlow():void+OnGetMap():void#OnKeyDown(UINT,UINT,UINT):void#OnLButtonDblClk(UINT,CPoint):void#OnLButtonDown(UINT,CPoint):void#OnLButtonUp(UINT,CPoint):void#OnMarkPath():void#OnMouseMove(UINT,CPoint):void#OnPreparePrinting(CPrintInfo*):BOOL#OnSaveBmp():void#OnSearchPath():void#OnStartFlow():void#OnStopMark():void#OnToolbarEnd():void#OnToolbarFlowcontrol():void#OnToolbarJudge():void#OnToolbarNext():void#OnToolbarProcess():void#OnToolbarRect():void#OnToolbarSearch():void#OnToolbarStart():void#OnToolbarStop():void+PreCreateWindow(CREATESTRUCT&):BOOLCObjectCBasedGraph+m_End:CPoint+m_hightlight:bool+m_IsMar...