- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、课程设计目的
本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。
设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。
通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
二、课程设计内容
1)问题描述
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。
2)基本要求
(1) 查询各景点的相关信息;
(2) 查询图中任意两个景点间的最短路径。
(3) 查询图中任意两个景点间的所有路径。
(4)增加、删除、更新有关景点和道路的信息
三、课程设计过程
1.需求分析
(1)设计学校的校园平面图,选取出若干的具有代表性的景点构成一个抽象的无向带权图,顶点为景点,边的权值代表了景点间路径的长度。
(2)将景点的序号,名称,介绍存放起来准备查询。
(3)提供任意景点的信息;
(4)提供任意经典的路径查询及其最优路线的查询
(5)平面图景点的增加及删除,以及边和权值(长度)的改变
2.概要设计
1:第一点是主界面的设计,首先,为了该系统各个功能的管理,设计出含有多个菜单项的主菜单界面,可以更方便的使用该系统。
2: 第二点是存储结构的设计,采取了图结构类型(mgraph)存储校园图的信息,景点信息用结构数组vexs存储,而且利用全局变量:visited[]数组用于存储顶点是否被访问标志;d[]数组用于存放权值和查找路径顶点的编号;campus是一个图结构的全局变量。
3: 第三点是设计各个功能的实现,学校景点的介绍通过函数browsecompus()来实现;查询景点间的最段路径通过Floyd(弗洛伊德)算法实现;查询景点间的所有路径通过allpath函数和path函数来实现;更改图的信息可以由主函数changegraph以及其他函数可以实现。
3.详细设计
(1)主要的操作界面的显示以及无向网操作
void initgraph(graph *ga)
{
int i,j;
ga-n=9;
ga-e=11;
for( i=0;iga-n;i++)
{
ga-vexs[i].num=i;
}
strcpy(ga-vexs[0].name,西门);
strcpy(ga-vexs[0].introduce,学校的正大门,设有公交站);
strcpy(ga-vexs[1].name,风雨篮球场);
strcpy(ga-vexs[1].introduce,);
strcpy(ga-vexs[2].name,田径场);
strcpy(ga-vexs[2].introduce,举办运动会,平时体育跑步锻炼等);
strcpy(ga-vexs[3].name,京元食堂);
strcpy(ga-vexs[3].introduce,新食堂);
strcpy(ga-vexs[4].name,苍霞湖畔);
strcpy(ga-vexs[4].introduce,戏称“分手湖”,景色宜人);
strcpy(ga-vexs[5].name,思源楼);
strcpy(ga-vexs[5].introduce,学校王牌土木的教学区);
strcpy(ga-vexs[6].name,图书馆);
strcpy(ga-vexs[6].introduce,是大学城最高的标志性建筑);
strcpy(ga-vexs[7].name,北教区);
strcpy(ga-vexs[7].introduce,北校区集中的教学楼);
strcpy(ga-vexs[8].name,禾堂餐厅);
strcpy(ga-vexs[8].introduce,旧食堂);
for(i=0;iga-n;i++)
for(j=0;jga-n;j++)
ga-edges[i][j]=1000;
ga-edges[0][1]=1;
ga-edges[1][2]=2;
ga-edges[1][3]=5;
ga-edges[2][4]=4;
ga-edges[3][4]=9
文档评论(0)