C语言课程设计-校园导游咨询系统.docx_第1页
C语言课程设计-校园导游咨询系统.docx_第2页
C语言课程设计-校园导游咨询系统.docx_第3页
C语言课程设计-校园导游咨询系统.docx_第4页
C语言课程设计-校园导游咨询系统.docx_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大连科技学院C语言课程设计题 目 校园导游咨询系统 学生姓名 专业班级 计算机(Z) 13-1 指导教师 职 称 助教 所在单位 信息科学系计算机教研室 教学部主任 完成日期 2014年12月13日课程设计成绩考核表专业计算机(Z)班级13-1姓名学号39考 核 项 目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度(20分)4完成课程设计说明书及软件的情况与水平(工作量及实际运行情况和创新性)(60分)总评成绩综合评定:(优、良、中、及格、不及格)指导教师签字: 2014年12月13 日 课程设计任务书1.设计(研究)内容和要求研究内容: 设计并编写一个完善的C语言程序,并要求达到以下几点:(1)系统功能要求:系统功能完善,具有简洁的操作流程。(2)以软件工程理论为指导,按照进度计划,完成系统需求分析、系统的概要设计与系统的详细设计等。要求能够对系统进行全面测试和调试,及时更正错误,直至系统运行稳定可靠,要求报告中具有系统测试内容。(3)完成课程设计报告的编辑工作,报告要求在3000字以上,包括综述、系统总体设计、系统实现、运行调试、结论等,参考文献数量至少2篇,论文书写格式按学校规定来写。(4)工作量要饱满,具备两周课程设计的基本要求,代码行达到300行左右。原始依据:对学过的C语言程序设计课程进行巩固和加深印象。了解C语言的基础知识,有一定的语言编程基础,能够熟练运用C语言进行程序设计。通过用C语言完成的题目的编写与设计,以提高用C语言解决实际问题的能力。2.系统环境硬件环境:CPU的主频在500MHZ以上,内存在128MB以上软件环境:编程语言及工具:C语言;操作系统:Windows 操作系统3.参考文献1 李瑞. 徐克圣. 刘月凡. 戚海英. C程序设计基础M. 北京:清华大学出版社. 2009.72 布鲁志著.吴丹等译面向对象的软件工程构建复杂且多变的系统清华大学出版社2002.10 3 霍顿(美)杨杰(译). 北京:清华大学出版社. 20084 薛圆圆C语言开发手册. 北京:电子工业出版社. 2011.4 5 肯奈斯.艾.瑞克(美).徐波(译).C和指针.北京:人民邮电出版社6 宋旭.黄明.C语言课程设计.北京:电子工业出版社7 宋丽芳.C语言程序设计.北京:现代教育出版社目录1 需求分析11.1 系统概述11.2 系统运行环境11.3 功能需求描述12 总体设计12.1 开发与设计的总体思想12.2 系统模块结构22.3 模块设计22.4 系统流程描述32.5 界面设计33 详细设计63.1 应用部署图63.2 查询功能模块73.3 删除功能模块93.4 系统维护模块124 系统测试16总 结16参考文献17大连科技学院2013级C语言课程设计报告1 需求分析1.1 系统概述随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来越多。考虑到游客不可能对所有景点都有所了解,因此可能无法找到游玩景点最省时,最高效的路径,而人工导游成本又过高,故使用C语言开发了“大连科技学院校园导游咨询系统”。本系统可为来访我校的游客提供一条最短游览路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,因此系统提供的路径具有较大的可信性。 1.2 系统运行环境1. 硬件环境处理器: Inter Pentium 166 MX 或更高内存: 32M硬盘空间:1GB显卡: SVGA显示适配器2. 软件环境操作系统:Windows 98/ME/2000/XP开发语言:Visual C+1.3 功能需求描述校园导游咨询系统主要是为用户提供一个方便易用的导游界面,同时还具有查看校园各个建筑信息、删除及修改选项的功能。校园导游咨询管理系统主要需要实现以下一些基本功能:1. 校园全景浏览:在界面显示校园全景图。2. 景点信息查询:为用户反馈所查询的校园景点信息。3. 最短路径查询:为用户提供一条从当前地点到达目的地点的最短路线。4. 添加校园景点信息:管理员可添加校园景点及景点信息。5. 用户反馈:游客退出系统时可对系统进行评价。6. 读取用户反馈:管理员可读取游客对本系统的评价。7. 系统时间:实时反馈当前系统时间。2 总体设计2.1 开发与设计的总体思想 现在各个大学都是所在城市一处不可不去的风景区。本系统设计开发的基本目的是为了帮助学生及家长或游客寻找校园游览路线。因为本系统使用的人群并非全都是计算机专业的,所以系统界面的设计应该尽量做到简洁友好,方便用户的使用。2.2 系统模块结构 依据需求分析结果,校园导游咨询系统可以分为四个模块:游客模块、管理员模块、查询模块、信息管理模块、反馈模块。如图2-1所示:校园导游咨询系统管理员模块游客模块信息管理模块查询模块反馈模块退出系统图2-1 系统模块结构图1. 管理员模块管理员模块主要实现的功能是管理员登陆。管理员模块包括添加校园景点信息模块、读取游客反馈和退出系统等模块。添加校园景点信息模块主要是添加校园景点及景点信息;读取游客反馈模块主要是用于读取游客对本系统的评价。如图2-2所示: 管理员登陆添加校园景点信息读取游客反馈退出系统图2-2 管理员模块结构图2. 游客模块游客模块主要实现的功能是游客登录。游客模块包括校园全景浏览模块、景点信息查询模块、最短路径查询模块和游客反馈模块。校园全景浏览模块主要是在界面显示校园全景图;景点信息查询模块主要是为用户反馈所查询的校园景点信息。最短路径查询模块主要是为用户提供一条从当前地点到达目的地点的最短路线。反馈模块主要是对系统进行评价。如图2-3所示:游客登陆校园全景浏览景点信息查询最短路径查询游客反馈游客反馈游客反馈 图2-3 游客模块结构图3. 信息管理模块包括对景点信息的添加及对游客反馈的读取功能。详见管理员模块。4. 反馈模块主要用于让游客对系统做出评价,使管理员可以逐渐改善程序性能。详见游客模块。2.3 系统总体流程本系统在执行的过程中,先选择操作方式,选择1则执行管理员登陆,选择2则执行游客登录。管理员登陆后输入4为数字密码按回车键则执行判断,如果密码正确则进入管理员界面,如果密码错误,则进入错误提示界面。管理员登陆后进入管理云界面。进入管理员界面后选择1则进行添加校园景点信息功能,输入景点编号、名称等信息,如果编号重复,系统则会提示重新输入景点编号;选择2则进行读取游客反馈功能读取游客反馈;选择3则关闭本系统;选择0则返回主界面。游客登录后进入游客界面。进入游客界面后选择1则在屏幕输出校园全景图;选择2则对游客选择的景点做出简单的信息反馈;选择3则对游客选择的起始景点和目的景点进行迪卡斯特拉算法算出最短路线反馈给用户;选择0则提示用户对系统做出评价后返回主界面。系统的总体流程图如图2-4所示:校园导游咨询系统管理系统主界面管理员模块12Y13Y游客模块读取反馈添加景点关闭系统查看地图景点信息最短路径退出系统用户反馈2Y13Y2Y图2-4 系统总体流程图3 详细设计基于系统需求分析与系统总体设计的结论,下面按照模块的划分来分别阐述系统的详细设计和实现过程。3.1 数据类型本系统中主要采用结构数据类型存储景点等的基本信息。本系统中定义ArcNode结构体类型用于描述路径信息,VertexNode结构体类型用于描述景点信息、编号等信息,Graph结构体类型用于描述地图边、顶点等信息。ArcNode结构体类型定义格式如下:typedef struct ArcNode int length; ArcNode, *ArcLink; 其中length成员用于描述路径信息。用于描述景点信息的结构体类型VertexNode定义格式为:typedef struct VertexNode int number; char *name; char *info; VertexNode; 其中number成员用于描述经典的编号,*name用于描述景点名称, *info用于描述景点信息。用于描述地图顶点的结构体类型Graph定义格式为:typedef struct Graph VertexNode vertexNUM; ArcNode arcNUMNUM; int vexnum,arcnum; Graph; 其中vexnum用于描述地图的顶点数,arcnum用于描述地图的边。3.2 管理员功能模块管理员功能模块主要提供管理员信息管理功能。该模块按照信息管理方法不同分为添加景点、读取反馈,退出系统子模块。一、添加景点子模块功能设计与实现1. 添加景点子模块描述管理员可对景点进行添加。添加时要录入景点编号、名称、信息及与周边景点的间距。2. 添加景点子模块算法设计添加景点子模块算法流程图如图3-1:添加景点模块编号Y景点名称重新输入添加景点N景点简介相邻间距增加成功图3-1 添加景点子模块算法流程图添加景点子模块主要函数:G.=(char*)malloc(50);flushall();gets(G.);printf(nntttttt输入节点的简介:nntttttt);G.=(char*)malloc(1000);flushall();gets(G.);G.arcij.length=G.arcji.length=k;3. 添加景点子模块设计实现输入15 第一食堂 学生食堂。 14 120,系统代码运行结果如下图3-2:图3-2 添加景点结果截图二、读取反馈子模块功能设计与实现1. 读取反馈子模块描述用于管理员读取用户反馈给管理员对系统的评价。2. 读取反馈子模块功能实现系统代码运行结果如下图3-3:图3-3 读取反馈结果截图3.3 游客功能模块游客功能模块主要提供管游客查询信息功能。该模块按照查询信息方法不同分为校园全景、景点信息、最短路径和游客反馈子模块。一、添加景点子模块功能设计与实现1. 校园全景子模块描述为游客在界面显示校园全景图。2. 校园全景模块功能实现系统代码运行结果如下图3-4:图3-4 校园全景结果截图二、景点信息模块功能设计与实现1. 景点信息子模块描述按照游客的选择,查询显示景点信息。景点信息模块编号Y景点信息重新输入添加景点N2. 景点信息子模块算法设计景点信息子模块算法流程图如图3-5:图3-5 景点信息模块算法流程图3. 景点信息模块功能实现输入5,系统代码运行结果如下图3-6:图3-6 景点信息结果截图三、最短路径模块功能设计与实现1.最短路径子模块描述对游客选择的起始景点和目的景点进行迪卡斯特拉算法算出最短路线反馈给用户。最短路径模块编号Y重新输入添加景点N最短路径编号重新输入添加景点YN2.最短路径子模块算法流程图如图3-7:图3-7 最短路径模块算法流程图最短路径子模块主要函数:if(iG.vexnum | iG.vexnum | j0 | i=j) printf(tttttt输入信息错误!nn); else Shortpath(i); output(i,j); 3. 最短路径模块功能实现输入5 12,系统代码运行结果如下图3-8:图3-8 最短路径结果截图四、游客反馈模块功能设计与实现1.游客反馈模块描述让游客对系统做出评价,使管理员可以逐渐改善程序性能。游客反馈模块Y重新输入添加景点N好评编号差评YN中评2. 游客反馈子模块算法流程图如图3-9:图3-9 游客反馈模块算法流程图3. 最短路径模块功能实现输入1,系统代码运行结果如下图3-10:图3-10 游客反馈结果截图在设计此函数时,我运用了迪杰斯特拉算法: int v,w,i,t;/i、w和v为计数变量 int finalNUM; /标志数组、用来存放顶点的信息 int min;/记录权值、最终输出路径 for(v=0;vNUM;v+) finalv=0; /假设从顶点num到顶点v没有最短路径 Dv=G.arcnumv.length;/将num到其余顶点的最短路径长度初始化为权值 for(w=0;wNUM;w+) pathvw=0;/初始化从v到w的路径值 if(Dv20000) /存在路径 pathvnum=1; /存在标志置为一 pathvv=1; /自身到自身 Dnum=0;/初始化新路径 finalnum=1; /初始化num顶点属于final集合 /开始主循环,每一次求得num到某个顶点的最短路径,并将其加入到final集合 for(i=0;iNUM;+i) / 其余G.vexnum-1个顶点 min=MAX; /当前所知离顶点num的最近距离 for(w=0;wNUM;+w) if(!finalw) /w顶点在v-s中 if(Dwmin) /w顶点离num顶点更近 v=w; min=Dw; finalv=1; /离num顶点更近的v加入到s集合 for(w=0;wNUM;+w) /更新当前最短路径极其距离 if(!finalw&(min+G.arcvw.length)Dw)/不在s集合,并且比以前所找到的路径都短就更新当前路径 Dw=min+G.arcvw.length;/更新路径 for(t=0;t14):); scanf(%d,&i); printf(tttttt最终景点编号(1-14):); scanf(%d,&j); getchar(); if(iG.vexnum | iG.vexnum | j0 | i=j) printf(tttttt输入信息错误!nn); else Shortpath(i); output(i,j); printf(ntttttt是否继续查询最短路径(y/n):); c=getchar(); getchar(); system(cls);Visitor();output(int sight1,int sight2) / 输出函数 int a,b,c,d,q=0; a=sight2; /将景点二赋值给a if(a!=sight1) / 如果景点二不和景点一输入重合,则进行. printf(tttttt从%s到%s的最短路径是:nnttttt,G.,G.);/输出提示信息 /输出sight1到sight2的最短路径长度,存放在D数组中 printf(t%s,G.); /输出景点一的名称 d=sight1; /将景点一的编号赋值给d for(c=0;cNUM;+c) gate:; /标号,可以作为goto语句跳转的位置 pathasight1=0; for(b=0;bNUM;b+) if(G.arcdb.length%s,G.); /输出此节点的名称 q=q+1; /计数变量加一,满8控制输出时的换行 pathab=0; d=b; /将b作为出发点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论