高校专用通信网络建设概要Word文档格式.docx

上传人:b****1 文档编号:1112133 上传时间:2023-04-30 格式:DOCX 页数:67 大小:539.66KB
下载 相关 举报
高校专用通信网络建设概要Word文档格式.docx_第1页
第1页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第2页
第2页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第3页
第3页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第4页
第4页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第5页
第5页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第6页
第6页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第7页
第7页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第8页
第8页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第9页
第9页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第10页
第10页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第11页
第11页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第12页
第12页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第13页
第13页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第14页
第14页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第15页
第15页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第16页
第16页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第17页
第17页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第18页
第18页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第19页
第19页 / 共67页
高校专用通信网络建设概要Word文档格式.docx_第20页
第20页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

高校专用通信网络建设概要Word文档格式.docx

《高校专用通信网络建设概要Word文档格式.docx》由会员分享,可在线阅读,更多相关《高校专用通信网络建设概要Word文档格式.docx(67页珍藏版)》请在冰点文库上搜索。

高校专用通信网络建设概要Word文档格式.docx

计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。

前期准备工作完备与否直接影响到后序上机调试工作的效率。

在程序设计阶段应尽量利用已有的标

准函数,加大代码的重用率。

2、设计的题目要求达到一定工作量(300 

行以上代码),并具有一定的深度和难度。

3、程序设计语言推荐使用 

C/C++,程序书写规范,源程序需加必要的注释;

4、每位同学需提交可独立运行的程序;

5、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少

于 

10 

页(代码不算);

6、课程设计实践作为培养学生动手能力的一种手段,单独考核。

数据结构课程设计报告第1页,共页

3.课程设计说明书

一 

需求分析

[问题描述]

中国移动公司正在积极推广 

3G 

通信应用,计划在江苏高校之间建立一个专用通信网络,请为其

规划一个投资最省的通信线路架设方案。

[数据需求]

高校(高校名称,地址,数量)

高校间的线路

线路的成本

[功能需求]

能够构造通信网络系统,编辑通信网络系统,销毁通信网络系统,添加高校,删除高校,修改

高校名,添加高校间的线路,删除高校间的线路,修改线路的成本,能生成最佳方案,输出通信网

络系统,保存通信网络系统。

[性能需求]

输出方案的结果直观、明确

二 

概要设计

高校专用通信网络建设

构造

通信

网络

编辑

生成

最佳

方案

输出

保存

销毁

添加

删除

高校

修改

线路

成本

间的

ADT 

LinearList{

数据元素:

D={ai|ai∈D0,i=1,2,……,n,n≥0,D0 

为高校}

关系:

S={<ai,ai+1>|ai,ai+1∈D0,i=1,2,……,n-1}

基本操作:

InitList(L)初始化 

为空表

DestoryList(L)销毁 

L

ClearList(L)将 

置为空表

ListLength(L)若 

为空表则返回 

0,否则返回表中元素个数

Locate(L,e)若 

中存在元素 

则将当前指针指向 

所在位置并返回真

GetData(L,i)返回 

中第 

个元素的值

InsList(L,I,e)在 

个位置插入 

e,L 

的长度增加 

1

DelList(L,I,&

e) 

删除 

的第 

个元素,并用 

返回其值,L 

长度减少 

}ADT 

LinearList

数据结构课程设计报告第2页,共页

数据定义:

typedef 

struct 

ArcNode

{

int 

adj;

//权值

}ArcNode;

struct

{string 

vexs[MAX_VERTEX_NUM];

//顶点

ArcNode 

arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

//邻接矩阵

vexnum,arcnum;

//顶点数和边数

}graph;

//图的类型

string 

adjvex;

lowcost;

}minside;

//求最小生成树时的辅助数组的类

void 

menu(graph 

*g);

//菜单

Editgraph(graph 

//编辑通信网络系统

Creategraph(graph 

*g)//创建通信网络系统

InsertVex(graph 

*g,string 

v)//添加高校

ChangeVex(graph 

v)//修改高校名

InsertArc(graph 

v,string 

w)//添加高校间的路线

DeleteArc(graph 

w)//删除高校间的路线

ChangeWeight(graph 

w) 

//修改高校间的路线及其成本

Destroygraph(graph 

*g)//销毁通信网络系统

Display(graph 

*g)//输出通信网络系统

save(graph 

*g)//保存通信网络系统

main()主函数

Menu()菜单

mn

InPutNumber(m)

Creategraph()InsertVex(

三 

详细设计

创建通信系统

*g)

DeleteVex() 

ChangeVex() 

Destorygraph()

数据结构课程设计报告第3页,共页

i,j,k,w;

va,vb;

读取文件"

通信网络.txt"

if(未找到文件)

cout<

<

"

open 

error!

endl;

return 

0;

}

从文件读入顶点数

从文件读入边数

顶点向量

infile>

>

(*g).vexs[i];

初始化邻接矩阵

for(j=0;

j<

(*g).vexnum;

++j)

(*g).arcs[i][j].adj=INFINITY;

//网

for(k=0;

k<

(*g).arcnum;

++k)

va>

vb>

w;

i=LocateVex(g,va);

j=LocateVex(g,vb);

无向网

infile.close();

1;

开始

能否读取文件

N

Y

Open 

error

创建成功

数据结构课程设计报告第4页,共页

结束

添加高校

v)

//在图 

中增添新顶点 

v

if(顶点数为 

0)

未建立通信网络系统!

\n"

;

system(暂停);

Editgraph(g);

请输入要添加的高校名:

cin>

v;

n=LocateVex(g,v);

if(高校名重复)

该高校已存在!

i;

构造新顶点向量

for(i=0;

i<

=(*g).vexnum;

i++)

初始化该行邻接矩阵的值

初始化该列邻接矩阵的值

图 

的顶点数加 

删除学校

DeleteVex(graph 

// 

中顶点 

及其相关的弧

k=LocateVex(g,v);

if(k<

不存在该学校!

数据结构课程设计报告第5页,共页

i,j;

m=0;

if( 

不是图 

的顶点)

m=无限;

j++)

if(有入弧或边)

修改弧数

for(序号 

后面的顶点向量依次前移)

(*g).vexs[j-1]=(*g).vexs[j];

for(j=k+1;

移动待删除顶点之后的矩阵元素

移动待删除顶点之下的矩阵元素

更新图的顶点数

修改高校名

v)//修改高校名

请输入要修改的高校名:

if(n<

s;

请输入修改后的高校名:

g->

vexs[n]=s;

添加路线

w)

{//在 

中增添弧<

v,w>

若 

是无向的,则还增添对称弧<

w,v>

数据结构课程设计报告第6页,共页

请输入要添加的线路的两端的高校名:

v>

v1,w1;

v1=LocateVex(g,v);

//尾

w1=LocateVex(g,w);

//头

if(v1<

0||w1<

0||v1==w1)

高校名输入错误!

else 

if(路线两头高校名重复)

该线路已存在!

弧或边数加 

请输入该条线路的建设费用:

(*g).arcs[v1][w1].adj;

bool 

bRet 

cin.good();

if(!

bRet)

输入的成本不是整型的!

exit(0);

(*g).arcs[w1][v1].adj=(*g).arcs[v1][w1].adj;

删除线路

//在 

中删除弧<

是无向的,则还删除对称弧<

请输入要删除的线路的两端的高校名:

数据结构课程设计报告第7页,共页

m=LocateVex(g,w);

if(m<

0||n<

0||m==n)

学校名输入错误!

if(花费无限)

不存在该线路!

arcs[n][m].adj=INFINITY;

(*g).arcs[m][n].adj=(*g).arcs[n][m].adj;

(*g).arcnum--;

四 

程序设计与调试分析

1.程序中运用到大多的插入与删除,但应前期需求分析的准备工作不充分,导致程序运行功能不

全,比如查找时关于此书的信息不能全部显示出来,并且添加删除时库存的变化不能直接显示

出来。

程序的健壮性不能达到预期的结果,这些都是需要改进的。

2.在程序中的函数调用是个非常重要的部分,也是经常需要用到的,在编写程序过程中,因为函

数调用不准确,使得循环进不去,后来改变函数的调用关系,才达到了预期结果。

五 

用户手册

【使用说明】

1.进入高校专用通信网络系统

2.选择 

1.构造通信网络系统,显示出 

个高校 

45 

条线路的通信系统矩阵。

3.若创建成功,选择 

2.编辑通信网络系统,显示出功能 

1~8。

4.若要销毁系统,选择 

1.销毁通信网络系统。

5.若要添加高校,选择 

2.添加一个高校,并输入要添加的高校名。

6.若要删除高校,选择 

3.删除一个高校,并输入要删除的高校名。

若输入的高校名不存在,则显

示不存在该学校。

7.若要修改高校名,选择 

4.修改高校名,并输入要修改的高校名。

8.若要添加高校间的线路,选择 

5.添加一条高线间的线路,并输入要添加线路两端的高校名。

数据结构课程设计报告第8页,共页

输入的高校名错误在则显示学校名输入错误。

9.若要删除高线间的线路,选择 

6.删除一条高校间的线路,并输入要删除线路两端的高校名。

输入的高校名不存在则显示学校名输入错误。

10. 

若要修改线路的成本,选择 

7.修改线路的成本,并输入要删除线路连段的高校名。

若输入的高

校名不存在则显示学校名输入错误。

11. 

若要推出编辑通信网络系统,选择 

8.退出。

回到高校专用通信网络建设系统。

12. 

若要生成最佳方案,选择 

3.生成最佳方案。

并输入起始学校和要保存的文件名。

13. 

若要输出通信网络系统,选择 

4.输出通信网络系统。

14. 

若要保存通信网络系统,选择 

5.保存通信网络系统。

并输入要保存的文件名。

15. 

退出,选择 

6.退出系统。

六 

测试成果

构造通信网络系统

编辑通信网络系统,添加一个高校

删除一个高校

数据结构课程设计报告第9页,共页

添加一条高校间的线路

删除高校间的线路

数据结构课程设计报告第10页,共页

修改高校间的成本

生成最佳路线

输出通信网络系统

数据结构课程设计报告第11页,共页

保存通信网络系统

七 

附录(源程序清单)

#include 

stdafx.h"

iostream>

iomanip>

windows.h>

fstream>

string>

#define 

MAX_VERTEX_NUM 

30

INFINITY 

32768

using 

namespace 

std;

数据结构课程设计报告第12页,共页

LocateVex(graph 

v)//求顶点位置函数,若 

存在,输出 

j;

若不存在,输出 

j=-1,k;

vexnum;

k++)

if(g->

vexs[k]==v)//判断是否存在顶点 

j=k;

break;

*g)//采用邻接矩阵法,构造有向网 

g

ifstream 

infile("

ios:

:

in);

//从文件中读入数据

infile)

数据结构课程设计报告第13页,共页

//从文件读入顶点数

arcnum;

//从文件读入边数

++i) 

//顶点向量

//初始化邻接矩阵

(*g).arcs[i][j].adj=(*g).arcs[j][i].adj=w;

//无向网

vexnum==0)

system("

pause"

);

数据结构课程设计报告第14页,共页

if(n>

=0&

&

v==g->

vexs[n])

(*g).vexs[(*g).vexnum]=v;

//构造新顶点向量

(*g).arcs[(*g).vexnum][i].adj=INFINITY;

//初始化该行邻接矩阵的值

(*g).arcs[i][(*g).vexnum].adj=INFINITY;

//初始化该列邻接矩阵的值

(*g).vexnum+=1;

数据结构课程设计报告第15页,共页

0) 

//v 

的顶点

m=INFINITY;

if((*g).arcs[j][k].adj!

=m) 

//有入弧或边

//修改弧数

j++) 

//序号 

后面的顶点向量依次前移

(*g).arcs[i][j-1]=(*g).arcs[i][j];

//移动待删除顶点之后的矩阵元素

(*g).arcs[j-1][i]=(*g).arcs[j][i];

//移动待删除顶点之下的矩阵元素

(*g).vexnum--;

//更新图的顶点数

数据结构课程设计报告第16页,共页

arcs[v1][w1].adj!

=INFINITY)

pa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2