顺序结构课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
校园导航系统总结
设计题目 校园导航问题 班 级 网络1101
姓 名
学 号
指导教师
日 期 2012年6月25日
计算机与信息工程系
承德油专课程设计总结(
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
) 校园导航系统
《数据结构》课程设计评阅
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
设计题目
班级 答辩评语:
总结报告评语:
功能实现 答辩效果 设计报告 创 新 总 分
2
承德油专课程设计总结(报告) 校园导航系统
目录
一、引言
1.1项目意义 „„„„„„„„„„„„„„„„„„„„„„„„„„„4
1.2数据结构的意义„„„„„„„„„„„„„„„„„„„„„„„„„4 二、设计过程
2.1程序设计
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
„„„„„„„„„„„„„„„„„„„„„„„„„„4
2.2总体设计结构图„„„„„„„„„„„„„„„„„„„„„„„„„5
2.4功能及程序运行模块图„„„„„„„„„„„„„„„„„„„„„„6
2.5图的建造模块程序„„„„„„„„„„„„„„„„„„„„„„„„7
2.6显示模块程序„„„„„„„„„„„„„„„„„„„„„„„„„„7
2.7查询模块程序„„„„„„„„„„„„„„„„„„„„„„„„„„7 三、测试及运行结果
3.1测试中错误及解决方法„„„„„„„„„„„„„„„„„„„„„„7
3.2程序运行结果截图„„„„„„„„„„„„„„„„„„„„„„„„7 四、总结„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„10 五、参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„„11 六、附录„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„11
3
承德油专课程设计总结(报告) 校园导航系统 一、引言
1.1项目意义
针对学校现代化的实现,对于来访我校的访客能够更方便的了解学校和学校景点,以及提供给访客从一个景点到另一个地点怎样走路径最短的方案,以节省访客的时间游览及行走路程,于是编写了这个校园导航系统。
1.2数据结构的意义
数据结构是计算机科学与技术专业,计算机信息管理与应用专业,网络等专业的基础课,是十分重要的核心课程.所有的计算机系统软件和应用软件都要用到各种类型的数据结构.因此,要想更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是难以应付当前众多复杂的课题.要想有效地使用计算机,充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识.打好"数据结构"这门课程的扎实基础,对于学习计算机专业的其他课程,如操作系统,数据库管理系统,软件工程,编译原理,人工智能,图视学等都是十分有益的.
随着现在科技的发展,智能化也不是一个名词,而是实在的随处可见的。算法设计与分析对于程序的实现起着非常重要的作用,思路才是程序的核心。这个校园导航系统,利用算法设计里的图来解决,它将校园景点作为图的结点,将景点间的问题就抽象成了求图中一结点到另一结点的问题。这就是计算机代替人工的一个实例,也充分体现数据结构和算法的重要。
二、设计过程
2.1程序设计分析
校园导航模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表点,用图的边代表景点之间的路径。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表储存,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度及路线时可用迪克斯特拉(Dijkastra)算法实现。最后用switch选择语句选择执行浏览推荐路线或查询最短路径,并且主页面会简单描述景点的信息。
4
承德油专课程设计总结(报告) 校园导航系统
2.2总体设计结构图
Main( )
Menu( )
带简介
ShortestPath( ) Menu( )
Ouput( )
图2.1主体结构 构造一个主函数去调用其他函数实现功能,见图示2.1。
2.3程序类说明
typedef struct ArcCell{ int adj; /* 相邻接的景点之间的路程 */
}ArcCell; /* 定义边的类型 */
typedef struct VertexType{ int number; /* 景点编号 */
char *sight; /* 景点名称 */
char *description; /* 景点描述 */
}VertexType; /* 定义顶点的类型 */ typedef struct{
VertexType vex[NUM]; /* 图中的顶点,即为景点 */ ArcCell arcs[NUM][NUM]; /* 图中的边,即为景点间的距离 */ int vexnum,arcnum; /* 顶点数,边数 */
}MGraph; /* 定义图的类型 */
5
承德油专课程设计总结(报告) 校园导航系统 2.4功能及程序运行模块图
分功能
显示学校简介
主界面
显示最短路径及距离
主功能
2.4.1 功能图
1、 打开导航 显示模块void narrate() 建立void main() 显示地点及其简介
1、 2、主菜单char Menu() 退出导航
CreateUDN造图函数创建数据集合
子菜单main()查询学校简介 景点选择显示 main()显示
调用ShortestPath函数计算最短路径
Output()输出最短 路径计算结果
2.4.2 程序函数调用图
6
承德油专课程设计总结(报告) 校园导航系统
2.5图的建造模块程序
void CreateUDN(int v,int a) /* 造图函数 */ 创建相同特征数据元素的集合
2.6显示模块程序
char Menu() /* 主菜单 */ 主界面中调用简介显示和查询功能的菜单显示。
在主界面中显示景点名称和景点描述的显示。 void narrate() /* 说明函数 */
void output(int sight1,int sight2) /* 输出函数 */ 在图模块基础下调用迪杰斯特拉算法最短路径函数计算后显示输出最短路径及距离。
2.7查询模块程序
void ShortestPath(int num) /* 迪杰斯特拉算法最短路径函数 num为入口点的编号 */ 在主函数main()的调用下运用图模块程序的数据进行计算得出最短路径和距离。 三、测试及运行结果
3.1测试中错误及解决方法
错误1:程序查询一次后返回主界面无法进行循环查询
解决方法:在输入路径那段程序外围加do while循环,让ck!=’e’时程序可进行无限 循环操作
错误2:输入函数写成scanf("%d",num);
解决方法:num=G.vex[i].number=i语句中,num地址存放了操作数字,不引用系统就 出错。因此都在VO,V1前加地址符号。
3.2程序运行结果截图
7
承德油专课程设计总结(报告) 校园导航系统 校园导航系统主界面
显示学校简介
8
承德油专课程设计总结(报告) 校园导航系统 查询景点路径操作
查询行政楼到学校西门的最佳路径结果
9
承德油专课程设计总结(报告) 校园导航系统 继续进行则返回到主界面
四、总结
很快这个学期结束了,顺序结构课程设计也将告一段落,经过这一个学期顺序结课程的学习和这几天做的课程设计,我认为要想学好这门课程,不仅要认真的学习课本知识,更重要的是要通过上机编写调试程序,在实践中增强和巩固知识。特别是我们大专生,更要注重这一环节,这样才有利于我们今后在IT行业的发展。
在这次课程设计中遇到了很多实际性问题,因此也意识到仅仅
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
本上的理论知识还是不能完全解决实际问题呢,自己应该在解决实际问题中,加成自己对知识的理解,不断更正自己以前的错误思维。一切问题要靠自己一点一滴的努力解决,这样一个循序渐进的过程其实是学习知识掌握知识最有效的办法。在校园导航这个系统中,程序其实是比较简单的,主要是解决程序在运行中遇到的问题,程序设计的灵魂就是解决问题逻辑思维和创新能力。在这次程序的设计中,大部分子程序都是摘抄参考书上的,还有参考网上其他同学以前做过的同样的课程设计,主要的是怎么把这些子程序衔接在一块,这就需要对程序的结构很熟悉。通过这次课程设计业意识到自身还存在很多不足,比如很多算法现在还是不能很好的理解和运用,在期间有很多的困惑经过一番努力才得以解决。
不过问题的发现正好激发了自己以后努力学习的激情,这次的课程设计虽然是要求独立完成的,因为这次是小程序所以一个人做也没有多大工作量,不过以后如果要大家一起做大的项目就要求我
10
承德油专课程设计总结(报告) 校园导航系统 们有强烈的团队合作意识,只有良好的分工协作才能保证项目的有条不紊。当然在这次课程设计中遇到不懂的问题,和同学一起讨论以及在老师的指导和强大的百度下都一一攻破了。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名软件工程专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。
我感觉程序设计是为了锻炼我们的实际动手能力,在一定程度上,又增加了我们的各方面的知识,特别是一些联系实际的课程设计,它的完成需要自己平时积累的大量知识、并且需要勤于思考的能力和无限的激情。本次课设主要是学习程序设计的方法,进行程序设计的基本训练,大多数的学生应该把精力放在最基本,最常用的内容上,学好基本功。
经过一星期的的上机实践,感觉自己对顺序就够中的算法有了更深的理解,并能部分运用到实践中,对于不足自己也找到了努力的方向,在运用好C语言的基础上把顺序结构和算法做到融会贯通,更好更简单效率更高的解决程序设计问题,在学习过程中,我会更加注视实践操作,使自己更好地学好计算机。
最后感谢刘老师这学期给我们带来的顺序结构课程的精彩讲解,感谢老师在课程设计中对我的指导,我将永远感激在心,我相信这是我人生中宝贵的财富。老师,谢谢您~祝老师在今后的工作中,一帆风顺,事事顺心。
五、参考文献
【1】 ?《实用数据结构与算法设计》庄晋林,杨彬主编 中国水利水电出版社 2009
?《数据结构试验与学习指导》刘延龄,马秋菊主编 中国水利水电出版社 2008
?《C语言程序设计》 谭浩强主编 清华大学出版社 2008第三版 【2】 ? wenku.baidu.com 百度文库
?豆丁网
六、附录
#include "string.h"
#include "stdio.h"
11
承德油专课程设计总结(报告) 校园导航系统
#include "stdio.h" #include "malloc.h" #include "stdlib.h" #define Max 20000
#define NUM 12
typedef struct ArcCell{ int adj;
}ArcCell;
typedef struct VertexType{ int number;
char *sight;
char *description; }VertexType;
typedef struct{
VertexType vex[NUM]; ArcCell arcs[NUM][NUM]; int vexnum,arcnum; }MGraph;
MGraph G;
int P[NUM][NUM]; long int D[NUM];
void CreateUDN(int v,int a);
void narrate(); void ShortestPath(int num);
void output(int sight1,int sight2);
char Menu();
void main() /* 主函数 */
{int v0,v1;
char ck;
CreateUDN(NUM,11); do
12
承德油专课程设计总结(报告) 校园导航系统
{ck=Menu();
switch(ck)
{case '2':
printf("\n 承德石油高等专科学校是中央与地方共建、以河北省人民政府管理为主的一所普通高
等职业院校,是教育部批准的国家示范性高等职业院校重点建设学校。学校始于1903年创办于天津
的“北洋工艺学堂”,是我国兴办最早的高等工业职业院校。学校人才培养质量和特色受到社会的广
泛认可,毕业生就业签约率连续5年名列河北省同类院校前列。\t\n");
printf("\n\n\t\t\t\t请按任意键继续...\n"); getchar(); getchar();
system("cls"); break;
case '1':
system("cls");
narrate();
printf("\n\n\t\t\t请选择起点景点(0,11):"); scanf("%d",&v0);
printf("\t\t\t请选择终点景点(0,11):");
scanf("%d",&v1);
ShortestPath(v0);
output(v0,v1);
printf("\n\n\t\t\t\t请按任意键继续...\n"); getchar(); getchar();
system("cls"); break;
case '0':
printf("\n\t\t\t谢谢使用承德油专校园导航系统!\n"); exit(0);break;
}}while(ck!='e');}
char Menu() /* 主菜单 */
{char c; int flag;
do{ flag=1;
system("cls");narrate(); printf("\n\t\t?????????????????\n");
13
承德油专课程设计总结(报告) 校园导航系统 printf("\t\t\t? 2、学校简介 ?\n");
printf("\t\t\t? 1、查询景点路径 ?\n");
printf("\t\t\t? 0、退出 ?\n");
printf("\t\t\t? ?\n");
printf("\t\t\t?????????????????\n");
printf("\t\t\t\t请输入您的选择:"); scanf("%c",&c); if(c=='1'||c=='0'||c=='2')
flag=0;
}while(flag);
return c;
}
void CreateUDN(int v,int a) /* 造图函数 */
{ int i,j; G.vexnum=v; G.arcnum=a; for(i=0;i
%s",G.vex[b].sight); /* 输出此节点的名称 */
q=q+1; /* 计数变量加一,满8控制输出时的换行 */
P[a][b]=0; d=b; /* 将b作为出发点进行下一次循环输出,如此反复 */ if(q%8==0) printf("\n");
goto gate;
}}}}}
16
承德油专课程设计总结(报告) 校园导航系统
17