本次设计其实就是数据结构中图类的问题。将校园景点作为图的结点,将景点间的路径作为图的边,路径距离作为边的权值。这样一来,求两景点间最短路径的问题就抽象成了求图中一结点到另一结点的问题。这也是计算机代替人工的一个实例,也是软件工程必不可少的基础。为高校校园设计一个导游系统,探讨从数据结构角度出发如何解决实际问题。
三.详细设计过程 3.1 景点基本信息的设计 为了方便操作,每一个景点名称用一个代码表示,因此景点基本信息设计成结构体类型,此类型包含两个成员变量:景点名称及其代码。在此我设计了10个景点,具体如下: struct Sight { char Name[40]; int Num; }W[10] = {{"柳池", 1},{"北山体育场", 2},{"龙山体育场", 3},{"老区图书馆", 4}, {"西科花园", 5},{"科技中心", 6}, {"行政楼", 7},{"九洲湖",8}, {"逸夫图书信息中心",9},{"新区运动场",10}}; 3.2 顺序表的设计 一个景点存在自己的名字和代码等信息,两个景点之间有一个距离,由于系统模拟中要用到这些参数,因此可用顺序表来存储这些参数。 在顺序表中频繁存取数据,必然少不了存取操作,因此顺序表中需要设计一个插入函数void Insert(DataType &item,int pos)const和一个删除函数DataType Delete(const int pos) 。当在顺序表的pos存入一个数据item时,pos后的每一个元素依次后移;当删除pos处的数据元素时,pos后的元素依次前移。当求最短路径时需要取某个景点或某条路径的值,所以还需设计取值函数DataType GetData( int pos)const。另外顺序表中的一些基本函数也是必须设计的,如:取表中元素个数的函数int ListSize(void) const ;判断表空否的函数int ListEmpty(void) const 等。
|