第一篇:校园导游
尊敬的各位专家,大家上午好: 热烈欢迎各位专家莅临于集小学检查指导工作。我是于集小学的老师庞明明 于集小学于1984年建校,坐落在十八里镇于集行政村于集村内。占地面积7874平方米,校舍面积1530平方米。在编在职教师12人,本期在校学生人数140人,有6个教学班,一个幼儿园,是一所农村完全小学。
请各位专家随我到校园参观。左边是我们的告诉牌,牌上告诉学生以及家长进入学校的一些注意事项。右边是学校简介。这是我们每周一的“在国旗下讲话”活动照片。国学经典诵读。这边是我们的阳光体育课。
请各位专家随我到我们的各功能室参观检查指导。这是我们的音乐室,音乐室的管理员恰好是我。音乐室现有器材9类,共160件。有军鼓,电钢琴,打击乐器等。每周共有10节音乐课。这里为学生的全面发展提供了广阔的空间。这是我们的体育室。这是我们的美术室。
各位专家,现在在我们面前的是我们于集小学的操场。于集小学的操场建成于2016年5月份,占地面积1930平方米,设有篮球架,乒乓球台,排球场地,单杠,直跑道等体育设施,为学生的身体健康提供良好的锻炼场所。在我们的右手边是我校的文化宣传栏,宣传栏每两周更新一次,完全由学生自主完成。这是我们的办公室,仪器管理室、实验室、会议室。
这是我们的班班通教室,这是一年级教室。现有学生30人。这是二年级教室,现有学生20人。这是三年级教室,现有人数20人。这是四年级教室,现有人数24人。这是五年级教室,现有人数22人。这是六年级教室,现有人数23人。道路的右侧是我校的绿化。校园总绿化面积为1900平方米。位于左侧花园的雕塑名为“托起未来”。寓意于集小学的全体老师将携手,竭诚为教育服务,努力托起祖国的未来。在调来于集小学工作不久我特意询问了我们校长这颗苍翠的松树的年龄。我们校长说这颗松树有四十多岁了,再具体的时间他也记不得了。十年树人,百年树木,这颗松树不仅见证了于集校的成长历程,更是见证了乡村教育的发展历程。
各位专家,这是我们的图书室。这是我们的留守儿童室。这是我们的计算机室。
感谢各位专家对的参观检查。请各位专家到会议室稍作休息,也请各位专家多提宝贵意见和建议。我代表于集小学的全体师生再次对专家们的到来表示衷心的感谢,也祝愿各位专家新年和乐安康!
第二篇:课程设计(校园导游)
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学
课程设计纸
一、设计题目
校园导游咨询
二、需求分析
(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
(3)为来访客人提供图中任意景点相关信息的查询。(4)界面美观,方便使用。通过主菜单操作。
三、总体设计
3.1 设计思路
设计一个校园导游系统,应用到数据结构中学到的图的建立,各景点应存在一个图中,而计算不重复路线的时候需要应用到弗洛伊德图的遍历。计算俩景点间最短路径应用到最小生成树的遍历。
景点数据装在一个图中,能够输入图的顶点和边的信息,并存储到相应存储结构中然后输出图的邻接矩阵。
邻接矩阵是表示顶点之间相邻关系。
生成树是指:如果G是一个图,这个图的生成子图T是树,那么可以说T为G的生成树。一个图有生成树当且仅当这个图连通。可通过求该网络的最小生成树达到求解线路或总代价最小的最佳方案。
弗洛伊德算法是通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。它是从图的带权邻接矩A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);„„;最后又用同样的公式由D(n-1)构造出矩阵D(n)。矩阵D(n)的i行j列元素便是i号顶点到j号顶点的最短路径长度,称D(n)为图的距离矩阵,同时还可引入一个后继节点矩阵path来记录两点间的最短路径。3、2系统功能设计
本系统除了有主程序模块外还有3个子功能菜单。3个子功能的设计描述如下。(1)学校景点介绍
学校景点介绍由函数introduce()实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点简介。
共 页
第 页
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学
课程设计纸
(2)查看两景点间最短路径
查看两景点间最短路径由函数shortestdistance()实现。该功能采用弗洛伊德(Floyd)算法实现。当用户选择该功能,系统能根据用户输入的起始景点及目的地景点编号,查询任意两个景点之间的最短路径线路及距离。
(3)退出
即退出校园导游系统,由exit(0)函数实现。3、3 模块间调用关系
主程序模块
(界面)
景点最短路径查询
景点信息查询
退出
四、详细设计 4、1数据存储
(1)无向带权图(无向网)的定义
int i,j;
char k;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
{
cost[i][j]=INT_MAX;
}
cost[1][3]=cost[3][1]=2;
cost[2][3]=cost[3][2]=1;
cost[2][4]=cost[4][2]=2;
cost[3][10]=cost[10][3]=4;
cost[1][10]=cost[10][1]=4;
cost[2][10]=cost[10][2]=4;
cost[4][10]=cost[10][4]=4;
cost[1][4]=cost[4][1]=5;
cost[4][5]=cost[5][4]=3;
cost[4][9]=cost[9][4]=4;
共 页
第 页
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学
课程设计纸
cost[5][9]=cost[9][5]=8;cost[5][7]=cost[7][5]=4;cost[5][6]=cost[6][5]=2;cost[6][7]=cost[7][6]=1;cost[7][8]=cost[8][7]=3;cost[8][6]=cost[6][8]=4;cost[1][1]=cost[2][2]=cost[3][3]=cost[4][4]=cost[5][5]=0;cost[6][6]=cost[7][7]=cost[8][8]=cost[9][9]=cost[10][10]=0;
(2)全局变量定义
#define INT_MAX 10000 #define n 10 int cost[n][n];
/* 边的值*/ int shortest[n][n];
/* 两点间的最短距离*/ int path[n][n];
/* 经过的景点*/ 4、2主程序模块
用于作为界面,显示校园景点和概况描述,提供各子模块的连接 如上图所示 程序设计 while(1)
{
printf(“----------------欢迎使用中北大学导游系统!----------------n”);
printf(“1.景点信息查询„„„请按 i(introduc)键n”);
printf(“2.景点最短路径查询„请按 s(shortestdistance)键n”);
printf(“3.退出系统„„„„„请按 e(exit)键n”);
printf(“学校景点列表:n”);
printf(“1:学校南门
”);
printf(“2:学生公寓
”);
printf(“3:柏林园
”);
printf(“4:餐厅
”);
printf(“5:体育馆n”);
printf(“6:图书馆
”);
printf(“7:重点实验室
”);
printf(“8:主楼
”);
printf(“9:科艺苑
”);
printf(“10:国防生公寓n”);
printf(“请选择服务:”);
scanf(“n%c”,&k);
共 页
第 页
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学
课程设计纸
switch(k)
{
case 'i':
printf(“进入景点信息查询:”);
introduce();
break;
case 's':
printf(“进入最短路径查询:”);
shortestdistance();
break;
case 'e':
exit(0);
default:
printf(“输入信息错误!n请输入字母i或s或e.n”);
break;
}
} 4、3景点信息查询模块
在主菜单下,用户输入i回车,根据屏幕提示输入一个要查询的景点编号3回车后,运行结果如上图所示。
不足之处:仅能根据景点编号进行查询,可以增加根据景点名进行查询的功能。
程序设计
void introduce(){/*景点介绍*/
int a;
printf(“您想查询哪个景点的详细信息?请输入景点编号:”);
scanf(“%d”,&a);
getchar();
printf(“n”);
switch(a)
{
case 1:
printf(“1:学校南门nn 学校的正门,前面竖立着一尊彭德华的石
共 页
第 页
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学
课程设计纸
像,气势宏伟。nn”);break;
case 2:
printf(“2:学生公寓集中的地方。nn”);break;
case 3:
printf(“3:柏林园nn 晨读锻炼得地方。nn”);break;
case 4:
printf(“4:餐厅nn 学生老师就餐的地方nn”);break;
case 5:
printf(“5:体育馆nn 体育馆nn 学生上体育课及运动的场地,设有田径场、足球场、篮球场等。nn”);break;
case 6:
printf(“6:图书馆nn 学校信息资源中心,内设大量的自习室。nn”);break;
case 7:
printf(“7:重点实验室nn 我校的研究科研中心nn”);break;
case 8:
printf(“8:主楼nn 学校行政办公的主楼。nn”);break;
case 9:
printf(“9:科艺苑nn 有咖啡厅和放映室。nnn”);break;
case 10:
printf(“10: 国防生公寓nn 国防生居住地地方。nn”);break;
default:
printf(“景点编号输入错误!请输入1->10的数字编号!nn”);break;
} }/*introduce*/ 4、4景点最短路径查询模块
在主菜单下,用户输入3回车,根据屏幕提示输入一个出发景点编号及目的地景点号:6“,”3回车后,运行结果如上图所示。
不足之处:只能看到最短路径编号,但不知具体名称,设计还不够人性化。
程序设计(由floyed()和display(i,j)两个子模块完成)void floyed(){/*用floyed算法求两个景点的最短路径*/
共 页
第 页
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学
课程设计纸
int i,j,k;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
shortest[i][j]=cost[i][j];
path[i][j]=0;
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(shortest[i][j]>(shortest[i][k]+shortest[k][j]))
{/*用path[][]记录从i到j的最短路径上点j的前驱景点的序号*/
shortest[i][j]=shortest[i][k]+shortest[k][j];
path[i][j]=k;
path[j][i]=k;
} }/*floyed*/
void display(int i,int j){/* 打印两个景点的路径及最短距离 */
int a,b;
a=i;
b=j;
printf(“您要查询的两景点间最短路径是:nn”);
if(shortest[i][j]!=INT_MAX)
{
if(i { printf(“%d”,b); while(path[i][j]!=0) {/* 把i到j的路径上所有经过的景点按逆序打印出来*/ printf(“<-%d”,path[i][j]); if(i j=path[i][j]; else i=path[j][i]; } printf(“<-%d”,a); printf(“nn”); printf(“(%d->%d)最短距离是:%d米nn”,a,b,shortest[a][b]); } else { printf(“%d”,a); while(path[i][j]!=0) {/* 把i到j的路径上所有经过的景点按顺序打印出来*/ printf(“->%d”,path[i][j]); 共 页 第 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学 课程设计纸 if(i j=path[i][j]; else i=path[j][i]; } printf(“->%d”,b); printf(“nn”); printf(“(%d->%d)最短距离是:%5d米nn”,a,b,shortest[a][b]); } } else printf(“输入错误!不存在此路!nn”); printf(“n”);}/*display*/ 4、5退出 在主菜单下,用户输入e回车,即退出校园导游系统。 五、设计总结5、1用户手册 1.本程序执行文件为:湖北第二师范学院校园导游系统.exe 2.进入本系统之后,随即显示系统主菜单界面。用户可在该界面下输入各子菜单前对应的数字并按回车,执行相应子菜单命令。 3.查询景点信息都是通过输入景点编号并按回车实现,两个景点号之间用空格隔开。进入本系统后,建议先选择子菜单1――学校景点介绍,以了解景点名称和景点编号的对应关系。5、2心得体会 通过本次课程设计实验,使我更能熟练地掌握c语言和数据结构等知识的综合运 共 页 第 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学 课程设计纸 用。当然在课程设计期间,也遇到了大大小小的一些问题,是我看到了自己的不足之处,使我认识到在以后的学习中要善于发现自己的不足,找出自己的薄弱环节,以便能够更好的去巩固所学的。 本次设计中要求求最短路径,不重复走完一个图,就必须了解最短路径的算发和图的遍历。在拿到题目时,通过查找相关的资料才回忆起这两种方法的具体算法。根据程序的具体要求来设计算法。在选用存储方法是,要尽量选用时间复杂度较小的方法,这样能够节省程序执行时间,提高查询效率。 课程设计中所使用的计算机语言其使用范围比较广阔,在很多编程中都可以用到,所以无论以后我们从事计算机编程、软件设计还是硬件、网络等领域,都应该学会、学精一门编程语言,这对我们以后的学习和工作有很大的帮助。 共 页 第 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学 课程设计纸 附录 /*包含头文件*/ #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;i<=n;i++) for(j=0;j<=n;j++) cost[i][j]=INT_MAX; cost[1][3]=cost[3][1]=2; cost[2][3]=cost[3][2]=1; cost[2][4]=cost[4][2]=2;cost[3][10]=cost[10][3]=4;cost[1][10]=cost[10][1]=4;cost[2][10]=cost[10][2]=4;cost[4][10]=cost[10][4]=4; cost[1][4]=cost[4][1]=5;cost[4][5]=cost[5][4]=3;cost[4][9]=cost[9][4]=4;cost[5][9]=cost[9][5]=8;cost[5][7]=cost[7][5]=4; cost[5][6]=cost[6][5]=2; 共 页 第 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学 课程设计纸 cost[6][7]=cost[7][6]=1; cost[7][8]=cost[8][7]=3; cost[8][6]=cost[6][8]=4; cost[1][1]=cost[2][2]=cost[3][3]=cost[4][4]=cost[5][5]=0; cost[6][6]=cost[7][7]=cost[8][8]=cost[9][9]=cost[10][10]=0; while(1) { printf(“----------------欢迎使用中北大学导游系统!----------------n”); printf(“1.景点信息查询„„„请按 i(introduc)键n”); printf(“2.景点最短路径查询„请按 s(shortestdistance)键n”); printf(“3.退出系统„„„„„请按 e(exit)键n”); printf(“学校景点列表:n”); printf(“1:学校南门 ”); printf(“2:学生公寓 ”); printf(“3:柏林园 ”); printf(“4:餐厅 ”); printf(“5:体育馆n”); printf(“6:图书馆 ”); printf(“7:重点实验室 ”); printf(“8:主楼 ”); printf(“9:科艺苑 ”); printf(“10:国防生公寓n”); printf(“请选择服务:”); scanf(“n%c”,&k); switch(k) { case 'i': printf(“进入景点信息查询:”); introduce(); break; case 's': printf(“进入最短路径查询:”); shortestdistance(); break; case 'e': exit(0); default: printf(“输入信息错误!n请输入字母i或s或e.n”); break; } } }/*main*/ 共 页 第 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学 课程设计纸 void introduce(){/*景点介绍*/ int a; printf(“您想查询哪个景点的详细信息?请输入景点编号:”); scanf(“%d”,&a); getchar(); printf(“n”); switch(a) { case 1: printf(“1:学校南门nn 学校的正门,前面竖立着一尊彭德华的石像,气势宏伟。nn”);break; case 2: printf(“2:学生公寓集中的地方。nn”);break; case 3: printf(“3:柏林园nn 晨读锻炼得地方。nn”);break; case 4: printf(“4:餐厅nn 学生老师就餐的地方nn”);break; case 5: printf(“5:体育馆nn 体育馆nn 学生上体育课及运动的场地,设有田径场、足球场、篮球场等。nn”);break; case 6: printf(“6:图书馆nn 学校信息资源中心,内设大量的自习室。nn”);break; case 7: printf(“7:重点实验室nn 我校的研究科研中心nn”);break; case 8: printf(“8:主楼nn 学校行政办公的主楼。nn”);break; case 9: printf(“9:科艺苑nn 有咖啡厅和放映室。nnn”);break; case 10: printf(“10: 国防生公寓nn 国防生居住地地方。nn”);break; default: printf(“景点编号输入错误!请输入1->10的数字编号!nn”);break; } }/*introduce*/ int shortestdistance(){/*要查找的两景点的最短距离*/ int i,j; printf(“请输入要查询的两个景点的编号(1->10的数字编号并用','间隔):”); 共 页 第 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学 课程设计纸 scanf(“%d,%d”,&i,&j); if(i>n||i<=0||j>n||j<0) { printf(“输入信息错误!nn”); printf(“ 请输入要查询的两个景点的编号(1->10的数字编号并用','间隔):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++) { shortest[i][j]=cost[i][j]; path[i][j]=0; } for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(shortest[i][j]>(shortest[i][k]+shortest[k][j])) {/*用path[][]记录从i到j的最短路径上点j的前驱景点的序号*/ shortest[i][j]=shortest[i][k]+shortest[k][j]; path[i][j]=k; path[j][i]=k; } }/*floyed*/ void display(int i,int j){/* 打印两个景点的路径及最短距离 */ int a,b; a=i; b=j; 共 页 第 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学 课程设计纸 printf(“您要查询的两景点间最短路径是:nn”); if(shortest[i][j]!=INT_MAX) { if(i { printf(“%d”,b); while(path[i][j]!=0) {/* 把i到j的路径上所有经过的景点按逆序打印出来*/ printf(“<-%d”,path[i][j]); if(i j=path[i][j]; else i=path[j][i]; } printf(“<-%d”,a); printf(“nn”); printf(“(%d->%d)最短距离是:%d米nn”,a,b,shortest[a][b]); } else { printf(“%d”,a); while(path[i][j]!=0) {/* 把i到j的路径上所有经过的景点按顺序打印出来*/ printf(“->%d”,path[i][j]); if(i j=path[i][j]; else i=path[j][i]; } printf(“->%d”,b); printf(“nn”); printf(“(%d->%d)最短距离是:%5d米nn”,a,b,shortest[a][b]); } } else printf(“输入错误!不存在此路!nn”); printf(“n”);}/*display*/ 共 页 第 页 《数据结构》 课 程 设 计 实 验 报 告 课程名称: 《数据结构》课程设计 课程设计题目: 校园导游 姓名: 邱可昉 院系: 计算机学院 专业: 计算机科学与技术 班级: 10052313 学号: 10051319 指导老师: 王立波 2012年5月18日 目录 1.课程设计的目的„„„„„„„„„„„„„„„„„„„„„3 2.问题分析„„„„„„„„„„„„„„„„„„„„„„„„3 3.课程设计报告内容„„„„„„„„„„„„„„„„„„„„3(1)概要设计„„„„„„„„„„„„„„„„„„„„„3(2)详细设计„„„„„„„„„„„„„„„„„„„„„3(3)测试结果„„„„„„„„„„„„„„„„„„„„„7(4)程序清单„„„„„„„„„„„„„„„„„„„„„9 4.个人小结 „„„„„„„„„„„„„„„„„„„„„„„14 1.课程设计的目的 《数据结构》是计算机软件的一门基础课程,计算机科学各领域及有关的应用软件都要用到各种类型的数据结构。学好数据结构对掌握实际编程能力是很有帮助的。为了学好《数据结构》,必须编写一些在特定数据结构上的算法,通过上机调试,才能更好地掌握各种数据结构及其特点,同时提高解决计算机应用实际问题的能力。 2.问题分析 [问题描述](1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 (3)为来访客人提供图中任意景点相关信息的查询。[测试数据] 由读者根据实际情况指定。 3.课程设计报告内容 (1)概要设计 根据学校具体分布构建无向连通图,再通过几个模块运行函数完成校园信息简介查询,校园景点间最短距离计算和输出以及退出功能。 (2)详细设计 //定义全局变量 int bian[n][n];int zhjl[n][n];int path[n][n];//构建dy类 class dy{ public: dy(); ~dy();void jj();int zuiduan();void floyed();void shuchu(int,int); // 边的值 // 两点间的最短距离 // 经过的景点 };首先,通过dy类的构造函数构建邻接矩阵。dy::dy(){ for(int i=0;i bian[1][3]=bian[3][1]=150;bian[1][6]=bian[6][1]=300;bian[2][3]=bian[3][2]=100;bian[3][4]=bian[4][3]=50;bian[3][5]=bian[5][3]=200;bian[4][5]=bian[5][4]=100;bian[4][8]=bian[8][4]=350; bian[4][9]=bian[9][4]=250;bian[5][6]=bian[6][5]=100;bian[5][7]=bian[7][5]=250;bian[5][8]=bian[8][5]=300;bian[6][7]=bian[7][6]=200;bian[7][8]=bian[8][7]=100;bian[8][9]=bian[9][8]=400;bian[9][10]=bian[10][9]=100;//将各点到自己的距离定义为0 bian[1][1]=bian[2][2]=bian[3][3]=bian[4][4]=bian[5][5]=0;bian[6][6]=bian[7][7]=bian[8][8]=bian[9][9]=bian[10][10]=0;} 接着,jj函数实现景点列表输出和景点查询。void dy::jj(){ int a;cout<<“您想查询哪个景点的详细信息?”< cin>>i>>j;if(i>n||i<=0||j>n||j<=0){ cout<<“输入信息错误!”< cout<<“请输入要查询的两个景点的编号(1-10的数字编号):”< void dy::floyed(){ int i,j,k;for(i=1;i zdjl[i][j]=zdjl[i][k]+zdjl[k][j];path[i][j]=k;path[j][i]=k;} } 最后,shuchu函数判断输入两景点编号大小,完成正序输出和逆序输出。void dy::shuchu(int i,int j){ int a,b;a=i;b=j;cout<<“您要查询的两景点间最短路径是:”< cout<<“<-”< “<“< ”<”< (4)测试结果 (4)程序清单 #include using namespace std; #define INT_MAX 10000 #define n 11 //定义全局变量 int bian[n][n];int zdjl[n][n];int path[n][n]; class dy{ public: dy();~dy();void jj();int zuiduan();void floyed(); // 边的值 // 两点间的最短距离 // 经过的景点 void shuchu(int,int);};dy::dy(){ for(int i=0;i bian[1][3]=bian[3][1]=150;bian[1][6]=bian[6][1]=300;bian[2][3]=bian[3][2]=100;bian[3][4]=bian[4][3]=50;bian[3][5]=bian[5][3]=200;bian[4][5]=bian[5][4]=100;bian[4][8]=bian[8][4]=350; bian[4][9]=bian[9][4]=250;bian[5][6]=bian[6][5]=100;bian[5][7]=bian[7][5]=250;bian[5][8]=bian[8][5]=300;bian[6][7]=bian[7][6]=200;bian[7][8]=bian[8][7]=100;bian[8][9]=bian[9][8]=400;bian[9][10]=bian[10][9]=100;bian[1][1]=bian[2][2]=bian[3][3]=bian[4][4]=bian[5][5]=0;bian[6][6]=bian[7][7]=bian[8][8]=bian[9][9]=bian[10][10]=0;} dy::~dy(){} void dy::jj()int a;{ cout<<“您想查询哪个景点的详细信息?”< cout< break;case 2: cout<<“校医院是学校内设的公益性、非盈利性的医疗机构。承担学校社区范围内师生员工的“六位一体”的医疗工作。”< cout< break;case 3: cout<<“图书馆现有藏书215万册,其中印刷型图书146万册,电子图书69万册,长期订阅的中外文期刊2500余种。建有“中国学术期刊”、“万方数据资源”、“人大复印报刊资料”全文数据库、“超星数字图书馆”等信息资源镜像站。”< cout< cout< break;case 5: cout<<“ 问鼎广场是杭州电子科技大学标志性建筑,位于校图书馆正面。”< cout< break;case 6: cout<<“3教是学校机房重地。”< cout< break;case 7: cout<<“据说杭电正大门可是花了500万啊,可以说是杭电最奢侈的一个建筑物了,所以大家不可不看啊,不能错过啊~~”< cout< break;case 8: cout<<“行政楼学校领导工作和处理事务的地方。”< cout< break;case 9: cout<<“体育馆是学校举行大型活动的场所,有一个很大的篮球场。”< break;case 10: cout<<“宿舍是学生生活的基本场所,有多个食堂提供不同风味的食物,还有2个超市方便同学们的日常生活。”< cout<<“请输入1-10的数字编号:”< break;} } int dy::zuiduan(){ int i,j;cout<<“请输入要查询的两个景点的编号(1-10的数字编号):”< zdjl[i][j]=zdjl[i][k]+zdjl[k][j];path[i][j]=k;path[j][i]=k;} } void dy::shuchu(int i,int j){ int a,b;a=i;b=j;cout<<“您要查询的两景点间最短路径是:”< ”<”< int main(){ int i,j,s=1,k;dy dy;while(s){ cout<<“----------------杭州电子科技大学导游系统!----------------”< 4.个人小结 在前两次编写程序之后,我已经能够轻车熟路的编写程序了,对于C++的数据结构风格也有所领悟,感觉相对轻松一些。 经过这次练习,我发现我还是有一些没有注意的地方,我发现我对于书本上的知识吸收还有欠缺,然后编写程序不够仔细,有一些小差错导致编译出现错误,后来检查后修正了。我要在以后的学习中注意以下几点: 1.认真上好专业课,多在实践中锻炼自己。2.写程序要考虑周到,严密。 3.在做设计的时候要有信心,有耐心,不浮躁。 4.认真学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。 5.在课余时间多写程序,熟练掌握在调试程序过程中常见的错误,一边节约调试程序的时间。 尊敬的各位领导、各位来宾: 大家好!很高兴能担任你们的校园参观导游,能够陪同大家一起参观我们美丽的校园我感到无比的荣幸(今天由我来给大家做导游,浏览我们美丽的校园),希望我的讲解能让大家更深入地了解我们的办学理念和校园文化。首先,对你们光临我校参观表示热烈的欢迎,对你们亲临我校指导工作表示诚挚的谢意。 下面领导们请跟着我一起去了解一下我们的校园。我们乌审召镇查汗淖尔学校,坐落在查汗淖尔碱湖之畔的乌审召工业园区,这里地处毛乌素沙漠腹地,是昔日著名的“牧业大寨”,这里有远近闻名的乌审召庙文化,还有贵族化的休闲娱乐圣地——博源高尔夫球场……这一切为我们学校的发展奠定了丰厚的文化底蕴和经济基础。查汗淖尔学校占地八万多平方米,现有教学楼两栋、学生公寓楼、学生餐厅多功能报告厅各一栋,灯光篮球场等正在建设中,即将投入使用;学校现有教职工108人,教学班18个,学生900多人。我校的办学理念是:“以学生全面发展为本,办人民满意的农村牧区九年一贯制学校”。 接下来,请跟着我一起看看我们的综合教学楼,这座楼于2009年竣工并投入使用,共有四层,中间部分是校行政领导和教师们的办公室,两边是教室和各类实验室。 (楼道文化解说)在学校管理中,我校注重了文化环境的建设,校园文化氛围浓厚,内容选材得当,现在您看到的这些是地方特色文化介绍、中国教育名家及其主张思想,这些丰富的文化让学生耳闻目睹,汲取爱国主义情感,树立爱国主义思想。 (功能活动室解说词)各位领导,大家好!欢迎来到我校的“第二课堂”—多功能活动室和成果展室。乒乓球室是广大师生的娱乐空间,丰富了师生的业余生活。 团少队活动室是对学生进行德育教育的重要场所,通过开展丰富多彩的活动,学生养成了自我管理、自我教育的好习惯。 美术教室是美术兴趣爱好者的异度空间,在这里、他们可以寻找艺术的灵感、展示自己的佳作。 音乐教室是音乐爱好者的魅力天堂,在这里,他们用马头琴奏响了美妙的旋律,用口风琴吹出了悦耳的曲子。舞蹈教室是舞蹈爱好者的练习空间,他们可以在这里练习优美的舞蹈。 学校荣誉展室:记录了学校光荣的昨天,激励着广大教师立足今天,创造更加辉煌的明天。 师生书画展室:这里展示的是学生的手工作品以及教师的各种荣誉,这些是他们综合素质的展示,是他们创新精神和实践能力的结晶。 (学生宿舍楼解说词)各位领导,大家好!欢迎参观我校学生宿舍楼。我校特别重视住校生生活管理,实行寝室管理员、值日老师住校制度,寝室内干净、整洁,物品摆放规范有序。这里环境清幽,是同学们的第二个家。 (餐厅、多功能报告厅解说词)眼前这栋楼的一楼是我校的师生餐厅,大厅宽敞明亮,餐厅师傅严格按食谱做饭,合理调配营养,保证学生吃到可口丰富的三餐。每天都有总务处的老师检查食堂的卫生状况,给学生最人性化的关怀。学生们在这里文明排队,有序用餐。吃饭采用刷卡制度。二楼是我校的多功能报告厅,这里可容纳 人。每月的教师例会和各类专题讲座在这里开展。 再次感谢各位领导光临我校,欢迎您留下宝贵的意见和建议。各位领导,请走好。再见! 校园导游解说词 尊敬的各位来宾: 你们好!欢迎你们来到***学校!我是负责接待你们的校园导游。呵呵,先自我介绍一下我自己。我是来自*** ***。 下面我先给大家简单的介绍一下我们学校,你们现在看到的东侧“致远楼”和“博学楼”是初中部的教学楼,初中部现有四十五个教学班,在校学生2700多名中学生,西侧的“励志楼”和“厚德楼”是小学部教学楼,小学现有三十七个教学班,在校学生1800多名小学生,正对大门的是文化长廊,这是我们学校一道亮丽的风景线,上面都是老师和学生手这写的作品,非常有教育意义,背面是一些寓言故事,通过这些寓言故事教会我们一些做人做事的智慧,优秀的学生、班级照片都要在这里展示。 我们学校自2008年建校至今取得了太多的荣誉,先后获得了“中国民办教育百强校”、“教育部十二五规划课题实验学校”、“河南省师德师风先进学校”、“河南省体育传统项目学校”、“河南省最具创新力样板学校”、“商丘师范学院教育实习基地”、“县高级中学优质生源基地”等 东面的“温馨楼”是小学宿舍楼,西面的“和谐楼”是初中宿舍楼,(进入宿舍)为了让我们更好的适应全天候的集体生活作息制度,培养学生较强的生活自理能力,学会自律,学会自主,学校除了给每5个宿舍派一名专职生活老师专门指导外,每周还召开一次由全体寝室长参加的寝室管理培训会,加强对住宿生的生活指导; 我们宿舍管理实行学生自主管理,每天学生会和老师都要对我们的宿舍进行检查评比,我们的宿舍一律实行标准化宿舍管理,学生的衣服统一挂在同一的位置,牙具全部放在统一的位置,并且按照统一的方向摆放,鞋子统一放在床下面成一条线,我们每天都这样,已经养成习惯了,有的宿舍还被评为三星级宿舍了,每天就像住在三星级宾馆一样,每天学生按时休息,我们的宿舍卫生每天打扫,每天检查必须都要达到标准化宿舍卫生标准,我们学生自己的衣服都是我们自己洗(小学低年级生活老师洗),我们在这样的环境中生活每天都很开心,还锻炼了我们独立生活的能力。 继续跟我来后面是我们的食堂,我们的食堂是省二级食堂,县透明餐厅,每天的饭菜质量及加工过程卫生局通过远程监控都能直接监督,所以食堂每天都能给我们安全可口的饭菜,我们的餐具都是一人一套,一餐一消毒,我们吃的蔬菜都是新鲜的,这有利于我们身体健康的成长。学校施行透明管理,每天向家长不定时开放,家长可以随时来校参观和指导,特别是对于学生就餐方面,每天都不断有家长委员会成员,到餐厅来体验相关工作。 “行知楼”是我们的综合楼(走出食堂),实验室、器材室、图书室一应俱全,学校图书藏书12万册,人均近30册,满足了学生读书的渴求,我们学校的物理、化学、生物实验室仪器达到省级二类标准,音乐、美术器材达到级二类标准,我们的音乐室还配有多媒体、钢琴、电子琴、风琴、手风琴、架子鼓等器材,美术教室不仅有多媒体,还有专业的画板、写生架等用具。 (1到行知楼后报告厅)现在看到的是我们学校标准运动场,为学生各种体育训练提供保障,每年我校都向河南省体育运动学校输送一批优秀体育人才。 (2返回教室)我们的班级是班班有特色,人人有特长,我们班级的文化都是我们学生自己布置的,我们每个班还都装上了班班通,我们老师在上课时能更直观的给我们教学,在教室内我们就可以享受大城市孩子一样的教育,大大调动了学生的积极性,现在我们学校又实行了自主教育,自主管理,我们每个学生在班级内都有承包的事情,这不仅锻炼了我们的能力,还提高了我们每个学生参与课堂和班级管理的积极性,现在我们每一位学生都是班级的主人,我们还推行了小老师制度,我们每一科每一周都推出不同的小老师,真正的把课堂还给了学生。 我们课间也有丰富多彩的活动,我们上午大课间时,我们所有的同学都随着音乐的节奏先做我们自己编的韵律操,让后随着音乐跑步,跑完步后是宣誓和操后点评等,我们每一位同学每天都充满着激情,享受着每天的阳光大课间,我们的体育器材室有各种各样的器材,满足学生上体育课和课余时间活动的需要。特别是学校开设21个特长班,美术、音乐、篮球、乒乓球、电子琴、跆拳道、武术、双节棍等,总有一项同学们最喜欢的特长供自己选择,50%以上的同学都报名参加了每天下午的第四节特长班活动,真的实现了人人有特长,班班有特色,家长对此非常满意! 四栋教学楼墙壁上是我们的宣传栏我们每天各项检查的结果,每周总结一次,每月评比一次,中间是我们的花园,我们每天都生活在这样的校园中多么舒心。 我们学校专门建立了校园广播站,每班两名播音员轮流播音,每天的好人好事、校园通知、优秀作品等都在广播站里播出。 我就介绍到这里,请您现在按照学校的要求,进入会场。我们将有会场服务人员继续引导您。再次感谢您的到来,祝您参会愉快!(鞠躬!)第三篇:校园导游课程设计实验报告
第四篇:校园校导游解说词
第五篇:校园导游解说词