课程设计旅游管理系统!C语言图结构带你轻松完成作业
问题描述:
创建一个至少有15个点的有向网表示的某个旅游景点的导游图。顶点代表景点,类型为字符串(例如,泰山导游图:"天地广场门","十八盘","冯玉祥墓","桃花峪门","中天门","南天门","玉皇顶"等),弧表示两个景点之间可以直达,弧上的权值表示两个景点之间的路程(公里数),弧上还有到达方法的信息(有步行和索道两种)。建立一个游客咨询系统。 1.基本要求
(1)创建图的存储结构。
(2)输入两个景点名,就可以得到从一个景点到达另一个景点的所有简单路径、相应路径的路程公里数、行走的方法(每一段是步行,还是坐索道);
(3)输入两个景点名,就可以得到其最短路径,即:路程最短的行进方法;如果两者无路径可通,就得出"两景点不可达的信息"。 2.重点、难点
重点:
(1)通过实验掌握图状结构数据的存储与表式;
(2)通过实验掌握对图的存储、遍历、运算等各种操作;
(3)深入理解图的特征及应用;
难点:
(1)任意两个景点所有路径的计算;
(2)最短路径的计算与算法设计。
代码示例:#include #include #include #include #define N 15 #define MAX 999 int min_len[N]; int route[N][N]; int visited[N]; int flag[N]; int stack[N]; int path[N][N]; int temp[N][N]; int start=99,end=99; int v,w,m=1; int static n=0; typedef struct { char name[N][20]; int length[N][N]; char way[N][N]; }Point; void init_path() { int i,k; for(i=0;iname[i]); fclose(fp1); for(i=0;ilength[i][j]); temp[i][j]=info->length[i][j]; } } fclose(fp2); for(i=0;iway[i][j]); } fclose(fp3); } void output_view(Point *info) { int i,j; printf("一共有%d个景点,关系如下: ",N); for(i=0;iname[i]); printf(" "); for(i=0;iname[i]); if(j!=N)printf("%4d(%c)",info->length[i][j],info->way[i][j]); else printf(" "); } } void Dijkstra(Point *info) { int i=1,j,min; for(v=0;vlength[start][v]; for(w=0;wlength[v][w]length[v][w]; route[w][w]=1; } } } } void DFS(Point *info,int p) { int i,j,len; visited[p]=1; for(i=0;ilength[p][i]!=MAX) { if(i==end) { n++;printf("第%d条: ",n); for(j=0;j",stack[j]+1,info->name[stack[j]],info->way[stack[j]][stack[j+1]]); printf("(%s)---%c--->",info->name[stack[j]],info->way[stack[j]][stack[j+1]]); } //printf("%d(%s) ",end+1,info->name[end]); printf("(%s) ",info->name[end]); } else if(!visited[i]) { info->length[p][i]=MAX; visited[i]=1; stack[m]=i; m++; DFS(info,i); info->length[p][i]=temp[p][i]; visited[i]=0; m--; } } } } void receive(Point *info) { int i; char a[20],b[20]; printf(" 输入起点和终点标号,按# #退出:");scanf("%s%s",a,b); printf("得出所有简单路径和最短路径 "); if(strcmp(a,"#")==0&&strcmp(b,"#")==0)return; for(i=0;iname[i])==0)start=i; if(strcmp(b,info->name[i])==0)end=i; } init_path(); //for(i=0;iname[start],info->name[end],min_len[end]); for(i=0;iname[start],info->name[end],min_len[end]); printf("最短路径为: "); for(i=0;i",path[end][i]+1,info->name[path[end][i]],info->way[path[end][i]][path[end][i+1]]); printf("(%s)---%c--->",info->name[path[end][i]],info->way[path[end][i]][path[end][i+1]]); } //printf("%d(%s) ",path[end][i]+1,info->name[path[end][i]]); printf("(%s) ",info->name[path[end][i]]); } else {printf(" 非常抱歉!!!景点%s无法到达%s",info->name[start],info->name[end]);} printf(" "); } start=end=99;n=0; } int main() { int i,j=0; char x; Point *view_info=NULL; view_info=(Point *)malloc(sizeof(Point)); read_file(view_info); msgbox(view_info); printf("输入操作:"); while(scanf("%c",&x)!=EOF) { switch(x) { case "S":msgbox(view_info);receive(view_info);printf("输入操作:");break; case "E":exit(0); default :cur_sys();msgbox(view_info);printf("输入操作:");continue; } } printf("谢谢使用!!!"); }
写在最后:对于准备学习C/C++编程的小伙伴,如果你想更好的提升你的编程核心能力(内功)不妨从现在开始!
编程学习书籍分享:
编程学习视频分享:
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦! 可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!
中秋小长假带娃登长城逛古城赏明月开学了,留给孩子的时间越来越少,中秋三天小假期,是个可以带娃疯玩的空档了。这里是一位爱玩的妈妈走心的分享。同样是去爬长城,玩法却很惬意。不过,需要提醒大家的是,无论去哪儿,做好防护
海南最有名的七大特色美食,每种都是海南人的心头爱,你吃过几种海南,一个一到冬天就成了旅游胜地的地方,提起海南的美食,你是不是想到了海鲜,其实除了海鲜,海南还有很多特色美食。今天小编就来分享海南最有名的七大特色美食,每种都是海南人的心头爱,你
揭秘10块钱低价一日游,还免费送礼物,到底是馅饼还是陷阱呢?现在给你十块钱出去吃个饭,你可能还要考虑一下,因为现在的物价比之前高了很多,十块钱的盒饭,可能在很多地方已经买不到了。但是有这么的一家旅行社,他是挂靠在别人名下的。用十块钱就可以一
来看美丽的人民公园十月的一天中午吃完饭,丈夫在小咪,我轻轻带上门,走了出去,今天阳光灿烂,我顺着马路来到了人民公园门口,只见门口有一个高十米多的,天下第一灯漂亮极了,灯下面设有喷水的喷头,四角各有一
秋日的夜晚行走在小城秋日的夜晚,目之所及,夜色围卷城市,人间灯火绚烂。我横穿小城,一路向西,沿着宽阔的马路散步。城市的喧嚣慢慢收敛,灯光的映照让小城的容貌斑斑点点,明暗相间,有如黑土地上镶嵌
通州大运河南北文化一线牵来源北京日报通州大运河南北文化一线牵郑永华10月9日,2021北京(国际)运河文化节在通州大运河森林公园漕运码头开幕。以通州为北部端点的京杭大运河,在中国南北文化交流与融合史上,扮
拆字旅游返程的路尚远,天色已渐渐黯淡下来。车厢内,大多数乘客都在闭目养神。我也有些倦意,抖了抖酸痛的肩头,脑海里回放起过去三天的旅程。我叩问自己,为什么旅游总是形色匆匆,意犹未尽,我的思绪
谷安迪酒店的全面生活方式化正在迫近(迈点专栏作者谷安迪)曾经我们以为生活方式酒店是一个新物种,实际上,现在看来,它们或许只是酒店整体进化故事的一段引言。未来,生活方式酒店这一类别,大概率会逐渐消失,取而代之的是所有
大自然的神奇之处(世界各地的美景)大蓝洞,位于伯利兹海岸附近大蓝洞,世界最佳潜水宝地。它直径超过1,000英尺(305米),深达到400英尺(123米)对于海洋生物爱好者来说灯塔礁是个宝。也许会偶遇稀有的海洋生物灯
走进乡村看小康现在我们看到的是云南省曲靖市沾益区菱角村的万寿菊种植基地。金黄色的花海绽放在绿色的大地上,花农在地里穿梭忙碌着,风景美不胜收。菱角村的温度湿度和海拔都非常适合万寿菊的生长,这几年,
中老铁路开通,国人能去老挝旅游吗?据央视报道,2021年11月30日上午11时,中华人民共和国政府和老挝人民民主共和国政府国境铁路协定签署仪式以视频形式在中国北京老挝万象举行。中国国家铁路局局长刘振芳与老挝公共工程
浙江渡渎村尽本求实,方得长久韵味悠长的小村庄浙江省兰溪市西北部有一座韵味悠长的小村庄,渡渎村。村庄北枕白露山,南临兰江,是一处国家AAA级旅游景区。作为旅游景区,好山好水自不必说,遍布村中的一百多栋明清时期建
国务院实施乡村休闲旅游提升计划北京商报讯(记者关子辰张怡然)2月22日,国务院发布关于做好2022年全面推进乡村振兴重点工作的意见,其中第十六条提出持续推进农村一二三产业融合发展,重点发展乡村休闲旅游等产业。据
蒙古国回国详情经历了5个月的等待终于回到祖国怀抱,感谢祖国,感谢祖国医护人员默默付出,保驾护航。我回国选择路线是从蒙古到土耳其中转回国。下面就和朋友们分享详细过程,供大家参考。首先购买机票,购买
明媚如春的京郊小云南,这个热带植物园不可错过!热带雨林享有地球之肺的美誉在大兴就有这样一处独特的室内热带植物园呀路古热带植物园千余种植物帮你洗肺沉浸于独特的民族风情各种民族歌舞的热情温暖湿润的环境仿佛来到了滇南和小北一起逛逛吧
你想开着用卡车改装的越野房车自驾游吗?有一群人正在这么做你有没有想过在自驾游过程中可以住在自己的车上?那么除了房车和床车以外还有没有更高端的可以住宿的汽车呢?有这么一群人一直想用卡车改装出一个毛坯房然后其它的内部装饰由车(房)主自己来完
道教尊神之三太上老君在陕西周至县终南山北麓,有处著名的楼观台,这里峰峦叠嶂,古木参天,为关中著名风景区。古人云关中河山百二,以终南山为最盛,终南千峰耸峙,以楼观为最有名。楼观台著称于世,不只因其依山带
百年居庸小站尽显铁路大美在首都以北长城脚下有这样一座铁路火车站。只占弹丸之地,却有百年积淀,是京张铁路翻越关沟的第一站,也是开往春天的列车必经之地,这正是居庸关车站。小小的居庸关车站虽然陈旧简陋,却彰显着
卞庄主北京环球影城吃喝玩一日游2022年春节前进入腊月一直在为小伙伴们烹制各种外卖美味,同时还要兼顾堂食的小伙伴们,所以每天都是夜里23点睡觉,早上67点开始烹制各种美味,因为农庄的薄皮大馅的菜团子各种地道老汤
石家庄周末出去自驾哪里合适?距离繁华都市最近的红石古村落ILikeTraveling水峪村头数水峪,二数泉访古避暑的好去处鹿泉区水峪村是第一批中国传统村落水峪顾名思义,即是有水的山谷千百年来村庄始终保持着沟沟
云南独龙江公路连续27公里长下坡,10年坠车超千辆,百余人丧命引言高速公路为人们的出行带来了便利,节约时间提高效率。只要遵守交通规则,安全有序地驾驶,就能第一时间抵达目的地。不过高速车辆的速度快,需要驾驶员有良好的驾驶素质。如果新手上高速,必
待到春暖花开时尽管还处在倒春寒尽管雨水节气刚刚远去可是,憋闷已久的旅游细胞早已按捺不住在内心沸腾想看一眼望不到边的林海雪原想见见长白山上住着的神仙想体验一把真实版的勇闯关东从山海关徒步出发穿越肥