课程设计报告---管道铺设施工的最佳方案选择
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计报告-----管道铺设施工的最佳方案选择
利用Prim算法提供N个居民区间煤气管道铺设的决策方案。
目录
一、系统设计要求---------------------------------------------------------------2
二、系统框架--------------------------------------------------------------------- 2
三、系统详细设计---------------------------------------------------------------3
四、系统运行和测试------------------------------------------------------------4
五、课程设计收获---------------------------------------------------------------5
一、系统设计要求
N(N>10)个居民区之间需要铺设煤气管道。假设任意两个居民区之间都可以铺设煤气管道,但代价不同。要求事先将任意两个居民区之间铺设煤气管道的代价存入磁盘文件中。设计一个最佳方案使得这N个居民区之间铺设煤气管道所需代价最少,并将结果以图形方式在屏幕上输出。
二、系统框架
1.系统框架
2.说明:主控模块是有C#代码完成,在Prim.Dll中有函数:
EXPORT void Prim(char * cPre,char *cInf,int length);
//cPre:结点的一个字符数组(格式:A B ...)
//cInf:边的一个字符数组。(格式:(A, B) x...)
在主控模块中有类:
class DllManagement
{
[DllImport("..\\..\\Lib\\Prim.Dll")]
public static extern void Prim(string strPre,string strInf,int length);
}
这样在主控模块中直接调用DllManagement.Prim函数就可以直接调用C++
Dll函数了。(具体的用C#调用Dll函数的信息请查看相关资料)
三、系统详细设计
1.数据结构设计。
最小生成树算法:Prim
class Mgraph
{
public:
MGraph(string strNodes,string edges);
~MGraph(){}
void PrimMinSpanTree();//Pime
private:
T vertex[Maxsize]; //store the vertex data
int arc[Maxsize][Maxsize];//store the arc data
int vertexNum; //store the number of v
int arcNum; //store the number of arc
};
2.系统模块间的信息传递。
主控模块和Prim.Dll之间以两个String类型变量联系,在Prim.Dll将方案算出后将结果存在当前目录下的temp.txt文件中,然后主控模块读取相应的信息并将信息转换成相应的图形,输出在C#的PictureBox上。
四、系统运行和测试
1、系统开始运
在运行后可以从输入模块输入各居民区煤气管道的造价,也可以直
接从文本文件中读取相应信息。
2、载入信息后
3、决策后的输出
在决策显示后可以选择保存将相应的图形保存到自己的磁盘中。
五、课程设计收获
在这次课程设计我有很多的收获:在数据结构上,对于图的几个核心算
法有了更深的体会,能够将所学习的数据结构知识运用到实践中去;在程序设计方面,对于编程的思想有了更深的体会,对于程序代码的结构性有了更多的认识,并且能够选择语言载体来实现自己的思想,虽然没有学过C#语言,但是在暑假的自己摸索后能够写出这样的一个小系统。