《数据结构》课程实验报告

《数据结构》课程实验报告
《数据结构》课程实验报告

4 实验一基于二叉链表的二叉树的实现

4.1 问题描述

基于二叉链表和队列及其堆栈存储结构,实现二叉链表的二叉树的对数据进行各种必要的操作。

4.2 系统设计

1.2.1提供20个功能,分别是:

1.2.2二叉链表的结构试一堆栈和队列的形式进行储存的分别是:

1.2.3在程序中所定义的数据结构有:

2.3 系统实现

1.3.1 InitTree功能

初始二叉链表,传入的是头结点地址。申请一个存储空间,并用头结点中的首结点指针指向该空间首地址,相应的时间复杂度为1。具体实现如下:

1.3.2 DestroyTree功能

销毁头结点中首结点址针指向的线性存储空间,传入的是头结点地址。具

体实现如下:

1.3.3 CreateBiTree功能

与DestroyBiTree类似但是又有不同,ClearBiTree并不销毁物理空间,而是修改逻辑关系值:

1.3.4 ClearBiTree功能

与DestroyBiTree类似但是又有不同,ClearBiTree并不销毁物理空间,而是

修改逻辑关系值

1.3.5 BiTreeEmpty功能

判空功能,判断表是否为空表。时间复杂度为1,因为只需判断一次就可以知道是否为空。实现如下:

1.3.6 BiTreeDepth功能

求二叉链表深度的功能,由于创建过程中已经把表长信息包含在头结点中,所以直接调用并显示即可

1.3.7 Root(BiTree T)功能

获取二叉链表的根节点的元素,通过遍历二叉链表中的元素,来逐个判断,时间复杂度为(n)。

1.3.8 Value(BiTree T,TElemType e)功能

求指定元素的前一个元素的内容,传入头结点值、包含指定元素信息的一个临时表结点值、存储前一个元素的表结点地址。主要思路是递归算法。时间复杂度为O(n)。具体实现如下:

1.3.9 Assign功能

求指定元素的后一个元素的内容,传入头结点值、包含指定元素信息的一个临时表结点值、存储前一个元素的表结点地址。找到后,把新的数据值赋给所找到的节点。时间复杂度为O(n)。具体实现如下:

1.3.10 Parent功能

找双亲节点,找到后输出

1.3.11 LeftChild功能

查找左孩子,利用递归的算法,与遍历的时间复杂度为相同O(n)

1.3.12RightChild功能

查找右孩子,利用递归的算法,与遍历的时间复杂度为相同O(n)

1.3.13 LeftSibling功能

查找节点的左边的堂兄弟的,找到后输出该节点的数据

1.3.14 RightSibling功能

查找节点的右边的堂兄弟的,找到后输出该节点的数据

1.3.15 InsertChild函数

在二叉链表中插入新的节点

1.3.15 DeleteChild功能

删除指定编号的数据元素,传入头结点地址、编号i、表结点类型结构体地址来返回被删除元素内容。执行前先判断传入的编号是否在可寻找范围内。执行删除操作之后,进行“移位”运算。时间复杂度仍为O(n)。如下:

1.3.16 PreOrderTraverse功能

前序遍历二叉链表中的数据,采用先遍历左孩子,再访问根节点,后访问右孩子

的思想来实现前序遍历的算法的。

1.3.17 InOrderTraverse功能

中序遍历的函数,对二叉链表的数据进行访问,并且利用PreOrderTraverse函数

1.3.18 PostOrderTraverse功能

采用后续遍历的思想,利用先序遍历的函数进行

1.3.19 LevelOrderTraverse功能

完全遍历二叉链表中的数据,并进行输出的

1.3.20 Point功能

定位节点的函数,在需要查找二叉链表二叉树的节点的时候,可以直接调用该函数,进行处理,相应的代码如下

1.3.21 FILE * fileOpen功能

读取功能,通过fscanf实现格式化读取,同时结合CreateList函数实现顺序

1.3.22 BiTNode * Create(FILE *fp)功能

把二叉链表二叉树的数据写入到文件中去

1.4效率分析

在上面介绍各功能时已经提到时间复杂度的计算了,这里再简单分析一下。

具有同数量级复杂度的功能在实现方法上一般近似。

比如InOrderTraverse,PostOrderTraverse,BiTreeDepth,LevelOrderTraverse

它们都是基于PreOrderTraverse

来设计的,所以效率都是O(n);

而Root,Value,Assign,Parent,LeftChild,RightChild,LeftSibling RightSibling,InsertChild,DeleteChild

是基于VisitPoint,平均效率为O(n);

InitTree DestroyBiTree所需信息,所以效率为O(1);

CreateBiTreeClearBiTreeBiTreeEmpty都要对二叉链表,平均效率为O(n)。

实验总结与评价

我做了这个实验发现自己的编程能力很不好,自己的脑袋中有相应的想法和主意,但是因为自己的编程能力很不好也就实现不了自己的想法。

二叉链表的二叉树的时候,实现二叉链表线性的对我来说还可以实现,因为线性的所用到方法和技术,在学习十字链表的时候练习的比较少,实现起来难度是很大。特别是有了老师给的框架以后,我们要做的任务就是向里面填我们自己写的函数,在填写的过程中,我深深的感受到了,认真的重要性,因为我在写好调试的中发现了很多,因为自己的不小心和在敲代码的过程中的不认真而造成的很不应该的错误,这些错误也给自己在调试的过程中也造成了很大的麻烦,因为是不认真而犯的错误,因此调试的过程中也很不好发现。

对我来说,因为我的C语言的功底很不好,运用指针和链表的能力还没有能达到运用自如,理解深刻的地步,所以在顺序链表的链表的实现中,对我来说是一个很大的挑战,我有很多不会的地方通过自己看书,问室友和上网查询,一点一点的写了出来,肯定现在还是会有很多的问题,但是这也是我一直在努力把它做的更好,在调试的中出现了很多的BUG,自己一个个的慢慢的消除掉了,做出了,现在的程序。

如果问自己的体会,那一定是希望我自己以后多多的动手,把以前C语言的书好好再复习一遍,还有就是把现在正在学习的数据

结构的书上各个程序,自己要一个个的敲一遍,练习一下自己的熟悉程度。

总的来说,我对这次的实验是很有感触的。因为,这次实验让我认识到了,自己的编程能力的低下,如果自己再不下一下功夫的话,那么数据结构的考试自己就十分的危险了。因此,我要加紧复习C 语言的知识和数据结构学过的内容,

争取自己能在接下来的学习中能有些进步。

附录:

参考书《数据结构》(C语言版)严蔚敏吴伟民编著

《C语言程序设计》曹计昌,李开编著

数据结构实验报告格式

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

北京理工大学汇编实验报告3

北京理工大学汇编实验报告3

本科实验报告实验名称:实验三字符串操作实验 课程名称: 课程设计Ⅰ(CPU与汇编)(实 验)实验时间: 第5-10周周五 下午 任课教师:聂青实验地点:10-102 实验教师:苏京霞 实验类型:?原理验证□综合设计□自主创新 学生姓名:罗逸雨 学号/班级:1120141208 05211401 组号:3 学院:信息与电子学院同组搭档: 专业:通信工程成绩:

CX 中值减 1,当 CX 中值减至 0 时,停止重复执行,继续执行下一条指令。当REP无条件重复前缀,重复串操作直到计数寄存器的内容 CX 为0为止。经常与REP 配合工作的字符串处理指令有MOVS、STOS和LODS。 当REPE/REPZ判断计数寄存器的内容 CX 是否为0或ZF=0(即比较的两个操作数不等),只要满足一个则重复执行结束,否则继续执行。可以与 REPE/REPZ 配合工作的串指令有CMPS和SCAS。 当REPNE/REPNZ判断计数寄存器的内容是否为0或ZF=1(即比较的两个操作数相等),只要满足一个则重复执行结束,否则继续执行。可以与 REPE/REPZ 配合工作的串指令有CMPS和SCAS。 3)字符串操作指令 lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据 DF 标志增减 SI; stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据 DF 标志增减 DI; movsb、movsw:把 DS:SI 指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据 DF标志分别增减SI和DI; scasb、scasw:把AL或AX 中的数据与ES:DI 指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI; cmpsb、cmpsw:把DS:SI 指向的存储单元中的数据与 ES:DI 指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI; rep:重复其后的串操作指令。重复前先判断 CX 是否为0,为0就结束重复,否则CX减1,重复其后的串操作指令。主要用在MOVS和STOS前。一般不用在 LODS 前。 上述指令涉及的寄存器:段寄存器DS和ES、变址寄存器SI和DI、累加器 AX、计数器CX。 涉及的标志位:DF、AF、CF、OF、PF、SF、ZF。 三、实验步骤 1) 编写程序,比较两个字符串BUF1和BUF2所含的字符是否相同,相同则AL 返回0,不同AL返回1,字符串长度要求自动获取,要求用字符串处理方法。提示:输入两个字符串之后,将串操作所必须的寄存器等参数设置好,然后使用串操作指令进行从头到尾的比较,两个字符串相等的条件是串长度相等且对应的字符相同。 2) 编写程序,设有一字符串存放在以BUF为首址的数据区中,其最后一字符‘$’作为结束标志,计算该字符串的长度并输出。提示:从串的第一个字符开始统计,直到遇到定义的字符串结束符为止,看看在这个过程中总共有多少个字符,

电工和电子技术(A)1实验报告解读

实验一 电位、电压的测定及基尔霍夫定律 1.1电位、电压的测定及电路电位图的绘制 一、实验目的 1.验证电路中电位的相对性、电压的绝对性 2. 掌握电路电位图的绘制方法 三、实验内容 利用DVCC-03实验挂箱上的“基尔霍夫定律/叠加原理”实验电路板,按图1-1接线。 1. 分别将两路直流稳压电源接入电路,令 U 1=6V ,U 2=12V 。(先调准输出电压值,再接入实验线路中。) 2. 以图1-1中的A 点作为电位的参考点,分别测量B 、C 、D 、E 、F 各点的电位值φ及相邻两点之间的电压值U AB 、U BC 、U CD 、U DE 、U EF 及U FA ,数据列于表中。 3. 以D 点作为参考点,重复实验内容2的测量,测得数据列于表中。 图 1-1

四、思考题 若以F点为参考电位点,实验测得各点的电位值;现令E点作为参考电位点,试问此时各点的电位值应有何变化? 答: 五、实验报告 1.根据实验数据,绘制两个电位图形,并对照观察各对应两点间的电压情况。两个电位图的参考点不同,但各点的相对顺序应一致,以便对照。 答: 2. 完成数据表格中的计算,对误差作必要的分析。 答: 3. 总结电位相对性和电压绝对性的结论。 答:

1.2基尔霍夫定律的验证 一、实验目的 1. 验证基尔霍夫定律的正确性,加深对基尔霍夫定律的理解。 2. 学会用电流插头、插座测量各支路电流。 二、实验内容 实验线路与图1-1相同,用DVCC-03挂箱的“基尔霍夫定律/叠加原理”电路板。 1. 实验前先任意设定三条支路电流正方向。如图1-1中的I1、I2、I3的方向已设定。闭合回路的正方向可任意设定。 2. 分别将两路直流稳压源接入电路,令U1=6V,U2=12V。 3. 熟悉电流插头的结构,将电流插头的两端接至数字电流表的“+、-”两端。 4. 将电流插头分别插入三条支路的三个电流插座中,读出并记录电流值。 5. 用直流数字电压表分别测量两路电源及电阻元件上的电压值,记录之。 三、预习思考题 1. 根据图1-1的电路参数,计算出待测的电流I1、I2、I3和各电阻上的电压值,记入表中,以便实验测量时,可正确地选定电流表和电压表的量程。 答: 2. 实验中,若用指针式万用表直流毫安档测各支路电流,在什么情况下可能出现指针反偏,应如何处理?在记录数据时应注意什么?若用直流数字电流表进行测量时,则会有什么显示呢? 答:

数据结构实验报告

数据结构实验报告 一.题目要求 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

汇编课程设计报告

四川大学计算机学院 学生实验报告 实验名称:汇编课程设计报告 指导教师:唐宁九 姓名:廖偲 学号:0943111209 班级:软件09级一班 日期:20101114

实验报告 班级______________姓名_______________学号_________ 一、实验一:DEBUG基本命令与数据传输指令 二、实验的目的和要求: ? 1.熟练掌握DEBUG的基本调试命令,能够使用DEBUG编写、调试汇编语言程序片段。 ? 2.在理解数据传输指令的基础上按照实验内容中指定的程序片段对程序进行调试和记录; 三、实验的环境: 1.硬件环境:cpu 2.26gHZ、内存2G、显存1G、64位总线笔记本电脑 2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具。 四、源程序清单: ?MOV AL, 01H ?MOV SI, 0002H ?LEA SI, [SI] ?MOV BYTE PTR [SI], 80H ?LAHF ?XCHG AL, AH ?SAHF ?XCHG AH, [SI] ?SAHF 五、操作内容: 1.从cmd在debug下进入用A命令进行汇编 格式: A [地址] 功能:从键盘输入汇编程序, 并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。如果不指定汇编地址, 则以CS:IP为地址 2. 反汇编命令U使用 格式: U [地址]/[地址范围] 功能: 将指定地址范围内的机器代码翻译成汇编源程序指令显示出来, 并同时显示地址及代码。 注意: 反汇编时一定确认指令的起始地址, 否则得不到正确的结果。 3.寄存器查看/编辑命令r或r寄存器名称 功能: 显示当前所有寄存器内容, 状态标志及将要执行的下一条指令的地址、代码和汇编指令形式。

#电力电子技术实验报告答案

实验一锯齿波同步移相触发电路实验 一、实验目的 (1)加深理解锯齿波同步移相触发电路的工作原理及各元件的作用。 (2)掌握锯齿波同步移相触发电路的调试方法。 三、实验线路及原理 锯齿波同步移相触发电路的原理图如图1-11所示。锯齿波同步移相触发电路由同步检测、锯齿波形成、移相控制、脉冲形成、脉冲放大等环节组成,其工作原理可参见1-3节和电力电子技术教材中的相关内容。 四、实验内容 (1)锯齿波同步移相触发电路的调试。 (2)锯齿波同步移相触发电路各点波形的观察和分析。 五、预习要求 (1)阅读本教材1-3节及电力电子技术教材中有关锯齿波同步移相 触发电路的内容,弄清锯齿波同步移相触发电路的工作原理。 (2)掌握锯齿波同步移相触发电路脉冲初始相位的调整方法。 六、思考题 (1)锯齿波同步移相触发电路有哪些特点? (2)锯齿波同步移相触发电路的移相范围与哪些参数有关? (3)为什么锯齿波同步移相触发电路的脉冲移相范围比正弦波同步移相触发电路的移相范围要大? 七、实验方法 (1)将DJK01电源控制屏的电源选择开关打到“直流调速”侧,使输出线电压为200V(不能打到“交流调速”侧工作,因为DJK03-1的正常工作电源电压为220V 10%,而“交流调速”侧输出的线电压为240V。如果输入电压超出其标准工作范围,挂件的使用寿命将减少,甚至会导致挂件的损坏。在“DZSZ-1型电机及自动控制实验装置”上使用时,通过操作控制屏左侧的自藕调压器,将输出的线电压调到220V左右,然后才能将电源接入挂件),用两根导线将200V交流电压接到DJK03-1的“外接220V”端,按下“启动”按钮,打开DJK03-1电源开关,这时挂件中所有的触发电路都开始工作,用双踪示波器观察锯齿波同步触发电路各观察孔的电压波形。 ①同时观察同步电压和“1”点的电压波形,了解“1”点波形形成的原因。 ②观察“1”、“2”点的电压波形,了解锯齿波宽度和“1”点电压波形的关系。 ③调节电位器RP1,观测“2”点锯齿波斜率的变化。 ④观察“3”~“6”点电压波形和输出电压的波形,记下各波形的幅值与宽度,并比较“3”点电压U3和“6”点电压U6的对应关系。 (2)调节触发脉冲的移相范围

电子技术基础实验报告要点

电子技术实验报告 学号: 222014321092015 姓名:刘娟 专业:教育技术学

实验三单级交流放大器(二) 一、实验目的 1. 深入理解放大器的工作原理。 2. 学习测量输入电阻、输出电阻及最大不失真输出电压幅值的方法。 3. 观察电路参数对失真的影响. 4. 学习毫伏表、示波器及信号发生器的使用方法。 二. 实验设备: 1、实验台 2、示波器 3、数字万用表 三、预习要求 1、熟悉单管放大电路。 2、了解饱和失真、截止失真和固有失真的形成及波形。 3、掌握消除失真方法。 四、实验内容及步骤 ●实验前校准示波器,检查信号源。 ●按图3-1接线。 图3-1 1、测量电压参数,计算输入电阻和输出电阻。 ●调整RP2,使V C=Ec/2(取6~7伏),测试V B、V E、V b1的值,填入表3-1中。 表3-1 Array ●输入端接入f=1KHz、V i=20mV的正弦信号。 ●分别测出电阻R1两端对地信号电压V i及V i′按下式计算出输入电阻R i : ●测出负载电阻R L开路时的输出电压V∞,和接入R L(2K)时的输出电压V0 , 然后按下式计算出输 出电阻R0;

将测量数据及实验结果填入表3-2中。 2、观察静态工作点对放大器输出波形的影响,将观察结果分别填入表3-3,3-4中。 ●输入信号不变,用示波器观察正常工作时输出电压V o的波形并描画下来。 ●逐渐减小R P2的阻值,观察输出电压的变化,在输出电压波形出现明显失真时,把失真的波形描 画下来,并说明是哪种失真。( 如果R P2=0Ω后,仍不出现失真,可以加大输入信号V i,或将R b1由100KΩ改为10KΩ,直到出现明显失真波形。) ●逐渐增大R P2的阻值,观察输出电压的变化,在输出电压波形出现明显失真时,把失真波形描画 下来,并说明是哪种失真。如果R P2=1M后,仍不出现失真,可以加大输入信号V i,直到出现明显失真波形。 表 3-3 ●调节R P2使输出电压波形不失真且幅值为最大(这时的电压放大倍数最大),测量此时的静态工 作点V c、V B、V b1和V O 。 表 3-4 五、实验报告 1、分析输入电阻和输出电阻的测试方法。 按照电路图连接好电路后,调节RP2,使Vc的值在6-7V之间,此时使用万用表。接入输入信号1khz 20mv后,用示波器测试Vi与Vi’,记录数据。用公式计算出输入电阻的值。在接入负载RL和不接入负载时分别用示波器测试Vo的值,记录数据,用公式计算出输出电阻的值。 2、讨论静态工作点对放大器输出波形的影响。 静态工作点过低,波形会出现截止失真,即负半轴出现失真;静态工

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 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始终指向生成的单链表的最后一个节点

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

电子秒表电路实验报告1

电子技术课程设计 报告 设计题目:电子秒表 院(部):物理与电子信息学院 专业班级:电子信息工程 学生姓名: 学号: 指导教师: 摘要

秒表应用于我们生活、工作、运动等需要精确计时的方面。它由刚开始的机械式秒表发展到今天所常用的数字式秒表。秒表的计时精度越来越高,功能越来越多,构造也日益复杂。 本次数字电路课程设计的数字式秒表的要求为:显示分辨率为1s/100,外接系统时钟频率为100KHz;计时最长时间为60min,五位显示器,显示时间最长为59m59.99s;系统设置启/停键和复位键。复位键用来消零,做好计时准备、启/停键是控制秒表起停的功能键。 针对上述设计要求,先前往校图书馆借阅了大量的数字电路设计方面的书籍,以及一本电子元件方面的工具书,以待查阅各种设计中所需要的元件。其次安装并学习了数字电路设计中所常用的Multisim仿真软件,在课程设计过程的电路图设计与电路的仿真方面帮助我们发现了设计电路方面的不足与错误之处。 关键字:555定时器十进制计数器六进制计数器多谐振荡器

目录 1.选题与需求分析 (1) 1.1设计任务 (1) 1.2 设计任务 (1) 1.3设计构思 (1) 1.4设计软件 (2) 2.电子秒表电路分析 (3) 2.1总体分析 (3) 2.2电路工作总体框图 (3) 3.各部分电路设计 (4) 3.1启动与停止电路 (4) 3.2时钟脉冲发生和控制信号 (4) 3.3 设计十进制加法计数器 (6) 3.4 设计六进制加法计数器 (7) 3.5 清零电路设计 (8) 3.7 总体电路图: (10) 4 结束语与心得体会 (12)

电子技术实验报告—实验4单级放大电路

电子技术实验报告 实验名称:单级放大电路 系别: 班号: 实验者姓名: 学号: 实验日期: 实验报告完成日期: ?

目录 一、实验目的 (3) 二、实验仪器 (3) 三、实验原理 (3) (一)单级低频放大器的模型和性能 (3) (二)放大器参数及其测量方法 (5) 四、实验内容 (7) 1、搭接实验电路 (7) 2、静态工作点的测量和调试 (8) 3、基本放大器的电压放大倍数、输入电阻、输出电阻的测量 (9) 4、放大器上限、下限频率的测量 (10) 5、电流串联负反馈放大器参数测量 (11) 五、思考题 (11) 六、实验总结 (11)

一、实验目的 1.学会在面包板上搭接电路的方法; 2.学习放大电路的调试方法; 3.掌握放大电路的静态工作点、电压放大倍数、输出电阻和通频带测量方法; 4.研究负反馈对放大器性能的影响;了解射级输出器的基本性能; 5.了解静态工作点对输出波形的影响和负载对放大电路倍数的影响。 二、实验仪器 1.示波器1台 2.函数信号发生器1台 3. 直流稳压电源1台 4.数字万用表1台 5.多功能电路实验箱1台 6.交流毫伏表1台 三、实验原理 (一) 单级低频放大器的模型和性能 1. 单级低频放大器的模型 单级低频放大器能将频率从几十Hz~几百kHz的低频信号进行不失真地放大,是放大器中最基本的放大器,单级低频放大器根据性能不同科分为基本放

大器和负反馈放大器。 从放大器的输出端取出信号电压(或电流)经过反馈网络得到反馈信号电压(或电流)送回放大器的输入端称为反馈。若反馈信号的极性与原输入信号的极性相反,则为负反馈。 根据输出端的取样信号(电压或电流)与送回输入端的连接方式(串联或并联)的不同,一般可分为四种反馈类型——电压串联反馈、电流串联反馈、电压并联反馈和电流并联反馈。负反馈是改变房卡器及其他电子系统特性的一种重要手段。负反馈使放大器的净输入信号减小,因此放大器的增益下降;同时改善了放大器的其他性能:提高了增益稳定性,展宽了通频带,减小了非线性失真,以及改变了放大器的输入阻抗和输出阻抗。负反馈对输入阻抗和输出阻抗的影响跟反馈类型有关。由于串联负反馈实在基本放大器的输入回路中串接了一个反馈电压,因而提高了输入阻抗,而并联负反馈是在输入回路上并联了一个反馈电流,从而降低了输入阻抗。凡是电压负反馈都有保持输出电压稳定的趋势,与此恒压相关的是输出阻抗减小;凡是电流负反馈都有保持输出电流稳定的趋势,与此恒流相关的是输出阻抗增大。 2.单级电流串联负反馈放大器与基本放大器的性能比较 电路图2是分压式偏置的共射级基本放大电路,它未引入交流负反馈。 电路图3是在图2的基础上,去掉射极旁路电容C e,这样就引入了电流串联负反馈。

数据结构实验报告模板

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);//重载赋

计算机组成原理与大全实验报告

计算机组成原理与汇编课程设计 实验报告 字符统计.asm 2.斐波那契数(小于50).asm (29) 一、课程设计目标 通过课程设计使学生综合运用所学过的计算机原理与汇编知识,增强解决实际问题的能力,加深对所学知识的理解与掌握,提高软硬件开发水平,为今后打下基础。

课程设计的目的和要求: 1、使学生巩固和加强《计算机原理与汇编语言》课程的基本理论知识。 2、使学生掌握汇编语言程序设计的方法及编程技巧,正确编写程序。 3、使学生养成良好的编程习惯并掌握调试程序的基本方法。 4、使学生养成规范书写报告文档的能力,撰写课程设计总结报告。 5、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。 1 2 3 4 1 2 3 00001001 00100000 00001011 00110000 00001011

01000000 00000000 00000001 本实验设计机器指令程序如下: 4)这里做的是个加法运算,第一个加数已经存入到内存的0000 1010单元中, 第二个加数是需要手工输入的。在实验运行面板中点击“运行”按钮,选择 “输入”芯片,设置输入的数据后,双击连接“输入”芯片的单脉冲,这样 第二个加数就设置好了。 5)在实验运行面板中双击连续脉冲,模型机便开始工作,观察各个芯片的状态。 或者在模型机调试窗口中(如图2所示)点击“指令执行”选项卡,在模型 机调试窗口中点击“下一时钟”,模型机机执行到下一个时钟,点击“下一

微指令”,模型机机执行到下一个微指令,点击“下一指令”,模型机机执行到下一条指令。观察各个芯片的状态,思考模型机的运行原理。 四、课程设计的要求 1、根据题目内容,查阅资料。 2、编写课程设计预习报告。 3、编制程序及调试程序。 4、分析总结,写出课程设计报告,报告中应该包含程序功能与使用说明、程序功能 实现方法说明、如流程图与算法参数说明等内容,设计经验体会总结,源程序清 5 6 1 通 三、实验设计内容 读取文件代码段: MOV AX,DATAS MOV DS,AX ;置数据段寄存器 ; MOV DX,OFFSET FNAME MOV AX,3D00H ;读打开指定文件

电子技术应用实验教程实验报告综合篇含答案UESTC大三上(供参考)

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 第一部分常用电子测量仪器的使用 本部分主要涉及实验要用到的三种仪器:数字示波器、信号发生器和稳压电源。学生在自学了《电子技术应用实验教程综合篇》(后称教材)第一章内容后,填空完成这部分的内容。 一、学习示波器的应用,填空完成下面的内容 示波器能够将电信号转换为可以观察的视觉图形,便于人们观测。示波器可分为模拟示波器和数字示波器两大类。其中,模拟示波器以连续方式将被测信号显示出来;而数字示波器首先将被测信号抽样和量化,变为二进制信号存储起来,再从存储器中取出信号的离散值,通过算法将离散的被测信号以连续的形式在屏幕上显示出来。我们使用的是数字示波器。 使用双踪示波器,能够同时观测两个时间相关的信号。信号通过探头从面板上的通道1 和通道2 端送入,分别称为CH1和CH2。 在使用示波器时,需要注意以下几点: (1)正确选择触发源和触发方式 触发源的选择:如果观测的是单通道信号,就应选择该信号作为触发源;如果同时观测两个时间相关的信号,则应选择信号周期大(大/小)的通道作为触发源。 (2)正确选择输入耦合方式 应根据被观测信号的性质来选择正确的输入耦合方式。如图1.1所示,输入耦合方式若设为交流(AC),将阻挡输入信号的直流成分,示波器只显示输入的交流成分;耦合方式设为直流(DC),输入信号的交流和直流成分都通过,示波器显示输入的实际波形;耦合方式设为接地(GND),将断开输入信号。 已知被测信号波形如图1.2所示,则在图1.3中, C 为输入耦合方式为交流(AC)时的波形, A 为输入耦合方式为直流(DC)时的波形, B 为输入耦合方式为接地(GND)时的波形。 (3)合理调整扫描速度 调节扫描速度旋钮,可以改变荧光屏上显示波形的个数。提高扫描速度,显示的波形少;降低扫描速度,显示的波形多。在实际测试时,显示的波形不应过多,以保证时间测量的精度。 (4)波形位置和几何尺寸的调整 观测信号时,波形应尽可能处于荧光屏的中心位置,以获得较好的测量线性。正确调整垂直衰减旋钮,尽可能使波形幅度占一半以上,以提高电压测量的精度。为便于读数,一般我们调节Y轴位移使0V位置位于示波器显示窗口中的暗格上。 数字示波器中被测信号0V标志位于示波器屏幕显示区的左侧。 在使用示波器前,需要检查示波器探头的好坏。简述检查的方法。 1文档来源为:从网络收集整理.word版本可编辑.

数字电子技术实验报告汇总

《数字电子技术》实验报告 实验序号:01 实验项目名称:门电路逻辑功能及测试 学号姓名专业、班级 实验地点物联网实验室指导教师时间2016.9.19 一、实验目的 1. 熟悉门电路的逻辑功能、逻辑表达式、逻辑符号、等效逻辑图。 2. 掌握数字电路实验箱及示波器的使用方法。 3、学会检测基本门电路的方法。 二、实验仪器及材料 1、仪器设备:双踪示波器、数字万用表、数字电路实验箱 2. 器件: 74LS00 二输入端四与非门2片 74LS20 四输入端双与非门1片 74LS86 二输入端四异或门1片 三、预习要求 1. 预习门电路相应的逻辑表达式。 2. 熟悉所用集成电路的引脚排列及用途。 四、实验内容及步骤 实验前按数字电路实验箱使用说明书先检查电源是否正常,然后选择实验用的集成块芯片插入实验箱中对应的IC座,按自己设计的实验接线图接好连线。注意集成块芯片不能插反。线接好后经实验指导教师检查无误方可通电实验。实验中

1.与非门电路逻辑功能的测试 (1)选用双四输入与非门74LS20一片,插入数字电路实验箱中对应的IC座,按图1.1接线、输入端1、2、4、5、分别接到K1~K4的逻辑开关输出插口,输出端接电平显 图 1.1 示发光二极管D1~D4任意一个。 (2)将逻辑开关按表1.1的状态,分别测输出电压及逻辑状态。 表1.1 输入输出 1(k1) 2(k2) 4(k3) 5(k4) Y 电压值(v) H H H H 0 0 L H H H 1 1 L L H H 1 1 L L L H 1 1 L L L L 1 1 2. 异或门逻辑功能的测试

图 1.2 (1)选二输入四异或门电路74LS86,按图1.2接线,输入端1、2、4、5接逻辑开关(K1~K4),输出端A、B、Y接电平显示发光二极管。 (2)将逻辑开关按表1.2的状态,将结果填入表中。 表1.2 输入输出 1(K1) 2(K2) 4(K35(K4) A B Y 电压(V) L H H H H L L L H H H H L L L H H L L L L L H H 1 1 1 1 1 1 1 1

汇编器实验报告doc

汇编器实验报告 篇一:汇编实验报告 实验一(1)熟悉汇编语言程序调试环境及顺序程序设计 一、实验目的及要求: 1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。 2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。 3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 二、熟悉汇编语言程序调试环境 1.汇编语言源程序的建立 本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。设定源程序的文件名为ABC。 DATA SEGMENT BUFDB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FH CN EQU $-BUF DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: PUSH DS

XOR AX,AX PUSH AX MOVAX,DATA MOV DS,AX MOV BX,OFFSET BUF MOV CX,CN DEC CX MOV AL,[BX] INC BX LP:CMP AL,[BX] JBE NEXT MOV AL,[BX] NEXT: INC BX DEC CX JNZ LP MOV AH,4CH INT 21H CODE ENDS END START 键入以下命令: C:\>EDIT ABC.ASM 此时屏幕的显示状态如图1所示。

1 图1 用EDIT编辑ABC.ASM程序窗口 程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。 2.将源程序文件汇编成目标程序文件 一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。 (2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。 (3)若程序中使用了宏指令,则汇编程序将展开宏指令。 源程序建立以后,在DOS状态下,采用宏汇编程序MASM 对源程序文件进行汇编,其操作过程如图2所示。 图2 MASM宏汇编程序工作窗口 汇编过程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。 3.用连接程序生成可执行程序文件

【VIP专享】电子技术课程设计实验报告

电子技术课程设计实验报告 学院:物联网工程学院 班级:自动化1204 姓名:XXX 学号:1070412428 同组成员:XXX 二〇一四年六月

目录 一、实验名称 (3) 二、实验任务和要求 (3) 三、实验电路 (a)系统框图 (3) (b)总电路原理图 (4) (c)总电路管脚图 (5) 四、单元电路及原理分析 (1)+5V电源电路 (5) (2)正弦波发生及波形变换电路 (6) (3)单稳态定时电路 (7) (4)频率计数显示电路 (7) (5)超量程指示电路 (8) (6)控制电路 (9) 五、元器件列表 (10) 六、安装与调试 1、使用仪器仪表 (10) 2、安装 (10) 3、调试 (11) 4、调试中出现的故障、原因及排除方法 (14) 七、收获和体会 (15)

一、实验名称 正弦波发生、频率测量显示电路 二、实验任务和要求 正弦波振荡频率100~1000Hz,输出信号幅度5±5%V; (1)用3位数码管显示振荡频率; (2)能自动连续测量、显示频率,测量周期为4S; (3)用中规模集成电路实现。 三、实验电路 (a)系统框图 图1-1 正弦波发生电路组成框图 (b)总电路原理图

原理图分析:正弦波振荡器自激振荡产生正弦波输出信号,波形变换电路将正弦波变换成方波,方波输入到计数器中,由计数器对输入方波信号进行计数,计数器的计数结果在译码显示中显示;控制电路部分输出定时触发信号、超量程复位信号和清零信号,定时触发信号输入到单稳态定时电路中,单稳态定时电路将定时触发信号给计数器,计数器在定时周期内对方波信号进行计数;超量程复位信号和计数器输出的超量程指示同时控制超量程指示电路部分,发光二极管发光进行超量程指示;清零信号输入到计数器中,在计数超过量程时计数器清零。

电工电子技术实验报告

电工电子技术实验报告 学院 班级 学号 姓名 天津工业大学电气工程与自动化学院电工教学部 二零一三年九月

目录 第一项实验室规则------------------------------------------------------------------ i 第二项实验报告的要求------------------------------------------------------------ i 第三项学生课前应做的准备工作------------------------------------------------ii 第四项基本实验技能和要求----------------------------------------------------- ii 实验一叠加定理和戴维南定理的研究------------------------------------------ 1实验二串联交流电路和改善电路功率因数的研究--------------------------- 7实验三电动机的起动、点动、正反转和时间控制--------------------------- 14实验四继电接触器综合性-设计性实验----------------------------------------20 实验五常用电子仪器的使用---------------------------------------------------- 22实验六单管低频电压放大器---------------------------------------------------- 29实验七集成门电路及其应用---------------------------------------------------- 33 实验八组合逻辑电路------------------------------------------------------------- 37实验九触发器及其应用---------------------------------------------------------- 40 实验十四人抢答器---------------------------------------------------------------- 45附录实验用集成芯片---------------------------------------------------------- 50

《汇编语言+微型计算机》课程设计实验报告

长江大学工程技术学院《汇编+微机》课程设计报告 ?? 数据采集系统的设计与调试 学生姓名:袁春云学号:200960720?序号:25 专业班级:计本60901 指导老师:李华贵许建国 报告日期: 2011 年9月10日 ???

一.课程设计题目:数据采集系统的设计与测试 利用《汇编语言+微型计算机》课程中所学的可编程接口芯片8253、8255A、ADC0809和微机内部的中断控制器8259A设计一个数据采集系统,并且编程与调试。 二.设计目的 1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制奠定一定的基础。 2.主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A等可编程器件的使用,掌握译码器74LS138的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。 三.课程设计要求 1.功能要求 ①利用《汇编语言+微型计算机系统》课程中所学的可编程接口芯片8253、8255A、ADC0809和微机内部的中断控制器8259A(从保留的IRQ2或TRQ10端引入)设计一个数据采集系统、并且编程与调试。 ②用8253定时器定时10MS,每次定时10MS后启动一次模/数转换,要求对所接通道变化的模拟电压值进行采集。 ③每次模/数转换结束后,产生一次中断,在中断服务程序中,采集来的数字量被读入微处理器的累加器AL中,然后通过8255A输出到8个LED发光二极管显示。 2.设计所需器材与工具 ④微机原理与接口综合仿真实验平台。 ⑤可编程接口芯片8253、8255A、ADC0809和译码器芯片74LS138、74LS 245等。 ⑥可调电位器4.7KΩ一个。 ⑦其他逻辑器件、导线若干。 ⑧万用表、常用工具等。 四.设计思路 1. 4.7Ω电位器一端接+5V,一端接地,调节电位器得到变化的模拟电压,

相关文档
最新文档