欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    《校园导航系统》课程设计报告.doc

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

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

    《校园导航系统》课程设计报告.doc

    1、目 录摘要.11. 题目.12. 概要设计.13. 调试分析.154. 参考文献.151. 题目校园导航系统设计一个校园导游程序,后台操作:1、操作员信息管理如修改密码等2、能根据学校的规模进行添加景点信息、修改景点信息等功能,3、若临时有交通管制,能进行交通管制的设置和撤销(如某某时间段那条路进行那个方向的交通管制等)前台为来访的客人提供各种信息查询服务:1、设计学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。2、为来访客人提供图中任意景点相关信息的查询。3、提供途中任意景点问路查询,即求任意两个景点间的

    2、一条最短的简单路径。1.1 需求分析设计一个校园导航系统,导航系统又分为游客和管理员。要进行管理操作还是游客操作由用户自己选择管理员的操作:修改景点信息、增加景点信息、交通管制等。游客的操作:查看景点信息和查最短路径。2. 概要设计景点的信息由一维数组存放,景点关系由二维数据来存放景点的信息和关系从文件读取,进而初始化typedef struct /保存单个景点信息的结构体char code10; /存放景点代码char name20; /存放景点名称char instruction100; /存放景点简介ViewPoint;typedef struct /存放景点关系的二维数组int edg

    3、esMAXVMAXV; /两景点间的距离int number; /景点的数量ViewPoint VMAXV; /保存景点信息的结构体数组MGraph;2.1 流程图函数开始接收功能的请求 接受信息输入判断是否正确读取文件进行相对应操作写回文件函数结束2.2 详细设计void MainMenu(); 主菜单,写界面操作的函数。 void UserMenu(); 游客菜单,判断是否非法输入,不会死循环。void Map(); 输出民大地图,由于时间关系,没有画出。void ViewAsk(); 游客查询景点函数,让游客选择要查询的景点,判断是否非法输入,不会死循环。void PathAsk();

    4、问路函数,根据游客的起点和终点给出最短路径,判断是否非法输入,不会死循环。void Dijkstra(MGraph G,int v,int i); 迪杰斯特拉函数求最短路径void Ppath(MGraph G,int path,int i,int v); 输出最短路径中的景点void Dispath(MGraph G,int dist,int path,int s,int n,int v,int i); 查找最短路径。void AdminMenu(); 管理员菜单,判断是否非法输入,不会死循环。void Password(); 密码函数,管理员需输入密码才能进入后台,输入一次后无需再输入。v

    5、oid AdminAlter(); 修改密码,需要再次输入密码。void ViewAdd(); 增加景点,列出已有景点,判断新景点信息是和与已有景点的冲突,如冲突需重新输入,判断是否非法输入,不会死循环。void ViewAlter(); 修改景点信息,由于时间关系,没有判断新修改的景点信息是否与已有景点信息冲突。若要做次判断,应与增加景点的判断算法一致。void ControlMenu(); 交通管制菜单,判断是否非法输入,不会死循环。void PathControl(); 路径管理,可增加路径和修改路径,列出已有路径,根据用户的输入进行管理,判断是否非法输入,不会死循环。但路径长度为整型,

    6、没有判断,若输入非整型,则进入死循环,一个大大的BUG,能力有限。void PathDel(); 删除路径,列出已有路径,用户根据提示进行删除。判断是否非法输入,不会死循环。void Read(MGraph &G); 读取文件。void White(MGraph &G); 保存文件。2.3 操作界面程序一开始登录主界面:游客菜单:管理员界面管理员界面管理员操作界面查询景点查询最短路径修改密码增加景点修改景点信息交通管制界面删除路径管理路径3 调试分析:当进入操作界面进行功能的选择,但非法输入时,应该提示错误并可以让用户重新选择,我使用的接收选择的是字符串,判断字符串长度是否等于1,如果不等于则

    7、是错误的,等于1后用switch判断第一个字符,与case比较,调用相应的函数。用whlie(1),使之一直循环,直到与case中相同,使用标志和break;让他跳出相应的循环层。在这里经常会出错,所以要很小心的判断每个标志跳出的相应的循环,使他不会跳出不该跳出的循环。另一个问题是最短路径。在新增一个景点后,我选择不添加相邻的路径时(矩阵的行等于列始终为0,表示同一个景点到同一个景点的路径为0),再次查询最短路径时,起点为新增的路径,终点为任何一个景点都无法运行;但是起点为除新增景点外的景点,而终点为新增景点时,可正确输出:没有路径。由于时间原因来不及调试了。参考文献 1严蔚敏、吴为民.数据结

    8、构(C语言版).北京:清华大学出版社.20072林小茶.C语言程序设计(第二版).中国铁道出版社.20103杜茂康、李昌兵等.C+面向对象程序设计(第2版).北京:电子工业出版社.2011 附 录源程序:头文件详细代码#include#include#include#include#include#include#include#define MAXV 100#define INF 10000typedef structchar code10;char name20;char instruction100;ViewPoint;typedef structint edgesMAXVMAXV;in

    9、t number;ViewPoint VMAXV;MGraph;void MainMenu();void UserMenu();void Map();void ViewAsk();void PathAsk();void Dijkstra(MGraph G,int v,int i);void Ppath(MGraph G,int path,int i,int v);void Dispath(MGraph G,int dist,int path,int s,int n,int v,int i);void AdminMenu();void Password();void AdminAlter();v

    10、oid ViewAdd();void ViewAlter();void ControlMenu();void PathControl();void PathDel();void Read(MGraph &G);void White(MGraph &G);:主函数#includeAll.hmain()int pass;char name10,password10;ifstream indata(Password.txt);indatapassnamepassword;indata.close();pass=0;ofstream outdata(Password.txt);outdatapasse

    11、ndlnameendlpassword;outdata.close();MainMenu();:菜单功能#includeAll.hvoid MainMenu()system(cls);char choose1;coutnnnsetw(56)欢迎光临广西民族大学,祝您旅途愉快!endl;coutsetw(55)广西民族大学校园导航系统为您服务!endl;coutendlsetw(45)1.进入导航系统endl;coutsetw(45)endl;coutsetw(45)2.登录操作系统endl;coutsetw(45)endl;coutsetw(37)3.退出endl;coutsetw(45)en

    12、dl;coutendlsetw(46)choose;if(strlen(choose)=1)switch(choose0)case 1:UserMenu();break;case 2:Password();break;case 3:exit(0);default:system(cls);coutnnnendlsetw(43)选择错误!endl;coutendlsetw(52)按任意键返回主菜单重新选择!;coutendl;getch();MainMenu();break;elsesystem(cls);coutnnnendlsetw(43)选择错误!endl;coutendlsetw(52)按

    13、任意键返回主菜单重新选择!;coutendl;getch();MainMenu();void UserMenu()system(cls);char choose1;int flag=0;coutnnnsetw(45)校园导航系统!endl;coutendlsetw(45)1.查看校园地图endl;coutsetw(45)endl;coutsetw(45)2.景点信息查询endl;coutsetw(45)endl;coutsetw(45)3.景点问路查询endl;coutsetw(45)endl;coutsetw(43)4.返回主菜单endl;coutsetw(45)endl;coutsetw(

    14、37)5.退出endl;coutsetw(45)endl;coutendlsetw(46)choose;if(strlen(choose)=1)switch(choose0)case 1:Map();break;case 2:ViewAsk();break;case 3:PathAsk();break;case 4:MainMenu();break;case 5:exit(0);default:system(cls);coutnnnsetw(43)选择错误!endl;coutendlsetw(49)按任意键返回重新选择!;coutendl;getch();UserMenu();elsesyst

    15、em(cls);coutnnnsetw(43)选择错误!endl;coutendlsetw(49)按任意键返回重新选择!;coutpassnamepassword;indata.close();if(pass)AdminMenu();elsecoutnnnsetw(40)entername;coutendlsetw(40)enterpassword;if(strcmp(name,entername)=0&strcmp(password,enterpassword)=0)pass=1;ofstream outdata(Password.txt);outdatapassendlnameendlpa

    16、ssword;outdata.close();AdminMenu();elsesystem(cls);coutnnn;coutsetw(47)用户名或密码错误!endl;while(1)if(flag1)system(cls);coutnnn;coutendlsetw(45)1.重新输入密码endl; coutsetw(45)endl; coutsetw(43)2.返回主菜单endl; coutsetw(45)endl; coutsetw(37)3.退出endl; coutsetw(45)endl; coutendlsetw(46)choose; if(strlen(choose)=1)swi

    17、tch(choose0)case 1:flag=1;Password();break; case 2:flag=1;MainMenu();break; case 3:exit(0); default:flag1=1;system(cls);coutnnnsetw(43)选择错误!endl;coutendlsetw(49)按任意键返回重新选择!;coutendl;getch();if(flag)break;elseflag1=1;system(cls);coutnnnsetw(43)选择错误!endl;coutendlsetw(49)按任意键返回重新选择!;coutendl;getch();vo

    18、id AdminMenu()system(cls);char choose1;int flag=0;coutnnnsetw(45)后台操作系统!endl;coutendlsetw(46)1.操作员信息管理endl;coutsetw(46)endl;coutsetw(44)2.增加景点信息endl;coutsetw(46)endl;coutsetw(44)3.修改景点信息endl;coutsetw(46)endl;coutsetw(44)4.道路交通管制endl;coutsetw(46)endl;coutsetw(42)5.返回主菜单endl;coutsetw(46)endl;coutsetw(

    19、36)6.退出endl;coutsetw(46)endl;coutendlsetw(46)choose;if(strlen(choose)=1)switch(choose0)case 1:AdminAlter();break;case 2:ViewAdd();break;case 3: ViewAlter();break;case 4:ControlMenu();break;case 5:MainMenu();break;case 6:exit(0);default:system(cls);coutnnnsetw(43)选择错误!endl;coutendlsetw(49)按任意键返回重新选择!

    20、;coutendl;getch();AdminMenu();elsesystem(cls);coutnnnsetw(43)选择错误!endl;coutendlsetw(49)按任意键返回重新选择!;coutendl;getch();AdminMenu();void ControlMenu()system(cls);char choose1;coutnnnsetw(45)道路交通管制!endl;coutendlsetw(41)1.管理路径endl;coutsetw(45)endl;coutsetw(41)2.删除路径endl;coutsetw(45)endl;coutsetw(45)3.返回上级

    21、菜单endl;coutsetw(45)endl;coutsetw(37)4.退出endl;coutsetw(45)endl;coutendlsetw(46)choose;if(strlen(choose)=1)switch(choose0)case 1:PathControl();break;case 2:PathDel();break;case 3: AdminMenu();break;case 4:exit(0);default:system(cls);coutnnnsetw(43)选择错误!endl;coutendlsetw(49)按任意键返回重新选择!;coutendl;getch()

    22、;ControlMenu();elsesystem(cls);coutnnnsetw(43)选择错误!endl;coutendlsetw(49)按任意键返回重新选择!;coutendl;getch();ControlMenu();:包涵游客用的函数#includeAll.hvoid Map()system(cls);coutnnnsetw(42)map!endl;coutendlsetw(47)按任意键继续.;coutendl;getch();UserMenu();void ViewAsk()system(cls);MGraph G;char viewpoint20;char choose1;

    23、int i,flag=0,flag1=1,flag2=0;Read(G);coutnnnsetw(44)民大景点:endlendl;for(i=0;iG.number;i+)coutsetw(34)(G.Vi.code)G.Vi.nameendl;while(1)coutendlsetw(55)viewpoint;for(i=0;iG.number;i+)flag1=1;flag2=0;if(strcmp(G.Vi.code,viewpoint)=0|strcmp(G.Vi.name,viewpoint)=0)flag1=0;coutnnsetw(37)代码:G.Vi.codeendl;cou

    24、tsetw(37)名称:G.Vi.nameendl;coutsetw(37)简介:G.Vi.instructionendlendl;while(1)coutsetw(48)choose;if(strcmp(choose,Y)=0|strcmp(choose,y)=0)flag2=1;break;else if(strcmp(choose,N)=0|strcmp(choose,n)=0)flag=1;UserMenu();break;elsecoutendlsetw(43)选择错误!endl;/while/ifif(flag2|flag)break;/forif(flag1)coutendlse

    25、tw(46)没有要查询的景点!endl;while(1)coutsetw(48)choose;if(strcmp(choose,Y)=0|strcmp(choose,y)=0)break;else if(strcmp(choose,N)=0|strcmp(choose,n)=0)UserMenu();break;elsecoutendlsetw(43)选择错误!endl;/whilevoid PathAsk()system(cls);MGraph G;char choose1;char start10,end10;int i,j,flag=0,flag1=1,flag2=0,flag3=1;R

    26、ead(G);coutnnnsetw(43)民大景点:endlendl;for(i=0;iG.number;i+)coutsetw(34)(G.Vi.code)G.Vi.nameendl;coutendlsetw(45)请输入景点代码!endl;while(1) flag=0,flag1=1,flag2=0,flag3=1;coutendlsetw(40)start;for(i=0;iG.number;i+)if(strcmp(G.Vi.code,start)=0)flag1=0;coutsetw(40)end;for(j=0;jG.number;j+)if(strcmp(G.Vj.code,

    27、end)=0)flag3=0;Dijkstra(G,i,j);while(1)coutsetw(48)choose;if(strcmp(choose,Y)=0|strcmp(choose,y)=0)flag2=1;break;else if(strcmp(choose,N)=0|strcmp(choose,n)=0)flag=1;UserMenu();break;elsecoutendlsetw(43)选择错误!endl;/whileif(flag|flag2)break;if(flag|flag2)break;/forif(flag3)coutendlsetw(44)没有该终点!endl;w

    28、hile(1)coutsetw(48)choose;if(strcmp(choose,Y)=0|strcmp(choose,y)=0)flag2=1;break;else if(strcmp(choose,N)=0|strcmp(choose,n)=0)flag=1;UserMenu();break;elsecoutendlsetw(43)选择错误!endl;/whileif(flag2|flag)break;if(flag|flag2)break;/forif(flag1)coutendlsetw(44)没有该起点!endl;while(1)coutsetw(48)choose;if(str

    29、cmp(choose,Y)=0|strcmp(choose,y)=0)flag2=1;break;else if(strcmp(choose,N)=0|strcmp(choose,n)=0)flag=1;UserMenu();break;elsecoutendlsetw(43)选择错误!endl;/while/if/whilevoid Dijkstra(MGraph G,int v,int i2) /v为出发顶点int distMAXV,pathMAXV;int sMAXV;int mindis,i,j,u;for(i=0;iG.number;i+)disti=G.edgesvi; /赋值si

    30、=0;if(G.edgesviINF)pathi=v;elsepathi=-1;sv=1;pathv=0;for(i=0;iG.number;i+)mindis=INF;for(j=0;jG.number;j+)if(sj=0&distjmindis)u=j;mindis=distj;su=1;for(j=0;jG.number;j+)if(sj=0)if(G.edgesujINF&distu+G.edgesujdistj)distj=distu+G.edgesuj;pathj=u;Dispath(G,dist,path,s,G.number,v,i2);void Ppath(MGraph G

    31、,int path,int i,int v)int k;k=pathi;if(k=v)return;Ppath(G,path,k,v);coutG.Vk.name;void Dispath(MGraph G,int dist,int path,int s,int n,int v,int i)if(disti!=0)if(si=1)coutendlsetw(24)从G.Vv.name到G.Vi.name的最短路径长度为:distiendl;coutsetw(30)路径为:G.Vv.name;Ppath(G,path,i,v);coutG.Vi.namenn; elsecoutendlsetw(29)从G.Vv.name到G.Vi.name不存在路径!n;elsecoutendlsetw(24)从G.Vv.name到G.Vi.name的最短路径长度为:distiendl;coutsetw(30)路径为:G.Vv.nameG.Vi.namenn;:包涵操作员使用到的函数#includeAll.hvoid AdminAlter()system(cls);char newname10;ch


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922