没有合适的资源?快使用搜索试试~ 我知道了~
毕业论文设计--中南大学数据结构课程设计.doc
0 下载量 177 浏览量
2023-06-30
05:01:25
上传
评论
收藏 362KB DOC 举报
温馨提示
试读
34页
毕业论文设计--中南大学数据结构课程设计.doc
资源推荐
资源详情
资源评论
数据结构课程设计
学院: 信息科学与工程学院
专业班级:
指导老师:
学号:
姓名:
1
目录
校园导游咨询系统............................................................................................................................2
1.1.题目与要求........................................................................................................................2
1.2.设计与实现........................................................................................................................2
基本思路............................................................................................................................2
主要数据结构....................................................................................................................3
程序的算法和主要流程....................................................................................................4
程序实现过程中的主要难点和解决方法........................................................................5
1.3.实验结果及分析................................................................................................................6
实验的准备........................................................................................................................6
实验结果及分析................................................................................................................8
1.4.总结..................................................................................................................................9
简单的职工管理系统 ...................................................................................................................10
2.1.题目与要求......................................................................................................................10
2.2.设计与实现......................................................................................................................10
基本思路..........................................................................................................................10
主要数据结构..................................................................................................................11
程序的算法和主要流程..................................................................................................11
程序实现过程中的主要难点和解决方法......................................................................13
2.3 实验结果及分析...............................................................................................................15
实验的准备......................................................................................................................15
实验结果及分析..............................................................................................................16
2.4 总结...................................................................................................................................19
附件:..............................................................................................................................................20
2
校园导游咨询系统
1.1.题目与要求
1) 自己画一张简易的校园平面图,有三个校区和三所附属医院,在这些校
区和医院内选 10 个以上的建筑物、办公室、宿舍等地名。以图中顶点表
示校园内各地名,存放地名名称、代号、简介等信息;以边表示路径,存
放路径长度等有关信息。
2) 为来访客人提供图中任意地名相关信息的查询。
3) 为来访客人提供任意地名的问路查询,即查询任意两个地名之间的一
条最短路径。
实现提示:一般情况下,校园的道路是双向通行的,可设计校园平面图是
一个无向网。顶点和边均含有相关信息。
1.2.设计与实现
基本思路
校园导游拓扑图是由景点和景点之间的路径组成的,所以这完全可以用数
据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所
以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结
3
点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景
点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给
每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用弗洛伊
德(Floyd)算法实现。最后用 switch 选择语句选择执行浏览景点信息或查询
最短路径。
主要数据结构
链接矩阵,相关代码
typedef struct arc
{
int adj; //路径长度
}arc,adjmatrix[40][40]; //建一个结构体数组保存路径长度
typedef struct scenery //存储景点信息
{
int num;//景点编号
char name[20];//景点名称
char introduction[200];//景点介绍
}scenery;
typedef struct graph
{
scenery vexs[40]; //点
adjmatrix arcs; //边
int vexnum,arcnum; //点与边的个数
}graph;
graph b;
4
程序的算法和主要流程
用弗洛伊德算法实现最短路径:
void floyd(graph *G) //求有向网 G 中各对顶点 v 和 w 之间
的最短路径 p[v][w]
{ int v,u,i,w,k,j,flag=1, //及其带权长度 D[v][w],若 p[v][w][u]
为 TRUE
p[10][10][10],D[10][10]; //则 u 是从 v 到 w 当前求得最短路径
上的点
for(v=0;v<G->vexnum;v++)
for(w=0;w<G->vexnum;w++)
{
D[v][w]=G->arcs[v][w].adj; //初始路径赋值
for(u=0;u<G->vexnum;u++)
p[v][w][u]=0;
if(D[v][w]<9999) //从 v 到 w 有直接路径
{
p[v][w][v]=1;
p[v][w][w]=1;
}
}
for(u=0;u<G->vexnum;u++)
for(v=0;v<G->vexnum;v++)
for(w=0;w<G->vexnum;w++)
if(D[v][u]+D[u][w]<D[v][w])
{
D[v][w]=D[v][u]+D[u][w];
for(i=0;i<G->vexnum;i++)
p[v][w][i]=p[v][u][i]||p[u][w][i];
}
主要流程:
int main()
{
b=initgraph(); //初始化
while(1)
{
Menu(); //界面
int choice; //选择功能
cin>>choice;
switch(choice)
剩余33页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3624
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功