校园导游图

合集下载

岭南版(2024)一上 第一单元第7课《学校小导游》课件(16页ppt).ppt

岭南版(2024)一上 第一单元第7课《学校小导游》课件(16页ppt).ppt

绘画素材
感谢您的耐心观看
学校小导游
漂 亮 的 校 园 PART 01
第一部分
争当小导游
让我们一起来认识自 己的学校,并向其他 的人介绍我们美丽的 校园吧!看看哪位小 朋友能成为金牌小导 游!
认 PART 02
第二部分



学校的各类功能室
电脑室
音乐室
美术室
图书角
医务室
认识旅游地图上的标识
怎样快速在旅游景 点找到目的地?
教学楼
心理室
图书角
舞蹈室
美术室
音乐室
教师办公室
PART 03
第三部分
小标识制作步骤演示
需要的工具与材料
绘画步骤
剪出圆形
画出图案
装饰上色
绘画要求
1、分小组合作,每个小组 成员完成至少一个标识图
2、将标识图贴在老师准备 好的校园平面图上!
3、比一比哪个小组的标识 做的最简易又美观。评价出 哪个小组是最佳金牌导游团 队
简洁又美观的标识可 以帮助游客快速找到 目的地!
让我们一起制作一份 学校标识小地图吧!
怎样制作小标识?图Biblioteka 馆舞蹈室美术室 体育室
怎样制作小标识?
你们发现了吗?
制作一个简单又美观的标识需要寻找 功能室相关的绘画元素!
怎样制作小标识?
大胆思考一下:每个功能室都可 以用什么简单的标识去表示?
体育室
电脑室

【二年级】介绍校园的导游词300字 导游词

【二年级】介绍校园的导游词300字 导游词

【二年级】介绍校园的导游词300字导游词
各位家长、亲爱的小朋友们,大家好!欢迎来到我们美丽的校园!我是今天的导游小明,很高兴能带领大家参观我们学校。

让我们来到我们学校的大门口。

这是我们学校的标志性建筑,上面有着鲜艳的校训和校徽,象征着我们学校的优良传统和灿烂历史。

接下来,我带大家先来到我们的操场。

这是我们课余生活的重要场所,同学们在这里进行体育活动和集体操练,也是我们举行各类活动和集会的场所。

再往前走,就是我们的教学楼了。

这座教学楼有十层高,是我们学校最高的建筑。

楼里有许多教室、图书馆、实验室等,同学们在这里度过了许多快乐的学习时光。

沿着小路往前走,我们来到了我们学校最美丽的花园。

这里有各种各样的花卉植物,四季不同,花儿不断。

同学们在这里可以享受到大自然的美景,感受到大自然的美好。

我带大家来到我们学校的食堂。

这是我们学校最热闹的地方,同学们在这里享受美味的美食,也可以和同学们一起聊天,是我们生活中不可或缺的一部分。

今天的校园导游就到此结束了,希望大家能够喜欢我们美丽的校园,并且在这里度过快乐的时光。

谢谢大家!。

实验七 图的建立及其应用

实验七 图的建立及其应用

实验七 图的建立及其应用一、实验目的:(1)掌握图的存储思想及其存储实现。

(2)掌握图的深度、广度优先遍历算法思想及其程序实现。

(3)掌握图的常见应用算法的思想及其程序实现。

(4)理解有向无环图、最短路径等算法二、实验要求1.将算法中的横线内容填写完整,使程序能正常运行2.在主函数中设计一个简单的菜单,具有如下功能。

(1)建立有向图的邻接表;(2)输出邻接表;3.实现图的深度优先遍历的算法(选做)4.完成实际应用(选做)三、实验原理1、图(GRAPH )是一种复杂的数据结构,结点之间的关系可以是任意的,由此图的应用极为广泛,已经渗透到如物理、化学、电讯工程、计算机科学等领域。

2、图存储结构:邻接矩阵表示法和邻接表表示法,本次实验图主要以邻接表进行存储。

用邻接矩阵表示法表示图如下图所示:0 1 0 1 A = 1 0 1 10 1 0 01 0 0 1一个无向图的邻接矩阵表示无向图对应的邻接表表示如下图所示:序号一个无向图的的邻接表表示四、实验程序说明图类型定义typedef struct Node{int dest; //邻接边的弧头结点序号struct Node *next;}Edge; //邻接边单链表的结点的结构体typedef struct{DataType data; //图顶点Edge *adj; //邻接边的头指针}AdjLHeight; //数组的数据元素类型结构体typedef struct{AdjLHeight a[MaxVertices]; //邻接表数组int numOfVerts; //结点个数int numOfEdges; //边个数}AdjLGraph; //邻接表结构体五、参考程序#include<malloc.h> /* malloc()等*/#include<stdio.h> /* EOF(=^Z或F6),NULL */#include<stdlib.h> /* atoi() */#include<process.h> /* exit() */typedef char DataType;#define MaxVertices 10void AdjInitiate(AdjLGraph *G)//初始化图{int i;G->numOfEdges=0;G->numOfVerts=0;for(i=0;i<MaxVertices;i++){G->a[i].adj = NULL ;//设置邻接边单链表头指针初值}}void InsertVertex(AdjLGraph *G,int i,DataType vertex)//在图中的第i个位置插入顶点数据元素vertex{if(i>=0&&i<MaxVertices){G->a[i].data =vertex; //存储顶点数据元素vertexG->numOfVerts++ ; //个数加1 }else printf("结点越界");}void InsertEdge(AdjLGraph *G,int v1,int v2)//在图中加入边<v1,v2>的信息{Edge *p;if(v1<0||v1>=G->numOfVerts||v2<0||v2>=G->numOfVerts){printf("参数v1和v2越界出错!");exit(0);}p=(Edge*)malloc(sizeof(Edge));//申请邻接边单链表结点空间p->dest=v2; //设置邻接边弧头序号p->next = G->a[v1].adj ; //新结点插入邻接表的表头G->a[v1].adj = p ; //头指针指向新的单链表表头G->numOfEdges++; //边个数加1}int GetFirstVex(AdjLGraph G,int v)//取图G中结点v的第一个邻接结点{Edge *p;if(v<0||v>=G.numOfVerts){printf("参数出错!");exit(0);}p=G.a[v].adj;if(p!=NULL)return p->dest;else return -1;}int GetNextVex(AdjLGraph G,int v1,int v2)//取图G中结点v1的邻接结点v2的下一个邻接结点{Edge *p;if(v1<0||v1>=G.numOfVerts||v2<0||v2>=G.numOfVerts){printf("参数v1和v2越界出错!");exit(0);}p=G.a[v1].adj;while(p!=NULL){if(p->dest!=v2){p = p->next ;continue;}else break;}p=p->next;if(p!=NULL) return p->dest;else return -1;}void main(void){int i,k,n,e,v1,v2;char c1;Edge *p;AdjLGraph G;AdjInitiate(&G);printf("输入图的顶点数\n");scanf("%d",&n);getchar();printf("输入图顶点为(请输入字母)\n");for(i=0;i<n;i++){scanf("%c",&c1); //通过键盘,输入图的顶点getchar();InsertVertex(&G,i,c1) ; //插入顶点}printf("输入图的边数\n");scanf("%d",&e);printf("如果边v1->v2,则输入0,1\n");for(k=0;k<e;k++){printf("输入边的顶点为(请输入数字):");scanf("%d,%d",&v1,&v2); //通过键盘,输入图的邻接边的两个顶点InsertEdge(&G,v1,v2) ; //插入边}for(i=0;i<n;i++)//输出邻接表{printf("%c\t",G.a[i].data);p=G.a[i].adj;if(p==NULL) printf("数据为空");else{ while(p!=NULL){printf("%d->",p->dest);p=p->next;}printf("^");}printf("\n");}}序号六、应用题(一)校园导游图实验内容:1、设计学生所在学校的校园平面图,所含景点不少于10个。

校园导游图

校园导游图

《数据结构》课程设计报告设计题目校园导游图学院名称信息工程学院专业班级计算机科学与技术(2)班姓名晁勉学号 1212210226一. 题目:校园导游图二. 设计目标通过设计一个校园导游图,进一步理解数据结构中有关于图的基本概念、定义术语、存储结构等,理解图在描述现实问题中的能力,明白数据结构在程序设计中的重要性等。

三. 问题描述给出学校的导游图(景点不少于10个),游客通过终端询问可知:任一景点的相关信息:从某一景点到另一景点的最短简单路径;游戏从校园大门进入,选一条最佳路线,使游客可以不重复地游览个景点,最后回到出口(出口就在入口旁边)。

四. 需求分析需求:(1)将导游图看作一张带权无向图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息;(2)可以通过菜单提示操作,浏览校园全部景点;(3)查看所有游览路线,将某个景点的所有路线展示给游客;(4)选择出发点和目的地,将最短路线展示给游客;(5)输入景点编号,查看某个景点的信息。

分析:完成对整个校园导游图系统的功能实现,需要对的每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确调试运行。

有以下设计思路:(1)结合本校的实际情况,选出10个景点;(2)为选出的10个景点赋上相关信息(景点编号、名称、简介);(3)根据选出来的10个景点用邻接矩阵存储校园图.(4)利用C语言和数据结构编写实现校园导游图系统各功能的实现;(5)根据人为赋值的路权,设计算法计算任意两点之间的最短路径并显示;(6)综上所诉,用一个主函数把这些板块合成,生产一个菜单界面呈现在用户面前。

五. 概要设计程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能.课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。

六. 详细设计采用C语言定义相关的数据类型写出各模块的类C码算法图的定义typedefstructArCell{intadj;//路径长度}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct //图中顶点表示主要景点,存放景点的编号、名称、简介等信息,初始化图形MGraph *CreatUDN(MGraph *G)//接受用户输入{inti,j,k,w;char v1[20],v2[20];printf("请输入图的顶点数,弧数:");scanf("%d%d",&G->vexnum,&G-〉arcnum);printf(”请输入景点的编号、名称、简介:\n”);for(i=0;i〈G->vexnum;i++){printf(”景点编号:”);scanf(”%d”,&G-〉vexs—>num);printf("景点名称:”);scanf(”%s",G—〉vexs[i].name);printf("景点简介:”);scanf("%s",G-〉vexs—>introduction);}for(i=0;i<G—>vexnum;i++)for(j=0;j〈G—〉vexnum;j++)G-〉arcs[i][j]。

小学劳动教育三年级下册第五单元2《校园导游》教学设计

小学劳动教育三年级下册第五单元2《校园导游》教学设计

《校园导游》教学设计一、教学内容本节课是《劳动教育》三年级下册第五单元《校园小导游》第二课时的内容,本节课主要是让学生用一种全新的身份——校园小导游,了解自己的校园,并把美丽的校园介绍给大家,产生自己身在学校而自豪的情感,从而更加热爱自己的学校,也让更多的人了解、喜欢我们的学校。

培养学生合作、组织、观察、动手实践的技能,树立正确的劳动技能。

三年级的学生已经具备了一些外出游览的经验,但是对于如何介绍“风景”并不了解,大部分学生展现出了强烈的好奇心与求知欲,了解校园是一种最基本的爱校表现,不但自己了解校园,还应该让更多的人了解、喜欢自己的校园,通过本节课的学习,让学生当校园小导游,并会把自己的学校介绍给大家。

二、教学目标(1)了解校园的历史发展、美丽风景等,并当小导游向大家介绍,让更多人了解、喜欢我们的校园。

(2)在了解校园的过程中,感受学校的变化和发展,增加热爱校园的思想感情。

(3)在当小导游的过程中,培养学生收集资料、口语表达、实践操作的能力。

三、教学重点会介绍自己的学校。

四、教学难点介绍过程中思路清晰,语言熟练优美。

五、教学准备教师用具:课件及校园图片、导游帽、导游旗等。

学生用具:导游帽、导游旗、纸、笔等。

六、教学过程第一课时环节一:情景导入师:美丽的校园是我们成长的乐园,校园里的一草一木,庄严的国旗、威严的雷锋雕塑、充满着运动气息的操场……都是我们学校独特的“风景”(欣赏图片)。

我们在这么美的学校生活与学习,作为热情的XXX(曲师附校)一员,这节课,我们就来当小导游,带着大家来一次“XXX(曲师附校)之旅”。

学生欣赏校园美景,感受校园之美,激发热爱校园的情怀。

师:我们要想做好校园小导游,我们就要有导游的“设备”,同学们想一想作为一名导游得需要哪些工具和材料呢?(出示导游图片)生:导游帽、导游旗、纸、笔等。

设计意图:(本环节通过欣赏校园美景导入,让学生感受校园之美,激发学生想当校园小导游的欲望,进而激发学生热爱校园的情怀,为后续学习做准备。

综合实践活动教案-- 校园小导游教学案例

综合实践活动教案--   校园小导游教学案例

志愿服务—校园小导游教学案例教材分析:校园是我们学习和生活的重要场所,我们不仅要热爱它,还可以把它介绍给别人,让别人也了解我们美丽的校园。

今天请你当校园小导游,带领大家参观一下你的校园吧!教学目标:1.了解校园的整体布局、不同教学区的功能,发现校园的美丽。

2.参与校园小导游志愿服务,明白导游应具备的基本素质。

3.明确志愿者的服务宗旨,提高口语交际的能力,增强责任担当意识。

教学方式:查找资料,调查采访,模拟体验。

教学重难点:以小导游的形式介绍校园风光,了解校园的自然景观,感受校园的美。

教学过程:一、走进学校1.同学们,你们见过这个吗?知道这是什么吗?2.校园鸟瞰图,现在的我们就在这么美的学校生活与学习呢!可她藏着许多的美景需要我们去欣赏和了解呢!3.小结:我们美丽的校园-学校正凭着她的实力、活力和魅力一步步走向未来。

随着学校的发展,已被越来越多的人所熟知。

作为热情的学校,可以把校园的最美的风光介绍给他们。

这节课,我们就来当当小导游,带着各地游客来一次“学校之旅”。

二、展示学校校园风采1.为了能把学校这些美丽的风光更好地介绍给游客,老师想成立一个小小的旅行社,可是我有些发愁,没有导游怎么办呀,所以今天我就在我们班里现场招聘小导游。

2.要当好小导游,首先就得了解自己要介绍的景点。

所以,课前老师请同学们选择一个你自己喜欢的景点,搜集图片、照片,你们都准备好了吗?请你把它拿出来,告诉大家你准备介绍的是哪一个景点?3.大家看,这就是我们为大家准备的一小校园风采展示分布图。

4.出示校园风采展示分布图,点击景点出示一些图片。

学生一起喊出这分别是什么地方。

三、初步了解做导游基本要求1.掌握了景点资料,就有了当导游的资本啦!不过要把资料介绍给游客又是大有讲究的。

那么,怎样当一个小导游呢?让我们先听听小导游是怎么做的。

2.谁能来说一说做一名小导游的基本要求呢?3.小结,出示:①导什么:名称、地理位置、历史、特点等②怎么导:热情、大方、有礼貌、声音响亮、口齿清楚。

校园导游词(北区)

校园导游词(北区)

莆田学院校园导游词(北区)主要路线: 校门——综合楼——喷泉——图书馆——自习室——管院宿舍楼——梯形教室——主教学楼——体育馆——第六餐厅——医学院宿舍楼——操场——教师宿舍楼学弟学妹们:你们好!欢迎来到莆田学院分校区——北区。

我是旅游协会导游队的XX,你们可以称呼我小X,今天,将由小X带领大家去参观北区,领略校园风光,请大家保管好自身贵重物品,跟我出发。

我们面前的这道门便是“莆田学院”北大门了。

北区原本是福建医科大学在莆田的分校,后来与莆田高等专科学校合并,成为莆田学院现在的北区。

这个是北区校园建筑分布示意图,现在我们是在这个位置(指着图),等下我们将先后参观实验楼、图书馆、宿舍楼、教学楼和体育馆、餐厅,整个游览时间大概45分钟,最后一站是北区文荣教授楼,9点我们将在那里集合,前往中区游览,请同学们务必紧跟队伍。

北区原本只有一个医学院,单一得连学生都孤独了。

后来管理学院从中区搬过来后,为北区注入一股前所未有的新鲜血液,这里的大学氛围也更加浓厚了。

在我右手边高达12层的大厦就是实验综合楼。

这栋综合楼配置了设备先进的学科实验室和模拟病房。

楼梯直接升到二楼,不必经过一楼,把一楼搞得像个地下室,一定有人想问为什么,对吧? 嘿嘿,说了你可别怕,一楼展示的是一些人体标本、器官标本,一般人是不会去的。

说到医学院就不得不提一下莆田学院附属医院,这个附属医院为满足教学需要还特别建有教室、宿舍,以满足临床医学专业学生边上课边见习,提早接触病人。

综合楼11、12楼是管理学院的办公和实验教学地方,设有导游模拟实训室,会计模拟实验室、会计电算化、电子商务实验室等。

最妙的还要算由旅游管理专业经营的旅游咖啡厅。

这个咖啡厅每逢星期五、六就为全校师生开放。

小小咖啡厅,布置淡雅,咖啡浓、果汁香、氛围好,成为老师学生甚至校外人士休闲娱乐放松心情的好去处。

各位朋友现在我们来看这尊雕塑!这是谁,又为什么手里提着灯呢?她是提灯女神——南丁格尔。

【二年级】介绍校园的导游词300字 导游词

【二年级】介绍校园的导游词300字 导游词

【二年级】介绍校园的导游词300字导游词
各位同学,大家好!欢迎来到我们美丽的校园,我将担任今天的导游,为大家介绍我们学校的一切。

我要提醒大家注意安全,听从我的指挥,不要擅自离开队伍。

我们学校占地面积广阔,园林景色优美。

首先向大家介绍我们学校的标志性建筑——教学楼。

教学楼有七层,是我们学校的主要教学区域,其中有多间教室、实验室和图书馆等。

接下来,跟我来到我们学校的操场。

操场上有篮球场、排球场和足球场等,每天下午都有许多同学在这里运动,也是我们学校举办各种体育赛事的场地。

再往前走,我们来到了学生宿舍区。

这里是我们每个人的温馨小窝,每个寝室里都住着同学们,虽然千姿百态,但都是我们学校的一份子。

接着我们来到了校园食堂,这里提供早餐、午餐和晚餐,餐厅里有各种美食,价格适中,食材新鲜,尤其是那里的牛奶和面包,深受同学们的喜爱。

我要向大家介绍校园里最独特的地方——校园艺术馆。

馆内陈列着许多美术作品、手工艺品,每幅作品都是同学们用心创作的,展现了他们对美的追求和独特的艺术天赋。

通过今天的校园导游,相信大家已经对我们的学校有了更清晰的认识。

希望在接下来的学习生活中,同学们可以在美丽的校园里茁壮成长,收获知识,实现梦想。

感谢大家的聆听,祝愿大家在未来的日子里都能取得优异的成绩!谢谢!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构》课程设计报告设计题目校园导游图学院名称信息工程学院专业班级计算机科学与技术(2)班姓名晁勉学号 1212210226一. 题目:校园导游图二. 设计目标通过设计一个校园导游图,进一步理解数据结构中有关于图的基本概念、定义术语、存储结构等,理解图在描述现实问题中的能力,明白数据结构在程序设计中的重要性等。

三. 问题描述给出学校的导游图(景点不少于10个),游客通过终端询问可知:任一景点的相关信息:从某一景点到另一景点的最短简单路径;游戏从校园大门进入,选一条最佳路线,使游客可以不重复地游览个景点,最后回到出口(出口就在入口旁边)。

四. 需求分析需求:(1)将导游图看作一张带权无向图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息;(2)可以通过菜单提示操作,浏览校园全部景点;(3)查看所有游览路线,将某个景点的所有路线展示给游客;(4)选择出发点和目的地,将最短路线展示给游客;(5)输入景点编号,查看某个景点的信息。

分析:完成对整个校园导游图系统的功能实现,需要对的每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确调试运行。

有以下设计思路:(1)结合本校的实际情况,选出10个景点;(2)为选出的10个景点赋上相关信息(景点编号、名称、简介);(3)根据选出来的10个景点用邻接矩阵存储校园图。

(4)利用C语言和数据结构编写实现校园导游图系统各功能的实现;(5)根据人为赋值的路权,设计算法计算任意两点之间的最短路径并显示;(6) 综上所诉,用一个主函数把这些板块合成,生产一个菜单界面呈现在用户面前。

五. 概要设计程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能。

课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。

六. 详细设计采用C语言定义相关的数据类型写出各模块的类C码算法图的定义typedefstructArCell{intadj; //路径长度}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct //图中顶点表示主要景点,存放景点的编号、名称、简介等信息,初始化图形MGraph * CreatUDN(MGraph *G)//接受用户输入{inti,j,k,w;char v1[20],v2[20];printf("请输入图的顶点数,弧数:");scanf("%d%d",&G->vexnum,&G->arcnum);printf("请输入景点的编号、名称、简介:\n");for(i=0;i<G->vexnum;i++){printf("景点编号:");scanf("%d",&G->vexs->num);printf("景点名称:");scanf("%s",G->vexs[i].name);printf("景点简介:");scanf("%s",G->vexs->introduction);}for(i=0;i<G->vexnum;i++)for(j=0;j<G->vexnum;j++)G->arcs[i][j].adj=INFINITY;printf("请输入路径长度:\n");for(k=0;k<G->arcnum;k++){printf("第%d条边:\n",k+1);printf("景点对(x,y):");scanf("%s",v1);scanf("%s",v2);printf("路径长度:");scanf("%d",&w);i=LocateVex(G,v1);j=LocateVex(G,v2);if(i>=0&&j>=0){G->arcs[i][j].adj=w;G->arcs[j][i]=G->arcs[i][j];}}return G;}主菜单void main(){printf("\n 榆林学院导游图 \n");printf("********************************************\n");printf(" * 1.浏览校园全景 *\n");printf(" * 2.查看所有游览路线 *\n");printf(" * 3.选择出发点和目的地 *\n");printf(" * 4.查看景点信息 *\n");printf(" * 5.退出系统 *\n");printf(" ********************************************\n");printf("请选择您所需要的操作:");}画出主要函数的流程图七.测试分析白盒:查看代码完整性代码完整。

黑盒:测试是否可以正确的初始化,编码,译码,打印哈夫曼树等操作黑盒检测:打开VC++6.0开发环境,编译连接程序是否有错;连接生成可执行exe文件八. 使用说明首先启动VC++开发环境,新建工程project,设定工程project 的名称和保存位置,工程的描述信息生产,从而建立了一个空的工程文件。

向工程中添加新建源代码的类型、名称、保存位置,设定源代码的类型、名称并添加到工程中,在源代码文件添加程序代码,编写完成后编译,查看运行结果。

注意:一个工程project中可以有多个源文件、多个头文件;但这些段代码文件中只能出现一个main函数,作为整个程序运行的入口;必须关闭前一次程序运行结果窗口,才能进行下一次程序运行。

编译程序无错后运行,根据主菜单提示输入所需要的操作,当输入1-5时显示运行结果,否则重新输入。

操作结束后,根据提示再选择景点时,当输入0-9显示运行结果,否则重新输入,操作完成后,根据菜单提示退出系统,运行结束。

九.测试数据1.主菜单2.校园各景点展示3.景点路线4.从出发点到目的地的路线5.景点信息查询十. 课程设计总结通过课程设计,使我对《数据结构》这门课程有了更深一步的认识。

它是计算机程序设计的重要理论技术基础,在软件专业的学习中占据着十分重要的地位。

同时也使我知道,要学好这门课程,基础是非常重要的,比如说以前学习的C语言为这门课、为程序的设计打下了重要的基础。

也让我明白,上课认真听讲通过编写实验代码和调试运行,我们可以逐步积累调试C程序的经验并逐渐培养我们的编程能力、增强用计算机解决世界问题的能力。

在课程设计过程中,总会感觉无从下手。

因为上课时听的理论知识,各种算法总感觉挺似容易理解的,但是在真正的运用过程中,却不能把理论知道很好的和实践结合起来。

因此,在学知识的过程中,一定要多动手、动脑,将所学的知识熟练掌握,自如运用。

课程设计具有较强的可应用性和实践性,也是一个很考验毅力的过程,一个小小的错误就会导致整个程序出错,代价就是花费更长的时间去解决。

因此,我们应该认真的对待课程设计,无论是编程设计还是分析总结都应该做到尽善尽美,这样才能提高我们的学习能力,为自己以后的发展打下扎实的基础。

此外,对程序的测试应该要仔细,以确保各个模块的正确性和完整性,最后集成起来测试其是否正确和完整地实现了问题描述中要求的功能。

通过运用《数据结构》中的算法思想并结合C语言的基本知识,编写校园导游图的程序设计,使我受益匪浅,也让我明白了自己在这方面知识上的欠缺,比如不能完整的编写一个程序使之如自己预想的那样呈现在主菜单上,当然,我一定会再接再厉,努力改进,提高自己。

源程序代码:#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<string.h>#define INFINITY 10000#define MAX_VERTEX_NUM 40#define MAX 40typedefstructArCell{intadj; //路径长度}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct //图中顶点表示主要景点,存放景点的编号、名称、简介等信息,{char name[30];intnum;char introduction[100];//简介}infotype;typedefstruct{infotypevexs[MAX_VERTEX_NUM];AdjMatrix arcs;intvexnum,arcnum;}MGraph;MGraph b;voidcmd(void);MGraphInitGraph(void);void Menu(void);void Browser(MGraph *G);voidShortestPath_DIJ(MGraph * G);void Floyd(MGraph *G);void Search(MGraph *G);intLocateVex(MGraph *G,char* v);MGraph * CreatUDN(MGraph *G);void print(MGraph *G);void main(void){system("color 0f");system("mode con: cols=140 lines=130");cmd();}voidcmd(void){int i;b=InitGraph();Menu();scanf("%d",&i);while(i!=5){switch(i){case 1:system("cls");Browser(&b);Menu();break;case 2:system("cls");ShortestPath_DIJ(&b);Menu();break;case 3:system("cls");Floyd(&b);Menu();break;case 4:system("cls");Search(&b);Menu();break;case 5:exit(1);break;default:break;}scanf("%d",&i);}}MGraphInitGraph(void){MGraph G;inti,j;G.vexnum=10;G.arcnum=14;for(i=0;i<G.vexnum;i++)G.vexs[i].num=i;strcpy(G.vexs[0].name,"沁园");strcpy(G.vexs[0].introduction,"有山有水,是学院最美丽最具特色的地方"); strcpy(G.vexs[1].name,"校门口");strcpy(G.vexs[1].introduction,"榆林学院的南大门,正门之一");strcpy(G.vexs[2].name,"13号公寓楼");strcpy(G.vexs[2].introduction,"学院最新的公寓楼,设备和环境是学院所有公寓楼中最好的");strcpy(G.vexs[3].name,"图书馆");strcpy(G.vexs[3].introduction,"内有数万种图书并设有不少自习室,有电子阅览室和免费饮水机");strcpy(G.vexs[4].name,"行政楼");strcpy(G.vexs[4].introduction,"学院的主楼,各级领导办公的地方,外观新颖,楼内干净,设备齐全");strcpy(G.vexs[5].name,"旧餐厅");strcpy(G.vexs[5].introduction,"自学校建立就有的餐厅,学生吃饭的地方,饭菜不是很美味,价格适中");strcpy(G.vexs[6].name,"逸夫楼");strcpy(G.vexs[6].introduction,"这是学院最新的一所教学楼,其设备齐全,是学生进行科技设计的选择之地");strcpy(G.vexs[7].name,"新餐厅");strcpy(G.vexs[7].introduction,"就餐窗口少,饭味不可口且价格较贵,但比旧餐厅好的是新设了卖饮品的餐位");strcpy(G.vexs[8].name,"田径场");strcpy(G.vexs[8].introduction,"塑胶跑道,人造草坪,适宜锻炼身体的好地方,学院的大型室外活动也都在此举行");strcpy(G.vexs[9].name,"2号教学楼");strcpy(G.vexs[9].introduction,"学院的多媒体教学场所,设施先进,环境良好,网速较快,是各院系学生练机的首选之地");for(i=0;i<G.vexnum;i++)for(j=0;j<G.vexnum;j++)G.arcs[i][j].adj=INFINITY;G.arcs[0][1].adj=100;G.arcs[0][2].adj=100;G.arcs[0][6].adj=800;G.arcs[1][7].adj=300;G.arcs[2][3].adj=400;G.arcs[3][6].adj=600;G.arcs[3][4].adj=200;G.arcs[4][5].adj=700;G.arcs[4][9].adj=550;G.arcs[5][9].adj=500;G.arcs[6][7].adj=900;G.arcs[6][9].adj=150;G.arcs[7][8].adj=350;G.arcs[8][9].adj=450;for(i=0;i<G.vexnum;i++)for(j=0;j<G.vexnum;j++)G.arcs[j][i].adj=G.arcs[i][j].adj;return G;}void Menu(){printf("\n 榆林学院导游图\n");printf("********************************************\n");printf(" * 1.浏览校园全景*\n");printf(" * 2.查看所有游览路线*\n");printf(" * 3.选择出发点和目的地*\n");printf(" * 4.查看景点信息*\n");printf(" * 5.退出系统*\n");printf("********************************************\n");printf("请选择您所需要的操作:");}void Browser(MGraph *G){int v;printf("************************************************************* ******************************************\n");printf("编号景点名称简介\n");for(v=0;v<G->vexnum;v++)printf("%-4d%-16s%-56s\n",G->vexs[v].num,G->vexs[v].name,G->vexs[v].i ntroduction);printf("************************************************************* ******************************************\n");}voidShortestPath_DIJ(MGraph * G){intv,w,i,min,t=0,x,flag=1,v0;int final[20], D[20], p[20][20];while(flag){printf("请输入一个起始景点编号:");scanf("%d",&v0);if(v0<0||v0>G->vexnum){printf("景点编号不存在!请重新输入景点编号:");scanf("%d",&v0);}if(v0>=0&&v0<G->vexnum)flag=0;}for(v=0;v<G->vexnum;v++){final[v]=0;D[v]=G->arcs[v0][v].adj;for(w=0;w<G->vexnum;w++)p[v][w]=0;if(D[v]<INFINITY){p[v][v0]=1;p[v][v]=1;}}D[v0]=0;final[v0]=1;for(i=1;i<G->vexnum;i++){min=INFINITY;for(w=0;w<G->vexnum;w++)if(!final[w])if(D[w]<min){v=w;min=D[w];}final[v]=1;for(w=0;w<G->vexnum;w++)if(!final[w]&&(min+G->arcs[v][w].adj<D[w])){D[w]=min+G->arcs[v][w].adj;for(x=0;x<G->vexnum;x++)p[w][x]=p[v][x];p[w][w]=1;}}for(v=0;v<G->vexnum;v++){if(v0!=v) printf("%s",G->vexs[v0].name);for(w=0;w<G->vexnum;w++){if(p[v][w]&&w!=v0) printf("-->%s",G->vexs[w].name);t++;}if(t>G->vexnum-1&&v0!=v)printf(" 总路线长%dm\n\n",D[v]); }}void Floyd(MGraph *G){intv,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++){D[v][w]=G->arcs[v][w].adj;for(u=0;u<G->vexnum;u++)p[v][w][u]=0;if(D[v][w]<INFINITY){p[v][w][v]=1;p[v][w][w]=1;}}for(u=0;u<G->vexnum;u++)for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++)if(D[v][u]+D[u][w]<D[v][w]){D[v][w]=D[v][u]+D[u][w];for(i=0;i<G->vexnum;i++)p[v][w][i]=p[v][u][i]||p[u][w][i];}while(flag){printf("请输入出发点和目的地的编号:");scanf("%d%d",&k,&j);if(k<0||k>G->vexnum||j<0||j>G->vexnum){printf("景点编号不存在!请重新输入出发点和目的地的编号:"); scanf("%d%d",&k,&j);}if(k>=0&&k<G->vexnum&&j>=0&&j<G->vexnum)flag=0;}printf("%s",G->vexs[k].name);for(u=0;u<G->vexnum;u++)if(p[k][j][u]&&k!=u&&j!=u)printf("-->%s",G->vexs[u].name);printf("-->%s",G->vexs[j].name);printf(" 总路线长%dm\n",D[k][j]);}void Search(MGraph *G){intk,flag=1;while(flag){printf("请输入要查询的景点编号:");scanf("%d",&k);if(k<0||k>G->vexnum){printf("景点编号不存在!请重新输入景点编号:");scanf("%d",&k);}if(k>=0&&k<G->vexnum)flag=0;}printf("************************************************************* *************************************\n");printf("编号景点名称简介\n");printf("%-4d%-16s%-56s\n",G->vexs[k].num,G->vexs[k].name,G->vexs[k].i ntroduction);printf("************************************************************* *************************************\n");}intLocateVex(MGraph *G,char* v){int c=-1,i;for(i=0;i<G->vexnum;i++)if(strcmp(v,G->vexs[i].name)==0){c=i;break;}return c;}MGraph * CreatUDN(MGraph *G)//初始化图形,接受用户输入{inti,j,k,w;char v1[20],v2[20];printf("请输入图的顶点数,弧数:");scanf("%d%d",&G->vexnum,&G->arcnum);printf("请输入景点的编号、名称、简介:\n");for(i=0;i<G->vexnum;i++){printf("景点编号:");scanf("%d",&G->vexs->num);printf("景点名称:");scanf("%s",G->vexs[i].name);printf("景点简介:");scanf("%s",G->vexs->introduction);}for(i=0;i<G->vexnum;i++)for(j=0;j<G->vexnum;j++)G->arcs[i][j].adj=INFINITY;printf("请输入路径长度:\n");for(k=0;k<G->arcnum;k++){printf("第%d条边:\n",k+1);printf("景点对(x,y):");scanf("%s",v1);scanf("%s",v2);printf("路径长度:");scanf("%d",&w);i=LocateVex(G,v1);j=LocateVex(G,v2);if(i>=0&&j>=0){G->arcs[i][j].adj=w;G->arcs[j][i]=G->arcs[i][j];}}return G;}void print(MGraph *G){intv,w,t=0;for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++){ if(G->arcs[v][w].adj==INFINITY) printf("∞ ");elseprintf("%-7d",G->arcs[v][w].adj); t++;if(t%G->vexnum==0)printf("\n");}}。

相关文档
最新文档