- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- Unit 5 We’re family 第1课时(Get ready)(课件)外研版(三起)(2024)英语三年级上册.pptx
- 中国民间传说:田螺姑娘.ppt
- 医院岗位风险分级监管制度.docx VIP
- 八年级班级工作计划第一学期.pdf VIP
- 甘肃省平凉崆峒区2024年中考联考数学试卷含解析.doc
- 硅片加工表面抛光.ppt
- 正大猪三宝饲料推广会流程和操作实务.ppt
- 安徽省腰椎间盘突出症分级诊疗指南(2015年版)安徽省医学会(发布时间:2016-01).pdf VIP
- 国家食品安全抽样检验抽样单&填表说明.doc
- TASCAM达斯冠专业音响CD-RW901MKII说明书用户手册(1).pdf
文档评论(0)