logo资料库

C语言校园导航.doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
《数据结构》 课程设计报告 题 班 姓 学 目: 校园导航 级: 计算机类 XX 名: XXXXXXXXXXXXXXXX 号: XXX 指导教师: XXX 日 期: 2011-6-29
一、课程设计目标 1、问题描述 设计你的学校的平面图,至少包括 10 个以上的场所,每两个场所间可以有 不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最 短路径)。 2、问题分析 2.2 分析设计课题的要求,要求编程实现以下功能: (1)查询景点路径 (2)查询景点信息 (3)查看参观路线 (4)查询各景点之间的距离 二、概要设计 1、方案确定 为实现通信录管理的操作功能,首先设计一个含有多个菜单项的主控菜单程序,然 后再为这些菜单项配上相应的功能。程序运行后,给出菜单项的内容和输入提示, 如下: 2、程序设计模块设计连接图
2、模块功能描述 上图已输出,不再赘述 三、详细设计 1、方法设计 2.3 主控菜单设计 为实现通信录管理的操作功能,首先设计一个含有多个菜单项的主控菜单程序,然后 再为这些菜单项配上相应的功能。程序运行后,给出菜单项的内容和输入提示,如下: 1.学校简介 2.查询景点路径 3. 查询景点信息 4. 查看参观路线 5. 查询各景点之间的距离 6. 退出 2、程序流程图 #include #include #include #include #define Max 32767 #define NUM 11 typedef struct ArcCell{ int adj; // 相邻接的景点之间的路程 char *info; }ArcCell; // 定义边的类型 typedef struct VertexType{ int number; // 景点编号 char *sight; // 景点名称 char *description; // 景点描述 }VertexType; // 定义顶点的类型 typedef struct{ VertexType vex[NUM]; // 图中的顶点,即为景点 ArcCell arcs[NUM][NUM]; // 图中的边,即为景点间的距离 int vexnum,arcnum; // 顶点数,边数 }MGraph; // 定义图的类型
MGraph G; // 把图定义为全局变量 int P[NUM][NUM]; // // long int D[NUM]; // 辅助变量存储最短路径长度 int x[13]={0}; void CreateUDN(int v,int a); // 创建图的函数 void pingmu(); //屏幕输出函数 void introduce(); void ShortestPath(int num); //最短路径函数 void output(int sight1,int sight2); //输出函数 void PrintMGraph(); char Menu(); // 主菜单 void search(); ;// 查询景点信息 char SearchMenu(); // 查询子菜单 void HaMiTonian(int); // 哈密尔顿图的遍历 void NextValue(int); void display(); // 显示遍历结果 void main() // 主函数 { int v0,v1; char ck; system("color CreateUDN(NUM,11); do{ ck=Menu(); switch(ck){ case'1': introduce(); printf("\n\n\t\t\t%-25s\n\n",G.vex[0].description); getchar(); getchar(); break; case '2': system("cls"); pingmu(); printf("\n\n\t\t\t 请选择起点景点(1~10):"); scanf("%d",&v0); 0");
printf("\t\t\t 请选择终点景点(1~10):"); scanf("%d",&v1); ShortestPath(v0); // 计算两个景点之间的最短路径 output(v0,v1); // 输出结果 printf("\n\n\t\t\t\t 请按回车键继续...\n"); getchar(); getchar(); break; case '3':search(); break; case '4': system("cls"); pingmu(); x[0]=1; HaMiTonian(1); printf("\n\n\t\t\t\t 请按回车键继续...\n"); getchar(); getchar(); break; case'5': PrintMGraph(); printf("\n\n\t\t\t\t 请按回车键继续...\n"); getchar(); getchar(); break;}; }while(ck!='e');} char Menu() // 主菜单 //{ char c; int flag; do{ flag=1; system("cls"); pingmu(); introduce(); printf("\n\t\t\n");
printf("\t\t \n"); printf("\t\t 1.学校简介 \n"); printf("\t\t 2.查询景点路径 \n"); printf("\t\t 3.查询景点信息 \n"); printf("\t\t 4.查看参观路线 \n"); printf("\t\t 5.查询各景点之间的距离 \n"); printf("\t\t e.退出 \n"); printf("\t\t \n"); printf("\t\t\n"); printf("\t\t\t\t 请输入您的选择:"); scanf("%c",&c); if(c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='e') flag=0; }while(flag); return c;} char SearchMenu() // 查询子菜单 { char c; int flag; do{ flag=1; system("cls"); pingmu(); introduce(); printf("\n\t\t\n"); printf("\t\t \n"); printf("\t\t 1、按照景点编号查询 \n"); printf("\t\t 2、按照景点名称查询 \n"); printf("\t\t e、返回 \n"); printf("\t\t \n"); printf("\t\t \n"); printf("\t\t\t 请输入您的选择:"); scanf("%c",&c); if(c=='1'||c=='2'||c=='e') flag=0; }while(flag);
return c;} void search() // 查询景点信息 { int num; int i; char c; char name[20]; do{ system("cls"); c=SearchMenu(); switch (c){ case '1': system("cls"); introduce(); pingmu(); printf("\n\n\t\t 请输入您要查找的景点编号:"); scanf("%d",&num); for(i=0;i
scanf("%s",name); for(i=1;i
分享到:
收藏