最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

校园导游实验报告

来源:动视网 责编:小OO 时间:2025-09-29 18:59:24
文档

校园导游实验报告

一:设计目的1.进一步掌握图的存储,建立和遍历。2.掌握弗洛伊德算法和迪杰斯特拉算法完成最短路径的有关问题。3.文件的读写操作的练习与使用。4.提供校园导游的实用地图。二.设计内容1.以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。2.为来访客人提供图中任意景点相关信息的查询。3.为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。三.概要设计1.功能模块图2.各个模块详细的功能描述。1.CreateGraph()
推荐度:
导读一:设计目的1.进一步掌握图的存储,建立和遍历。2.掌握弗洛伊德算法和迪杰斯特拉算法完成最短路径的有关问题。3.文件的读写操作的练习与使用。4.提供校园导游的实用地图。二.设计内容1.以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。2.为来访客人提供图中任意景点相关信息的查询。3.为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。三.概要设计1.功能模块图2.各个模块详细的功能描述。1.CreateGraph()
一:设计目的

1.进一步掌握图的存储,建立和遍历。

2.掌握弗洛伊德算法和迪杰斯特拉算法完成最短路径的有关问题。

3.文件的读写操作的练习与使用。

4.提供校园导游的实用地图。

二. 设计内容

1.以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

2.为来访客人提供图中任意景点相关信息的查询。

3.为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

三.概要设计

1.功能模块图

2.各个模块详细的功能描述。

1.CreateGraph()---从文件中读出景点的信息,并创建无向图。

2.graph()---显示校园平面图,方便游客进行查询。

3.find()---查询任意景点的详细信息。

4.BrowsePath()---迪杰斯特拉算法,用于实现目前所在点到任意一景点的最短路径。

5.ShortestPath()---弗洛伊德算法,用于实现任意两景点间最短路径。

6.main_menu(),secord_menu()---用于实现菜单的显示并接受输入选择。

四.详细设计

1.功能函数的调用关系图

2.各功能函数的数据流程图

3.重点设计及编码

<1>.查询功能的实现。

while(ch<0||ch>=G.vexnum)

    {

        printf("\\n\你所输入的景点编号不存在!\\n");

        printf("请重新输入:");

        scanf("%d",&ch);

    }

for(i=0;i    {

        if(i==ch)

            printf("\\n %s  %s",G.vexs[i].name,G.vexs[i].introduction);

    }

    printf("\\n\\n是否继续查询(Y/N)");

    getchar();

<2>.从文件中读取信息并储存到图的结构体数组中。

for(i=0;i    {

        fscanf(fp,"%s\\n", G.vexs[i].name);

        fscanf(fp,"%s\\n",G.vexs[i].introduction);

    }

     

for(i=0;i    {   

        fscanf(fp,"%d %d",&m,&n);

        fscanf(fp," %d\\n",&G.arcs[m][n].adj);

    }

<3>。弗洛伊德算法的实现。

for(u=0;u    {

     for(v=0;v         for(w=0;w             if(d[v][u]+d[u][w]                {

                    d[v][w]=d[v][u]+d[u][w];

                 for(i=0;i                        p[v][w][i]=p[v][u][i]+p[u][w][i];

                }

    }

    system("color 3d");

    printf("\\n请输入出发点和目的地的编号: ");

    scanf("%d%d",&k,&j);

while(k<0||k>G.vexnum||j<0||j>G.vexnum)

    {

        printf("\\n\\n  你输入的景点编号不存在~\\n");

        printf("\\n请重新输入出发点和目的地编号:\\n\\n");

        scanf("%d%d",&k,&j);

        printf("\\n\\n");

    }

    printf("\\n\%s",G.vexs[k].name);

for(u=0;u        if(p[k][j][u]&&k!=u&&j!=u)

         printf("--->%s",G.vexs[u].name);

     printf("--->%s",G.vexs[j].name);

        printf("\\n\\n\总长为%d米\\n\\n\\n",d[k][j]);

        printf("按任意健返回!");

五.测试数据及运行结果

1.正常测试数据和运行结果

2.异常测试数据及运行结果

六.调试情况,设计技巧及体会

1.改进方案

<1>.未实现某一点到其余景点的所有路径,用哈密尔顿遍历即可实现。

<2>.在登录时可实现游客登录和管理员登陆,管理员登陆中需要输入密码,并可对景点信息,路径等进行修改。

2.体会

<1>.应该加强对图的学习和使用,特别是对图的遍历及图的应用中最短路径及关键路径的部分应加强理解与掌握。

<2>.适当掌握课本外知识是很有必要的,例如哈密尔顿图的遍历。

<3>.今后应该加强上机练习,在实践中提高自身编程能力和水平,同时掌握课本知识。

<4>.对界面的设计应加强学习,例如颜色及屏幕大小的变化等。

七.参考文献

《数据结构案例精编》---清华大学出版社

《C Primer Plus》---人民邮电出版社

文档

校园导游实验报告

一:设计目的1.进一步掌握图的存储,建立和遍历。2.掌握弗洛伊德算法和迪杰斯特拉算法完成最短路径的有关问题。3.文件的读写操作的练习与使用。4.提供校园导游的实用地图。二.设计内容1.以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。2.为来访客人提供图中任意景点相关信息的查询。3.为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。三.概要设计1.功能模块图2.各个模块详细的功能描述。1.CreateGraph()
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top