搜档网
当前位置:搜档网 › 数据结构课程设计实验报告模板

数据结构课程设计实验报告模板

数据结构课程设计实验报告模板
数据结构课程设计实验报告模板

数据结构课程设计(2011/2012学年第二学期)

------迷宫问题求解

系别:软件学院

指导教师:

班级:

学号:

姓名:

目录

一、课程设计实验报告 (1)

二、需求分析描述 (1)

三、基本要求 (1)

四、系统分析与设计 (1)

五、迷宫求解代码 (6)

六、调试分析 (13)

七、实验心得与体会 (14)

八、参考文献 (14)

一、需求分析描述

1.一个迷宫可用上图所示方阵[m,n]表示,0表示能通过,1 表示不能

通过。现假设耗子从左上角[1,1]进入迷宫,编写算法,寻求一

条从右下角[m,n] 出去的路径

2.迷宫数据由程序提供,迷宫随机生成。

3.程序执行命令为:(1)、创建迷宫;(2)、求解迷宫;(3)、输

出迷宫。

二、基本要求

1.首先实现长宽的输入功能

2.实现自动生成迷宫的方法,我们以1为阻碍,0为通路来设计.

3.实现栈

的输入,输出,判断路径,不对的返回,对的进栈.4,最后输出迷宫的正确路径.

创新要求:

首先输入迷宫的长宽的,然后实现栈的输入,输出,判断路径,不对的返回,对的进栈,最后输出迷宫的正确路径.可以看到每个迷宫都存在“围墙”,用‘1’作为迷宫的围墙,如果没有通路。则输出无通路。

三、系统分析与设计

1 、系统分析(功能要求):

1.void initstack(sqstack *s);/*初始化栈*/

将栈顶和栈底分别申请一段动态存储空间,将栈分配长度为100的空间,将栈的原始长度定义为2

2.void stackpush(sqstack *s,int);/*增加栈顶*/

将栈的动态存储空间增加50,将栈顶指针上移相应高度,特殊情况单独考虑见程序。

3.void stackpop(sqstack *s);/*撤销栈顶*/

栈空提示无法删除,其他情况删除栈顶。

4.void stackinput(sqstack *s);/*输出栈*/

输出寻找到的一条迷宫路径

5.int mgway(sqstack *s);/*迷宫路径*/

寻找到可执行的一条迷宫路径

6.void destorystack(sqstack *s);/*撤销栈S*/

将栈内元素清空

7.void makemg(sqstack *s);/*制造迷宫*/

输入迷宫的长宽(2-15),并产生迷宫图

2、设计方案

求解过程可采用回溯法。回溯法是一种不断试探且及时纠正错误的搜索方法。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达新点,否则试探下一方向; 若所有的方向均没有通路,则沿原路返回前一点,换下一个方向再继续试探,直到所有可能的通路都探索到,或找到一条通路,或无路可走又返回到入口点。

在求解过程中,为了保证在到达某一点后不能向前继续行走(无路)时,能正确返回前一点以便继续从下一个方向向前试探,则需要用一个栈保存所能够到达的每一点的下标及从该点前进的方向,栈中保存的就是一条迷宫的通路。

为了确保程序能够终止,调整时,必须保证曾被放弃过的填数序列不被再次试验,即要求按某种有序模型生成填数序列。给解的候选者设定一个被检验的顺序,按这个顺序逐一生成候选者并检验。

3、

4、概要设计

1.方阵栈:

#define STACK_INI_SIZE 100

typedef struct

{

int *top; //指向栈的顶端域

int *base; //指向栈的低端域

int length; //栈的长度

int stacksize; //栈的最大长度

}sqstack;

2.产生迷宫的矩阵二维数组

为了使每一个迷宫存在迷宫的边界和两个端口:入口、出口,设置了一个二维数组,在迷宫的周边定义为1,使得迷宫存在边界,并在(1,1),(x-2,y-2)初定义为0,即定义迷宫的出口,大大减小了无解的情况。

for(i=0;i

for(j=0;j

mg[i][j]=rand()%3;//产生随机数

i=0;

for(j=0;j

{

mg[i][j]=1; //定义边界

mg[j][i]=1;

}

i=y-1;

for(j=0;j

mg[j][i]=1;

i=x-1;

for(j=0;j

mg[i][j]=1;

mg[1][1]=0; //定义出口和入口

mg[x-2][y-2]=0;

5、函数的简要说明

系统流程图

开始

创建迷宫

当前迷宫状态

出发点

右方可走

左方可走

下方可走

上方可走

向上走

向下走

向左走向右走出口

是否

结束

没有出口

四、源代码

#include

#include

#define STACK_INI_SIZE 100

#define STACKINCREMENT 50

#define NULL 0

typedef struct

{

int *top;

int *base;

int length;

int stacksize;

}sqstack;

int mg[25][25];

int m=1,n=1,x,y;

int main()

{

void initstack(sqstack *s);/*初始化栈*/ void stackpush(sqstack *s,int);/*增加栈顶*/ void stackpop(sqstack *s);/*撤销栈顶*/

void stackinput(sqstack *s);/*输出栈*/

int mgway(sqstack *s);/*迷宫路径*/

void destorystack(sqstack *s);/*撤销栈S*/ void makemg(sqstack *s);/*制造迷宫*/ sqstack s;

int i,flag1=1,flag2=1,flag3=1;

char ch;

while(flag1)/*flag1判断是否建栈成功*/ {

initstack(&s);

flag2=1;//flag2判断建立迷宫

makemg(&s);

i=mgway(&s);

if(i==0){

printf("\n此迷宫没有通路\n");

}

else{

stackinput(&s);

}

destorystack(&s);

printf("\n要继续吗?(y/n)");

fflush(stdin);//清除缓存

scanf("%c",&ch);

while(flag2)

{

if(ch=='n'||ch=='N')

{

flag1=0;

flag2=0;

}

else if(ch=='y'||ch=='Y')

{

flag1=1;

flag2=0;

}

else

{

printf("输入错误,请重新输入");

fflush(stdin);

scanf("%c",&ch);

}

}

}

return 0;

}

void initstack(sqstack *s)/*初始化栈*/

{

s->top=s->base=(int *)malloc(STACK_INI_SIZE*sizeof(int)); if(!s->base)

exit(1);

s->stacksize=STACK_INI_SIZE;

*(s->base)=0;

s->top++;

*(s->top)=101;

s->top++;

s->length=2;

}

void stackinput(sqstack *s)/*迷宫栈的输出*/

{

int w,y,z,i=0,*p;

p=s->base;

p++;

printf("\n迷宫正确路径\n");

while(p!=s->top)

{

printf("(%d,%d)",y=*p/100%10,w=*p%10);

p++;

i++;

if(i==7)

{

printf("\n");

i=0;

}

}

}

void stackpush(sqstack *s,int i)/*增加栈顶*/

{

if(s->length>=s->stacksize)

{

printf("路过");

s->base=(int *)realloc(s->base,(STACK_INI_SIZE+STACKINCREMENT)*sizeof(int)); if(!s->base)

exit(1);

s->top=s->base+s->length;

s->stacksize+=STACKINCREMENT;

stackinput(s);

}

if(s->length==0)

{

*(s->base)=i;

s->top++;

s->length++;

}

else

{

*(s->top)=i;

s->top++;

s->length++;

}

}

void stackpop(sqstack *s)/*删除栈顶*/

{

if(s->length==0)

printf("栈空无法删除");

if(s->length==1)

{

s->top--;

*(s->top)=*(s->base)=NULL;

s->length=0;

}

else

{

s->top--;

*(s->top)=NULL;

s->length--;

}

}

int mgway(sqstack *s)/*迷宫路径*/

{

int gudge(sqstack *s,int);/*判断是否能通行*/

int homing(sqstack *s);/*退栈后I所对应的方向*/ int i=1,j,k;

while(s->top!=s->base)

{

if(i<5)

j=gudge(s,i);

if(j==1&&i<5)

{

k=m*100+n;

stackpush(s,k);

if(m==y-2&&n==x-2)

{

return(1);

}

else

i=1;

}

else

{

if(m==0&&n==0)

return(0);

else if(i==4||i==5)

{

i=homing(s);

stackpop(s);

i++;

}

else

i++;

}

}

return(0);

}

int gudge(sqstack *s,int i)/*退栈后i所对应的方向*/ {

int echo(sqstack *s);

if(i==1)//通道方向(1东2南3西4北)

n++;

if(i==2)

m++;

if(i==3)

n--;

if(i==4)

m--;

if((mg[m][n]==0||mg[m][n]==2)&&echo(s))

return(1);

else

{

if(i==1)

n--;

if(i==2)

m--;

if(i==3)

n++;

if(i==4)

m++;

return(0);

}

}

int echo(sqstack *s)

{

int i,*p,*q;

i=m*100+n;

p=s->top;

q=s->base;

q++;

p--;

while(p!=q&&*p!=i)

p--;

if(*p==i)

return(0);

else

return(1);

}

int homing(sqstack *s)/*i退位后所对应的方向*/

{

int a,b,c,d,*q;

q=s->top;

q--;

a=(*q)/100;

b=(*q)%100;

q--;

c=(*q)/100;

d=(*q)%100;

m=(*q)/100;

n=(*q)%100;

if(a==c)

{

if(d-b==1)

return(3);

else if(d-b==-1)

return(1);

}

else if(b==d)

{

if(c-a==1)

return(4);

else if(c-a==-1)

return(2);

}

return(0);

}

void destorystack(sqstack *s)

{

if(*(s->base)!=NULL)

free(s->base);

s->length=0;

}

void makemg(sqstack *s) /*创建迷宫及输出迷宫图的函数*/ {

int mgway(sqstack *s);

void clearstack(sqstack *s);

int flag=1,flag2=1,i,j,k;

char ch;

while(flag)

{

printf("\n\n\t\t\t☆迷宫☆\t\t\t\n\n\n");

printf("请输入迷宫的长宽(4-15):\n");

printf("输入长:");

fflush(stdin);

scanf("%d",&y);

printf("输入宽:");

fflush(stdin);

scanf("%d",&x);

if(x<16&&x>3&&y>3&&y<16)

flag=0;

else

printf("\n笨蛋,请重新输入:"); if(flag==0)

printf(" 等待 ing... ...\n");

}

flag=1;

while(flag2)

{

m=1;

n=1;

for(i=0;i

for(j=0;j

mg[i][j]=rand()%3;

i=0;

for(j=0;j

{

mg[i][j]=1;

mg[j][i]=1;

}

i=y-1;

for(j=0;j

mg[j][i]=1;

i=x-1;

for(j=0;j

mg[i][j]=1;

mg[1][1]=0;

mg[x-2][y-2]=0;

k=mgway(s);

if(k==1)

flag2=0;

else

clearstack(s);

}

printf(" ");

for(i=0;i

printf("%2d",i);

printf("\n ");

for(i=0;i

printf("↓");

printf("\n");

for(i=0;i

{

printf("%2d→",i);

for(j=0;j

{

if(mg[i][j]==2)

printf("0 ");

else

printf("%d ",mg[i][j]);

}

printf("\n");

}

}

void clearstack(sqstack *s)/*清空栈对于此程序而言*/ {

s->top=s->base;

*(s->base)=0;

s->top++;

*(s->top)=101;

s->top++;

s->length=2;

}

五、调试分析

六.实验心得与体会

通过本次的课程设计是我对栈,线性表又有了更深的理解,我学到了很多,感觉迷宫这个游戏挺好玩的,我们可以将它设计为手动版和自动版的两个排版的游戏.但是对于其的物理存储和逻辑存储不是很了解,不太清楚计算机道理是怎样存储的数据的,数据存储的利用率的高低.

七、参考文献

《数据结构(c语言版)》清华大学出版社严蔚敏吴伟民编著

《数据结构c语言版》中国铁道出版社

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

数据采集系统实验报告

学院名称: 电气信息工程学院 专 业: 测控技术与仪器 班 级: 09测控1W 姓 名: 胡建兵 学 号: 09314111 指导教师姓名: 朱 雷 2012 年 11 月 JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 数据采集系统实验报告

实验2——A/D采集模块设计 一.实验目的 学习用状态机实现对ADC0809,AD574A等A/D转换器的采样控制。 二.实验原理 图1和图2分别为ADC0809的引脚图,转换时序图和采样控制状态图。时序图中,START为转换启动控制信号,高电平有效;ALE为模拟信号输入选通端口地址锁存信号,上升沿有效;一旦START有效后,状态信号变EOC变为低电平,表示进入状态转换,转换时间约为100us。转换结束后,EOC将变为高电平。此外外部控制可使OE由低电平变为高电平(输出有效),此时,ADC0809的输出数据总线D【7...0】从原来的高阻态变为输出数据有效。由状态图也可以看到,状态st2中需要对ADC0809工作状态信号EOC进行测试,如果为低电平,表示转换没有结束,仍需要停留在st2状态中等待,直到变成高电平后才说明转换结束,在下一时钟脉冲到来时转向状态st3。在状态st3,由状态机向ADC0809发出转换好的8位数据输出允许命令,这一状态周期同时可作为数据输出稳定周期,以便能在下一状态中向锁存器锁入可靠的数据。在状态st4,由状态机向FPGA中的锁存器发出锁存信号(LOCK的上升沿),将ADC0809的输出数据进行锁存。 图2.1 ADC0809工作时序

图2.2 控制ADC0809采样状态图程序如图实例1所示,其结构框图如图3所示。 图2.3 采样状态机结构框图

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

Web网页设计实验报告

WEB系统开发 综合实验报告 题目红尘客栈网上订房页面 专业计算机科学与技术(信息技术及应用) 班级计信2班 学生蒋波涛 重庆交通大学 2013年

目录 一、设计目的 (3) 二、设计题目 (3) 三、结构设计 (3) 四、技术分析 (4) 五、设计过程 (7) 六、实验心得 (10) 七、实验总结 (11)

一、设计目的 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet 应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。我们当代大学生更是离不开网络给我们带来的好处与便利.但是,我们成天浏览的网站网页到底是如何制作的呢?我想这一点很多同学都没有去深究过.所以,这学期我选择了”web网页设计”这门课, 本课程的设计目的是通过实践使同学们经历网页制作的全过程. 通过设计达到掌握网页设计、制作的技巧。 了解和熟悉网页设计的基础知识和实现技巧。根据题目的要求,给出网页设计方案,可以按要求,利用合适图文素材设计制作符合要求的网页设计作品。 熟练掌握Photoshop cs3、Dreamweaver cs等软件的的操作和应用。增强动手实践能力,进一步加强自身综合素质。学会和团队配合,逐渐培养做一个完整项目的能力。 二、设计题目 《红尘客栈》 三、结构设计 选定主题,确定题目之后,在做整个网站之前对网站进行需求分析。首先,做好需求调研。调研方式主要是上网查阅资料,在图书馆里翻阅相关书籍。 然后,调研结束之后对整个网站进行功能描述,并对网站进行总体规划,接着逐步细化。 我们选做的主题是个人主页,并且选定题目为“红尘客栈”,其目的是做一个简单的网站,介绍酒店概况,提供一定的资讯信息。 四、技术分析 (一)建立布局 在这次的网页设计中用到大量的布局,所以怎么样建立布局是关键。Dreamweaver cs3是大多数人设计网页的称手兵器,也是众多入门者的捷径。特别是其在布局方面的出色表现,更受青睐。大家都知道,没有表格的帮助,很难组织出一个协调合理的页面。 1.点击“ALT+F6”键,进入布局模式,插入布局表格。建立一个大概的布局。 2.使用背景图片:选中该项,按浏览可以插入一幅准备好的图片作为表格的背景,因为图片是以平铺的形式作为表格背景,所以表格大小和图片尺寸都要控制好。 (二)网页中的图像

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

数据结构课程设计报告模板

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

目录 1.引言 (1) 2.课题分析 (4) 3.具体设计过程 (5) 3.1设计思路 (5) 3.2程序设计流程图 (5) 3.3.函数实现说明 (10) 4.程序运行结果 (12) 5.软件使用说明 (16) 6.结论 (19) 参考文献 (20) 附录:源代码 (21)

1.引言 数据结构在计算机科学界至今没有标准的定义。个人根据各自的理解的不同而有不同的表述方法: Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是ADT(抽象数据类型Abstract Data Type)的物理实现。” Lobert L.Kruse在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。 1.1. 重要意义 一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。 在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。 选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。 1.2. 研究内容

温度采集实验报告

课程设计任务书 题目基于AD590的温度测控系统设计 系(部) 信息科学与电气工程学院 专业电气工程及其自动化 班级电气092 学生姓名刘玉兴 学号090819210 月日至月日共周 指导教师(签字) 系主任(签字) 年月日

摘要 温度是工业生产和自动控制中最常见的工艺参数之一。过去温度检测系统设计中,大多采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统性能的下降。随着半导体技术的高速发展,特别是大规模集成电路设计技术的发展, 数字化、微型化、集成化成为了传感器发展的主要方向。 以单片机为核心的控制系统.利用汇编语言程序设计实现整个系统的控制过程。在软件方面,结合ADC0809并行8位A/D转换器的工作时序,给出80C51单片机与ADC0908并行A /D转换器件的接口电路图,提出基于器件工作时序进行汇编程序设计的基本技巧。本系统包括温度传感器,数据传输模块,温度显示模块和温度调节驱动电路,其中温度传感器为数字温度传感器AD590,包括了单总线数据输出电路部分。文中对每个部分功能、实现过程作了详细介绍。 关键词:单片机、汇编语言、ADC0809、温度传感器AD590

Abstract Temperature is the most common one of process parameters in automatic control and industrial production. In the traditional temperature measurement system design, often using simulation technology to design, and this will inevitably encounter error compensation, such as lead,complex outside circuit,poor anti-jamming and other issues, and part of a deal with them Improperly, could cause the entire system of the decline. With modern science and technology of semiconductor development, especially large-scale integrated circuit design technologies, digital, miniaturization, integration sensors are becoming an important direction of development. In the control systems with the core of SCM,assembly language programming is used to achieve the control of the whole system.Combining with the operation sequence of ADC0809,the interface circuit diagrams of 80C51 SCM and ADC0809 parallel A/D conveger ale given.The basic skills of assembly language programming based on the operation se—quenee of the chip ale put forward.This system include temperature sensor and data transmission, the moduledisplays

数据结构课程设计报告模板2013

课程设计(论文)任务书 学院专业班 一、课程设计(论文)题目 二、课程设计(论文)工作自年月日起至年月日止。 三、课程设计(论文) 地点: 四、课程设计(论文)内容要求: 1.课程设计的目的 为了配合《数据结构》课程的教学,使学生能更深刻的领会《数据结构》课程的重要性,特开设此课程设计;编写一些在特定数据结构上的算法,通过上机调试,更好的掌握各种数据结构及其特点,培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。 2.课程设计的任务及要求 1)基本要求 (1)课程设计前必须选定课程设计题目,并认真进行需求分析与系统设计; (2)上机调试之前要认真准备实验程序及调试时所需的测试数据; (3)独立思考,独立完成,严禁抄袭,调试过程要规范,认真记录调试结果; (4)上机结束后认真规范撰写课设报告,对设计进行总结和讨论。 2)课程设计论文编写要求 (1)要按照书稿的规格撰写打印课设论文 (2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等 (3)正文中要有问题描述、抽象数据类型的定义、数据的存储结构、设计的求解算法、算法的实现、调试分析与测试结果 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查: (1)考勤和态度; (2)任务的难易程度及设计思路;

(3)动手调试能力; (4)论文撰写的水平、格式的规范性。 4)参考文献 [1] 严蔚敏, 吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社, 2007年. [2] 严蔚敏, 吴伟民. 数据结构题集(C语言版)[M]. 北京:清华大学出版社, 2007年. [3] 谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2006年. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 程序设计与调试3计算机房 撰写论文1图书馆 6)任务及具体要求 (此处填写任务书中自已所选题目的要求) 学生签名:亲笔签名 年月日 课程设计(论文)评审意见 (1)考勤和态度:优()、良()、中()、一般()、差()(2)任务难易及设计思路:优()、良()、中()、一般()、差()(3)动手调试能力评价:优()、良()、中()、一般()、差()(4)论文撰写水平及规范性评价:优()、良()、中()、一般()、差() 评阅人:职称:讲师 年月日

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

数据采集与传输系统实验报告

(此文档为word格式,下载后您可任意编辑修改!) 数据采集与传输系统 摘要 该数据采集与传输系统以89C51及89C2051为核心,由数据采集模块、调制解调模块、模拟信道、测试码发生器、噪声模拟器、结果显示模块等构成。在本方案中仅使用通用元器件就较好的实现了题目要求的各项指标。其中调制解调模块、噪声模拟器分别采用单片机和可编程逻辑器件实现。本数据采集与传输系统既可对8路数据进行轮检,也可设置为对一路数据单独监控。本系统硬件设计应用了EDA 工具,软件设计采用了模块化的编程方法。传输码元速率为16kHz~48kHz的二进制数据流。另外,还使用了“1”:“01”、“0”:“10”的Manchester编码方法使数据流的数据位减少,从而提高传输速率。

一、方案设计与论证 首先,我们分析一下信道与信噪比情况。本题中码元传输速率为16k波特,而信号被限定在30k~50kHz的范围内,属于典型的窄带高速率数字通信。而信噪比情况相对较好。这是因为信号带宽仅为20kHz,而噪声近似为0~43kHz()的窄带白噪声,这样即使在信号和噪声幅度比值为1:1的情况下,带内的噪声功率仍然比较小,所以系统具有较高的信噪比。 方案一: 常用的数字调制系统有:ASK、FSK、PSK等。其中FSK具有较强的抗干扰能力,但其要求的的带宽最宽,频带利用率最低,所以首先排除。ASK理论上虽然可行,但在本题目中,由于一个码元内只包括约两个周期的载波,所以采用包络检波法难以解调,也不可行。另外,对于本题目,还可以考虑采用基带编码的方法进行传输,如HDB3码,但这种编码方法其抗干扰能力较差,因此也不太适合。 方案二: PSK调制方式具有较强的抗干扰能力,同时其调制带宽相对也比较窄,因此我们考虑采用这种调制方式。为了简化系统,在实际实现时,我们采用了方波作为载波的PSK调制方式。当要求的数据传输速率较低(≤24kbps)时,对原始数据处理的方法如下:

数据结构课程设计报告

山东建筑大学 课程设计成果报告 题目: 1.数组实现两个矩阵的相乘运算 2.成绩分析问题 课程:数据结构A课程设计 院(部):管理工程学院 专业:信息管理与信息系统 班级:信管*** 学生姓名:*** 学号:******** 指导教师:******* 完成日期:2016年12月29日

目录 目录 (2) 一、课程设计概述 (3) 二、课程设计题目一 (3) 用数组实现两个矩阵的相乘运算 (3) 2.1[问题描述] (3) 2.2[要求及提示]: (3) 2.3[详细设计] (4) 2.4[调试分析] (5) 2.5[运行结果及分析] (5) 三、课程设计题目二 (6) 成绩分析问题 (6) 3.1[问题描述] (6) 3.2[概要设计] (6) 3.3[存储结构] (7) 3.4[流程图] (7) 3.5[详细设计] (8) 3.6[调试分析] (8) 3.7[运行结果及分析] (22) 四、参考文献: (25)

一、课程设计概述 本次数据结构课程设计共完成两个题:用数组实现两个矩阵相乘运算、成绩分析问题。使用语言:C 编译环境:vc6.0 二、课程设计题目一 用数组实现两个矩阵的相乘运算 2.1[问题描述] #include “stdio.h” int r[6][6]; void mult(int a[6][6] , int b[6][6]){ } main(){ int i,j; int num1[6][6],num2[6][6]; printf(“请输入第一个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num1[i][j]); printf(“请输入第二个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num2[i][j]); mult(num1,num2); printf(“\n两个矩阵相乘后的结果为:”); for(i=1;i<=6;i++) {for(j=1;j<=6;j++) printf(“%4d”,r[i][j]); printf(“\n”); } } 2.2[要求及提示]: 1、要求完善函数mult( ),

web动态网页设计实验报告

武汉理工大学华夏学院课程设计 课程名称web技术应用基础 题目在线图书销售系统的设计 专业计算机应用 班级计应1091 姓名 学号10210409126 指导教师库少平

利用已经学习的动态网页知识和数据库知识进行一个综合练习。整个设计过程中采用由点到面的方法即根据体系规划及课程系统规划的要求利用各种工具方法制作各子系统的原型系统然后测试分析原型系统最后根据原型系统的风格框架等完成网络考试的全部内容。根据需要利用ASP、SQL SEVER等技术使用数据库完成交互式模块的设计。基本信息管理包括用户管理员义工等对于此类信息提供了添加修改删除查看等四种功能 二、课程设计要求: 需要我们实现的功能有: 1、系统的用户登录及身份验证要求。 a)系统用户注册 b)验证用户的注册信息 c)系统用户进入系统时身份验证 d)系统用户在不同页面浏览时的身份验证 2、在线图书销售系统要求。 a)允许用户浏览所有图书 b)允许用户按图书种类进行查找 c)允许用户购买自己喜欢的图书 d)允许用户对购物车进行管理 e)系统实现订单的处理 f)系统完成整个购物流程 3、图书销售系统的管理子系统要求。 a)对管理员的身份进行验证 b)对数据库中的图书信息进行管理 c)对数据库中的用户信息进行管理 d)对数据库中的订单信息进行管理

3.1需求分析 本系统设计的主要实现网上图书产品的展示与在线定购以及对不同身份的人员包括管理人员,注册用户和普通浏览者进行管理。图书产品展示能分页分类进行显示。系统采用ASP在网络上架构一个网上的书店,通过网上书店可以轻松实现图书信息的查询和采购。 3.2模块设计 3.2.1 SQL数据库的创建 创建一个空数据库,然后编辑数据表的内容在动态网页面中,一般应用这种方式。

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

数据采集AD转换实验报告

学生实验报告册 课程名称:___________________________________ 学院:______________________________________ 专业班级:___________________________________ 姓名:______________________________________ 学号:______________________________________ 指导教师:___________________________________ 成绩:______________________________________ 学年学期:2017-2018学年秋学期 重庆邮电大学教务处制

STAB! CUt OK ⑵ ADC0809引脚结构 ADC0809各脚功能如下: D7 ~ D0 : 8位数字量输出引脚。IN0 ~ IN7 : 8位模拟量输入引脚。 VCC +5V工作电压。GND地。 REF( +):参考电压正端。REF(-):参考电压负端。 START A/D转换启动信号输入端。 ALE地址锁存允许信号输入端。(以上两种信号用于启动A/D转换). EOC转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE输出允许控制端,用以打开三态数据输出锁存器。 CLK时钟信号输入端(一般为500KHZ。 A B、C:地址输入线。 ⑶ADC0809对输入模拟量要求: 信号单极性,电压范围是0- 5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B, C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0 —IN7上的一路模拟量输入。通道选择表如下表所示。

数据结构课程设计报告模板

数据结构课程设计报告模板 成绩 计算机与信息工程学院 专业名称信息与计算科学 学生班级 10 级1班 学生姓名刘远远 学生学号 2010025707 设计起止时间: 2012年12月17日至 2012年12月21日 课程设计任务书 一、课程设计题目: 线性表的应用(大数运算) 二、课程设计目的与要求: 1、课程设计目的 (1)对数据结构中线性结构的理解和掌握; (2)熟练掌握顺序和链式存储结构有关知识和方法; (3)深入掌握各种数据结构的理论知识和实践操作; (4) 养成良好的编程风格,掌握各种数据结构的编程思想和编程方法; (5)将数据结构的理论知识和实践有机结合起来,为后续知识的学习 做好准备。 2、课程设计要求 (1) 选择合适的存储结构实现大数存储; (2) 设计算法,采用顺序存储结构完成大数的阶乘运算; (3) 设计算法,采用链式存储结构完成大数的加法运算; (4) 设计算法,选择合适的存储结构完成大数的乘法运算;

(5) 其中某一算法采用两种存储结构实现。三、工作计划: 第一阶段(12月17日,12月18日): 查阅各种数据结构相关资料书籍,整理出课程设计初步模型,并形成 课程设计的整体理论框架,理论模型 ; 第二阶段(12月19日,12月21日): 在DEV-C++5或TURBOC2相关开发语言上,进行编码、上机调试, 逐步形成完善的设计程序,使其达到上机完善演示出系统性的课程设计。 四、课程设计提交的文件: (1) 课程设计报告 (2) 课程设计可运行程序(刻录成光盘) 指导教师: 张绍兵 2012 年 12 月 1日 2 线性表有两种不同的存储结构,分别是顺序存储结构和链式存储结构,在实际中应用十分广泛。本设计要求分别利用线性表的两种存储结构,设计算法完成对大数的阶乘、加法、乘法的求解。 数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的关系的操作的学科,在本次课程设计中,定义存储结构均采用了数据结构中的抽象数据类型,而抽象数据类型是指一个数据模型以及定义在改模型上的一组操作,抽象数据类型的定义仅仅取决于它的一组逻辑特性,而与计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。选择合适存储结构实现大数运算。首先需要先解释的是这里大数计算的因数和结果精度一般是少则数十位,多则几万位。在C语言中定义的类型中精度最多只有二十多位,因而在此我们采取用线性表的顺序和链表存储结构的方式来存放大数,

网页设计实验报告 实验一

昆明理工大学信息工程与自动化学院学生实验报告 (201 —201 学年第一学期) 课程名称:Web设计技术开课实验室:年月日年级、专业、班学号姓名成绩 实验项目名称网页设计简介、HTML基础介绍、文字与 段落、列表指导教师 教师 评语教师签名: 年月日 注:报告内容按实验须知中七点要求进行。 一.打开记事本,编写第一个页面。 (1)打开记事本:单击“开始”→“程序”→“附件”→“记事本”。 (2)输入下面代码: 欢迎你! 我的朋友. 当你进入HTML编程世界的时候,你的
感觉是全新的!
(3)单击“文件”→“选择”→“保存”菜单项,选择文件类型为“所有文件”,文件名输入“index.html”并选择文件保存地址(记住一定要把文件的后缀存为.html或.htm,否则网页无法显示)。 (4)用浏览器打开这个文件,看看效果吧! 二.用HTML语言编写符合以下要求的文档:标题为“班级主页”,在浏览器窗口用户区显示“欢迎来到我们的班级主页”,完成后效果如图: 代码: 班级主页 欢迎来到我们的班级主页

数据结构课程设计报告-学生成绩管理系统[]

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

数据采集实验报告最新

黑龙江科技大学 实验报告 专业: 班级: 姓名: 学号: 机械工程学院

实验名称:数据采集实验 一、实验目的 1.通过实验了解ATOS三维光学扫描仪工作原理、特点和适用的范围; 2.通过实验了解运用ATOS三维光学扫描仪进行数据采集的方法和步骤; 3.通过实验了解测量后的数据处理的过程。 二、实验设备 ATOS三维光学扫描仪由硬件部分和软件部分组成。 1. 计算机。用于安装测量系统软件和曲面数据处理软件,控制测量过程、运算得到光顺曲面; 2. 主光源、光栅器件组。用于对焦和发出扫描的光栅光束; 3.2个CCD光学测量传感器。分左右对称两组,通过检测照射在曲面上的光点数据,获取样件表面的点云数据; 4.校准平板。用于校准系统的测量精度; 5.支架。用于支撑测量光学器件组; 6.通讯电缆。用于将控制信号传送到检测系统,并将测量传感器的数据反馈给控制系统作下一步处理; 7.软件。测量系统的软件分别由Linnux操作系统和专用的测量及处理软件ATOS组成。 三、ATOS三维光学扫描仪工作原理 光学扫描仪是以数码相机为基础的光学测量系统,中间是普通光源,两端是CCD摄像头,它是采用光栅测量方法来测量实物,运用数字图像处理技术,获得实物的三维CAD数模。 光栅测量是将多条按照一定规则排列的光栅投射到贴有参考点的实物表面上,受到实物表面起伏及曲率的变化,投影光栅影线随此轮廓位置起伏而扭曲变形。通过解调变形光栅影线,就可获得被测表面高度信息。 将投影光栅投射到实物表面,此时光栅影像发生变形,然后从不同的角度2个CCD抓取。经过数字图像处理后,基于三角形测量原理,大约400 000个摄像象素中每个一个象素点的3D坐标系值被独立而较精确地计算出来,然后通过后处理获得实物的三维CAD数模。 四、实验步骤 1. 对扫描仪进行软硬件的标定,调整好各种测量参数; 2. 对待测实物表面进行前期处理,可喷涂显像剂,使之产生漫反射;

数据结构课程设计报告模板

校园导游系统设计 一、设计要求 1.问题描述 设计一个校园导游程序,为来访的客人提供信息查询服务。 2.需求分析 (1)设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向网),以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。 (2)存放景点代号、名称、简介等信息供用户查询。 (3)为来访客人提供图中任意景点相关信息的查询。 (4)为来访客人提供图中任意景点之间的问路查询。 (5)可以为校园平面图增加或删除景点或边,修改边上的权值等。 二、概要设计 为了实现以上功能,可以从3个方面着手设计。 1.主界面设计 为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如图7-10所示。 2.存储结构设计 本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中:各景点间的邻接关系用图的邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的个数由分量vexnum、arcnum表示,它们是整型数据。 此外,本系统还设置了三个全局变量:visited[ ] 数组用于存储顶点是否被访问标志;d[ ]数组用于存放边上的权值或存储查找路径顶点的编号;campus是一个图结构的全局变量。 3.系统功能设计 本系统除了要完成图的初始化功能外还设置了8个子功能菜单。图的初始化由函数initgraph( )实现。依据读入的图的顶点个数和边的个数,分别初始化图结构中图的顶点向量数组和图的邻接矩阵。8个子功能的设计描述如下。 (1)学校景点介绍 学校景点介绍由函数browsecompus( )实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点简介。 (2)查看浏览路线 查看浏览路线由函数shortestpath_dij( )实现。该功能采用迪杰斯特拉(Dijkstra)算法实现。当用户选择该功能,系统能根据用户输入的起始景点编号,求出从该景点到其它景点的最短路径线路及距离。 (3)查看两景点间最短路径

相关主题