欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C++校园导游系统课程设计.docx

    • 资源ID:16864031       资源大小:52.41KB        全文页数:18页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    C++校园导游系统课程设计.docx

    1、C+校园导游系统课程设计DONGFANG COLLEGE,FUJIAN AGRICULTURE AND FORESTRY UNIVERSITYC+程序设计课程设计报告课程设计: 校园导游系统 系 别: 计算机系 年 级: 10级 专 业: 计算机科学与技术 班 级: 1班 学 号: 姓名: 成 绩: 任课教师: 2012 年 8 月 20 日1.需求分析 3.概要设计.33.详细设计.34.使用说明.35.测试结果.46.附录57.参考文献14 1. 需求分析设计一个校园导游程序,为来访的客人提供各种信息查询服务。2. 概要设计(1) 设计你所在学校的校园平面图,所含景点不少于10个。以图中顶

    2、点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点相关信息的查询。(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。3. 详细设计1. 以输出流显示校园的界面2. 以图的形式存储校园景点3. 以循环算法运行操作界面4. 以函数调用实现导游功能4. 使用说明1. 运行时显示校园景观图,同时显示选择菜单2. 选择菜单:1.地点介绍 2.最短路径 3.结束 “请选择功能”3. 地点介绍:出现景点选择:A.操场 B.偏门 C.图书馆 D.大门 E.食堂 F.诚智楼 G.博学楼 H.创新楼 I.海

    3、天楼 J.明德楼 请选择地点(选择加回车即能查询景点信息)4. 最短路径:出现“输入起点位置”,输入后即出现“输入终点位置”(输入加回车即显示两景点的最短路径)5. 测试结果1. 运行界面2. 地点介绍3. 最短路径6. 附录1. 校园景观图实现函数:void viewshow() cout 东方学院实景图endl; coutendl; cout A操场-B偏门endl; cout / endl; cout / endl; cout C图书馆-D大门 E食堂-endl; cout / endl; cout / F诚智楼-G博学楼-H创新楼endl; cout / /endl; cout I海天

    4、楼-J明德楼endl; coutendl;2. 建立图函数:#includeSeqList.h#includeSeqQueue.hconst int MaxVertices=10;const int MaxWeight=10000;class AdjMWGraphprivate: SeqList Vertices;/顶点信息的线性表 int EdgeMaxVerticesMaxVertices; int numOfEdges;public: AdjMWGraph(const int sz=MaxVertices); int GraphEmpty( )const return Vertices.

    5、ListEmpty( ); int NumOfVertices(void) return Vertices.ListSize( ); int NumOfEdges(void) return numOfEdges; VerT GetValue(const int i); int GetWeight(const int v1,const int v2); void InsertVertex(const VerT &vertex); void InsertEdge(const int v1,const int v2,int weight); void DeleteVertex(const int i

    6、); void DeleteEdge(const int v1,const int v2); int GetFirstNeighbor(const int v); int GetNextNeighbor(const int v1,const int v2); void DepthFirstSearch(const int v,int visited,void visit(VerT item); void BroadFirstSearch(const int v,int visited,void visit(VerT item); void DepthFirstSearch(void visit

    7、(VerT item); void BroadFirstSearch(void visit(VerT item); AdjMWGraph:AdjMWGraph(const int sz) for(int i=0; isz; i+) for(int j=0; jsz; j+) if(i = j) Edgeij=0; else Edgeij=MaxWeight; numOfEdges=0;VerT AdjMWGraph:GetValue(const int i) if(iVertices.ListSize() cerr参数i越界出错!endl; exit(1); return Vertices.G

    8、etData(i);int AdjMWGraph:GetWeight(const int v1,const int v2) if(v1Vertices.ListSize()|v2Vertices.ListSize() cerr参数v1或v2越界出错!endl; exit(1); return Edgev1v2;void AdjMWGraph:InsertVertex(const VerT &vertex) Vertices.Insert(vertex,Vertices.ListSize();void AdjMWGraph:InsertEdge(const int v1,const int v2

    9、,int weight) if(v1Vertices.ListSize()|v2 Vertices.ListSize() cerr参数v1或v2越界出错!endl; exit(1); Edgev1v2=weight; numOfEdges+;void AdjMWGraph:DeleteVertex(const int v) for(int i=0;iVertices.ListSize();i+) for(int j=0;j0 &EdgeijMaxWeight) Edgeij=MaxWeight; numOfEdges-; Vertices.Delete(v);void AdjMWGraph:D

    10、eleteEdge(const int v1,const int v2) if(v1Vertices.ListSize()|v2Vertices.ListSize()|v1=v2) cerr参数v1或v2出错!endl; exit(1); Edgev1v2=MaxWeight; numOfEdges-;int AdjMWGraph:GetFirstNeighbor(const int v) if(vVertices.ListSize( ) cerr参数v1越界出错!endl; exit(1); for(int col=0;col0&EdgevcolMaxWeight) return col;

    11、return -1;int AdjMWGraph:GetNextNeighbor(const int v1,const int v2) if(v1Vertices.ListSize()|v2Vertices.ListSize() cerr参数v1或v2越界出错!endl; exit(1); for(int col=v2+1; col0&Edgev1colMaxWeight)return col; return -1; void AdjMWGraph:DepthFirstSearch(const int v,int visited,void visit(VerT item) visit(GetV

    12、alue(v); visitedv=1; int w=GetFirstNeighbor(v); while(w!=-1) if(!visitedw)DepthFirstSearch(w,visited,visit); w=GetNextNeighbor(v,w); void AdjMWGraph:BroadFirstSearch(const int v,int visited,void visit(VerT item) VerT u,w; SeqQueue queue;/定义队列queue visit(GetValue(v); visitedv=1; queue.QInsert(v); whi

    13、le(!queue.QueueEmpty() u=queue.QDelete(); w=GetFirstNeighbor(u); while(w!=-1) if(!visitedw) visit(GetValue(w); visitedw=1; queue.QInsert(w); w=GetNextNeighbor(u,w); void AdjMWGraph:DepthFirstSearch(void visit(VerT item) int *visited=new intNumOfVertices(); for(int i=0;iNumOfVertices();i+)visitedi=0;

    14、 for(i=0;iNumOfVertices();i+) if(!visitedi)DepthFirstSearch(i,visited,visit); delete visited; /非连通图的广度优先搜索遍历算法如下void AdjMWGraph:BroadFirstSearch(void visit(VerT item) int *visited=new intNumOfVertices(); for(int i=0;iNumOfVertices();i+)visitedi=0; for(i=0; iNumOfVertices(); i+) if(!visitedi) BroadFi

    15、rstSearch(i,visited,visit); delete visited;struct RowColWeight int row; int col; int weight;void CreatGraph(AdjMWGraph &G,Datatype V,int n,RowColWeight E,int e)/建图 for(int i=0; in;i+)G.InsertVertex(Vi); for(int k=0; ke;k+)G.InsertEdge(Ek.row,Ek.col,Ek.weight);void Printchar(char item) cout item ; vo

    16、id Dijkstra(AdjMWGraph &G,int v0,int distance,int path) int n=G.NumOfVertices(); int *s=new intn; int minDis,i,j,u; for(i=0;in;i+) distancei=G.GetWeight(v0,i); si=0; if(i!=v0&distanceiMaxWeight)pathi=v0; else pathi=-1; sv0=1; for(i=1;in;i+) minDis=MaxWeight; for(j=0;j=n;j+) if(sj=0&distancejminDis)

    17、u=j; minDis=distancej; if(minDis=MaxWeight)return; su=1; for(j=0;jn;j+) if(sj=0&G.GetWeight(u,j)MaxWeight&distanceu+G.GetWeight(u,j)distancej) distancej=distanceu+G.GetWeight(u,j); pathj=u; 3. 主函数:typedef char VerT;typedef char Datatype;#includeAdjMWGraph.h#includeView.hint main() int s,sss=1,j=1; c

    18、har ch,qd,zd; AdjMWGraph g; char a=A,B,C,D,E,F,G,H,I,J; RowColWeight rcw=0,1,20,0,3,30,0,4,30,1,0,20,2,3,20,3,0,30,3,2,20,3,8,30,3,9,20,4,0,30,4,6,20,5,6,15,5,9,15,6,4,20,6,5,15,6,7,10,7,6,10,8,3,30,8,9,15,9,5,15,9,8,15; int n=10,e=24; CreatGraph(g,a,n,rcw,e); int m=g.NumOfVertices(); int *distance=

    19、new intm; int *path=new intm; int v0=0,v1; Dijkstra(g,v0,distance,path);end: if (j=0)system(cls); do viewshow(); cout1.地点介绍 2.最短路径 3.结束endls; system(cls); if(s=1) do viewshow(); coutA.操场 B.偏门 C.图书馆 D.大门 E.食堂endl F.诚智楼 G.博学楼 H.创新楼 I.海天楼 J.明德楼 endlch; switch(ch) case A: zhengdamenshow(); cin.get(); ci

    20、n.get(); system(cls);break; case B: mdshow(); cin.get(); cin.get(); system(cls);break; case C: czshow(); cin.get(); cin.get(); system(cls);break; case D: bxshow(); cin.get(); cin.get(); system(cls);break; case E: cxshow(); cin.get(); cin.get(); system(cls);break; case F: bahaoshow(); cin.get(); cin.

    21、get(); system(cls);break; case G: sitangshow(); cin.get(); cin.get(); system(cls);break; case H: shihaoshow(); cin.get(); cin.get(); system(cls);break; case I: caochangshow(); cin.get(); cin.get(); system(cls);break; case J: tushuguanshow(); cin.get(); cin.get(); system(cls);break; caseK: j=0; goto

    22、end; default: cout选择有误,请重新选择!endl; cin.get(); cin.get(); system(cls); while(1); if(s=2) do viewshow();QIDIAN: coutqd; if (qd=A)v0=0; else if(qd=B)v0=1; else if(qd=C)v0=2; else if(qd=D)v0=3; else if(qd=E)v0=4; else if(qd=F)v0=5; else if(qd=G)v0=6; else if(qd=H)v0=7; else if(qd=I)v0=8; else if(qd=J)v0

    23、=9; else cout起点输入有误,请重新输入!endl;cin.get();cin.get();system(cls);goto QIDIAN; coutzd; if (zd=A)v1=0; else if(zd=B)v1=1; else if(zd=C)v1=2; else if(zd=D)v1=3; else if(qd=E)v1=4; else if(zd=F)v1=5; else if(zd=G)v1=6; else if(zd=H)v1=7; else if(zd=I)v1=8; else if(zd=J)v1=9; else cout终点输入有误,请重新输入!endl;cin.get();cin.get();system(cls);goto QIDIAN; cout起点g.GetValue(v0)到终点g.GetValue(v1)的最短距离为:distancev1endl; coutsss; system(cls); while(sss=1); if (s=3)cout谢谢使用!endl;return 0; while(1);7. 参考文献数据结构使用C+语言(第二版) 朱战立编著


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开