欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    数据结构课程设计校园导航系统.doc

    • 资源ID:2396701       资源大小:267.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计校园导航系统.doc

    课程设计报告课程设计题目:校园导航系统 学生姓名 张强专 业 计算机科学与技术班 级 102004102学 号 1020410215指导教师 艾菊梅 2012年 6 月 19 日一、课程设计题目校园导航系统二、实验时间、地点时间:第19周地点:东华理工大学软件楼三、实验目的 本次课程设计的主要目的是综合运用所学的数据结构知识解决一个比较实际问题,侧重对链表、数组、字符串、图、树等相关内容的综合应用,使同学们能进一步熟悉掌握数据结构的基础知识,进一步提升自己的解决问题和编程调试能力,为后续专业课程的学习打下良好的基础。四、实验要求1. 了解数据结构及其分类、数据结构与算法的密切关系; 2. 熟悉各种基本数据结构及其操作,学会根据实际问题来选择数据结构; 3. 掌握设计算法的步骤和分析方法; 4. 掌握数据结构在排序和查找等常用算法中的应用。5. 独立完成;6 每个人需按照选题规则确定好自己的题目(注意不是多人完成一题,每人独立完成一题),不得以任何理由选择其他的题目,当然在完成自己的题目之后根据个人兴趣可以继续选做其他的题目;7课程设计完成后严格按照报告格式撰写课程设计报告,并于结束后的第三天上交到学习委员统一交给老师;8课程设计的成绩由两部分组成:程序检查成绩(40,每个功能占程序分的20%)报告检查成绩(40)平时考核(20%)五、实验思路 校园简图(无向图):北门1体育馆3软件楼2西食堂4东门6图书馆5三栋7南区10适、西寝室9西食堂8对应的邻接矩阵:1 2 3 4 5 6 7 8 9 101 1 150 max max max max max max max max2 150 1 250 300 250 max max max max max 3 max 250 1 100 max max max max max max4 max 300 100 1 200 150 300 max max max5 max 250 max 200 1 350 50 max max max6 max max max 150 350 1 350 max max 6007 max max max 300 50 350 1 100 max max8 max max max max max max 100 1 100 max 9 max max max max max max max 100 1 45010 max max max max max 600 max max 450 1程序总流程:开始输出菜单,输入一个数判断输入的数值输入起点、目的输入查询点查找最短路径、路径查找周边地点输入一个数是否为1退出输出错误为2为1非1、2、3为3非1为1 程序使用无向图表示校园简图,采用邻接矩阵表示各点间的关系、距离,运用结构体记录各信息,通过迪杰斯特拉算法计算两个地点间的最短路径,运用算法记录点到各个点的最短路径、记录最短路径的上各个点。六实现过程用结构体记录图的各项信息:class Graph public:int arcsn+1n+1;int distn+1;int pathn+1;int sn+1;void shortest_path(Graph &t,const int v1,int m);void ars(Graph &t);void demand(Graph &t,int i);用邻接矩阵记录各点间的联系、路径等:void Graph:ars(Graph &t) int i,j;for(i=1;i<=n;i+)for(j=1;j<=n;j+) if(i=j) t.arcsij=0; else t.arcsij=max; t.arcs12=t.arcs21=150;t.arcs23=t.arcs32=250; t.arcs24=t.arcs42=300;t.arcs25=t.arcs52=250; t.arcs34=t.arcs43=100;t.arcs46=t.arcs64=150; t.arcs45=t.arcs54=200;t.arcs56=t.arcs65=350; t.arcs57=t.arcs75=50;t.arcs47=t.arcs74=300; t.arcs67=t.arcs76=350;t.arcs78=t.arcs87=100; t.arcs89=t.arcs98=100;t.arcs910=t.arcs109=450; t.arcs610=t.arcs106=600; 运用结构体里的void Graph:demand(Graph &t,int i)函数和arcs 求单点的周边点:void Graph:demand(Graph &t,int i) cout<<"周边有:"for(int j=1;j<=n;j+)if(t.arcsij!=0)&&(t.arcsij!=max) cout<<namej<<" "cout<<endl;效果:程序运用迪杰斯特拉算法计算两个地点间的最短路径:void Graph:shortest_path(Graph &t,const int v1,int m) for(int i=1;i<=n;i+)t.disti=t.arcsv1i;t.si=0;if (i!=v1)&&(t.disti<max) t.pathi=v1;else t.pathi=0;t.sv1=1;t.distv1=0;for(i=1;i<n;i+)int min=max;int u=v1;for(int j=1;j<=n;j+)if(!t.sj&&t.distj<min) u=j;min=t.distj;t.su=1;for (int w=1;w<=n;w+)if(!t.sw&&t.arcsuw<max&&t.distu+t.arcsuw<t.distw)t.distw=t.distu+t.arcsuw;t.pathw=u;if(m!=v1)cout<<namev1<<"到"<<namem<<"最短路程为"<<t.distm<<": "int pre=t.pathm;cout<<namem;while(pre!=0) cout<<"<-"<<namepre;pre=t.pathpre;cout<<endl;else cout<<"终点、始点为同一个地方!"效果:源程序代码:#include<iostream.h>#include<stdlib.h>const int n=10;const int e=10;char name1115=' ',"北门","软件楼","体育馆","北区食堂","图书馆","东门","三栋教学楼","西区食堂","西区寝室","南区寝室"#define max 32767class Graph public:int arcsn+1n+1; /图的邻接矩阵int distn+1; /存放源点到其它各点的最短路径int pathn+1; /存放在最短路径上该该顶点的前一顶点号int sn+1; /已求得的在最短路径上的顶点的顶点号void shortest_path(Graph &t,const int v1,int m);void ars(Graph &t);void demand(Graph &t,int i);void printf()cout<<"*校园导航系统*nn"cout<<" 1.两地最短路程查询nn" cout<<" 2.查询周边nn" cout<<" 3.退出系统nnn" cout<<"*请选择一个操作(1/2/3)*n"<<endl;/返回或退出设置int continu()int c;cout<<"n返回(1);退出(其它) "cin>>c;if(c=1) return 1;else return 0;/打印地点目录void text()cout<<"1.北门 "<<"2.软件楼"<<endl;cout<<"3.体育馆 "<<"4.北区食堂"<<endl; cout<<"5.图书馆 "<<"6.东门"<<endl;cout<<"7.三栋教学楼 "<<"8.西区食堂"<<endl;cout<<"9.西区寝室 "<<"10.南区寝室"<<endl;/选择int select() int j; cin>>j;while(j<1|j>10) cout<<"选择有误!请重选: "cin>>j;return j;/建立图的邻接矩阵void Graph:ars(Graph &t) int i,j;for(i=1;i<=n;i+)for(j=1;j<=n;j+) if(i=j) t.arcsij=0; else t.arcsij=max; t.arcs12=t.arcs21=150;t.arcs23=t.arcs32=250; t.arcs24=t.arcs42=300;t.arcs25=t.arcs52=250; t.arcs34=t.arcs43=100;t.arcs46=t.arcs64=150; t.arcs45=t.arcs54=200;t.arcs56=t.arcs65=350; t.arcs57=t.arcs75=50;t.arcs47=t.arcs74=300; t.arcs67=t.arcs76=350;t.arcs78=t.arcs87=100; t.arcs89=t.arcs98=100;t.arcs910=t.arcs109=450; t.arcs610=t.arcs106=600; /查询周边void Graph:demand(Graph &t,int i) cout<<"周边有:"for(int j=1;j<=n;j+)if(t.arcsij!=0)&&(t.arcsij!=max) cout<<namej<<" "cout<<endl;/求最短路径void Graph:shortest_path(Graph &t,const int v1,int m) /v1为源点,m为终点 for(int i=1;i<=n;i+)t.disti=t.arcsv1i;t.si=0;if (i!=v1)&&(t.disti<max) t.pathi=v1;else t.pathi=0;t.sv1=1;t.distv1=0;for(i=1;i<n;i+)int min=max;int u=v1;for(int j=1;j<=n;j+)if(!t.sj&&t.distj<min) u=j;min=t.distj;t.su=1;for (int w=1;w<=n;w+)if(!t.sw&&t.arcsuw<max&&t.distu+t.arcsuw<t.distw)t.distw=t.distu+t.arcsuw;t.pathw=u;if(m!=v1)cout<<namev1<<"到"<<namem<<"最短路程为"<<t.distm<<": "int pre=t.pathm;cout<<namem;while(pre!=0) cout<<"<-"<<namepre;pre=t.pathpre;cout<<endl;else cout<<"终点、始点为同一个地方!"void main() int k;char c2;Graph t; t.ars(t);for(int g=1;g=1;) system("cls"); / 清屏语句printf();cout<<"输入你的选择的操作!n" cin>>c;if(c0='1')&&(c1=NULL) text();cout<<"n请选择起点: "k=select(); cout<<"请选择终点: "t.shortest_path(t,k,select();g=continu();elseif(c0='2')&&(c1=NULL) text();cout<<"请选择一个地点:nn"t.demand(t,select();g=continu(); else if(c0='3')&&(c1=NULL) g=0;elsecout<<"输入有误!nn"g=continu();七实验总结 程序实现了两点的最短路径查询和单点周边查询,满足设计的基本要求,考虑了返回、重输入等细节。 程序菜单基本功能功能不多。八心得体会实验让我了解数据结构及其分类、数据结构与算法的密切关系; 熟悉各种基本数据结构及其操作,学会根据实际问题来选择数据结构; 掌握设计算法的步骤和分析方法; 掌握数据结构在排序和查找等常用算法中的应用。

    注意事项

    本文(数据结构课程设计校园导航系统.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开