校园导游系统程序 课程设计 报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
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)
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);
定义各顶点之间的距离:
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(" 欢迎来到潍坊学院!祝您旅途愉快! \n");