毕业设计 课程设计 校园导游系统设计报告.doc

上传人:PIYPING 文档编号:11689549 上传时间:2021-08-30 格式:DOC 页数:12 大小:280KB
返回 下载 相关 举报
毕业设计 课程设计 校园导游系统设计报告.doc_第1页
第1页 / 共12页
毕业设计 课程设计 校园导游系统设计报告.doc_第2页
第2页 / 共12页
毕业设计 课程设计 校园导游系统设计报告.doc_第3页
第3页 / 共12页
毕业设计 课程设计 校园导游系统设计报告.doc_第4页
第4页 / 共12页
毕业设计 课程设计 校园导游系统设计报告.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《毕业设计 课程设计 校园导游系统设计报告.doc》由会员分享,可在线阅读,更多相关《毕业设计 课程设计 校园导游系统设计报告.doc(12页珍藏版)》请在三一文库上搜索。

1、 校园导游咨询系统设计 设计时间2008.03.10 目 录一需求分析二问题描述三设计思路四详细设计过程五成员分工六平面图示七程序代码八调试并输出结果九心得体会一:需求分析1.从西北大学现代学院中选取10个景点,抽象成一个无向带权图。以图中顶点表示景点,边上的权值表示两地的距离。 2.本程序的目的是为用户提供路径咨询和景点查询。根据用户指定的始点和终点输出相应路径或者根据用户指定的景点输出景点的信息。二问题描述(1).设计学校的校园平面图,所含景点为10个。以图中顶点表示校内各景点,存放景点名称、代号等信息;以边表示路径,存放路径长度等相关信息。(2).为来访客人提供图中任意景点相关信息的查询

2、。(3).提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。三设计思路 用图的结点代表景点,用图的边代表景点之间的路径。首先设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用Dijkastra算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。四详细设计过程 1. 景点基本信息的设计为了方便操作,每一个景点名称用一个代码表示,因此景点基本信息设计

3、成结构体类型,此类型包含两个成员变量:景点名称及其代码。在此我们设计了10个景点,具体如下:struct Sightchar Name40;int Num;W10 = 校门, 1,操场, 2,教学楼, 3,图书馆, 4,学院食府, 5,喷泉广场, 6, 行政楼, 7,学生公寓,8,超市,9,澡堂,10;2. 顺序表的设计一个景点存在自己的名字和代码等信息,两个景点之间有一个距离。五成员分工王旋:选取景点,记录景点的基本信息,设置路径并绘制无向平面图。牛稳:设计结构体类型,主体设计过程,编写程序。王永强:权值的构建并进一步修改调试程序。六平面图示 一般情况下,校园的道路是双向通行的,可设校园平面

4、图是一个无向网。顶点和边均含有相关信息。北行政楼学生公寓澡堂操场超市学院食府教学楼喷泉广场图书馆现代学院 比例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(

5、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);

6、 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=s

7、hortestik+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)最短

8、距离是:%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语句等内容。经过多次测试,我们得到了一个完善的程序,通过用所学的知识去解决某个实际问题,我们更加认识到了团队合作的重要性,也深深的体会到了实践与理论想结合的重要性,这次程序设计极大的提高了我们对编程的兴趣,培养了我们分析和解决问题的能力。为以后走上工作岗位积累下宝贵的经验。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1