校园导航系统罗生存组李建武何月甫精品文档10页.docx
《校园导航系统罗生存组李建武何月甫精品文档10页.docx》由会员分享,可在线阅读,更多相关《校园导航系统罗生存组李建武何月甫精品文档10页.docx(11页珍藏版)》请在冰豆网上搜索。
![校园导航系统罗生存组李建武何月甫精品文档10页.docx](https://file1.bdocx.com/fileroot1/2023-2/24/4f7f2d71-7511-47a8-869e-b3a6d4cfb157/4f7f2d71-7511-47a8-869e-b3a6d4cfb1571.gif)
校园导航系统罗生存组李建武何月甫精品文档10页
数据结构课程设计报告
要练说,先练胆。
说话胆小是幼儿语言发展的障碍。
不少幼儿当众说话时显得胆怯:
有的结巴重复,面红耳赤;有的声音极低,自讲自听;有的低头不语,扯衣服,扭身子。
总之,说话时外部表现不自然。
我抓住练胆这个关键,面向全体,偏向差生。
一是和幼儿建立和谐的语言交流关系。
每当和幼儿讲话时,我总是笑脸相迎,声音亲切,动作亲昵,消除幼儿畏惧心理,让他能主动的、无拘无束地和我交谈。
二是注重培养幼儿敢于当众说话的习惯。
或在课堂教学中,改变过去老师讲学生听的传统的教学模式,取消了先举手后发言的约束,多采取自由讨论和谈话的形式,给每个幼儿较多的当众说话的机会,培养幼儿爱说话敢说话的兴趣,对一些说话有困难的幼儿,我总是认真地耐心地听,热情地帮助和鼓励他把话说完、说好,增强其说话的勇气和把话说好的信心。
三是要提明确的说话要求,在说话训练中不断提高,我要求每个幼儿在说话时要仪态大方,口齿清楚,声音响亮,学会用眼神。
对说得好的幼儿,即使是某一方面,我都抓住教育,提出表扬,并要其他幼儿模仿。
长期坚持,不断训练,幼儿说话胆量也在不断提高。
图书管理系统
死记硬背是一种传统的教学方式,在我国有悠久的历史。
但随着素质教育的开展,死记硬背被作为一种僵化的、阻碍学生能力发展的教学方式,渐渐为人们所摒弃;而另一方面,老师们又为提高学生的语文素养煞费苦心。
其实,只要应用得当,“死记硬背”与提高学生素质并不矛盾。
相反,它恰是提高学生语文水平的重要前提和基础。
题目:
图书管理系统
语文课本中的文章都是精选的比较优秀的文章,还有不少名家名篇。
如果有选择循序渐进地让学生背诵一些优秀篇目、精彩段落,对提高学生的水平会大有裨益。
现在,不少语文教师在分析课文时,把文章解体的支离破碎,总在文章的技巧方面下功夫。
结果教师费劲,学生头疼。
分析完之后,学生收效甚微,没过几天便忘的一干二净。
造成这种事倍功半的尴尬局面的关键就是对文章读的不熟。
常言道“书读百遍,其义自见”,如果有目的、有计划地引导学生反复阅读课文,或细读、默读、跳读,或听读、范读、轮读、分角色朗读,学生便可以在读中自然领悟文章的思想内容和写作技巧,可以在读中自然加强语感,增强语言的感受力。
久而久之,这种思想内容、写作技巧和语感就会自然渗透到学生的语言意识之中,就会在写作中自觉不自觉地加以运用、创造和发展。
组长:
罗生存成员:
李建武何月甫
开发日期:
2011-12-30
一、需求分析
二、软件功能模块描述
1.数据结构定义模块:
模块定义了导航图中各个节点的基本结构类型,主要采用邻接矩阵的存储结构来真实反映各节点到其他所有节点的路径长(权值大小)。
2.导航图建立模块:
采用上述结构体类型对导航图中每个节点进行赋值。
包括:
各定点的名称(地点名),各个节点到其他所有节点的真实路径长度(赋权值)。
3.求最短路径模块:
本模块的基本思想是采用迪杰斯特拉算法求最短路径。
次模块是本校园导航系统的核心模块,求两点间的最短路径与求一点到其他所有点最短路径两个子功能均是在最短路径算法模块的基础上进行调用,进而实现导航功能。
4.主菜单:
主菜单中主要是显示导航图中的所有导航节点,能够快速方便的对各个地点进行导航。
三、功能模块分析
2.2导航平面图(无向图):
河南科技学院平面图
2.3数据结构描述与定义:
2.3.1节点数据类型
#defineMAX_V30
typedefstruct
char*vexs[MAX_V];//顶点向量
intarcs[MAX_V][MAX_V];//邻接矩阵
intvexnum,arcnum;//图的当前顶点数和弧数
}MGraph;
2.3.2创建导航无向图函数
intCreateUDN(MGraph&G)
函数描述:
为每个节点进行命名、每个节点到其他所有各节点的定值用邻接矩阵进行存储
2.3.3求最短路径函数(迪杰斯特拉算法)
voidShortPath(MGraph&G,intv0,intp[MAX_V][MAX_V],intd[])
函数描述:
用Dijkstra算法求无向网G中v0节点到其余节点v的最短路径P[v]及带权长度D[V]。
P[V][W]为TURE,则W是从V0到V当前求得最短路径上的顶点。
Final为TURE,当且仅当V属于S,即已经求得从V0到V的最短路径
2.3.4导航菜单函数
voidmenu()
函数描述:
输出各节点的标号,方便用户操作
四、测试结果与分析
校园导航系统登录界面
导航一:
任意两地点之间的最短路径演示图
导航二:
一地点到其他所有各地点的最短路径演示图
附:
源程序
#include
#defineMAX_V30//最大顶点个数
#defineINFINITY32767//最大值
typedefstruct
char*vexs[MAX_V];//顶点向量
intarcs[MAX_V][MAX_V];//邻接矩阵
intvexnum,arcnum;//图的当前顶点数和弧数
}MGraph;
//创建无向图
intCreateUDN(MGraph&G)
{//采用数组(邻接矩阵)表示法,构造无向网G.
inti=0,j=0;
G.vexnum=24;
G.arcnum=33;
G.vexs[0]="校西门";G.vexs[1]="成教学院";
G.vexs[2]="印务中心";G.vexs[3]="校医院";
G.vexs[5]="图书馆";G.vexs[6]="旧主楼";
G.vexs[4]="幼儿园";G.vexs[7]="西湖";
G.vexs[8]="学术交流中心";G.vexs[9]="一号餐厅";
G.vexs[10]="超市";G.vexs[11]="综合训练馆";
G.vexs[12]="游泳馆";G.vexs[13]="九号教学楼";G.vexs[14]="新图书馆";G.vexs[15]="三号教学楼";G.vexs[16]="新主楼";G.vexs[17]="关羽桥";
G.vexs[18]="教师家属楼";G.vexs[19]="三号餐厅";G.vexs[20]="新科主楼";G.vexs[21]="二号餐厅";G.vexs[22]="校东门";G.vexs[23]="八号宿舍楼";
for(i=0;ifor(j=0;jif(i==j)
G.arcs[i][j]=0;
else
G.arcs[i][j]=INFINITY;
//为每一条边赋权
G.arcs[0][1]=G.arcs[1][0]=50;
G.arcs[0][6]=G.arcs[6][0]=100;
G.arcs[0][8]=G.arcs[8][0]=20;
G.arcs[1][2]=G.arcs[2][1]=30;
G.arcs[2][3]=G.arcs[3][2]=90;
G.arcs[3][4]=G.arcs[4][3]=100;
G.arcs[3][5]=G.arcs[5][3]=40;
G.arcs[4][23]=G.arcs[23][4]=250;
G.arcs[5][6]=G.arcs[6][5]=30;
G.arcs[5][7]=G.arcs[7][5]=10;
G.arcs[6][8]=G.arcs[8][6]=150;
G.arcs[6][9]=G.arcs[9][6]=60;
G.arcs[6][7]=G.arcs[7][6]=10;
G.arcs[7][23]=G.arcs[23][7]=300;
G.arcs[8][20]=G.arcs[20][8]=400;
G.arcs[9][10]=G.arcs[10][9]=10;
G.arcs[9][21]=G.arcs[21][9]=10;
G.arcs[10][11]=G.arcs[11][10]=200;
G.arcs[10][19]=G.arcs[19][10]=300;
G.arcs[10][23]=G.arcs[23][10]=350;
G.arcs[11][12]=G.arcs[12][11]=100;
G.arcs[12][13]=G.arcs[13][12]=150;
G.arcs[13][17]=G.arcs[17][13]=10;
G.arcs[13][14]=G.arcs[14][13]=30;
G.arcs[14][16]=G.arcs[16][14]=150;
G.arcs[14][15]=G.arcs[15][14]=100;
G.arcs[15][16]=G.arcs[16][15]=200;
G.arcs[15][22]=G.arcs[22][15]=150;
G.arcs[17][19]=G.arcs[19][17]=200;
G.arcs[18][22]=G.arcs[22][18]=100;
G.arcs[18][23]=G.arcs[23][18]=400;
G.arcs[19][23]=G.arcs[23][19]=50;
G.arcs[20][21]=G.arcs[21][20]=450;
return1;
//采用迪杰斯特拉算法,求最短路径
externhave[30];
voidShortPath(MGraph&G,intv0,intp[MAX_V][MAX_V],intd[])
{//迪杰斯特拉发求最短路径
intv,w,i,j,min;
intfinal[MAX_V];
intk=1;
for(v=0;v{//初始化路径
final[v]=0;
d[v]=G.arcs[v0-1][v];
for(w=0;wp[v][w]=0;
if(d[v]p[v][v0-1]=1;
p[v][v]=1;
d[v0-1]=0;
final[v0-1]=1;
have[0]=v0-1;
for(i=1;i{//其余的vexnum-1个顶点
min=INFINITY;
for(w=0;wif(!
final[w])
if(d[w]v=w;
min=d[w];
final[v]=1;
have[k]=v;
k++;
for(w=0;wif(!
final[w]&&(min+G.arcs[v][w]d[w]=min+G.arcs[v][w];
for(j=0;jp[w][j]=p[v][j];
p[w][w]=1;
//程序登陆界面
#include
voidmenu()
printf("☆☆☆☆☆☆☆☆☆☆导航主菜单☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("☆
(1)校西门
(2)成教学院(3)印务中心☆\n");
printf("☆(4)校医院(5)幼儿园(6)图书馆☆\n");
printf("☆(7)就主楼(8)西湖(9)学术交流中心☆\n");
printf("☆(10)一号餐厅(11)超市(12)综合训练馆☆\n");
printf("☆(13)游泳馆(14)九号教学楼15)新图书馆☆\n");
printf("☆(16)三号教学楼(17)新主楼(18)关羽桥☆\n");
printf("☆(19)教书家属楼(20)三号餐厅(21)新科主楼☆\n");
printf("☆(22)二号餐厅(23)校东门(24)八号宿舍楼☆\n");
printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n");
printf("请选择导航功能:
\n");
printf("≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");
printf("≈
(1)两点最短距离导航≈\n");
printf("≈
(2)某点到其它所以点的最短距离≈\n");
printf("≈(3)退出导航系统≈\n");
printf("≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");
//主函数文件
#include
#include
#include
inthave[30];
intCreateUDN(MGraph&G);//创建导航图函数声明
voidShortPath(MGraph&G,intv0,intp[MAX_V][MAX_V],intd[]);//最短路径导航函数声明
voidmenu();//导航菜单函数声明
voidmain()
system("colorf0");
system("modecon:
cols=100lines=80");
MGraphG;
intv0,i,end,j;
intP[MAX_V][MAX_V];
intD[MAX_V];
intchoice,choice1;//选择要浏览的菜单项
printf("≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");
printf("\n≈≈欢迎光临河南科技学院,祝您旅途愉快!
≈≈\n");
printf("\n≈≈河南科技学院校园导航系统为您服务!
≈≈\n");
printf("\n≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n\n");
CreateUDN(G);
while
(1)
menu();
scanf("%d",&choice);
switch(choice)
case1:
while
(1)
printf("分别输入起点和终点代号以空格分开\n");
scanf("%d%d",&v0,&end);
ShortPath(G,v0,P,D);
printf("最短路径:
\n");
for(i=0;iif(P[end-1][have[i]]==1)
printf("-->%s",G.vexs[have[i]]);
printf("\n路径长度为:
%d\n",D[end-1]);
printf("^_^本次导航结束:
\n1.继续导航2.返回主菜单\n");
scanf("%d",&choice1);
if(choice1==2)
break;
break;
case2:
printf("请输入出发地点代号:
");
scanf("%d",&v0);
ShortPath(G,v0,P,D);
printf("v0到其他所有点的最短路径为:
\n");
for(i=0;ifor(j=0;jif(P[i][have[j]]==1)
printf("-->%s",G.vexs[have[j]]);
printf("\n路径长度:
%d\n",D[i]);
break;
case3:
break;
default:
printf("选择错误,请重新输入!
\n");
if(choice==3)
printf("欢迎再次使用校园导航系统,回车键退出.^_^\n");
getchar();
getchar();
break;
五.心得体会
通过一星期的数据结构与算法分析课程设计实习,我从中受益匪浅。
对visualc6.0环境更加熟悉,对C语言程序设计这一门课程有了更深一步的认识,对一些细节语法有了更新、更深刻的理解,知其然,亦知其所以然。
尤其在程序调试过程中,程序的执行过程与语法相联系,尽量独立差错纠错,最后请教老师,对程序的优化设计和调试方法都有了很大的进步。
这次课程设计的进步是很大的,使我了解到了,我们需要将所学的理论知识和实践联系起来,在实践设计中不断进步,不断熟练,光是读透书本知识是不够的。
虽然我对一些C语言知识运用得还不是很熟练,但是我相信在接下来的学习过程中,我会有更大的进步,还有很大的空间可以发挥。
在这次课程设计中,我们做的校园导航系统的应用,我主要负责程序的调试和最后课程设计报告书的书写以及编排等任务,设计无向网实现信息查询,并完成相应的建邻接矩阵程序。
其中运用了很多方面的知识。
如,运用结构体建无向网中的各个节点,用函数构建无向网。
从写程序的过程中可以看出,一个简单程序设计的完成,需要很多方面的知识来共同完成,每方面的知识都要理解透彻,运用熟练,其实我们需要在平日里打好基础。
而且,要会用其他算法或其他数据结构来优化算法,这对知识运用的灵活性掌握有很高的要求。
所以,通过一次短短的课程设计就可以看出,我们需要学习的还很多,掌握的知识也不够牢固。
总之,这次课程设计,让我看到自己在编程方面和思考问题方面的很多不足,为我今后的学习指明出了新的学习方向,这是我最大的收获!
最后我要感谢老师对我们热心的指导和帮助,耐心教导我们怎样解决问题,使我们的课程设计才会更加顺利地进行,在这过程中,我们都有很大的收获。
希望在以后我们能充分利用像课程设计这样的机会来锻炼自己,提升自己,并希望这样的机会能被更好更多地被提供。
六.参考资料
《C语言》、《数据结构》