




免费预览已结束,剩余7页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
校园导游咨询系统设计 设计时间2008.03.10 目 录一需求分析二问题描述三设计思路四详细设计过程五成员分工六平面图示七程序代码八调试并输出结果九心得体会一:需求分析1.从西北大学现代学院中选取10个景点,抽象成一个无向带权图。以图中顶点表示景点,边上的权值表示两地的距离。 2.本程序的目的是为用户提供路径咨询和景点查询。根据用户指定的始点和终点输出相应路径或者根据用户指定的景点输出景点的信息。二问题描述(1).设计学校的校园平面图,所含景点为10个。以图中顶点表示校内各景点,存放景点名称、代号等信息;以边表示路径,存放路径长度等相关信息。(2).为来访客人提供图中任意景点相关信息的查询。(3).提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。三设计思路 用图的结点代表景点,用图的边代表景点之间的路径。首先设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用Dijkastra算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。四详细设计过程 1. 景点基本信息的设计为了方便操作,每一个景点名称用一个代码表示,因此景点基本信息设计成结构体类型,此类型包含两个成员变量:景点名称及其代码。在此我们设计了10个景点,具体如下:struct Sightchar Name40;int Num;W10 = 校门, 1,操场, 2,教学楼, 3,图书馆, 4,学院食府, 5,喷泉广场, 6, 行政楼, 7,学生公寓,8,超市,9,澡堂,10;2. 顺序表的设计一个景点存在自己的名字和代码等信息,两个景点之间有一个距离。五成员分工王旋:选取景点,记录景点的基本信息,设置路径并绘制无向平面图。牛稳:设计结构体类型,主体设计过程,编写程序。王永强:权值的构建并进一步修改调试程序。六平面图示 一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。北行政楼学生公寓澡堂操场超市学院食府教学楼喷泉广场图书馆现代学院 比例1:10000(m) 七程序代码#include#include /*定义符号常量*/ #define INT_MAX 10000 #define n 10 /*定义全局变量*/ int costnn;/* 边的值*/ int shortestnn;/* 两点间的最短距离*/ int pathnn;/* 经过的景点*/ /*自定义函数原型说明*/ void introduce(); int shortestdistance(); void floyed(); void display(int i,int j); /*3个人分工 (1)景点信息查询 (2)两景点的最短距离 (3)两个景点之间的路径 三、详细设计 */ void main() /*主函数*/ int i,j; char k; for(i=0;i=n;i+) for(j=0;j10的数字编号!nn); break; /*introduce*/ int shortestdistance() /*要查找的两景点的最短距离*/ int i,j; printf(请输入要查询的两个景点的编号(1-10的数字编号并用,间隔):); scanf(%d,%d,&i,&j); if(in|in|j10的数字编号并用,间隔):n); scanf(%d,%d,&i,&j); else floyed(); display(i,j); return 1; /*shortestdistance*/ void floyed() /*用floyed算法求两个景点的最短路径*/ int i,j,k; for(i=1;i=n;i+) for(j=1;j=n;j+) shortestij=costij; pathij=0; for(k=1;k=n;k+) for(i=1;i=n;i+) for(j=1;j(shortestik+shortestkj) /*用path记录从i到j的最短路径上点j的前驱景点的序号*/ shortestij=shortestik+shortestkj; pathij=k; pathji=k; /*floyed*/ void display(int i,int j) /* 打印两个景点的路径及最短距离 */ int a,b; a=i; b=j; printf(您要查询的两景点间最短路径是:nn); if(shortestij!=INT_MAX) if(ij) printf(%d,b); while(pathij!=0) /* 把i到j的路径上所有经过的景点按逆序打印出来*/ printf(-%d,pathij); if(ij) j=pathij; else i=pathji; printf(%d)最短距离是:%d米nn,a,b,shortestab); else printf(%d,a); while(pathij!=0) /* 把i到j的路径上所有经过的景点按顺序打印出来*/ printf(-%d,pathij); if(i%d,b); printf(nn); printf(%d-%d)最短距离是:%5d米nn,a,b,shortestab); else printf(输入错误!不存在此路!nn); printf(n); /*display*/八调试结果 九心得体会通过使用C+语言设计程序代码,我们更能体会到C+语言较C语言在编程设计程序代码方面的优越性。在编制过程中,我们将实际选取的景点抽象成一个带权的无向平面图并且使用了结构体类型,宏定义,全局变量,自定义函数及switch语句等内容。经过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全教育知识培训证明课件
- 聊城国企面试题库及答案
- 粮食生产面试题库及答案
- 矿山投资面试题库及答案
- 控制工程面试题库及答案
- 科顺招聘面试题库及答案
- 农业产业园项目2025年农业资源整合与循环经济发展研究报告
- 安全教育培训评分表格课件
- 安全教育培训记录瓦工课件
- 知识产权保护机制的探讨
- 全科医师基层实践结业考试试题及答案
- 玉环宏博钢材有限公司年产5万吨钢材及配件生产线技改项目环评报告
- 保价保量保供协议书
- 母子亲属房产赠与合同5篇
- 消防中级理论试题及答案
- 2023年江苏省宝应县事业单位公开招聘辅警33名笔试题带答案
- 2025德州市禹城市梁家镇社区工作者考试真题
- 中国老年糖尿病诊疗指南(2024版)解读课件
- 《老子与道德经智慧》课件
- 酒吧服务考试题及答案
- 胰岛素皮下注射
评论
0/150
提交评论