校车信息管理系统c语言程序,数据结构实训试题.doc

河南工程学院《数据结构与算法》课程设计

综合题目:河南工程学院导航系统自选题目:教学计划编制问题

2016年1月8日

综合设计题目录

TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc406406656" 一.设计目的1 HYPERLINK \l "_Toc406406657" 二.问题描述1 HYPERLINK \l "_Toc406406658" 三.测试数据1 HYPERLINK \l "_Toc406406659" 四.算法思想2 HYPERLINK \l "_Toc406406660" 五.算法设计3 HYPERLINK \l "_Toc406406661" 六.C语言实现的程序清单6 HYPERLINK \l "_Toc406406662" 七.测试结果22 HYPERLINK \l "_Toc406406663" 八.设计体会25

PAGE \* MERGEFORMAT 24

一.设计目的通过课程设计,熟练掌握数据结构中对图的知识的了解和应用,在他人使用本系统之前,需要有学校管理人员对学校的内部结构进行管理,对路线、距离等信息进行上传,所以上传者要对图的知识有一定的了解。在这次实训中,我们选取校园内的几个具有代表性的建筑物并将其抽象成一个有向带权图,以图中的节点代表校园的建筑物,以结点之间的弧代表建筑物之间的距离,以距离来规定乘坐校车的费用,从而构建校园内的导航系统,并为不同人群提供服务。由于在查询时需要查询最短距离和最小费用,所以我们采用了迪杰斯特拉算法和弗洛伊德算法进行计算,并对两种算法进行比较,选择较为合理和准确的算法作为本系统的运算结果。根据用户指定的始点和终点可以查询相应路线的距离,乘车费用等信息。利用本系统,用户可以查询管理人员上传的关于所有建筑物路线的通行信息。二.问题描述本程序的功能包括有向带权图的建立,以及求解图的连通性问题,求解图的关键路径问题。程序运行后,首先需要管理员对后台进行一定的管理,输入校园内各个建筑物之间的路程,费用等信息。管理人员对后台管理之后,用户进入可选择相应的功能,包括距离查询,校车费用查询,各建筑物的连通路线情况。程序运行后会显示相应的提示信息,等待用户选择后,显示相应的运行结果以供用户参考使用。三.测试数据进入系统后,首先需要管理员对后台进行一定操作,对输入的数据进行保存,以供用户使用。管理人员及用户主要输入整型及字符串数据,输入以后按回车键,利用系统内部的程序对数据进行相应的管理,并显示相应结果。管理人员使用时,主要是对抽象图的建立,而用户使用则是对图的遍历及求解图的连通性问题,求解相应路径问题等。测试数据为:“图书管”,“餐厅”,“男生宿舍”,“1”,“2”,“3”等。测试过程:1、建立有向带权图,如下所示:

图书馆

10

8超市

851

12餐厅

活动中心

2

男生宿舍

管理员及客户操作流程见流程图:四.算法思想1、图的数据结构图是一种较线性表和树更为复杂的数据结构,在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关,这也正符合现实生活中城市与城市、道路与城市、道路与道路、建筑与建筑等之间关系。由此,图的应用及其广泛,特别是近年来的迅速发展,已渗入到诸多学科当中。图的存储结构 图的建立也可称为图的存储结构。由于图的结构比较复杂,任意两个顶点之间 都可能存在联系,因此无法以数据元素在存储区中的物理位置来表示数据元素之间 关系,即图没有顺序映像的存储结构,但可以借助数组的数据类型表示元素之间的 关系。另一方面,用多重链表表示图是自然的事,它是一种最简单的链式映像结构, 即以一个由一个数据域和多个指针域组成的结点表示图中一个顶点,其中数据域存 储该定点的信息,指针域存储指向其邻接点的指针。但是,由于图中各个结点的度 数各不相同,最大度数和最小度数可能相差很多,因此,若按度数最的大顶点设计 结点结构,则会浪费很多存储单元;反之,若按每个顶点自己的度数设计不同的结 点结构,又会给操作带来不便。因此,和树类似,在实际应用中不宜采用这种结构, 而应根据具体的图和需要进行的操作,设计恰当的结点结构和表结构。常用的又邻 接表、临界多重表和十字链表。这里不再对其进行一一讨论。图的遍历 在遍历的时候,我们希望从图中某一顶点出发遍历图中其余顶点,且使每一个 顶点仅被访问一次,这个过程叫做图的遍历。然而,图的遍历较为复杂。因为图的 任一顶点和其余顶点相邻。所以在访问了某

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值