c语言数据结构校园导游系统,校园导游系统课程设计报告

41528d3028836879cd698677c3999917.gif校园导游系统课程设计报告

目录 1、需求分析1 2、总体设计1 2.1 抽象数据类型图的定义1 2.2 程序中包含的模块1 2.3模块间的调用关系3 3、详细设计3 3.1 代码设计3 3.1.1 定义结构体和全局变量3 3.1.2 平面图的初始化4 3.1.3 最短路径查询5 3.1.4 景点信息查询8 3.1.5景点信息更新8 3.2 界面分析9 3.2.1 主程序界面9 3.2.2 景点信息的查询10 3.2.3 最短路径查询11 3.2.4 管理校园查询系统12 4、总结报告12 参考文献13 1、需求分析 设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。 (1).设计潍坊学院校园平面图,所含的景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2).为来访客人提供图中任意景点相关信息的查询。 (3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 2、算法设计 2.1 概要设计 2.1.1 函数定义的变量 /*定义符号常量*/ #define INT_MAX 10000 #define n 10 /*定义全局变量*/ int cost[n][n]; /* 边的值*/ int shortest[n][n];/* 两点间的最短距离*/ int path[n][n]; /* 经过的景点*/ 2.1.2 程序中包含的模块 (1)主程序模块 void main()/*主函数*/ 打印菜单,景点,景点信息 定义景点之间的权值 (2)查询模块 景点信息查询:void introduce()/*景点介绍*/ 最短路径查询:int shortestdistance() /*要查找的两景点的最短距离*/ void floyed()/*用floyed算法求两个景点的最短路径*/ (3)打印模块 打印最短路径:void display(int i,int j) /* 打印两个景点的路径及最短距离 */ 2.1.3模块间的调用关系 Main() void introduce() int shortestdistance() void floyed() void display() 2.2 详细设计 #include #include /*定义符号常量*/ #define INT_MAX 10000 #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() { int i,j; char k; for(i=0;i10的数字编号并用 , 间隔):“); scanf(“%d,%d“, if(i>n||in||j10的数字编号并用 , 间隔):\n“); scanf(“%d,%d“, } else { floyed(); display(i,j); } return 1; }/*shortestdistance*/ void floyed()/*用floyed算法求两个景点的最短路径*/ { int i,j,k; for(i=1;i%d“,path[i][j]); if(i%d“,b); printf(“\n\n“); printf(“(%d->%d)最短距离是:%5d米\n\n“,a,b,shortest[a][b]); } } else printf(“输入错误!不存在此路!\n\n“); printf(“\n“); } /*display*/ 3 测试结果 3.1 主程序界面 根据图中提示选择要执行的操作 图1 主界面 3.2输入错误 输入i ,s ,e来完成相应的操作,如果输入有误,系统将显示错误信息,请重新输入。 3.3 景点信息的查询 输入你要查询的景点名称:通过调用函数void introduce()来查询景点信息。 如果输入的景点不存在,系统会提示你输入错误,请重新输入。 图2 信息查询界面 输入编号存在,则系统显示要查询的景点信息。 3.4 最短路径查询 输入你所在的景点和要到达的景点,将输出这两点的最短距离: 调用函数void floyed();来求最短路径。 图3 路径查询界面 3.5 退出系统 根据提示按“e”退出该系统,程序结束。 4、总结报告 通过本次课程设计实验,使我更能熟练地掌握c语言、c++以及数据结构等知识的综合运用。当然在课程设计期间,也遇到了大大小小的一些问题,是我看到了自己的不足之处,使我认识到在以后的学习中要善于发现自己的不足,找出自己的薄弱环节,以便能够更好的去巩固所学的。 本次设计中要求求最短路径,就必须了解最短路径的算法:Dijkstra算法和Floyd算法。在拿到题目时,通过查找相关的资料才回忆起这两种方法的具体算法。比较这两种算法的复杂度,尽量选用复杂度小。当然任何程序都不可能完美,往往会牺牲程序的空间来换取时间,或者牺牲时间来换取足够大的空间,这就需要根据程序的具体要求来设计算法。在选用存储方法是,要尽量选用时间复杂度较小的方法,这样能够节省程序执行时间,提高查询效率。 课程设计中所使用的计算机语言其使用范围比较广阔,在很多编程中都可以用到,所以无论以后我们从事计算机编程、软件设计还是硬件、网络等领域,都应该学会、学精一门编程语言,这对我们以后的学习和工作有很大的帮助。 参考文献 [1].秦锋.数据结构:中国科学技术大学出版社,2007 [2].温秀梅,丁学钧.VisualC++面向对象程序设计.北京:清华大学出版社,2007 [3].徐孝凯.C++语言基础教程.北京:清华大学出版社,2006

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值