校园导游咨询完整版

  • 格式:docx
  • 大小:67.19 KB
  • 文档页数:20
(1)建立模型(逻辑结构)
(2)建立模块之间的关系(存储结构)
(3)算法
四、源程序清单
五、测试结果
六、课程设计总结及心得体会
实验题目:校园导游咨询
一、课程目的
为用户提供路径咨询和景点查询,根据用户指定的始点和终点输出相应路径或者根据用户指定的景点输出景点的信息。
二、基本要求
(1)设计校园平面图,在校园景点选10个左右景点。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
int a,b;
a=i;
b=j;
printf("您要查询的两景点间最短路径是:\n\n");
if(shortest[i][j]!=INT_MAX)
{
if(i<j)
{
printf("%d",b);
while(path[i][j]!=0)
{
printf("<-%d",path[i][j]);
if(i<j)
按照要求分为三个模块,图的信息的初始化,图各个景点信息的查询和景点间的最短路径查询功能
void introduce() //用来查询各景点的相关信息
int shortestdistance()//用来查询任意两个景点之间的最短路径和经过的景点
void floyed()//用来计算任意两个景点之间的最短路径
void display(int i,int j)//用来显示任意景点之间的最短路径和经过的景点
/*包含头文件*/
#include<string>
/*定义符号常量*/
#define INT_MAX 10000
#define n 10
/*定义全局变量*/
int cost[n][n];/* 边的值*/
int shortest[n][n];/* 两点间的最短距离*/
printf("进入最短路径查询:");
shortestdistance();
break;
case 'e':
exit(0);
default:
printf("输入信息错误!\n请输入字母i或s或e.\n");
break;
}
}
}
}
void introduce()
{
int a;
printf("您想查询哪个景点的详细信息?请输入景点编号:");
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");
#define n 10
int cost[n][n];
int shortest[n][n];
int path[n][n];
void introduce();
int shortestdistance();
void floyed();
void display(int i,int j);
void main()
if(shortest[i][j]>(shortest[i][k]+shortest[k][j]))
{
shortest[i][j]=shortesj]=k;
path[j][i]=k;
}
}
void display(int i,int j)
{
}
void floyed()
{
int i,j,k;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
shortest[i][j]=cost[i][j];
path[i][j]=0;
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
int i,j,q;
char k;
printf("\t----------------欢迎来到湖北师范学院----------------\n\n");
printf("\t---按1进入校园导游指示系统,否则请再次输入---\n");
PR:printf("\t ---------------请输入你的选择----------------\n\t");
j=path[i][j];
else
i=path[j][i];
}
printf("<-%d",a);
printf("\n\n");
printf("(%d->%d)最短距离是:%d米\n\n",a,b,shortest[a][b]);
}
else
{
printf("%d",a);
while(path[i][j]!=0)
校园导游咨询
HUBEINORMALUNIVERSITY
课程设计论文
Course’s Thesis
课程名称数据结构
专业通信工程
班级0803班
学生蔡兵
学号01
设计题目校园导游咨询
指导教师孙玉霞老师
时间2011年3月22日
年度2011年第二学期
一、课程目的
二、基本要求
三、实验内容及步骤
1、概要设计
2、详细设计
printf(" -----------------湖北师范学院--------------------\n");
printf("1.景点信息查询………请按 i (introduc)键\n");
printf("2.景点最短路径查询…请按 s (shortestdistance)键\n");
printf("3.退出系统……………请按 e (exit)键\n");
if(shortest[i][j]>(shortest[i][k]+shortest[k][j]))
{
shortest[i][j]=shortest[i][k]+shortest[k][j];
path[i][j]=k;
path[j][i]=k;
}
}
四、源程序清单
#include <string>
#define INT_MAX 10000
default:
printf("景点编号输入错误!请输入1->10的数字编号!\n\n"); break;
}
}
int shortestdistance()
{
int i,j;
printf("请输入要查询的两个景点的编号(1->10的数字编号并用','间隔):");
scanf("%d,%d",&i,&j);
{
printf("->%d",path[i][j]);
if(i<j)
j=path[i][j];
else
i=path[j][i];
}
printf("->%d",b);
printf("\n\n");
printf("(%d->%d)最短距离是:%5d米\n\n",a,b,shortest[a][b]);
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。
附加要求:a、界面友好,函数功能要划分好
b、总体设计应画一流程图
c、程序要加必要的注释
d、要提供程序测试方案
三、实验内容及步骤
1、概要设计:
在设计这个校园导游系统前考虑到整个信息的结点和操作,可以通过邻接矩阵借助图的相关知识来完成。
case 4:
printf("4:科教大厦\n\n 全校学生公共教学楼。\n\n");break;
case 5:
printf("5:实验楼\n\n 计算机机房及各种实验设施。\n\n");break;
case 6:
printf("6:外语楼\n\n 外国文化交流中心。\n\n");break;
case 7:
scanf("%d",&a);
printf("\n");
switch(a)
{
case 1:
printf("1:学校大门\n\n 学校的正门,气势宏伟。\n\n");break;
case 2:
printf("2:图书馆\n\n 学校信息资源中心。\n\n");break;
case 3:
printf("3:教育大楼\n\n 学生自学自修的天堂。\n\n");break;
Floyd具体算法设计
void floyed()
{
int i,j,k;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)