1、 数据结构课程设计报告 题题 目:目: 校校 园园 导导 游游 系系 统统 院院系系名称:名称: 计算机学院计算机学院 专业名称:专业名称: 计算机科学与技术计算机科学与技术 班班 级:级: 学生姓名:学生姓名: 学号(学号(8 位) :位) : 指导教师:指导教师: 设计起止时设计起止时: 一一. 设计目的设计目的 1 学会学会图的存储、图的存储、图的保存与读取。图的保存与读取。 2 学会图的深度遍历和广度遍历。学会图的深度遍历和广度遍历。 3 学会图的查找。学会图的查找。 4 学会找图的最短路径、转折点最少的路径和所有路径。学会找图的最短路径、转折点最少的路径和所有路径。 二二. 设计内容
2、设计内容 1 界面。界面。 2 图的存储、保存图的存储、保存、及读取。、及读取。 3 图的查找。图的查找。 4 找图重量景点之间的最短路径、转折点最少的路径和所有路径。找图重量景点之间的最短路径、转折点最少的路径和所有路径。 三概要设计三概要设计 界面 游客登录 管理员登陆 学 院 地 图 学 院 各 景 点 的 序 号 表 景 点 查 找 查 找 两 景 点 的 所 有 路 径 两 景 点 间 的 最 短 路 径 两 景 点 间 的 转 折 点 最 少 路 径 输入密码 创 建 图 文 件 读 取 保 存 文 件 四详细设计四详细设计 1 创建图创建图 createUDN(*G) 调用函数调
3、用函数 LocateVertex() 开始 输入顶点数和弧的 iarcsij.adj=INFINITY; for(i=0;ivexnum;i+) printf(“输入第输入第%d个顶点信息个顶点信息“,i+1); printf(“地点名地点名:“); scanf(“%s“,G-vertexi.name); flushall(); printf(“简介简介:“); scanf(“%s“,G-vertexi.jianjie); flushall(); printf(“*n“); for(k=0;karcnum/2;k+) printf(“输入第输入第%d条弧的两定点的地点名条弧的两定点的地点名n“
4、,k); printf(“第一个顶点名第一个顶点名:“); scanf(“%s“,name1); flushall(); printf(“第二个顶点名第二个顶点名:“); scanf(“%s“,name2); flushall(); printf(“权值权值:“); scanf(“%d“, printf(“*n“); i=LocateVertex(G,name1); j=LocateVertex(G,name2); G-arcsij.adj=weight; G-arcsji.adj=G-arcsij.adj; return 1; /合并线性表合并线性表 SeqList JoinList(Seq
5、List q,SeqList p) int i; for(i=1;iarcsij.adj; if(distij(distik+distkj) distij=distik+distkj; pathij=JoinList(pathik,pathkj); do biao(); printf(“请输入要查找的开始地点请输入要查找的开始地点:“); scanf(“%s“,name1); flushall(); printf(“请输入要查找的结束地点请输入要查找的结束地点:“); scanf(“%s“,name2); flushall(); p=LocateVertex(G,name1); q=Locat
6、eVertex(G,name2); for(k=0;k“,G-vertexpathpq.ak.name); printf(“endn“); map(); printf(“是否继续查找是否继续查找? 1 是是 2 否否n请选择请选择:“); scanf(“%d“, Sleep(1000); system(“cls“); while(i=1); 五测试数据及运行结果五测试数据及运行结果 1正常测试数据 数据 1 运行结果 数据 2 运行结果 数据 3 运行结果 2非正常测试数据(2 组)及运行结果。 数据 1 运行结果 运行结果 数据 3 运行结果 六六调试情况,设计技巧及体会调试情况,设计技巧及体会 上机前应知道