校园导游课程设计实验报告_校园导游实验报告

2020-02-27 其他范文 下载本文

校园导游课程设计实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“校园导游实验报告”。

《数据结构》

课 程 设 计 实 验 报 告

课程名称:

《数据结构》课程设计 课程设计题目: 校园导游 姓名:

邱可昉 院系:

计算机学院 专业:

计算机科学与技术 班级:

10052313 学号:

10051319 指导老师:

王立波

2012年5月18日

目录

1.课程设计的目的„„„„„„„„„„„„„„„„„„„„„3 2.问题分析„„„„„„„„„„„„„„„„„„„„„„„„3 3.课程设计报告内容„„„„„„„„„„„„„„„„„„„„3(1)概要设计„„„„„„„„„„„„„„„„„„„„„3(2)详细设计„„„„„„„„„„„„„„„„„„„„„3(3)测试结果„„„„„„„„„„„„„„„„„„„„„7(4)程序清单„„„„„„„„„„„„„„„„„„„„„9 4.个人小结 „„„„„„„„„„„„„„„„„„„„„„„14

1.课程设计的目的《数据结构》是计算机软件的一门基础课程,计算机科学各领域及有关的应用软件都要用到各种类型的数据结构。学好数据结构对掌握实际编程能力是很有帮助的。为了学好《数据结构》,必须编写一些在特定数据结构上的算法,通过上机调试,才能更好地掌握各种数据结构及其特点,同时提高解决计算机应用实际问题的能力。

2.问题分析

[问题描述](1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

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

(3)为来访客人提供图中任意景点相关信息的查询。[测试数据] 由读者根据实际情况指定。

3.课程设计报告内容

(1)概要设计

根据学校具体分布构建无向连通图,再通过几个模块运行函数完成校园信息简介查询,校园景点间最短距离计算和输出以及退出功能。

(2)详细设计

//定义全局变量 int bian[n][n];int zhjl[n][n];int path[n][n];//构建dy类 cla dy{ public: dy();

~dy();void jj();int zuiduan();void floyed();void shuchu(int,int);

// 边的值

// 两点间的最短距离

// 经过的景点

};首先,通过dy类的构造函数构建邻接矩阵。dy::dy(){ for(int i=0;i

bian[1][3]=bian[3][1]=150;bian[1][6]=bian[6][1]=300;bian[2][3]=bian[3][2]=100;bian[3][4]=bian[4][3]=50;bian[3][5]=bian[5][3]=200;bian[4][5]=bian[5][4]=100;bian[4][8]=bian[8][4]=350;

bian[4][9]=bian[9][4]=250;bian[5][6]=bian[6][5]=100;bian[5][7]=bian[7][5]=250;bian[5][8]=bian[8][5]=300;bian[6][7]=bian[7][6]=200;bian[7][8]=bian[8][7]=100;bian[8][9]=bian[9][8]=400;bian[9][10]=bian[10][9]=100;//将各点到自己的距离定义为0 bian[1][1]=bian[2][2]=bian[3][3]=bian[4][4]=bian[5][5]=0;bian[6][6]=bian[7][7]=bian[8][8]=bian[9][9]=bian[10][10]=0;} 接着,jj函数实现景点列表输出和景点查询。void dy::jj(){ int a;cout>a;getchar();cout

cin>>i>>j;if(i>n||in||j

cout>i>>j;} else { floyed();shuchu(i,j);} return 1;} 再者,floyed函数用三个for循环求解最短路,将两点间的n个点看做一个点,用path数组记录这个点,在依次求出各点间最短路,并用zdjl数组保存起来。

void dy::floyed(){ int i,j,k;for(i=1;i(zdjl[i][k]+zdjl[k][j])){//用path[][]记录从i到j的最短路径上点j的前驱景点的序号

zdjl[i][j]=zdjl[i][k]+zdjl[k][j];path[i][j]=k;path[j][i]=k;} } 最后,shuchu函数判断输入两景点编号大小,完成正序输出和逆序输出。void dy::shuchu(int i,int j){ int a,b;a=i;b=j;cout

cout“”“”

(4)测试结果

(4)程序清单

#include //#include

using namespace std;

#define INT_MAX 10000 #define n 11

//定义全局变量 int bian[n][n];int zdjl[n][n];int path[n][n];

cla dy{ public:

dy();~dy();void jj();int zuiduan();void floyed();

// 边的值

// 两点间的最短距离

// 经过的景点

void shuchu(int,int);};dy::dy(){ for(int i=0;i

bian[1][3]=bian[3][1]=150;bian[1][6]=bian[6][1]=300;bian[2][3]=bian[3][2]=100;bian[3][4]=bian[4][3]=50;bian[3][5]=bian[5][3]=200;bian[4][5]=bian[5][4]=100;bian[4][8]=bian[8][4]=350;

bian[4][9]=bian[9][4]=250;bian[5][6]=bian[6][5]=100;bian[5][7]=bian[7][5]=250;bian[5][8]=bian[8][5]=300;bian[6][7]=bian[7][6]=200;bian[7][8]=bian[8][7]=100;bian[8][9]=bian[9][8]=400;bian[9][10]=bian[10][9]=100;bian[1][1]=bian[2][2]=bian[3][3]=bian[4][4]=bian[5][5]=0;bian[6][6]=bian[7][7]=bian[8][8]=bian[9][9]=bian[10][10]=0;} dy::~dy(){} void dy::jj()int a;{ cout>a;getchar();cout

cout

break;case 2:

cout

cout

break;case 3: cout

cout

cout

break;case 5: cout

cout

break;case 6: cout

cout

break;case 7: cout

cout

break;case 8: cout

cout

break;case 9: cout

break;case 10: cout

cout

break;} } int dy::zuiduan(){ int i,j;cout>i>>j;if(i>n||in||j>i>>j;} else { floyed();shuchu(i,j);} return 1;} void dy::floyed(){ int i,j,k;for(i=1;i(zdjl[i][k]+zdjl[k][j])){//用path[][]记录从i到j的最短路径上点j的前驱景点的序号

zdjl[i][j]=zdjl[i][k]+zdjl[k][j];path[i][j]=k;path[j][i]=k;} } void dy::shuchu(int i,int j){ int a,b;a=i;b=j;cout“”“”

int main(){ int i,j,s=1,k;dy dy;while(s){ cout>k;switch(k){ case 1: cout

4.个人小结

在前两次编写程序之后,我已经能够轻车熟路的编写程序了,对于C++的数据结构风格也有所领悟,感觉相对轻松一些。

经过这次练习,我发现我还是有一些没有注意的地方,我发现我对于书本上的知识吸收还有欠缺,然后编写程序不够仔细,有一些小差错导致编译出现错误,后来检查后修正了。我要在以后的学习中注意以下几点:

1.认真上好专业课,多在实践中锻炼自己。2.写程序要考虑周到,严密。

3.在做设计的时候要有信心,有耐心,不浮躁。

4.认真学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。

5.在课余时间多写程序,熟练掌握在调试程序过程中常见的错误,一边节约调试程序的时间。

《校园导游课程设计实验报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
校园导游课程设计实验报告
点击下载文档
相关专题 校园导游实验报告 实验报告 导游 课程设计 校园导游实验报告 实验报告 导游 课程设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文