数据结构之迷宫求解实验报告武汉大学

数据结构之迷宫求解实验报告武汉大学
数据结构之迷宫求解实验报告武汉大学

数据结构实验报告——

迷宫求解问题实验

上机环境: DevC++

二、程序设计相关信息

(1)实验题目:迷宫求解问题

问题描述:

实验题 改进节中的求解迷宫问题程序,要求输出如图所示的迷宫的所有路径,并求最短路径长度及最短路径。

(2)实验项目组成:

本项目由一个原程序及文件组成。

(3)实验项目的程序结构: 函数调用关系图:

(4)实验项目包含的函数的功能描述:

mg[M+1][N+1] 0 1 2 3 4 5

1

2

3

4

出入main() main()

struct 结构体 mgpath()路径函数

=1;

Stack[top].j=1;

Stack[top].di=-1;

mg[1][1]=-1;

printf("迷宫所有路径如下:\n");

while(top>-1)

{

i=Stack[top].i;j=Stack[top].j;di=Stack[top].di; if(i==M-2&&j==N-2)

{

printf("%4d:",count++);

for(k=0;k<=top;k++)

{

printf("(%d,%d)",Stack[k].i,Stack[k].j); if((k+1)%5==0)

printf("\n ");

}

printf("\n");

if(top+1

{

for(k=0;k<=top;k++)

Path[k]=Stack[k];

min=top+1;

}

mg[Stack[top].i][Stack[top].j]=0; top--;

i=Stack[top].i;j=Stack[top].j;di=Stack[top].di; } mg=0回

mg=1进循环

for

下一

个方块变

下一个方块值 前一个方块值

下一个方块值mg[][]=0

输出方位坐标入口

结束

find=0;

while(di<4&&find==0)

{

di++;

switch(di)

{

case 0:i=Stack[top].i-1;j=Stack[top].j;break;

case 1:i=Stack[top].i;j=Stack[top].j+1;break;

case 2:i=Stack[top].i+1;j=Stack[top].j;break;

case 3:i=Stack[top].i;j=Stack[top].j-1;break;

}

if(mg[i][j]==0)find=1;

}

if(find==1)

{

Stack[top].di=di;

top++;

Stack[top].i=i;

Stack[top].j=j;

Stack[top].di=-1;

mg[i][j]=-1;

}

else

{

mg[Stack[top].i][Stack[top].j]=0;

top--;

}

}

printf("\n");

printf("最短路径如下:\n");

printf("路径最短长度:%d\n",min);

printf("最短路径路径:\n");

for(k=0;k

{

printf("(%d,%d)",Path[k].i,Path[k].j);

}

printf("\n\n");

}

int main()

{

mgpath();

system("PAUSE");

return 0; }

数据结构实验报告格式

《数据结构课程实验》大纲 一、《数据结构课程实验》的地位与作用 “数据结构”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术,并做了性能分析和比较,内容非常丰富。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大的难度: (1)内容丰富,学习量大,给学习带来困难; (2)贯穿全书的动态链表存储结构和递归技术是学习中的重点也是难点; (3)所用到的技术多,而在此之前的各门课程中所介绍的专业性知识又不多,因而加大了学习难度; (4)隐含在各部分的技术和方法丰富,也是学习的重点和难点。 根据《数据结构课程》课程本身的技术特性,设置《数据结构课程实验》实践环节十分重要。通过实验实践内容的训练,突出构造性思维训练的特征, 目的是提高学生组织数据及编写大型程序的能力。实验学时为18。 二、《数据结构课程实验》的目的和要求 不少学生在解答习题尤其是算法设计题时,觉得无从下手,做起来特别费劲。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。在掌握基本算法的基础上,掌握分析、解决实际问题的能力。 三、《数据结构课程实验》内容 课程实验共18学时,要求完成以下六个题目: 实习一约瑟夫环问题(2学时)

数据结构迷宫问题实验报告

《数据结构与算法设计》迷宫问题实验报告 ——实验二 专业:物联网工程 班级:物联网1班 学号:15180118 :刘沛航

一、实验目的 本程序是利用非递归的方法求出一条走出迷宫的路径,并将路径输出。首先由用户输入一组二维数组来组成迷宫,确认后程序自动运行,当迷宫有完整路径可以通过时,以0和1所组成的迷宫形式输出,标记所走过的路径结束程序;当迷宫无路径时,提示输入错误结束程序。 二、实验内容 用一个m*m长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序对于任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 三、程序设计 1、概要设计 (1)设定栈的抽象数据类型定义 ADT Stack{ 数据对象:D={ai|ai属于CharSet,i=1、2…n,n>=0} 数据关系:R={|ai-1,ai属于D,i=2,3,…n} 基本操作: InitStack(&S) 操作结果:构造一个空栈 Push(&S,e) 初始条件:栈已经存在 操作结果:将e所指向的数据加入到栈s中 Pop(&S,&e) 初始条件:栈已经存在 操作结果:若栈不为空,用e返回栈顶元素,并删除栈顶元素 Getpop(&S,&e) 初始条件:栈已经存在 操作结果:若栈不为空,用e返回栈顶元

StackEmpty(&S) 初始条件:栈已经存在 操作结果:判断栈是否为空。若栈为空,返回1,否则返回0 Destroy(&S) 初始条件:栈已经存在 操作结果:销毁栈s }ADT Stack (2)设定迷宫的抽象数据类型定义 ADT yanshu{ 数据对象:D={ai,j|ai,j属于{‘ ’、‘*’、‘’、‘#’},0<=i<=M,0<=j<=N} 数据关系:R={ROW,COL} ROW={|ai-1,j,ai,j属于D,i=1,2,…M,j=0,1,…N} COL={|ai,j-1,ai,j属于D,i=0,1,…M,j=1,2,…N} 基本操作: InitMaze(MazeType &maze, int a[][COL], int row, int col){ 初始条件:二维数组int a[][COL],已经存在,其中第1至第m-1行,每行自第1到第n-1列的元素已经值,并以值0表示障 碍,值1表示通路。 操作结果:构造迷宫的整形数组,以空白表示通路,字符‘0’表示障 碍 在迷宫四周加上一圈障碍 MazePath(&maze){ 初始条件:迷宫maze已被赋值 操作结果:若迷宫maze中存在一条通路,则按如下规定改变maze的状态;以字符‘*’表示路径上的位置。字符‘’表 示‘死胡同’;否则迷宫的状态不变 } PrintMaze(M){ 初始条件:迷宫M已存在 操作结果:以字符形式输出迷宫 } }ADTmaze (3)本程序包括三个模块

(完整版)数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1 .实验目的 (1 )掌握使用Visual C++ 6.0 上机调试程序的基本方法; (2 )掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2 .实验要求 (1 )认真阅读和掌握和本实验相关的教材内容。 (2 )认真阅读和掌握本章相关内容的程序。 (3 )上机运行程序。 (4 )保存和打印出程序的运行结果,并结合程序进行分析。 (5 )按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>// 头文件 #include// 库头文件------ 动态分配内存空间 typedef int elemtype;// 定义数据域的类型 typedef struct linknode// 定义结点类型 { elemtype data;// 定义数据域 struct linknode *next;// 定义结点指针 }nodetype; 2)创建单链表

nodetype *create()// 建立单链表,由用户输入各结点data 域之值, // 以0 表示输入结束 { elemtype d;// 定义数据元素d nodetype *h=NULL,*s,*t;// 定义结点指针 int i=1; cout<<" 建立一个单链表"<> d; if(d==0) break;// 以0 表示输入结束 if(i==1)// 建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));// 表示指针h h->data=d;h->next=NULL;t=h;//h 是头指针 } else// 建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t 始终指向生成的单链表的最后一个节点

武汉大学计算机学院 嵌入式实验报告

武汉大学计算机学院 课程实验(设计)报告 课程名称:嵌入式实验 专业、班: 08级 姓名: 学号: 学期:2010-2011第1学期 成绩(教师填写) 实 一二三四五六七八九总评验 分数 分数 (百分制)

实验一80C51单片机P1口演示实验 实验目的: (1)掌握P1口作为I/O口时的使用方法。 (2)理解读引脚和读锁存器的区别。 实验内容: 用P1.3脚的状态来控制P1.2的LED亮灭。 实验设备: (1)超想-3000TB综合实验仪 1 台 (2)超想3000仿真器 1 台 (3)连线若干根 (4)计算机1台 实验步骤: (1)编写程序实现当P1.3为低电平时,发光管亮;P1.3为高电平时,发光管灭。 (2)修改程序在执行读P1.3之前,先执行CLR P1.3,观察结果是否正确,分析在第二种情况下程序为什 么不能正确执行,理解读引脚和读锁存器区别。 实验结果: (1)当P1.3为低电平时,发光管亮;P1.3为高电平时,发光管灭。 (2)不正确。因为先执行CLR P1.3之后,当读P1.3的时候它的值就一直是0,所以发光管会一直亮而不 会灭。单片机在执行从端口的单个位输入数据的指令(例如MOV C,P1.0)时,它需要读取引脚上的数据。此时,端口锁存器必须置为‘1’,否则,输出场效应管导通,回拉低引脚上的高输出电平。 系统复位时,会把所有锁存器置‘1’,然后可以直接使用端口引脚作为输入而无需再明确设置端口锁存器。但是,如果端口锁存器被清零(如CLR P1.0),就不能再把该端口直接作为输入口使用,除非先把对应的锁存器置为‘1’(如 SETB P1.0)。 (3)而在引脚负载很大的情况(如驱动晶体管)下,在执行“读——改——写”一类的指令(如CPL P1.0) 时,需要从锁存器中读取数据,以免错误地判断引脚电平。 实验二 80C51单片机RAM存储器扩展实验 实验目的: 学习RAM6264的扩展 实验内容: 往RAM中写入一串数据,然后读出,进行比较 实验设备: (1)超想-3000TB综合实验仪 1 台 (2)超想3000仿真器 1 台

数据结构实验报告

数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include "Stack.h"//栈的头文件,没有用上 typedefintElemType; //数据类型 typedefint Status; //返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType data; //数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree; intInsertBST(BiTree&T,int key){//插入二叉树函数 if(T==NULL) { T = (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(keydata){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL; inti=0; while(i

数据结构课程设计-迷宫问题的操作

1、课程设计目的 为了配合《数据结构》课程的开设,通过设计一完整的程序,掌握数据结构的应用、算法的编写、类C语言的算法转换成C程序并用TC上机调试的基本方法特进行题目为两个链表合并的课程设计。通过此次课程设计充分锻炼有关数据结构中链表的创建、合并等方法以及怎样通过转化成C语言在微机上运行实现等其他方面的能力。 2.课程设计的内容与要求 2.1问题描述: 迷宫问题是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口走到出口,而不走错一步。老鼠经过多次试验最终学会走通迷宫的路线。设计一个计算机程序对任意设定的矩形迷宫如下图A所示,求出一条从入口到出口的通路,或得出没有通路的结论。 图A 2.2设计要求: 要求设计程序输出如下: (1) 建立一个大小为m×n的任意迷宫(迷宫数据可由用户输入或由程序自动生成),并在屏幕上显示出来; (2)找出一条通路的二元组(i,j)数据序列,(i,j)表示通路上某一点的坐标。

3.2 概要设计 1.①构建一个二维数组maze[M+2][N+2]用于存储迷宫矩阵 ②自动或手动生成迷宫,即为二维数组maze[M+2][N+2]赋值 ③构建一个队列用于存储迷宫路径 ④建立迷宫节点struct point,用于存储迷宫中每个节点的访问情况 ⑤实现搜索算法 ⑥屏幕上显示操作菜单 2.本程序包含10个函数: (1)主函数main() (2)手动生成迷宫函数shoudong_maze()

武汉大学计算机网络实验报告 (2)

武汉大学教学实验报告 动力与机械学院能源动力系统及自动化专业2013 年11 月10 日

一、实验操作过程 1.在仿真软件packet tracer上按照实验的要求选择无线路由器,一般路由器和PC机构建一个无线局域网,局域网的网络拓扑图如下: 2.按照实验指导书上的表9.1(参数配置表)对路由器,DNS服务器,WWW服务器和PC机进行相关参数的配置: 服务器配置信息(子网掩码均为255.255.255.0) 主机名IP地址默认网关 DNS 202.2.2.1 202.2.2.2 WWW 202.3.3.1 202.3.3.3 路由器配置信息(子网掩码均为255.255.255.0) 主机名型号IP地址默认网关时钟频率ISP 2620XM e1/0:202.2.2.2 e1/1:202.3.3.3 s0/0:202.1.1.2 64000 Router2(Server) 2620XM f0/0:192.168.1.1 s0/0:202.1.1.1 Wireless Router Linksys WRT300N 192.168.1.2 192.168.1.1 202.2.2.1 备注:PC机的IP地址将通过无线路由器的设置自动分配 2.1 对router0(sever)断的配置: 将下列程序代码输到router0中的IOS命令行中并执行,对router0路由器进行设置。Router>en Router#conf t

2.3 WWW服务器的相关配置 对www服务器进行与DNS服务器相似的配置,包括它的IP地址,子网掩码,网关等,具体的相关配置图见下图: WWW服务器的相关配置图

武汉大学电力系统分析实验报告

电气工程学院 《电力系统分析综合实验》2017年度PSASP实验报告 学号: 姓名: 班级:

实验目的: 通过电力系统分析的课程学习,我们都对简单电力系统的正常和故障运行状态有了大致的了解。但电力系统结构较为复杂,对电力系统极性分析计算量大,如果手工计算,将花费 大量的时间和精力,且容易发生错误。而通过使用电力系统分析程序PSASP,我们能对电 力系统潮流以及故障状态进行快速、准确的分析和计算。在实验过程中,我们能够加深对电力系统分析的了解,并学会了如何使用计算机软件等工具进行电力系统分析计算,这对我们以后的学习和工作都是有帮助的。 潮流计算部分: 本次实验潮流计算部分包括使用牛顿法对常规运行方式下的潮流进行计算,以及应用PQ分解法规划运行方式下的潮流计算。在规划潮流运行方式下,增加STNC-230母线负荷的有功至1.5.p.u,无功保持不变,计算潮流。潮流计算中,需要添加母线并输入所有母线 的数据,然后再添加发电机、负荷、交流线、变压器、支路,输入这些元件的数据。对运行方案和潮流计算作业进行定义,就可以定义的潮流计算作业进行潮流计算。 因为软件存在安装存在问题,无法使用图形支持模式,故只能使用文本支持模式,所以 无法使用PSASP绘制网络拓扑结构图,实验报告中的网络拓扑结构图均使用Visio绘制, 请见谅。 常规潮流计算: 下图是常规模式下的网络拓扑结构图,并在各节点标注电压大小以及相位。 下图为利用复数功率形式表示的各支路功率(参考方向选择数据表格中各支路的i侧母

线至j侧),因为无法使用图形支持模式,故只能通过文本支持环境计算出个交流线功率,下图为计算结果。

数据结构实验报告模板

2009级数据结构实验报告 实验名称:约瑟夫问题 学生姓名:李凯 班级:21班 班内序号:06 学号:09210609 日期:2010年11月5日 1.实验要求 1)功能描述:有n个人围城一个圆圈,给任意一个正整数m,从第一个人开始依次报数,数到m时则第m个人出列,重复进行,直到所有人均出列为止。请输出n个人的出列顺序。 2)输入描述:从源文件中读取。 输出描述:依次从显示屏上输出出列顺序。 2. 程序分析 1)存储结构的选择 单循环链表 2)链表的ADT定义 ADT List{ 数据对象:D={a i|a i∈ElemSet,i=1,2,3,…n,n≧0} 数据关系:R={< a i-1, a i>| a i-1 ,a i∈D,i=1,2,3,4….,n} 基本操作: ListInit(&L);//构造一个空的单链表表L ListEmpty(L); //判断单链表L是否是空表,若是,则返回1,否则返回0. ListLength(L); //求单链表L的长度 GetElem(L,i);//返回链表L中第i个数据元素的值; ListSort(LinkList&List) //单链表排序 ListClear(&L); //将单链表L中的所有元素删除,使单链表变为空表 ListDestroy(&L);//将单链表销毁 }ADT List 其他函数: 主函数; 结点类; 约瑟夫函数 2.1 存储结构

[内容要求] 1、存储结构:顺序表、单链表或其他存储结构,需要画示意图,可参考书上P59 页图2-9 2.2 关键算法分析 结点类: template class CirList;//声明单链表类 template class ListNode{//结点类定义; friend class CirList;//声明链表类LinkList为友元类; Type data;//结点的数据域; ListNode*next;//结点的指针域; public: ListNode():next(NULL){}//默认构造函数; ListNode(const Type &e):data(e),next(NULL){}//构造函数 Type & GetNodeData(){return data;}//返回结点的数据值; ListNode*GetNodePtr(){return next;}//返回结点的指针域的值; void SetNodeData(Type&e){data=e;}//设置结点的数据值; void SetNodePtr(ListNode*ptr){next=ptr;} //设置结点的指针值; }; 单循环链表类: templateclass CirList { ListNode*head;//循环链表头指针 public: CirList(){head=new ListNode();head->next=head;}//构造函数,建立带头节点的空循环链表 ~CirList(){CirListClear();delete head;}//析构函数,删除循环链表 void Clear();//将线性链表置为空表 void AddElem(Type &e);//添加元素 ListNode *GetElem(int i)const;//返回单链表第i个结点的地址 void CirListClear();//将循环链表置为空表 int Length()const;//求线性链表的长度 ListNode*ListNextElem(ListNode*p=NULL);//返回循环链表p指针指向节点的直接后继,若不输入参数,则返回头指针 ListNode*CirListRemove(ListNode*p);//在循环链表中删除p指针指向节点的直接后继,且将其地址通过函数值返回 CirList&operator=(CirList&List);//重载赋

数据结构-迷宫实验报告

云南大学软件学院数据结构实验报告(本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 实验难度 A □ B □ C □ 承担任务 (难度为C时填写) 指导教师评分(签名) 【实验题目】 实验4.数组的表示极其应用 【问题描述】 以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 【基本要求】 首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d 表示走到下一坐标的方向。如;对于下列数据的迷宫,输出的一条通路为:(l,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。?

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) (本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识) 本实验的目的是设计一个程序,实现手动或者自动生成一个n×m矩阵的迷宫,寻找一条从入口点到出口点的通路。我们将其简化成具体实验内容如下:选择手动或者自动生成一个n×m的迷宫,将迷宫的左上角作入口,右下角作出口,设“0”为通路,“1”为墙,即无法穿越。假设从起点出发,目的为右下角终点,可向“上、下、左、右、左上、左下、右上、右下”8个方向行走。如果迷宫可以走通,则用“■”代表“1”,用“□”代表“0”,用“→”代表行走迷宫的路径。输出迷宫原型图、迷宫路线图以及迷宫行走路径。如果迷宫为死迷宫,输出信息。 可以二维数组存储迷宫数据,用户指定入口下标和出口下标。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。? 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1. 设定迷宫的抽象数据类型定义: ADT Maze { 数据对象:D = { a i, j | a i, j ∈ { ‘■’、‘□’、‘※’、‘→’、‘←’、 ‘↑’、‘↓’ } , 0≤ i≤row+1, 0≤j≤col+1, row, col≤18 } 数据关系:R = { ROW, COL } ROW = { < a i-1, j , a i, j > | a i-1, j , a i, j ∈D, i=1, … , row+1, j=0, … , col+1} COL = { < a i, j-1, a i, j > | a i, j-1 , a i, j ∈D, i=0, … , row+1, j=1, … , col+1} 基本操作: Init_hand_Maze( Maze, row, col) 初始条件:二维数组Maze[][]已存在。

《数据结构》实验报告

《数据结构》实验报告 实验序号:4 实验项目名称:栈的操作

附源程序清单: 1. #include #define MaxSize 100 using namespace std; typedef int ElemType; typedef struct { ElemType data[MaxSize]; int top; }SqStack; void InitStack(SqStack *st) //初始化栈 { st->top=-1; } int StackEmpty(SqStack *st) //判断栈为空{ return (st->top==-1); } bool Push(SqStack *st,ElemType x) //元素进栈{ if(st->top==MaxSize-1)

{ return false; } else { st->top++; //移动栈顶位置 st->data[st->top]=x; //元素进栈 } return true; } bool Pop(SqStack *st,ElemType &e) //出栈 { if(st->top==-1) { return false; } else { e=st->data[st->top]; //元素出栈 st->top--; //移动栈顶位置} return true; } //函数名:Pushs //功能:数组入栈 //参数:st栈名,a->数组名,i->数组个数 bool Pushs(SqStack *st,ElemType *a,int i) { int n=0; for(;n数组名,i->数组个数 bool Pops(SqStack *st,ElemType *a,int i) { int n=0; for(;n

武汉大学单级放大电路实验报告

武汉大学计算机学院教学实验报告 课程名称电路与电子技术成绩教师签名 实验名称单级放大电路(多人合作实验)实验序号06 实验日期2011-12-12 姓名学号专业年级-班 小题分: 一、实验目的及实验内容 (本次实验所涉及并要求掌握的知识;实验内容;必要的原理分析) 实验目的: 1.掌握放大器静态工作点的调试方法及其对放大器性能的影响。 2.学习测量放大器的静态工作点Q,Av,ri,ro的方法啊,了解共射极电路特性。 3.学习放大器的动态性能。 实验内容: 测量放大器的动态和静态工作状态结果填入相应表格当中,记录相应的β值,A值和等效的输入电阻ri与输出电阻r0。 二、实验环境及实验步骤 小题分: (本次实验所使用的器件、仪器设备等的情况;具体的实验步骤) 实验环境: 1.示波器 2.信号发生器 3.数字万用电表 4.TRE-A3模拟电路实验箱 实验步骤: 1.?值测量 (1)按图2.1所示连接电路,将Rp的阻值调到最大值。 (2)连线完毕仔细检查,确定无误后再接通电源。改变Rp,记录Ic分别为0.8mA,1mA, 1.2mA时三极管V的?值。

Ib(mA)0.05 0.06 0.066 Ic(mA) 0.8 1 1.2 ? 16 16.67 18.18 ?=Ic/Ib代入各式即可 2.Q点测量 信号源频率f=500Hz时,逐渐加大ui幅度,观察uo不失真时的最大输入ui值和最大输出uo值,并测量Ib,Ic,和VCE填入表2.2 表2.2 实测法估算法误差 IB (uA)IC (mA) Vce (V) IB’ (uA) IC’ (mA) V’ce (V) IB-I’B IC-I’C Vce-V’ 47.2 1.4 4.86 47.2 1.56 3 0 0.16 1.86 估算法:Ib=V1/(R1+R2)=12/(51k+200K)=47.2uA Ic= ?Ib=1.56mA Vce=V1-R3*Ic=3V 3.Av值测量 (1)将信号发生器调到频率f=500Hz,幅值为5mA,接到放大器输入端ui,观察ui和uo 端的波形,用示波器进行测量,并将测得的ui,uo和实测计算的Av值及理论估算的Av’值填入表2.3 表2.3 实测法估算法误差 Ui(mV)Uo(V) Av=uo/ui Av’Av’-Av 5 -1.3 -260 -31 .7 -55.7 估算法:Vbe=V1-Ib(R1+R2) Vce=V1-Ic*R3 Av’=Vce/Vbe=-315.7 (2)保持Vi=5mV不变,放大器接入负载RL,在改变Rc的数值情况下测量,并将计算结果填表2.4 表2.4 给定参数实 实测计 估算 Rc RL Vi(mV) V o(V) Av Av 2k 5k 5 0.83 165 177.89 2k 2k2 5 0.60 119 129.7 5k1 5k1 5 1.30 260 315.76 5k1 2k2 5 0.90 180 190.3

数据结构课程实验报告(15)

课程实验报告课程名称:数据结构 专业班级:信安1302 学号: 姓名: 指导教师: 报告日期:2015. 5. 12 计算机科学与技术学院

目录 1 课程实验概述............ 错误!未定义书签。 2 实验一基于顺序结构的线性表实现 2.1 问题描述 ...................................................... 错误!未定义书签。 2.2 系统设计 ...................................................... 错误!未定义书签。 2.3 系统实现 ...................................................... 错误!未定义书签。 2.4 效率分析 ...................................................... 错误!未定义书签。 3 实验二基于链式结构的线性表实现 3.1 问题描述 ...................................................... 错误!未定义书签。 3.2 系统设计 ...................................................... 错误!未定义书签。 3.3 系统实现 ...................................................... 错误!未定义书签。 3.4 效率分析 ...................................................... 错误!未定义书签。 4 实验三基于二叉链表的二叉树实现 4.1 问题描述 ...................................................... 错误!未定义书签。 4.2 系统设计 ...................................................... 错误!未定义书签。 4.3 系统实现 ...................................................... 错误!未定义书签。 4.4 效率分析 ...................................................... 错误!未定义书签。 5 实验总结与评价 ........... 错误!未定义书签。 1 课程实验概述 这门课是为了让学生了解和熟练应用C语言进行编程和对数据结构进一步深入了解的延续。

分析化学实验报告(武汉大学第五版)

分析化学实验报告 陈峻 (贵州大学矿业学院贵州花溪 550025) 摘要:熟悉电子天平得原理与使用规则,同时可以学习电子天平得基本操作与常用称量方法;学习利用HCl与NaOH相互滴定,便分别以甲基橙与酚酞为指示剂得 滴定终点;通过KHC 8H 4 O 4 标定NaOH溶液,以学习有机酸摩尔质量得测定方法、熟 悉常量法滴定操作并了解基准物质KHC 8H 4 O 4 得性质及应用;通过对食用醋总浓度 得测定,以了解强碱滴定弱酸过程中溶液pH得变化以及指示剂得选择。 关键词:定量分析;电子天平;滴定分析;摩尔质量;滴定;酸度,配制与标定 前言 实验就是联系理论与实际得桥梁,学好了各种实验,不仅能使学生掌握基本操作技能,提高动手能力,而且能培养学生实事求就是得科学态度与良好得实验习惯,促其形成严格得量得观念。天平就是大多数实验都必须用到得器材,学好天平得使用就是前提,滴定就是分析得基础方法,学好配制与滴定就是根本。 (一)、分析天平称量练习 一、实验目得: 1、熟悉电子分析天平得使用原理与使用规则。 2、学习分析天平得基本操作与常用称量法。 二、主要试剂与仪器 石英砂电子分析天平称量瓶烧杯小钥匙 三、实验步骤 1、国定质量称量(称取0、5000g 石英砂试样3份) 打开电子天平,待其显示数字后将洁净、干燥得小烧杯放在秤盘上,关好天平门。然后按自动清零键,等待天平显示0、0000 g。若显示其她数字,可再次按清零键,使其显示0、0000

g。 打开天平门,用小钥匙将试样慢慢加到小烧杯中央,直到天平显示0、5000 g。然后关好 天平门,瞧读数就是否仍然为0、5000g。若所称量小于该值,可继续加试样;若显示得量超过 该值,则需重新称量。每次称量数据应及时记录。 2、递减称量(称取 0、30~0、32 g石英砂试样 3 份) 按电子天平清零键,使其显示0、0000 g,然后打开天平门,将1个洁净、干燥得小烧杯 放在秤盘上,关好天平门,读取并记录其质量。 另取一只洁净、干燥得称量瓶,向其中加入约五分之一体积得石英砂,盖好盖。然后将 其置于天平秤盘上,关好天平门,按清零键,使其显示0、0000 g。取出称量瓶,将部分石英 砂轻敲至小烧杯中,再称量,瞧天平读数就是否在-0、30~-0、32 g 范围内。若敲出量不够, 则继续敲出,直至与从称量瓶中敲出得石英砂量,瞧其差别就是否合乎要求(一般应小于 0、4 mg)。若敲出量超过0、32 g,则需重新称量。重复上述操作,称取第二份与第三份试样。 四、实验数据记录表格 表1 固定质量称量 编号 1 2 3 m/g 0、504 0、500 0、503 表2 递减法称量 编号 1 2 3 m(空烧杯)/g 36、678 36、990 37、296 称量瓶倒出试样m1 -0、313 -0、303 -0、313 M(烧杯+试样)/g 36、990 37、296 37、607

数据结构之迷宫找到路径实验报告

实验报告 课程名:数据结构(C语言版)实验名:迷宫问题I 姓名: 班级: 学号: 撰写时间:2014/10/05

一实验目的与要求 1. 了解栈的应用 2. 利用栈在迷宫中找到一条路 二实验内容 ?一个迷宫如图1所示, 是由若干个方格构成的一个矩形, 其中有唯一的一个入口(用标示), 有唯一的一个出口(用△标示). 图中深色的方格无法到达, 浅色的方格都是可以到达的. 每一次只能从当前方格前进到与当前方格有公共边的方格中(因此前进方向最多有四个). ?本次实验的迷宫问题要求求解一条从入口到出口的路. 图1:迷宫 三实验结果与分析 程序: #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int Maze(int ox,int oy,int ex,int ey,int rnum,int cnum,int a[rnum][cnum]){ int b[rnum][cnum]; int i,j,Znum=0; for(i=0;i

} } int Sx[Znum+1], Sy[Znum+1], p=0; for(i=0;i0){ if(Sx[p-1]==ex && Sy[p-1]==ey){ brand = 1; break; } else{ int tb = -1; for(i=1;i<4;++i){ int tx = Sx[p-1]+dx[i]; int ty = Sy[p-1]+dy[i]; if(b[tx][ty]==0){ tb = 1; Sx[p]=tx; Sy[p]=ty; b[tx][ty]=2; p=p+1; } } if(tb<0){ b[Sx[p-1]][Sy[p-1]]=-1; p=p-1; } } } if(brand>0){ while(p>0){ printf("(%d,%d), ",Sx[p-1],Sy[p-1]); p=p-1; }

数据结构实验报告--图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ } void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e)

{ int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: "; cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } } template void MGraph::DFSTraverse(int v) { cout << vertex[v]; visited[v] = 1; for(int j = 0; j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0) DFSTraverse(j); } template void MGraph::BFSTraverse(int v) { int Q[MaxSize]; int front = -1, rear = -1; cout << vertex[v]; visited[v] = 1; Q[++rear] = v; while(front != rear) { v = Q[++front]; for(int j = 0;j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0){ cout << vertex[j]; visited[j] = 1;

武汉大学计算机学院教学实验报告

武汉大学计算机学院教学实验报告 课题名称:电工实验专业:计算机科学与技术2013 年11 月15 日 实验名称电路仿真实验实验台号实验时数3小时 姓名秦贤康学号2013301500100年级2013 班3班 一、实验目的及实验内容 (本次实验所涉及并要求掌握的知识点;实验内容;必要的原理分析) 实验目的: 熟悉multisim仿真软件的使用 用multisim进行电路仿真,并验证书上的理论知识的正确性 内容:用仿真软件进行实验 二、实验环境及实验步骤 (本次实验所使用的器件、仪器设备等的情况;具体的实验步骤) 实验环境: 一台微机 实验步骤: 用multisim先进行电路仿真,再记录下相关数据 三、实验过程与分析 (详细记录实验过程中发生的故障和问题,进行故障分析,说明故障排除的过程和方法。根据具体实验,记录、整理相应的数据表格、绘制曲线、波形图等)

实验内容及数据记录 1、简单直流电路 简单直流电路在有载状态下电源的电阻、电压和电路 简单直流电路在短路状态下电源的电阻、电压和电路 简单直流电 路在 开路状 态下电源的电阻、电压和电路 2、复杂直 流电路 复杂直流电路中各元件上的电压 复杂直流电路中各元件上的电流 复杂直流电路在E1作用下负载上的电压和电流 复杂直流电路在E2作用下的电压和电流 复杂直流电路在E1与E2作用下的电压和电流 复杂直 流电路 中的等效电阻 R (k Ω) 1 2 3 4 5 I (mA ) 24000 24000 24000 24000 24000 U (V ) 0.000024 0.000024 0.000024 0.000024 0.000024 R (k Ω) 1 2 3 4 5 I (mA ) 12 6.09 4.011 3.011 2.412 U (V ) 11.94 11.997 11.99 8 11.998 11.999 R (k Ω) 1 2 3 4 5 I (mA ) 0.000176 0.000176 0.000176 0.000176 0.000176 U (V ) 12 12 12 12 12 RL (k Ω) 1 2 3 4 5 URL (V ) 6.799 8.497 9.269 9.710 9.995 UR1(V ) 5.198 3.501 2.730 2.289 2.004 UR2(V ) -3.200 -1.502 -0.731 -0.290 -0.005286 UE1(V ) 11.997 11.998 11.999 11.999 11.999 UE2(V ) 9.999 10.000 10.000 10.000 10.000 RL (k Ω) 1 2 3 4 5 IRL (mA ) 6.807 4.258 3.100 2.437 2.209 IR1(mA ) 5.198 3.505 2.733 2.292 2.006 IR2(mA ) -1.603 2.499 --1.999 -1.666 -1.428 IE1(mA ) 5.198 3.505 2.733 2.292 2.006 IE2(mA ) -1.603 -2.501 -2.000 -1.666 -1.428 RL (k Ω) 1 2 3 4 5 UE1(V ) 4.798 5.996 6.540 6.851 7.053 IE1(mA ) 4.803 3.004 2.187 1.720 1.418 RL (k Ω) 1 2 3 4 5 UE2(V ) 2.002 2.501 2.729 2.858 2.942 IE2(mA ) 2.002 1.252 0.911 0.718 0.592 RL (k Ω) 1 2 3 4 5 URL (V ) 6.802 8.497 9.269 9.710 9.995 IRL (mA ) 6.807 4.258 3.100 2.437 2.209 R3(k Ω) 1 2 3 4 5 R6(k Ω) 2 3 4 5 6 R7(k Ω) 3 4 5 6 7 RL (k Ω) -1.603 2.499 --1.999 -1.666 -1.428 URL (V ) 5.198 3.505 2.733 2.292 2.006 IRL (A ) -1.603 -2.501 -2.000 -1.666 -1.428 R3(k Ω) 1 2 3 4 5

相关文档
最新文档