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

    校园导游咨询系统课程设计.doc

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

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

    校园导游咨询系统课程设计.doc

    经济管理学院本科课程设计论文数据结构课程设计目 录第1章校园导游咨询系统概述- 1 -1.1校园导游咨询系统目的- 1 -1.2校园部分景点平面图- 1 -1.3软件运行和开发工具- 1 -第2章需求分析- 2 -2.1程序要求- 2 -2.2程序功能- 2 -2.3测试数据- 2 -第3章系统设计- 3 -3.1设计思路- 3 -3.2系统结构- 3 -第4章程序设计与编码- 4 -4.1概要设计说明- 4 -4.2详细设计- 4 -4.2.1介绍景点函数- 4 -4.2.2主函数- 6 -第5章系统测试- 8 -5.1运行结果界面- 8 -5.2查找景点相关信息的结果- 8 -5.3查找最短路径的结果- 9 -第6章航空客运订票系统概述- 10 -6.1航空客运订票系统简介- 10 -6.2航空客运订票系统原理- 10 -第7章航空客运订票系统需求分析- 11 -7.1程序背景- 11 -7.2系统功能- 11 -第8章航空客运订票系统需求分析- 12 -8.1查询- 12 -8.2订票- 12 -8.3退票- 12 -第9章航空客运订票系统设计- 13 -9.1系统结构- 13 -9.2系统流程图- 14 -9.3详细设计- 14 -9.3.1查询功能- 14 -9.3.2退票功能- 15 -第10章系统测试- 18 -10.1系统主界面- 18 -10.2查询航线信息- 19 -10.3进行订票操作- 19 -10.4所需已经被预订的情况- 20 -10.5退票界面- 20 -第11章心得与体会- 21 -参考文献- 22 -校园导游咨询系统第1章 校园导游咨询系统概述1.1 校园导游咨询系统目的 设计一个校园导游系统,为来客查询校园的各种信息。并熟练掌握图的知识,加深课堂所学用于实践。1.2 校园部分景点平面图图1-1 东北电力部分景点平面图1.3 软件运行和开发工具1. windowsxp操作系统2. VisualC+6.0开发环境第2章 需求分析2.1 程序要求1. 设计你所在的学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点的名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。2. 为来访客人提供图中任意景点相关信息的查询。3. 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最短的简单路径。2.2 程序功能查询校园各景点的信息并找出最短路径。2.3 测试数据出发点:1:新校区寝室 到达点:10:第二教学楼出发点:10:第二教学楼到达点:1: 新校区寝室出发点:1:新校区寝室 到达点:2:第三教学楼出发点:6:专家招待所 到达点:10:第二教学楼结果正常,未发现错误第3章 系统设计3.1 设计思路1. 创建校园图:2. 先定义节点个数N,边的最大值(MAXedg),节点(景点名称、景点信息),邻接点,边,顶点向量,当前顶点数和边数。3. 先给一个节点赋上其相关信息,然后再用p = (Node)malloc(sizeof(edgenode)语句申请下一结点,再给所申请的节点赋上相关信息,直到节点数为N=10为止。4. 读入道路的起始点,为邻接矩阵的边赋相应的值。5. 节点和边的相关信息都弄好了后,校园图也就创建好了6. 利用函数Name给10个节点赋上相应的名称,利用函数Information给各节点添加相应的介绍信息。7. 利用函数travgraph来查找景点信息,要查找景点名称时调用Name函数,要查找景点介绍信息时调用Information函数。8. 手动创建一个校园图creat(Matrix_Graph *G),然后为相应的边赋上真正的值。9. 用path函数来求任意两景点之间的最短路径。10. 用main函数来输出结果:用switch语句分别输出,要创建校园图时调用creatgraph函数;查找景点相关信息时调用travgraph函数;要查找任意两景点之间的最短路径时,先输入你目前所在的位置,再输入你的目的地,最后调用path函数。3.2 系统结构图3-1 系统结构第4章 程序设计与编码4.1 概要设计说明用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求实现以下功能:1. 查询各景点的相关信息。2. 查询图中任意两个景点间的最短路径。3. 查询图中任意两个景点间的所有路径。用图的结点代表景点,用图的边代表景点意见的路径,首先设计一个图类,结点值代表景点的信息,边的权值代表景点之间的距离,结点值及边的权值用顺序表存储,所以需要设计一个顺序表类,本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个编号,用结构体类型来实现。计算路径长度和最短路线是可以用Dijkstra(迪杰斯特拉)算法实现,在主函数中用switch选择语句执行浏览景点信息或查询最短路径。4.2 详细设计4.2.1 介绍景点函数void introduce() int n; cout<<"请输入查询景点编号:"<<endl; cin>>n; switch(n) case 1: cout<<"景点编号:"<<MGr.vexs1.date.number<<"景点名称:"<<MGr.vexs1.date.name; cout<<"景点简介:"<<MGr.vexs1.date.introduce<<endl; break; case 2: cout<<"景点编号:"<<MGr.vexs2.date.number<<"景点名称:"<<MGr.vexs2.date.name; cout<<"景点简介:"<<MGr.vexs2.date.introduce<<endl; break; case 3: cout<<"景点编号:"<<MGr.vexs3.date.number<<"景点名称:"<<MGr.vexs3.date.name; cout<<"景点简介:"<<MGr.vexs3.date.introduce<<endl; break; case 4: cout<<"景点编号:"<<MGr.vexs4.date.number<<"景点名称:"<<MGr.vexs4.date.name; cout<<"景点简介:"<<MGr.vexs4.date.introduce<<endl; break; case 5: cout<<"景点编号:"<<MGr.vexs5.date.number<<"景点名称:"<<MGr.vexs5.date.name; cout<<"景点简介:"<<MGr.vexs5.date.introduce<<endl; break; case 6: cout<<"景点编号:"<<MGr.vexs6.date.number<<"景点名称:"<<MGr.vexs6.date.name; cout<<"景点简介:"<<MGr.vexs6.date.introduce<<endl; break; case 7: cout<<"景点编号:"<<MGr.vexs7.date.number<<"景点名称:"<<MGr.vexs7.date.name; cout<<"景点简介:"<<MGr.vexs7.date.introduce<<endl; break; case 8: cout<<"景点编号:"<<MGr.vexs8.date.number<<"景点名称:"<<MGr.vexs8.date.name; cout<<"景点简介:"<<MGr.vexs8.date.introduce<<endl; break; case 9: cout<<"景点编号:"<<MGr.vexs9.date.number<<"景点名称:"<<MGr.vexs9.date.name; cout<<"景点简介:"<<MGr.vexs9.date.introduce<<endl; break; case 10: cout<<"景点编号:"<<MGr.vexs10.date.number<<"景点名称:"<<MGr.vexs10.date.name; cout<<"景点简介:"<<MGr.vexs10.date.introduce<<endl; break; default: cout<<"输入序号错误。" break; 4.2.2 主函数void main() char k; init(); cout<<"n" cout<<"n" cout<<" n" cout<<" n" cout<<" 欢迎使用校园导游咨询 n" cout<<" 本程序将为您快捷找到东电的景物 n" cout<<" n" cout<<" 2012.1.3 n" cout<<"n" cout<<"n" while(1) cout<<"1.景点信息查询请按“1” 键n" cout<<"2.景点最短路径查询请按“2”键n" cout<<"3.退出系统请按“3”键n" cout<<"请选择服务:" cin>>k; switch(k) case '1': cout<<"景点简介查询(请输入110)。" introduce(); break; case '2': cout<<"景点最短路径查询。" shortestdistance(); break; case '3': exit(0); system("pause");第5章 系统测试5.1 运行结果界面图5-1 运行结构界面5.2 查找景点相关信息的结果图5-2 查找景点相关信息的结果5.3 查找最短路径的结果图5-3 查找最短路径的结果航空客运订票系统第6章 航空客运订票系统概述6.1 航空客运订票系统简介问题描述:每条航线所设计的信息由:终点站名、航班号、飞行日期(星期几飞行)、成员定额、余票量、订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。6.2 航空客运订票系统原理以栈分别模拟航空路线及乘客信息,以文件分别存储航空路线及乘客信息,以管理员操作和乘客订票两大模块模拟航空订票系统的过程。每一条航线包括五个数据项:航班号, 飞机号, 目的地, 订票数, 余票数,用链表进行插入、删除操作。乘客能够使用链表模拟进行查询航线信息,订票,退票的操作,输出票号,或输出票以售空。第7章 航空客运订票系统需求分析7.1 程序背景飞机场每天要接受大量的订票退票服务,还有互联 网上的异地订票等。对这些数量巨大的数据,需要一个专门的软件来进行管理和操作。软件至少需要具备的基本功能包括:接受订票,处理退票,查询乘客信息,查询航班信息等等。7.2 系统功能1. 查询航线:根据客户提出的终点站点输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;2. 承办订票业务:根据客户提出的要求(航班号、订票数量)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少于订票额,则需重新询问客户要求。若需要,可登记排队候补;3. 承办退票业务:根据客户提出的情况(日期、航班号),为客户办理退票手续,然后查询该航班是否有其他人排队候补,首先询问排在第一位的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。第8章 航空客运订票系统需求分析可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。本报告经审核后,交软件经理审查。8.1 查询1. 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 2. 可以输入起飞抵达城市,查询飞机航班情况;3. 可以输入乘客信息,查询乘客所订票情况;8.2 订票可以订票,如果该航班已经无票,可以提供相关可选择航班; 8.3 退票1. 可退票,退票后修改相关数据文件; 2. 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。第9章 航空客运订票系统设计退出系统输出航线和客户信息办理退票编辑航线 航空订票系统办理订票9.1 系统结构图9-1 系统结构9.2 系统流程图开始已做初始化初始化否功能选择是增加航线订票退票输出航线信息输出客户信息删除航线退出系统增加完否否是123402211图9-2 系统流程图9.3 详细设计9.3.1 查询功能void chaxungongnen()int n;printf("t 查 找 航 线 信 息 n");printf("tn");printf("t 1. 通过目的地查询 n");printf("t 2. 通过航班号查询 n");printf("tn");printf("t请选择:");scanf("%d",&n);printf("n");/格式化switch(n)case 1:mddchaxun(); break;case 2:hbhchaxun(); break;default :break;9.3.2 退票功能void tuipiaogongnen()/*退票功能Linklist p=L;Yidingkehu *h=H,*h1,*h2;linkQueue q=Q;char c15,name115;int m=1,piao,n;/gets(c); printf("请输入航班号:"); gets(c); p=L;/->next; if(p) do /使用do while来查找是否有此航班 if(!p) /如果是到了表尾且没有匹配,goto至再输入航班号 printf("n对不起,没有你要找的航班:n"); goto loop1; m=strcmpi(p->hangbanhao,c);/如果匹配的话,m=0 if(m=0) printf("t航班信息:n"); printf("航班号:%sn",p->hangbanhao); printf("飞机号:%sn",p->feijihao); printf("飞行时间:%dn",p->feixingriqi); printf("余票量:%dn",p->yupiao); else p=p->next; while(m!=0); if(m=0) /如果找到了,就来给他退票 do h=p->yiding; if(h) printf("请输入你的姓名:"); gets(name1);/gets(name1); printf("请输入你订的票数:"); scanf("%d",&piao); printf("n"); h1=h; h=h->next1; if(strcmpi(h->name,name1)=0&&h->dingpiaoshu=piao)/如果名字和订的票数相等,则就给他取消订票 p->yupiao+=h->dingpiaoshu; h2=h; h1->next1=h->next1; free(h2); printf("你取消订票成功:nn"); struct Weidingkehu *q3; q.front=p->yudingqueue; if(q.front=q.rear) printf("没有人预订票:n"); goto loop1; if(p->yupiao)>=(q.front->next2->yudingpiao) h2=(struct Yidingkehu*)malloc(sizeof(Yidingkehu); strcpy(h2->name,q.front->next2->name); h2->dingpiaoshu=q.front->next2->yudingpiao; n=p->yupiao-q.front->next2->yudingpiao; p->yupiao=n; q3=Q.front->next2;/ q.front->next2=q3->next2;/这二语句来删除结点 if(q.rear=q3) q.rear=q.front; free(q3);/释放空间 printf("链队中删除成功n"); h2->next1=h->next1; h->next1=h2;/为之插入进已订票客户链表中 printf("为预订的客户订票成功n"); else printf("余票数不够,不能为预订客户订票!n"); else /如果没有找到,即系统中没有该人的信息,提示是否来重新查找 printf("对不起,该航班没有人订票或者是你没有订该航班的票n"); printf("是否要重新查找并取消订票?n"); printf("需要请输入1 否则请按2 "); scanf("%d",&m); printf("n"); while(m=1); loop1: ;第10章 系统测试10.1 系统主界面图10-1 系统主界面10.2 查询航线信息图10-2 系统主界面10.3 进行订票操作图10-3 进行订票操作10.4 所需已经被预订的情况图10-4 余票为零10.5 退票界面图10-5 退票界面第11章 心得与体会通过本次课程设计,对图的概念有了一个新的认识,在学习离散数学的时候,总觉得图是很抽象的东西,但是在学习了数据结构与算法这门课程之后,我慢慢地体会到了其中的奥妙,图能够在计算机中存在,首先要捕捉他有哪些具体化、数字化的信息,比如说权值、顶点个数等,这也就说明了想要把生活中的信息转化到计算机中必须用数字来完整的构成一个信息库,而图的存在,又涉及到了顶点之间的联系。图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例,如何能在计算机中表示一个双向权值不同的图,这就是一件很巧妙的事情,经过了思考和老师同学的帮助,我用edgesij=up和edgesji=up就能实现了一个双向图信息的存储。   对整个程序而言,Dijkstra算法始终都是核心内容,其实这个算法在实际思考中并不难,也许我们谁都知道找一个路径最短的方法,及从顶点一步一步找最近的路线并与其直接距离相比较,但是,在计算机中实现这么一个很简单的想法就需要涉及到很多专业知识,为了完成设计,在前期工作中,基本都是以学习C语言为主,所以浪费了很多时间,比如说在程序中,删除顶点和增加顶点的模块中都有和建图模块相互重复的函数,但是由于技术的原因,只能做一些很累赘的函数,可见在调用知识点,我没有掌握好。不过,有了这次课程设计的经验和教训,我能够很清楚的对自己定一个合适的水平,而且在这次课程设计中我学会了运用两个新的函数sprintf()和包涵在#include <conio.h>头文件中的输入函数。 因为课程设计的题目是求最短路径,本来是想通过算法的实现把这个程序与交通情况相连,但是因为来不及查找各地的信息,所以,这个计划就没有实现,我相信在以后有更长时间的情况下,我会做出来的。参考文献1数据结构实用教程第二版 (徐孝凯 著) M.清华大学出版社,2010.82潘彦.算法设计与分析基础M.北京:清华大学出版社,2007.13吕凤翥.C+语言程序设计(第2版).电子工业出版社,2007.24李云清、杨庆红、揭安全.数据结构(C语言版)M.人民邮电大学出版社,2004.6

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开