资源描述:
《GIS拓扑生成程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、拓扑生成程序罗宇使用VisualC++6.0新建一个AppWizardMFC.exe项目,目名为tuopu。选择创建一个对话框类型的应用程序。第一,项界面设计。打开对话框资源IDD_TUOPU_DIALOG,界面设计如图1:添加完控件后,打开ClassWizard,针对IDD_MY_DIALOG所指向的类CMYDlg,添加DDX成员变量;CStringm_sPathName1;CStringm_sPathName2;CStringm_editshow;系统自动生成如下代码:voidCTuopuDlg::DoDataExchange(CDataExchange*pDX){CDialo
2、g::DoDataExchange(pDX);//{{AFX_DATA_MAP(CTuopuDlg)DDX_Text(pDX,IDC_EDIT1,m_sPathName1);DDX_Text(pDX,IDC_EDIT2,m_sPathName2);DDX_Text(pDX,IDC_EDIT3,m_editshow);//}}AFX_DATA_MAP}第二,代码编写。在tuopuDlg.h定义如下结构体:typedefstructarArc//弧段的结构体{inta;charNs[20];charNe[20];intPl;intPr;}arArc;typedefstructPoint
3、//点的结构体{charp[20];intpo1,po2,po3;}Point;typedefstructstructp//多边形的结构体{intnum;CArrayarP;}structp;arArc*arc;Point*point;structp*stp;利用类向导为控件添加功能函数:系统自动生成的消息路由为:BEGIN_MESSAGE_MAP(CMyDlg,CDialog)//{{AFX_MSG_MAP(CMyDlg)OON_BN_CLICKED(IDC_BUTTON_OPEN1,OnButtonOpen1)ON_BN_CLICKED(IDC_BUTTON
4、_OPEN2,OnButtonOpen2)ON_BN_CLICKED(IDC_BUTTON_RUN,OnButtonRun)ON_COMMAND(ID_EXIT,OnExit)ON_COMMAND(IDM_USE,OnUse)ON_BN_CLICKED(IDC_PUTOUT,OnPutout)//}}AFX_MSG_MAPEND_MESSAGE_MAP()}}在tuopuDlg.cpp添加各个功能函数代码如下:voidCTuopuDlg::OnButtonOpen1()//打开文件1:结点-弧拓扑关系{//TODO:Addyourcontrolnotificationhandler
5、codehereCFileDialogfdlg(true,NULL,NULL,OFN_OVERWRITEPROMPT,"拓扑关系文件
6、*.dat;*.txt
7、",NULL);if(fdlg.DoModal()==IDOK){m_sPathName1=fdlg.GetPathName();}if(m_sPathName1=="")return;UpdateData(false);}voidCTuopuDlg::OnButtonOpen2()//打开文件2:弧-结点拓扑关系{//TODO:AddyourcontrolnotificationhandlercodehereCFileDia
8、logfdlg(true,NULL,NULL,OFN_OVERWRITEPROMPT,"拓扑关系文件
9、*.dat;*.txt
10、",NULL);if(fdlg.DoModal()==IDOK){m_sPathName2=fdlg.GetPathName();}if(m_sPathName2=="")return;((CButton*)GetDlgItem(IDC_BUTTON_RUN))->EnableWindow(true);UpdateData(false);}voidCTuopuDlg::GetherData()//读取文件{UpdateData();inti;ifstream
11、if1(m_sPathName1);point=newPoint[4];for(i=0;i<4;i++){if1>>point[i].p>>point[i].po1>>point[i].po2>>point[i].po3;}ifstreamif2(m_sPathName2);arc=newarArc[6];for(i=0;i<6;i++){if2>>arc[i].a>>arc[i].Ns>>arc[i].Ne;arc[i].Pl=arc[i].Pr=0;}}voidC