数据结构课程设计报告含代码.doc

上传人:李司机 文档编号:1096469 上传时间:2022-06-24 格式:DOC 页数:15 大小:99.19KB
返回 下载 相关 举报
数据结构课程设计报告含代码.doc_第1页
第1页 / 共15页
数据结构课程设计报告含代码.doc_第2页
第2页 / 共15页
数据结构课程设计报告含代码.doc_第3页
第3页 / 共15页
数据结构课程设计报告含代码.doc_第4页
第4页 / 共15页
数据结构课程设计报告含代码.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据结构课程设计报告含代码.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告含代码.doc(15页珍藏版)》请在三一办公上搜索。

1、XX郵電學院数据结构课程设计报告题目: 校园导航系统院系名称: 计算机学院专业名称: 计算机科学与技术班 级: 学生姓名: 学号8位: 指导教师: 设计起止时间:20XX月11日20XX月15日15 / 15一. 设计目的1.通过本次课程设计巩固数据结构中所学的内容;2.提高自己上机编程以及调试能力。二. 设计内容1.设计所在学校的校园平面图.所含景点不少于10个。以图中顶点表示校园内各景点.存放景点名称、代号、简介等信息;以边表示路径.存放路径长度等相关信息。2.为来访客人提供图中任意景点相关信息的查询。3.为来访客人提供图中任意景点的问路查询.即查询任意两个景点之间的一条最短的简单路径。三

2、概要设计1功能模块图;主程序景点信息介绍输入各个景点的遍历校园平面图显示图的建立与修改景点信息路径查询 文件的读取与保存密码退出程序2各个模块详细的功能描述。1. 可以手动创建一个校园图。 2. 可以直接从文件读取校园各个景点的信息。 3.可选择从任意个景点作为起点进行遍历。 4. 输入景点序号查询该景点相关信息。 5. 输入两个景点查询两个景点的最短.最佳及其所有的路径。 6. 将校园图信息保存入文件。4 详细设计1功能函数的调用关系图判断密码显示menu调用相应函数返回主菜单密码3次错误密码正确输入密码具体分函数退出程序 开始管理系统程序是否退出?执行函数相应的操作 main readve

3、rnumarcnumfile readarcnumvernumfilesearchshortloadfindvernumcreatdncreatvisitedlocatevertexdepthfirstsearchfloyd2各功能函数的数据流程图1.Adjmatrix *g即结构体对象在main中被创建在其他子函数中进行参数传递。2. 全局变量visited数组depthfirstsearchcreatvisitedvisitedvisited数组在creatvisited中被初始化.然后再在depthfirstsearch中用。3. 全局变量shorest,path 在floyd中被赋值来

4、分别记录vi-vj最短路径和 vi-vj所经过景点。3重点设计及编码两景点最短距离 弗洛伊德算法void floyd int i,j,k;fori=0;ivexnum;i+forj=0;jvexnum;j+shortestij=0;fori=0;ivexnum;i+forj=0;jvexnum;j+shortestij=g-arcsij.adj;pathij=0;fori=0;ivexnum;i+forj=0;jvexnum;j+fork=0;kvexnum;k+if shortestij=shortestik+shortestkj;pathij=k;pathji=k;五测试数据及运行结果1正

5、常测试数据和运行结果要求提供3组正常测试数据和运行结果211 校门 呈长方形,校训:爱国、求实、奋进2 喷泉 呈鸽子形状,喷射出水花3 教学楼 传授知识和学习知识4 实验楼 供学生进行课程实验和教师办公5 洗浴中心 供学生洗澡,内设单人间和双人间6 美食广场 仅一层,快餐味道不错7 图书馆 共七层,存储大量书籍供学生查阅和学习8 旭日苑 共三层,主要的就餐场所9 体育馆 内设篮球场,羽毛球场和观看席10 宿舍 休息的场所522 喷泉 呈鸽子形状,喷射出水花61 91-2-7-91-9 最短距离:570米2异常测试数据及运行结果要求提供2组异常测试数据和运行结果9无此功能模块请重新输入511无此

6、景点请重新输入六调试情况.设计技巧及体会1改进方案1.可将景点文件.边文件及账户密码合并为一个文件。2. 可设管理员.是管理员才能进行创建和修改.而客户只能进行查询。3. 可选用更好的算法.提升查询路径的速度。2体会回顾起此课程设计.至今我仍感慨颇多.从理论到实践.在这段日子里.可以说得是苦多于甜.但是可以学到很多很多的东西.同时不仅可以巩固了以前所学过的知识.而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的.只有理论知识是远远不够的.只有把所学的理论知识与实践相结合起来.从理论中得出结论.才能真正为社会服务.从而提高自己的实际动手能力和独立思考的

7、能力。七参考文献数据结构 杨剑 主编 清华大学出版社数据结构 .严蔚敏_吴伟民.主编 清华大学出版社八附录:源代码电子版#include#include#include#include#define maxsize 40 /最大景点数#define infinity 32768 /两景点不可到距离长度int visitedmaxsize; int pathmaxsizemaxsize;int shortestmaxsizemaxsize;typedef struct int top;char infomaxsize;char introducemaxsize;data;typedef stru

8、ct node int adj;node;typedef struct data vertexmaxsize;node arcsmaxsizemaxsize;int vexnum,arcnum;adjmatrix;void Cipher FILE *fp;char user020, user120, cipher010, cipher110, ch;int i;fp = fopen;iffp=fopen=NULLprintf;exit;fscanf;fclose;printf;printf;printf;printf;printf;scanf;printf;for i = 0; ich = g

9、etch;if break;printf;cipher1i = ch;cipher1i = 0;printf;ifstrcmp != 0system;/*清屏*/printf;main;ifstrcmp != 0system;/*清屏*/printf;main;elsesystem;/*清屏*/printf;void Browsersystem ;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf

10、;printf;printf;printf;printf;printf;printf; printf;printf; printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;pri

11、ntf; printf;void PlaceListsystem ;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;int locatevertex int j,k;fork=0;kvexnum;k+ifvertexk.top=v j=k;break;return;void creatdn int i,j,k,weight;data v1,v2;printf;scanfvexnum,&g-arcnum;fori=0;ivexnum;i+forj=0;jvexnu

12、m;j+g-arcsij.adj=infinity;fori=0;ivexnum;i+ printf;scanfvertexi.top;getsvertexi.info;printf;getsvertexi.introduce;fork=0;karcnum;k+ printf;scanf;printf;scanf;i=locatevertex;j=locatevertex;g-arcsij.adj=weight;g-arcsji.adj=weight;void creatvisited int i;fori=0;ivexnum;i+visitedi=0;void depthfirstsearc

13、h int k;visitedv=1;printfvertexv.top,g-vertexv.info;fork=0;kvexnum;k+ifarcsvk.adj!=infinitydepthfirstsearch;int patmaxsize,visitedmaxsize;int top=0;void Depsearch int v,i;top+;pattop=num1;visitednum1=1;iffori=0;iprintf,G-vertexpati.info;printf;visitednum1=0;top-;return ;forv=0;vvexnum;v+ifarcsnum1v.

14、adj Depsearch;visitednum1=0;top-;void allwaysint num1,num2,i; char c=y;whileprintf请输入起始和终点的景点编号:;scanf;top=-1;fori=0;ivisitedi=0;Depsearch;printfn是否继续查询最短路径:;/system;scanf;c=getchar; printf;void search int i,n;creatvisited;fori=0;ivexnum;i+printfvertexi.top,g-vertexi.info;printf请输入遍历的起点序号:n,g-vexnum

15、;scanf;depthfirstsearch;void vernumfile FILE *fp;int i;fp=fopen;fori=0;ivexnum;i+fprintfvertexi.top,g-vertexi.info,g-vertexi.introduce;fclose;void arcnumfile FILE *fp;int i,j;fp=fopen;fori=0;iarcnum;i+forj=0;jarcnum;j+ifarcsij.adj!=infinity fprintfvertexi.top,g-vertexj.top,g-arcsij.adj;fclose;void r

16、eadvernum FILE *fp;int i=0;fp=fopen;whilefscanfvertexi.top,g-vertexi.info,g-vertexi.introduce!=EOF printfvertexi.top,g-vertexi.info;printfvertexi.introduce;printf;i+;g-vexnum=i;fclose;void readarcnum FILE *fp;int i=0,j=0,k=0;fori = 0 ; i vexnum ; i+forj = 0 ; j vexnum ; j+g-arcsij.adj = infinity;fp=

17、fopen;whilefscanf!=EOF g-arcsi-1j-1.adj=k;fclose;void findvernum int i,n,a;char choice;fori=0;ivexnum;i+printfvertexi.top,g-vertexi.info;printf;printf;printf;scanf;doprintf请输入要查询的景点序号:n,g-vexnum;scanf;printfvertexn-1.info;printfvertexn-1.introduce;printf;printf是否继续查询:n;flushall;scanf;while;void floy

18、d1 int i,j,k;fori=0;ivexnum;i+forj=0;jvexnum;j+shortestij=0;fori=0;ivexnum;i+forj=0;jvexnum;j+shortestij=g-arcsij.adj;pathij=0;fori=0;ivexnum;i+forj=0;jvexnum;j+fork=0;kvexnum;k+if shortestij=shortestik+shortestkj;pathij=k;pathji=k;void shortload int i,j,a,b;PlaceList;floyd1;printf请输入起始景点和终止景点:n,g-v

19、exnum;scanf;a=i;b=j;i=i-1;j=j-1;ifi printf;whileprintf;ifij=pathij; else i=pathji;printf;printf;printf%d 距离是:%d米nn,a,b,shortesta-1b-1;else printf;/whileprintf;ifij=pathij;elsei=pathji;printf%d,b;printf;printf%d 最短距离是:%d米nn,a,b,shortesta-1b-1; void suoyou int i,j,a;printf请输入起始景点和终止景点:n,g-vexnum;scanf

20、;a=j-i;for0;a-printf%d,i+1;meunchar choice;adjmatrix *g;g=mallocsizeof;system ;while printf; printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;choice=getchar;switch case 1: creatdn;break; case 2: search;break; case 3: vernumfile;arcnumfile;break; case 4: readvernum; readarcnum;break; case 5: findvernum;break; case 6: shortload;break; case 7: shortload;break; case 8: allways;break; case 9: Browser;break; case 0: printf;exit; printf;getch;flushall;system;mainCipher ;meun;

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号