云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 算法Flyod课程设计

算法Flyod课程设计

  • 62 次阅读
  • 3 次下载
  • 2026/4/23 19:42:46

int i=0; CString str; char* temp; BOOL bread = fp.ReadString(str); temp = str.GetBuffer(0); n=atoi(temp); counts=n*n; int *tp; tp=new int[counts+1]; m_nNUM=n; c=new int*[n+1]; for(i=1; i<=n; i++) c[i]= new int [n+1]; a=new int*[n+1]; for(i=1; i<=n; i++) a[i]= new int [n+1]; r=new int*[n+1]; for(i=1; i<=n; i++) r[i]= new int [n+1]; bread = fp.ReadString(str); i=0; while(bread) {temp = str.GetBuffer(0); tp[i++] = atoi(temp); bread = fp.ReadString(str); } fp.Close(); //将一维数组转化为二维数组放到数组c中 for(i = 0; i

UpdateData(FALSE); }

void CEx_exFloydDlg::Ex_floyd(int n,int **c,int **a,int **r) { int i,j,k; for(i=1; i<=n; i++) { for(j=1; j<=n; j++)

8

{a[i][j]=c[i][j];

r[i][j]=0; } } for(i=1; i<=n; i++) for(j=1; j<=n; j++) {for(k=1; k<=n; k++) if(a[i][k]+a[k][j]

int CEx_exFloydDlg::Ex_output(int **r,int i,int j) {int k; if(r[i][j]!=0) { k=r[i][j]; Ex_output(r,i,k); strRes.Format(\ m_strResult += strRes; Ex_output(r,k,j); } return 0; }

void CEx_exFloydDlg::OnButtonSubmit() //执行floyd算法计算最优值和最优解

{// TODO: Add your control notification handler code here UpdateData(TRUE); //接受编辑框的数据 CString strData; Ex_floyd(n,c,a,r); if(m_intStart>n||m_intStart<1) { MessageBox(\您输入的起点有误,请重新输入\ } if(m_intEnd>n||m_intEnd<1) { MessageBox(\您输入的终点有误,请重新输入\ }

strData.Format(\起点为:%d\

m_strResult += strData + \ strData.Format(\终点为:%d\ m_strResult += strData + \ strData.Format(\最优值shortest[%d][%d]=%d\\n\d,a[m_intStart][m_intEnd]); m_strResult += strData + \ strRes.Format(\最佳路(4)Ex_FloydDlg.h中的主要代码为: class CEx_exFloydDlg : public CDialog {

// Construction public: CEx_exFloydDlg(CWnd* pParent = NULL); // standard constructor void Ex_floyd (int n,int **c,int **a,int **r); int Ex_output(int **r,int i,int j); // Dialog Data //{{AFX_DATA(CEx_exFloydDlg) enum { IDD = IDD_EX_EXFLOYD_DIALOG }; CString m_strFileInfo; int m_intEnd; int m_intStart; CString m_strResult; int m_nNUM;

9

径:%d->\ m_strResult += strRes; Ex_output(r,m_intStart,m_intEnd); strRes.Format(\ m_strResult += strRes; UpdateData(FALSE); //更新编辑框的数据 }

protected: HICON m_hIcon; int n ; //图形中顶点的个数 int **a; //最优值矩阵 int **c;//顶点之间的距离矩阵 int **r;//路由矩阵 int counts; int *tp; CString strRes; // Generated message map functions //{{AFX_MSG(CEx_exFloydDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnButtonSel(); afx_msg void OnButtonSubmit();

五.运行结果

先选择“选择文件按钮”,会弹出一个文件选择框,在其中选择一个文件后如1.txt,在单击确定。会在顶点个数只读编辑框中显示出你所选文件中的顶点个数。然后会弹出一个提示框,“您选择的是1.txt文档,请输入起点和终点”。分别在起点和终点编辑框中输入起点和终点,在点击提交。会出现如下运行界面:

10

11

搜索更多关于: 算法Flyod课程设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

int i=0; CString str; char* temp; BOOL bread = fp.ReadString(str); temp = str.GetBuffer(0); n=atoi(temp); counts=n*n; int *tp; tp=new int[counts+1]; m_nNUM=n; c=new int*[n+1]; for(i=1; i<=n; i++) c[i]= new int [n+1]; a=new int*[n+1]; for(i=1; i<=n; i++) a[i]= new int [n+1]; r=new int*[n+1]; for(i=1; i<=n; i++) r[i]= new int [n+1]; bread = fp.ReadString(str);

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com