安邮电大学-(数据结构)校园导游系统课程设计报告.doc

安邮电大学-(数据结构)校园导游系统课程设计报告.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
安邮电大学-(数据结构)校园导游系统课程设计报告

西安郵電學 计算机学院 学生姓名 崔斌 专业名称 计算机科学与技术专业 班 级 计科1106 学号 指导教师 衡 霞 时间 2012年12月15日 至 2012年12月21日 实验题目:校园导游系统 一、实验目的 ①:为了让非本校的同学们,家长们能够充分了解本校---西安邮电大学。 ②:实践数据结构所学知识。 二、实验内容 ①:学校简易的俯视图。 ②:各个景点的简单介绍。 ③:任意两景点之间的所有路径。 ④:任意两景点之间的最少中转景点路径。 ⑤:任意两景点之间的带权路径长度。 三、需求分析 Init();初始化两个顺序栈 Menu();进行选择的模块函数; Intro();景点介绍函数; Search();判断是否有此编号的景点; Findallpath();找路径函数; Findallway();找任意两个景点之间的所有路径;(存在栈里面) Shortestway();任意两个景点之间中转次数最少的路径;(从栈里面读取出来) Niceway();任意两个景点之间总权值最小的路径;(从栈里面读取出来) Calculate();(从栈里面读取出来相关数据),进行分析运算; Byebye(); 你懂得! 四、概要设计 1、方案设计 对系统进行分析,给出景区图 重点: : //思想;递归结合循环,然后,找到终点时还要回溯; void findallway(adjlist *G,int m,int n)//两点之间的所有路径 { int i,t,k; arcnode *p; pa_th rp; push(s,m); G-vertex[m-1].flag=1; if(m==n) { rp.sumweight=k=calculate(G); rp.sum=s-top; rp.num=(y+1); push1(z,rp); printf( 路径%3d为(途径%2d个景点 ,长度为%3d):,y+1,s-top,k); for(i=0;i=s-top;i++) printf(-%d,s-elem[i]); printf(\n); G-vertex[m-1].flag=1; y++;//外部全局变量 } else for(p=G-vertex[m-1].firstarc;p!=NULL;p=p-nextarc) { t=p-num; if(G-vertex[t-1].flag==0) findallway(G,t,n); } G-vertex[s-elem[s-top]-1].flag=0;//两句顺序不可以调换 pops(s); } : //从文件里读取数据; 错误1;不知道此节点有几个邻接点,因为%s的原因,就会只把第一个节点的相关数据读出来,从第二个节点的相关信息处,开始读出错误(即烫烫烫烫烫烫烫烫烫烫烫);为此,我在文件里面加了此节点的邻接点个数m,readnet()里面又有count相加以监视不超过m; 错误2;读文件时,因为有链表的部分,就按照单链表的创建些写,结果总是此节点的最后一个邻接点没被读到内存里,究其原因,是最后一个p1没有连接到此条链表的尾部,(不仅我把p2-nextarc=NULL;还把free(p1);) void readnet(adjlist *G) { int i,count,m; arcnode *head,*p2,*p1; FILE *fp; fp=fopen(U,rt); if(fp==NULL) { printf(文件打开失败!!);exit(0); } for(i=0;ivnum;i++) { fscanf(fp,%d %s %s %d %d,G-vertex[i].num,G-vertex[i].name,G-vertex[i].introduce,G-vertex[i].sum,G-vertex[i].flag);//fprintf() 的后面不加第一个空格也可以。 m=G-vertex[i].sum; p2=H;head=p2; p1=H; fscanf(fp,%d %d,p1-num,p1-weight);//fprintf() 的后面不加第一个空格也可以。 count=1; while(countm) { p2-nextarc=p1; p2=p1; p1=H; fscanf(fp,%d %d,p1-num,p1-weight);//fprin

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档