目录
1、需求分析 ................................. 错误!未定义书签。 2、设计思路 ................................. 错误!未定义书签。 3、算法设计 .................................................................. 1 3.1 概要设计 ............................................................ 1 3.1.1 程序中包含的模块 ..................................... 1 3.1.2 模块间的调用关系 ..................................... 2 3.2 详细设计 ............................................................ 2 4、测试分析 .................................................................. 9
4.1 主程序界面 .................................................... 9 4.2 景点信息的查询 .......................................... 10 4.3 最短路径查询 ...............................................11 5、总结 .........................................................................11 6、参考文献 ................................................................ 12 7、附录 ........................................................................ 12
1、需求分析
设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。 (1).设计潍坊学院校园平面图,所含的景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2).为来访客人提供图中任意景点相关信息的查询。
(3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
2、设计思路
校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用弗洛伊德(Floyd)算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。
3 算法设计
3.1 概要设计
3.1.1 程序中包含的模块 (1)主程序模块 主函数:void main() 打印菜单,景点,景点信息 (2)查询模块
景点信息查询:void introduce() 最短路径查询:
要查找的两景点的最短距离:int shortestdistance() 用floyd算法求两个景点的最短路径:void floyd()
(3)打印模块
打印两个景点的路径及最短距离:void display(int i,int j)
1
3.1.2模块间的调用关系
主函数main()调用:
void introduce()/*景点介绍*/
int shortestdistance()/*要查找的两景点的最短距离*/
shorestdistance()调用:
void floyd()/*用floyd算法求两个景点的最短路径*/
void display(int i,int j) /* 打印两个景点的路径及最短距离
*/
3.2 详细设计
/*定义符号变量/* #define INT_MAX 10000 #define n 10
/*定义全局变量*/ int cost[n][n];
/* 边的值*/
/* 两点间的最短距离*/ /* 经过的景点*/ /*景点名称*/ /*景点介绍*/
int shortest[n][n]; int path[n][n];
string M[100]; string J[100];
/*自定义函数原型说明*/ void introduce(); int shortestdistance(); void floyd(); void display(int i,int j);
2
定义各顶点之间的距离: for(i=0;i<=n;i++) for(j=0;j<=n;j++) cost[i][j]=INT_MAX; cost[1][2]=cost[2][1]=3; cost[2][3]=cost[3][2]=1; cost[3][4]=cost[4][3]=2; cost[4][5]=cost[5][4]=1; cost[5][6]=cost[6][5]=1; cost[3][6]=cost[6][3]=2; cost[1][4]=cost[4][1]=5; cost[1][7]=cost[7][1]=7; cost[4][7]=cost[7][4]=1; cost[7][5]=cost[5][7]=1; cost[7][8]=cost[8][7]=2; cost[8][9]=cost[9][8]=1; cost[5][9]=cost[9][5]=2; cost[8][5]=cost[5][8]=2; cost[8][10]=cost[10][8]=1;
cost[1][1]=cost[2][2]=cost[3][3]=cost[4][4]=cost[5][5]=0; cost[6][6]=cost[7][7]=cost[8][8]=cost[9][9]=cost[10][10]=0; 界面菜单设计: while(1) {
printf(\欢迎使用校园导游系统!-------------------\\n\
printf(\ 欢迎来到潍坊学院!祝您旅途愉快! 3
\\n\
printf(\ 菜单选择
\\n\
printf(\景点信息查询\\n\ printf(\景点最短路径查询\\n\ printf(\退出系统\\n\\n\
printf(\ 学校景点列表(以下是您可能要去的地方):\\n\ printf(\潍坊学院大门 \ printf(\行政楼 \ printf(\餐厅 \ printf(\实验楼 \ printf(\图书馆\\n\ printf(\商业区 \ printf(\教学楼 \ printf(\篮球场 \ printf(\体育馆 \ printf(\弘德湖 \\n\
printf(\
printf(\请选择服务:\ scanf(\ switch(k) { case '1':
printf(\进入景点信息查询:\ introduce(); break; case '2':
printf(\进入最短路径查询:\ shortestdistance(); break; case '3':
4
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库校园导游系统程序 课程设计 报告在线全文阅读。
相关推荐: