当前位置:文档之家› 《软件技术基础》实验指导书_实验三、四

《软件技术基础》实验指导书_实验三、四

《软件技术基础》实验指导书_实验三、四
《软件技术基础》实验指导书_实验三、四

《软件技术基础》实验指导书

电子商务教研室

2009年9月

实验三队列的应用

◆实验目的与基本要求

1、掌握队列的顺序存储和链式存储结构。

2、掌握队列的特点。

3、掌握队列的基本运算。

◆实验条件

1、硬件:一台微机

2、软件:操作系统和C语言系统

◆实验方法

确定存储结构后,上机调试实现队列的基本运算。

◆实验内容

1、写出队列的出队和入队算法。

2、设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚,依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已停放n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。编制一个程序模拟该停车场的管理。

◆性质:必做

◆类型:验证

◆2h

队列是从日常排队现象抽象出来的一种数学模型。当然数据结构中的队列远没有生活中的排队灵活。数据结构中的队列规定:数据只能从队尾进,从队首出来。已经进入队列的数据次序不能再做改变。这就叫做“先进先出”(FIFO)或者说“后进后出”(LILO)。允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为队首,通常也用一个队首指针(front)指向队首元素的前一个位置(当然也可以直接指向队首元素,只是许多数据结构的书上都习惯这么定义)。与队列类似,我们可以用一维数组来模拟队列这种数据结构,也可以用链表来模拟。

根据以上描述,队列可以可以有以下基本操作:

1、创建初始化:按约定置队列为空状态。

2、入队列:在队尾加入一个新数据项。

3、出队列:从队首取出一个数据项,并使余下诸项向队首移动。

4、队列空:判断队列是否为空。

5、队列满:判断队列是否已满。

从概念上说,队列不存在“满”状态,其长度可以任意增加,但实现(不论静态或

动态)中总有空间限制的。

下面我就来讨论用数组实现队列结构。

假定队列中元素的类型为T,队列的最大长度为queue_size,在任何一刻队列首、尾位置分别用下标head、tail指向。

队列初始状态应为:head=0,tail=-1。根据队列定义,head值应恒为0,那么每当出队一个数据项,则必须执行多次移动操作(余下诸项向队首移动)。显然不能直接采用这种结构实现队列。解决这个问题,可以从数学取模运算联想到一个解决办法。比如x=(x+1) mod 100 ,则x的变化范围在[0,99]之间,超过100的又从0,1开始。这不就是我们所需要的嘛!许多书上把它叫作“循环数组”技术。即当入队列时先移动tail(即tail=(tail+1) mod queue_size),出队列时先移动head(即head=(head+1) mod queue_size)。

在移动中,若head(或tail)值为queue_size-1,则移动后head(或tail)的值就变成0了,对这种特征就是一个环,只要数组有空间,就可以入队列。

用“循环数组”实现队列,必须注意怎样判断队列的空与满的状态。除起始状态外。任何时刻tail所指为最后一个进入队列的元素,而head所指的是刚刚出队列的那个元素原先所占的位置。因此(head+1) mod queue_size才是真正当前队列中首元素位置。

采用条件:(tail+1) mod queue_size == head 作为“队列满”的判断条件。实际上此时队列中还有一个空位置,这样队列的利用空间比定义的最大空间少一个单元。假如把这个单元也利用上,则就不好判断“满”或“空”了(当head==tail),必须根据是tail追上了head,还是head追上了tail才能区分,这样给处理带来了不便。

#include

#include

#define NULL 0

typedef struct node

{

int data;

}NODE;

#define LEN sizeof(NODE)

/*队列的需要变量*/

typedef enum {false,true}bool; /*定义bool类型*/

unsigned int head; /*定义队首下标变量*/

unsigned int tail; /*定义队尾下标变量*/

static NODE *queue=NULL; /*定义一个队列*/

static unsigned int queue_size=0;/*队列的大小*/

/*

========================

功能:初始化队列的大小

返回:true or false

========================

*/

bool InitQueue(unsigned int size)

{

queue=(NODE *)malloc(size*LEN); /*开辟空间*/ if (queue==NULL) /*开辟空间失败,则返回false*/

{

return false;

}

queue_size = size; /*保存队列空间大小值*/

head = queue_size-1;/*队首下标赋初值*/

tail = queue_size-1;/*队尾下标赋初值*/

return true; /*初始化成功,返回true*/

}

/*

======================

功能:释放队列的内存

返回:void

======================

*/

void FreeQueue()

{

free(queue);

/*

注意:这一点很重要。free()之后并不能将queue

置为NULL,所以我们一定要自己做。这样能防止产生

“野指针”,即地址不确定的指针。

*/

queue = NULL;

}

/*

==========================

功能:判断队列是否已满

返回:true or false

==========================

*/

bool Full()

{

return (((tail+1)%queue_size)==head);

}

/*

===========================

功能:判断队列是否为空

返回:true or false

===========================

*/

bool Empty(){

return (head==tail);

}

/*

========================

功能:入队列

返回:true or false

========================

*/

bool Push(NODE p)

{

if (!Full()) /*队列不满,则入队列;队尾下标要加1*/ {

tail = (tail+1)%queue_size;

queue[tail] = p;

return true;

}

else

{

printf("queue is overflow !\n");

return false;

}

}

/*

===================

功能:出队列

返回:出队列元素指针

===================

*/

NODE *Pop()

{

if (!Empty()) /*队列不空,则出队列;队首下标要加1*/ {

head = (head+1)%queue_size;

return (&queue[head]);

}

else

{

printf("queue is empty !\n");

return NULL;

}

}

void main(void)

{

NODE node1 = {3};

NODE *p;

if (!InitQueue(3)) /*初始化不成功,则退出*/

{

exit(0);

}

Push(node1);

/*去掉下面的注释,你可以验证讲解中空间利用问题*/

/*

Push(node1);

Push(node1);

Push(node1);

*/

p =Pop();

printf("%d",p->data);

FreeQueue(); /*注意程序退出时释放队列内存*/

printf("\n");

system("pause");

}

提示:可以停车场内的车辆管理,看做是堆栈,采用先进后出的运算规则;而在停车场外排队的车辆管理,可以看做是队列,采用先进先出的运算规则。

基本思想:根据题目要求,停车场只有一个大门,因此可用一个栈来模拟。而当栈满后,继续来到的车辆只能停在便道上,根据便道停车的特点,可知这可以用一个队列来模拟,先排队的车辆先离开便道,进入停车场。由于排在停车场中间的车辆可以提出离开停车场,并且要求在离开车辆到停车场大门之间的车辆都必须离开停车场,让此车辆离去,然后再让这些车辆依原来的次序进入停车场,因此在一个栈和一个队列的基础上,还需要有一个地方保存为了让路离开停车场的车辆,很显然这也应该用一个栈来模拟,因此,本题中要用到两个栈和一个队列。

参考程序如下:

#define N 2 /* 定义停车场栈长度 */

#define M 5 /* M为单元时间的收费值 */

#define True 1

#define False 0

#include “stdio.h”

/* 存储结构 */

typedef struct /* 定义栈元素类型 */

{ int num;

int arrtime;

}elemtype;

typedef struct /* 定义栈 */

{ elemtype stack[N];

int top;

}sqstktp;

typedef struct node /* 定义队列结点的类型 */

{ int num;

struct node *next;

}queueptr;

typedef struct /* 定义队列 */

{ queueptr *front, *rear;

}Linkedquetp;

void inistack(sqstktp *s) /*初始化栈 */

{ s->top=-1;

int push(sqstktp *s, elemtype x) /* 数据元素x入指针s所指的栈 */ { if(s->top= = N-1)

return(False); /* 如果栈满,返回False */

else

{ s->stack[++s->top]=x; /* 栈不满, x入栈 */

return(True);

}

elemtype pop(sqstktp *s) /* 栈顶元素出栈 */

{elemtype x;

if(s->top<0)

{ x.num=NULL;

x.arrtime=NULL;

return(x); /* 如果栈空,返回空值 */

}

else

{ s->top--;

return(s->stack[s->top+1]); /* 栈不空,返回栈顶元素 */ }

}

实验四二叉树的应用

◆实验目的与基本要求

1、掌握指针变量,动态变量的含义。

2、掌握二叉树的结构特性,以及存储结构的特点及适用范围。

3、掌握用指针类型描述,访问和处理二叉树的运算

◆实验条件

1、硬件:一台微机

2、软件:操作系统和C语言系统

◆实验方法

确定存储结构后,上机调试实现二叉树的基本运算。

◆实验内容

1、验证二叉树的几个基本性质。

2、实现二叉树的遍历运算。

◆性质:必做

◆类型:验证

◆2h

树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序如下时,可用树表示源源程序如下的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。

1.二叉树的基本形态:

二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:

(1)空二叉树——(a);

(2)只有一个根结点的二叉树——(b);

(3)右子树为空的二叉树——(c);

(4)左子树为空的二叉树——(d);

(5)完全二叉树——(e)

2.二叉树的遍历

遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次。由于二叉树是非线性结构,因此,树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示。

设L、D、R分别表示遍历左子树、访问根结点和遍历右子树,则对一棵二叉树的遍

历有三种情况:DLR(称为先根次序遍历),LDR(称为中根次序遍历),LRD (称为后根次序遍历)。

(1)先序遍历

访问根;按先序遍历左子树;按先序遍历右子树

(2)中序遍历

按中序遍历左子树;访问根;按中序遍历右子树

(3)后序遍历

按后序遍历左子树;按后序遍历右子树;访问根

3.程序举例:

#include

#include

#define MAX 50

#define MAS 20

#define CHAR 1

#if CHAR

typedef char TElemType;

TElemType Nil=' ';

#define form "%c"

#else

typedef int TElemType;

TElemType Nil=0;

#define form "%d"

#endif

typedef struct node

{TElemType data;

struct node *left;

struct node *right;

struct node *parent;

}BiTNode,*BiTree;

BiTNode *InitBiTree(BiTNode *bt)

{

bt=NULL;

return bt;

}

BiTNode *CreateBiTree(BiTNode *bt)

{TElemType ch;

scanf(form,&ch);

if(ch==Nil) bt=NULL;

else

{bt=(BiTNode *)malloc(sizeof(BiTNode));

if(!bt) exit(0);

bt->data=ch; bt->parent=NULL;

bt->left=CreateBiTree(bt->left);

if(bt->left) bt->left->parent=bt;

bt->right=CreateBiTree(bt->right);

if(bt->right) bt->right->parent=bt;

}

return bt;

}

void PrintTree(BiTNode *bt,int i)

{ if(bt!=NULL)

{PrintTree(bt->right,i+5);

#if CHAR

if(bt->data!=Nil)

printf("%*c\n",i,bt->data);

#else

if(bt->data!=Nil)

printf("%*d\n",i,bt->data);

#endif

PrintTree(bt->left,i+5);

i=i-5;

}

}

void Prorder1(BiTNode *bt,void(*visit)(TElemType))/*先序遍历*/ {if(bt!=NULL)

{visit(bt->data);

Prorder1(bt->left,visit);

Prorder1(bt->right,visit);

}

}

void Prorder2(BiTNode *bt,void(*visit)(TElemType))/*中序遍历*/ {BiTNode *p,*stack[MAS];

int top;

top=0; p=bt;

while(top!=0||p!=NULL)

{while(p!=NULL)

{stack[top]=p; top++;

p=p->left;

}

if(top!=0)

{p=stack[top-1];

top--;

visit(p->data);

p=p->right;

}

}

}

void Prorder3(BiTNode *bt,void(*visit)(TElemType))/*后序遍历*/ {BiTNode *p,*stack[MAS];

int top;

top=0;

stack[top]=bt; top++;

while(top>0)

{p=stack[top-1]; top--;

while(p!=NULL)

{visit(p->data);

stack[top]=p->right;

top++;

p=p->left;

}

}

}

void visit(TElemType e)

{printf(form" ",e);

}

int SumLefts(BiTNode *bt,int sum)

{

if (bt!=NULL)

{

if (bt->left==NULL && bt->right==NULL)

{

printf("%4c",bt->data); sum++;

}

sum=SumLefts(bt->left,sum);

sum=SumLefts(bt->right,sum);

}

return(sum);

}

int SumTree(BiTNode *bt)

{static int sum=0;

if(bt!=NULL)

{printf("%4c",bt->data);

sum++;

sum=SumTree(bt->left);

sum=SumTree(bt->right);

}

return(sum);

}

BiTNode *Findchar(BiTNode *bt,char ch) /*二叉树查找结点*/

{BiTNode *p; /*利用函数名返回结果*/

if(bt!=NULL)

{if(bt->data==ch) p=bt;

p=Findchar(bt->left,ch);

p=Findchar(bt->right,ch);

}

if(p!=NULL) return(p);

else return(NULL);

}

main()

{ int j,i,a,sum=0;

BiTree bt;

bt=InitBiTree(bt);

#if CHAR

printf("请先序输入二叉树(如:ab三个空格表示a为根结点,b为左子树的二叉树)\n");

#else

printf("请先序输入二叉树(如:1 2 0 0 0表示1为根结点,2为左子树的二叉树)\n"); #endif

bt=CreateBiTree(bt);

printf("输入建立的二叉树!!!\n");

PrintTree(bt,5);

do{

printf("------------------------------------------------------------"); printf("\n 主菜单");

printf("\n 1 二叉树先序遍历");

printf("\n 2 二叉树后序遍历");

printf("\n 3 二叉树中序遍历");

printf("\n 4 二叉树叶子结点数");

printf("\n 5 二叉树结点数");

printf("\n 6 二叉树查找x结点");

printf("\n 0 退出");

printf("\n----------------------------------------------------------"); printf("\n");

printf("输入你要选择的数据:");

scanf("%d",&i);

switch(i)

{case 1: printf("先序遍历结果为:");

Prorder1(bt,visit);

break;

case 2: printf("后序遍历结果为:");

Prorder2(bt,visit);

break;

case 3: printf("中序遍历结果为:");

Prorder3(bt,visit);

break;

case 4: j=SumLefts(bt,sum);

printf("树的叶子结点数为%d:",j);

break;

case 5: j=SumTree(bt);

printf("树的结点数为%d:",j);

break;

case 6: printf("输入要查找的结点字符x:");

scanf("%c",&a); scanf("%*c");

j=Findchar(bt,a);

printf("要查找的结点的指针为%d:",j);

break;

case 0: exit(0);

}

printf("\n");

getch();

}while(i>0||i<8);

}

大学物理学实验指导书_4

大学物理学实验指导书 大学物理实验 力学部分 实验一长度与体积的测量 实验类型:验证 实验类别:专业主干课 实验学时:2 所属课程:大学物理

所涉及的课程和知识点:误差原理有效数字 一、实验目的 通过本实验的学习,使学生掌握测长度的几种常用仪器的使用,并会正确读数。练习作好记录和误差计算。 二、实验要求 (1)分别用游标卡尺、螺旋测微计测金属圆筒、小钢球的内外径及高度,并求体积。(2)练习多次等精度测量误差的处理方法。 三、实验仪器设备及材料 游标卡尺,螺旋测微计,金属圆柱体,小钢球,铜丝 四、实验方案 1、用游标卡尺测量并计算所给样品的体积。 2、分别用千分尺和读数显微镜测量所给金属丝的直径。 数据处理 注意:有效数字的读取和运用,自拟表格,按有关规则进行数据处理。 描述实验过程(步骤)以及安全注意事项等,设计性实验由学生自行设计实验方案。 五、考核形式 实际操作过程实验报告 六、实验报告 实验原理,实验步骤,实验数据处理,误差分析和处理。 对实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。 七、思考题 1、游标卡尺测量长度时如何读数 游标本身有没有估读数 2、千分尺以毫米为单位可估读到哪一位初读数的正负如何判断 待测长度如何确定 实验二单摆 实验类型:设计 实验类别:专业主干课 实验学时:2 所属课程:大学物理 所涉及的课程和知识点:力学单摆周期公式 一、实验目的 通过本实验的学习,使学生掌握使用停表和米尺,测准单摆的周期和摆长。利用单摆周期公式求当地的重力加速度

二、实验要求 (1)测摆长为1m时的周期求g值。 (2)改变摆长,每次减少10cm,测相应周期T,作T—L图,验证单摆周期公式。 三、实验仪器设备及材料 单摆、米尺、游标卡尺、停表。 四、实验方案 利用试验台上所给的设备及材料,自己制作一个单摆,然后设计实验步骤测出单摆的周期,再根据单摆的周期公式计算当地的重力加速速。 改变摆长,讨论对实验结果的影响并分析误差产生的原因 五、考核形式 实际操作过程实验报告 六、实验报告 实验原理,实验步骤,实验数据处理,误差分析和处理。 对实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。 七、思考题 1、为什么测量周期不宜直接测量摆球往返一次摆动的周期试从误差分析来说明。 2、在室内天棚上挂一单摆,摆长很长,你设法用简单的工具测出摆长不许直接测量摆长。 实验三牛顿第二定律的验证 实验类型:验证 实验类别:专业主干课 实验学时:2 所属课程:大学物理 所涉及的课程和知识点:力学牛顿第二定律摩擦 一、实验目的 通过本实验的学习,使学生掌握气垫导轨的使用,使学生通过在气垫导轨上验证牛顿第二定律,更深刻的理解牛顿第二定律的物理本质。 二、实验要求 验证当m一定时,a∝F,当F一定时,a∝1/m。 三、实验仪器设备及材料 气垫导轨,数字毫秒计,光电门,气源 四、实验方案 1、调整气垫导轨水平。 在导轨的端部小心安装好滑轮,使其转动自如,细心调整好导轨的水平。

实验-3-资源管理-实验指导书

大连东软信息学院 《项目时间与进度管理》 实验指导书 编写者:陈倩 信息技术与商务管理系

实验三:资源管理 1学时 2学时 2实验目的与要求 【目的】 了解项目资源管理的内容;掌握使用项目管理软件管理项目资源。包括建立项目资源库、分配资源、识别和解决资源分配中的冲突;了解资源管理中资源调配的主要方法; 【交付成果】实验报告(截图) 【交付时间】下次上课 3实验环境 WINDOWS操作系统,项目管理软件Project 4准备工作 预先安装软件Project,做好项目计划。 5实验内容 (一)资源管理基本操作 1.建立项目资源库 2.为任务分配资源 (二)资源调配 1.延迟任务,解决过度分配 2.让Project自动调配资源 3.控制整个项目周期中的资源可用性 6实验步骤 (一)资源管理基本操作 1.在上一实验的综合案例“征求项目建议书”基础上(文件名为“05_test.mpp”),为项目建立和分配资源,然后分析资源使用状况并加以改进。请按照要求和步骤逐一进行,并将项目文件保存为“06_test.mpp”。 2.按照表1建立项目资源库。 表1

【提交截图】-资源工作表 3.分配资源前确定工时 在分配资源之前,最好先将所有详细任务的工时设定好,这样第一次为任务分配资源时,不会出现因资源单位改变导致工时变化的情况。这步工作在甘特图的工时表中进行,摘要任务无需填写工时,系统会自动计算。 提示:在甘特图编辑区的灰色标题栏上点击右键【插入列】,【域名称】选择“工时”,即可看到“工时”列,按下图输入每项任务的工时: 按照表2,给每个详细任务确定工时。 表2 4.调整任务的类型 任务2.6“最终确定RFP”和3.3“确定具有竞争力的投标商”计划都要在1个工作日内完成,多个部门需要参与讨论工作,但参与讨论的人数多少不能改变工期,所以要将任务类型改为“固定工期”型,如图1。 提示:在任务窗体或任务信息对话框中进行(双击该任务),将任务设为“固定工期”型和“非投入比导向”属性(即工期不会因为资源数量的改变而变化)。

大学物理实验4-指导书

1.1 静电场 实验内容 图示静电场的基本性质: 同心球壳电场及电势分布图。 实验设置 有两个均匀带电的金属同心球壳配置如图。内球壳(厚度不计)半径为R 1=5.0 cm ,带电荷 q 1 = 0.6?10-8 C ;外球壳半径R 2 = 7.5 cm ,外半径R 3 = 9.0 cm ,所带总电荷q 2 = - 2.0?10-8 C 。 实验任务 画出该同心球壳的电场及电势分布。 实验步骤及方法 基本原理:根据高斯定理推导出电场及电势的 分布公式;利用数据分析软件,如Microsoft Excel 绘制电场及电势的分布图。 在如图所示的带电体中,因内球壳带电q 1,由于静电感应,外球壳的内表面上将均匀地分布电荷-q 1;根据电荷平衡原理,外球壳的外表面上所带电荷除了原来的q2外,还因为内表面感应了-q 1而生成+q 1,所以外球壳的外表面上将均匀分布电荷q 1+q 2。 在推导电场和电势分布公式时,须根据r 的变化范围分别讨论r < R 1、R 1 < r < R 2、R 2 < r < R 3、r > R 3几种情况。 场强分布: 当r < R 1时, 001=?=???E dS E S 当R 1 < r < R 2时, ?= ???0 1 εq dS E S 2 1 0241 r q E επ= 当R 2 < r < R 3时, 00 3=?=???E dS E S 当r > R 3时, 1

2 210 40 2 141r q q E q q dS E S += ? += ??? επε 电势分布: 根据电势的定义,可以求得电势的分布。 当r < R 1时, 3 2 10210110143211414141 3 3 2 21 1R q q R q R q U dr E dr E dr E dr E dr E U R R R R R R r r ++ -=?+?+?+?=?=?????∞ ∞ επεπεπ 当R 1 < r < R 2时, 3 2 102101014321414141 3 3 2 2R q q R q r q U dr E dr E dr E dr E U R R R R r r ++ -=?+?+?=?=????∞ ∞ επεπεπ 当R 2 < r < R 3时, 3 2 10143141 3 3 R q q U dr E dr E dr E U R R r r += ?+?=?=???∞ ∞ επ 当r > R 3时, r q q U dr E dr E U r r 2 1014141 += ?=?=??∞ ∞επ 至此,可以用MS Excel 来绘制电场及电势分布图。方法如下: 打开Excel 后会有一个默认的表格出现(如下图) 在A1、A2、A3单元格内分别输入“R1=”、“R2=”、“R3=”;在B1、B2、B3单元格内分别输入R1、R2、R3的数值。

3模拟飞行实验指导书

飞机观察及模拟实践实验指导书 空中交通管理学院 中国民航大学 2006.12.30

试验一:直线平飞 本实验是在学习掌握飞行原理知识的基础上,了解直线平飞的操作要领及如何控制飞行姿态、保持高度和速度,通过模拟飞行,使学生掌握如何实现直线平飞、在飞机姿态不变的情况下匀速飞行。 实验目的: 1 了解掌握在直线匀速水平飞行时驾驶员的动作要领及操作; 2 能在飞行操作中进一步了解、掌握运用飞行操纵的技能; 3 了解掌握平飞中油门(转速)和速度的关系并能准确运用; 4 通过飞行了解飞机配平的作用; 5 通过飞行了解飞行仪表的判读; 实验条件: 安装有模拟飞行软件的计算机,每台计算机均配有操纵杆,飞行所选机型为塞斯纳轻型飞机。 所需理论知识: 1 飞机空中四力的平衡 2 副翼、方向舵及升降舵的作用 3 飞行仪表的显示及判读 4 调整片的作用 5 油门及转速与飞行速度的关系 实验步骤: 1 首先温习所需基本理论知识,对本科目将用到的知识能灵活掌握; 2 进入模拟飞行软件,点击进入STUDENT PILOT中的Lesson 1内容,教 师进行演示飞行; 3 学生点击本科目界面最下方的按钮进入实际模拟飞行演练; 4 演练过程中记录相关姿态、仪表数据变化; 5 飞行时间结束后观看飞行过程分析,分析、总结心得; 6 课后填写实验报告; 实验报告要求: 1 实验地点、人员、时间,所用软件名称、科目;

2 实验内容及过程,按照飞行过程做好各项数据记录及其变化,主要涉及以 下: 1)飞行高度及偏离; 2)飞行速度及偏离; 3)航向保持及偏离; 4)发动机转速; 5)飞机姿态及配平; 6)其他; 3 飞行结束后分析自己的操作及飞行结果,是否按照要求达到科目要求 4 实验心得体会; 附件: 实验报告 实验科目名称:直线平飞 日期: 内容:

单片机实验3指导书

实验3 LED数码管显示实验 一、实验目的: 1、巩固Proteus软件和Keil软件的使用方法; 2、学习端口输入输出的高级应用; 3、掌握7段数码管的连接方式和显示原理 4、掌握查表程序和延时等子程序的设计 二、实验内容 1、仿真部分: 用51单片机驱动一个八位一体LED数码管和两个按钮开关,实现:按钮1按下实现八个LED数码管同时循环显示“0,1,2……E,F”的十六进制数。按钮2按下实现八个LED 数码管显示数字“12345678”不变。 2、真机部分: 利用实验箱上的BANK3,在真机上观察到仿真部分的实验现象。BANK3的相关电路图见后(五)。 三、实验原理 1、LED数码管显示原理 LED数码管:“8”字型,7段(不包括小数点)或8段(包括小数点),每段对应一个发光二极管,有共阳极和共阴极两种,见下图1。共阳极数码管的阳极连接在一起,接+5V;共阴极数码管阴极连在一起接地。 图1 8段LED数码管结构及外形 对于共阴极数码管,当某发光二极管阳极为高电平时,发光二极管点亮,相应段被显示。同样,对于共阳极数码管,当某个发光二极管阴极接低电平时,该发光二极管被点亮,相应段被显示。 为使LED数码管显示不同字符,要把某些段点亮,就要为数码管各段提供一字节的二进制码,即字型码(也称段码)。习惯上以“a”段对应字型码字节的最低位。各字符段码见下表所示:

2、LED数码管的静态显示与动态显示 LED数码管有两种显示方式:静态显示和动态显示。 (1)静态显示方式:无论多少位LED数码管,都同时处于显示状态。 多位LED数码管工作于静态显示方式时,各位共阴极(或共阳极)连接在一起并接地(或接+5V);每位数码管段码线(a~dp)分别与一个8位I/O口锁存器输出相连。如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到送入下一个显示字符段码。静态显示方式显示无闪烁,亮度较高,软件控制较易。例如,下图2为4位LED数码管静态显示电路,各数码管可独立显示,只要向控制各位I/O口锁存器送相应显示段码,该位就能保持相应的显示字符。 图2 4位LED静态显示的示意图 这样在同一时间,每一位显示的字符可各不相同。静态显示方式占用I/O口端口线较多。如图2所示电路,要占用4个8位I/O口(或锁存器)。如数码管数目增多,则需增加I/O 口数目。 (2)动态显示方式:实质是以执行程序时间来换取I/O端口减少。 当显示位数较多时,静态显示所占的I/O口多,这时常采用动态显示。为节省I/O口,通常将所有显示器段码线相应段并联在一起,由一个8位I/O口控制,各显示位公共端分别由另一单独I/O口线控制,如下图3所示。其中单片机发出的段码占用1个8位I/O(1)端口,而位选控制使用I/O(2)端口中4位口线。

实验指导书

Matlab实验指导书 河北大学电子信息工程学院 2004年1月

目录 MATLAB实验教学计划 (2) 实验一MATLAB基本操作 (3) 实验二MATLAB图形系统......................................................... . (5) 实验三 MATLAB程序设计 (6) 实验四 MATLAB基本应用领域 (7) 实验五设计性综合实验1---数字信道编译码 (14) 实验六设计性综合实验2---fir滤波器设计................................. . (16) 2

MATLAB实验教学计划 指导教师:郑晓昆薛文玲王竹毅学时数:12学时周4学时2次实验,共3周6次实验,第7—9教学周,每次实验2学时 所用仪器设备:MATLAB7.0实验软件系统 实验指导书:Matlab实验指导书 自编 实验参考书:, 楼顺天等编著, 西安电子科大出版社,06年5月第二版 实验项目: A, MATLAB基本操作 内容:矩阵操作,基本数学函数,逻辑函数操作等; 要求:循序渐进完成P83练习题1—10 B, MATLAB图形系统 内容:图形绘制,图形标注,对数和极坐标,坐标轴控制,颜色控制等要求:循序渐进完成P146练习题1—10 C, MATLAB程序设计 内容:脚本script和函数function认识,流程控制,参数交互输入,基本程序设计技巧练习,程序调试DEBUG等 要求:循序渐进完成P184练习题1—10 D, MATLAB基本应用领域 内容:线性代数,多项式与内插,曲线拟合,数据分析与统计,泛函基础等 要求:循序渐进完成P146练习题1—4,6—19 E, 设计性综合实验----数字信道编译码 内容:1数字通信系统信道编码AMI编译码 2数字通信系统信道编码HDB3编译码 F,设计性综合实验----fir滤波器设计 内容:设计一个有限冲击相应数字滤波器FIR是该滤波器能够滤出规定频率以上的信号,而该频率以下的信号不受影响。 3

Linux操作系统实验指导书-4磁盘

《Linux操作系统》实验指导书

实验四 实验题目:磁盘管理 实验目的:熟悉并掌握磁盘管理常用命令;掌握利用虚拟机增加新硬盘,使用fdisk对磁盘分区操作;熟悉和了解磁盘显示信息内容;掌握使用卷组进行磁盘管理操作。 实验类型:综合 实验要求:必修 仪器设备:计算机 实验内容、方法、步骤: 1,使用GUI方式建立用户user01,具体属性如下: 登录shell为/bin/bash, 主目录/user01, 用户id: 520, 用户组grp01 2,使用修改配置文件方式建立用户user02,具体属性如下: 登录shell为/bin/bash, 主目录/user02, 用户id: 530, 用户组grp02 3,使用命令方式建立用户user03,具体属性如下: 登录shell为/bin/bash, 主目录/user03, 用户id: 530, 用户组grp03,附属组grp02 4,对user01,user02,user03,设置密码并登录。 一、磁盘和分区信息查看 1 fdisk查看当前系统硬盘及分区情况,在实验报告中说明当前的磁盘容量,分区数量、名称和大小,分区挂载点,分区使用方式(卷组名称、逻辑卷名称和大小)。 步骤:fdisk –l 2 显示当前文件系统使用情况,在实验报告中说明当前主要文件系统信息及使用情况(包括主要文件系统名称、挂载点、容量、使用量及百分比等)

步骤:df –h 二、添加新硬盘 内容:关闭虚拟机操作系统,添加2块硬盘,大小分别为5G和10G。开机后查看新硬盘是否成功添加。 步骤: 1 关机:init 0 2 添加新硬盘:右键单击虚拟机,选择setting(设置)。在Add中按照要求添加2块新硬盘(HardDisk) 3 开机后,打开终端。输入命令fdisk –l 或ls /dev/sd*查看新硬盘是否添加成功。 三、对新添加硬盘进行分区 内容: 1. 将第二块硬盘sdb分区(5G),要求分区1(sdb1)为主分区,类型为swap (82),大小为500M;分区2(sdb2)为主分区,类型为linux(83),大小为2G;分区3为扩展分区(sdb3),大小为sdb所有剩余容量;分区5为逻辑分区,类型为lvm(8e),大小为2G。分区后,查看sdb新添加所有分区,将截图添加到实验报告中。 2. 将第三块硬盘sdc分区(10G),要求分区1(sdc1)为扩展分区,大小为10G;

实验3:外部中断实验指导书

《—嵌入式系统原理与应用—》实验指导书 黄鹏程、谢勇编写 适用专业:计算机科学与技术 物联网工程 厦门理工学院计算机与信息工程院(系) 2016 年 3 月

实验3:外部中断实验 实验学时:2 实验类型:(演示、验证√、综合、设计研究) 实验要求:(必修√、选修) 一、实验目的 1. 理解中断的概念及其在嵌入式系统中的应用; 2. 熟悉LPC1700系列CortexM3 微控制器的NVIC的配置; 3. 熟悉LPC1700系列CortexM3 微控制器外部中断的控制。 二、实验内容 在EasyARM1768开发板的硬件平台上,基于流水灯显示实验,结合向量中断控制器NVIC和外部中断,设计并实现外部中断实验。要求实现三种方式的流水灯实现,并且通过三个按键利用通过外部中断实现三种不同方式的切换。 三、实验原理、方法和手段 中断对嵌入式系统来说是很重要的一个概念,利用中断,可以开发出很接近产品的嵌入式系统。市场上大部分的不带嵌入式操作系统的嵌入式系统都采用了“前后台系统”来实现产品功能,这其中的前台就是中断机制。故我们要理解中断的概念,并且能够应用中断到实际的嵌入式系统中来。 图1 前后台系统

图2 中断处理流程示意图 1、 中断向量控制器(NVIC ) 嵌套向量中断控制器(NVIC )是 Cortex-M3 处理器的一个内部器件,它与 CPU 内核紧密耦合,共同完成对中断的响应,降低了中断延时,使得最新发生的中断可以得到高效处理。 它能够管理中断的各种事务,比如使能或禁止外设中断源的中断,设置外设中断源的优先级,挂起中断,查看外设中断源的中断触发状态等。然后把中断信号给ARM 内核。NVIC 的应用示意图如下所示: 图3 NVIC 的作用

新编实验指导书免费

新编实验指导书免费 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

实验一系统认识实验一、实验目的 掌握TDN86/51教学系统的基本操作 二、实验设备 TDN86/51教学实验系统一台 三、实验内容及步骤 1.系统认识实验(1) (1)程序的输入与修改 从3500H内存单元开始建立0-15共16个数据。 实验步骤 a.使用串行通讯电缆将实验系统与PC微机相连。 b.将位于线路板右下角的系统状态选择开关拨至86档,开启实验系统。 c.在系统软件所在目录下键入MD86↙,选择对应串口号,进入集成操作软件环 境,出现系统提示符“>”。按下F1功能键,进入全屏幕编辑界面,按ALT+F建立新文件(NEW),即可开始输入源程序。实验程序及流程如下: STACK SEGMENT STACK ;8088宏汇编 程序 DW 64 DUP(?) ;定义 堆栈段 STACK ENDS CODE SEGMENT ;定义 代码段 ASSUME CS:CODE START: MOV DI,3500H ;程 序开始设数据区首址 MOV CX,0010H ;字 节数送入CX中

MOV AX,0000H SAHF A1: MOV [DI],AL ;写 入一字节 INC DI ;修改地址指针 INC AX ;修改数据 DAA ;十 进制调整 LOOP A1 ;未填完转移 A2: JMP A2 CODE ENDS ;代 码段结束 END START ;程 序段结束 d.输入程序后,按F2保存程序(规定扩展名为*.asm),使用ALT+X返回集成软件 环境。 e.按F2,输入源程序名↙(省略扩展名,系统默认为.asm),对源程序进行汇编, 生成目标文件(*.obj)及错误信息文件(*.m)。若给出LST文件名则生成相应*.lst文件。 f.汇编无误后,按F3输入文件名↙对汇编生成的*.obj文件进行连接,连接信息显 示于屏幕上,生成相应*.exe可执行文件。 g.按F5,输入*.exe可执行文件名↙,填入程序段地址CS:0000↙及偏移地址IP: 2000↙,PC开始将程序从磁盘装入到教学系统内存,提示装载完毕后使用 U0000:2000↙命令进行反汇编,检查程序是否正确装入。

实验指导书

苯甲酸红外光谱的测绘—溴化钾压片法制样 一、实验目的 1、了解红外光谱仪的基本组成和工作原理。 2、熟悉红外光谱仪的主要应用领域。 3、掌握红外光谱分析时粉末样品的制备及红外透射光谱测试方法。 4、熟悉化合物不同基团的红外吸收频率范围.学会用标准数据库进行图谱检索 及化合物结构鉴定的基本方法。 二、实验原理 红外光谱分析是研究分子振动和转动信息的分子光谱。当化合物受到红外光照射,化合物中某个化学键的振动或转动频率与红外光频率相当时,就会吸收光能,并引起分子永久偶极矩的变化,产生分子振动和转动能级从基态到激发态的跃迁,使相应频率的透射光强度减弱。分子中不同的化学键振动频率不同,会吸收不同频率的红外光,检测并记录透过光强度与波数(1/cm)或波长的关系曲线,就可得到红外光谱。红外光谱反映了分子化学键的特征吸收频率,可用于化合物的结构分析和定量测定。 根据实验技术和应用的不同,我们将红外光划分为三个区域:近红外区(0.75~2.5μm;13158~40001/cm),中红外区(2.5~25μm;4000~4001/cm)和远红外区(25~1000μm;400~101/cm)。分子振动伴随转动大多在中红外区,一般的红外光谱都在此波数区间进行检测。 傅立叶变换红外光谱仪主要由红外光源、迈克尔逊干涉仪、检测器、计算机和记录系统五部分组成。红外光经迈克尔逊干涉仪照射样品后,再经检测器将检测到的信号以干涉图的形式送往计算机,进行傅立叶变换的数学处理,最后得到红外光谱图。

傅立叶变换红外光谱法具有灵敏度高、波数准确、重复性好的优点,可以广泛应用于有机化学、金属有机化学、高分子化学、催化、材料科学、生物学、物理、环境科学、煤结构研究、橡胶工业、石油工业(石油勘探、润滑油、石油分析等)、矿物鉴定、商检、质检、海关、汽车、珠宝、国防科学、农业、食品、生物医学、生物化学、药学、无机和配位化学基础研究、半导体材料、法庭科学(司法鉴定、物证检验等)、气象科学、染织工业、日用化工、原子能科学技术、产品质量监控(远距离光信号光谱测量:实时监控、遥感监测等)等众多方面。 三、仪器和试剂 1、Nicolet 5700 FT-IR红外光谱仪(美国尼高力公司) 2、压片机(日本岛津公司) 3、压片模具(日本岛津公司) 4、玛瑙研钵(日本岛津公司) 5、KBr粉末(光谱纯,美国尼高力公司) 6、苯甲酸(分析纯) 四、实验步骤 1、样品的制备(溴化钾压片法)

电磁场实验3指导书

电磁场理论实验三 1、 利用Matlab 模拟亥姆霍兹线圈磁场分布; 2、 利用Matlab 模拟匝线圈产生的磁场; 3、 利用Matlab 模拟直流环等效磁偶极子。 以上实验在内容上相差不多,每位同学自选其中一个实验。三个实验的内容都是与毕奥-萨伐尔定律相关,这次实验只要是为了加深大家对毕奥-萨伐尔定律的认识。实验相关内容都可以在网上找得到。 一、 利用Matlab 模拟亥姆霍兹线圈磁场分布 1、 理论基础 亥姆霍兹线圈(如图1)是一对彼此平行且连通的共轴圆形线圈。两线圈内的电流方 向一致,大小相同。线圈之间距离d 正好等于圆形线圈的半径R 。亥姆霍兹线圈轴线附近的磁场大小分布十分均匀,而且都沿x 方向。基于Matlab 软件对亥姆霍兹线圈轴线磁场均匀分布的现象进行验证和动态仿真,以便于更形象地体现出来。 图1亥姆霍兹线圈结构 根据毕奥-萨伐尔定律,一个通电圆圈的磁场分布可以积分得到。在通过圆心而且垂直于线圈平面的轴线上,距离圆心X 处,磁场大小为2 /322 2 0) (2/X R NI R B +=μ。其 中I 为电流大小,R 为圆圈半径,0μ为一个常数。从上面已知亥姆霍兹线圈是两个彼此平行且连通的共轴圆形线圈,它的磁场分布是两个通电圆圈磁场的叠加。

假设两个线圈的半径为R ,各有N 匝,每匝中的电流均为I ,且流向相同(如图1)。两线圈在轴线上各点的场强方向均沿轴线向右,在圆心1O 、2O 处磁感应强度相等,大小都是: R NI R NI NIR R NI B 003/2 22 2 000667 .0)2 211(2) R (R 22μμμμ=+ = ++ = 两线圈间轴线上中点P 处,磁感应强度大小为: R NI R NI R NIR B p 002 /3222 0716 .0)2 211(558])2 ([22 μμμ=+ = += 此外,在P 点两侧各4R 处的1Q 、2Q 两点处磁感应强度都等于: R NI R NI R NIR R NIR B Q 033 3/2302 /3222 02 /3222 00.712)54174(2])4 3R ( [2])4 R ([2μμμμ=+=++ += 在图1假设左边线圈为A ,右边的线圈为B ,把观测区域聚在两线圈之间的小范围内。 B 生成的线圈左边的磁场就等于A 线圈的右边磁场,因此,A ,B 两线圈在中间部分合成磁场等于A 线圈的右磁场与左磁场平衡Rh 后的和。因此,只要观测A 线圈的左右区间x=[-Rh,Rh]内的磁场就可以。在建立了亥姆霍兹线圈产生的磁场数学模型后,依据上面的分析与所建立的数学模型可以在Matlab 环境下编制可仿真,可执行的仿真程序。 二、 利用Matlab 模拟匝线圈产生的磁场 基本原理 截流导线产生磁场的基本规律为:任一电流元→ dl I 在空间任一点P 处产生的磁感应强度 → B d 是下列向量叉乘积: 3 04r r l Id B d → →→ ?? =πμ(1) 式中→ r 为电流元到P 点的矢径,l d → 为导线元的长度矢量。P 点的总磁场可沿截流导体全长积分产生的磁场来求得。 若将→ B d 视为一小段电流l d → 在→ r 处产生的磁场,则上式可写为

实验指导书

实验一系统认识实验 一、实验目的 掌握TDN86/51教学系统的基本操作 二、实验设备 TDN86/51教学实验系统一台 三、实验内容及步骤 1.系统认识实验(1) (1)程序的输入与修改 从3500H内存单元开始建立0-15共16个数据。 实验步骤 a.使用串行通讯电缆将实验系统与PC微机相连。 b.将位于线路板右下角的系统状态选择开关拨至86档,开启实验系统。 c.在系统软件所在目录下键入MD86↙,选择对应串口号,进入集成操作软件环境,出现 系统提示符“>”。按下F1功能键,进入全屏幕编辑界面,按ALT+F建立新文件(NEW),即可开始输入源程序。实验程序及流程如下: STACK SEGMENT STACK ;8088宏汇编程序 DW 64 DUP() ;定义堆栈段 STACK ENDS CODE SEGMENT ;定义代码段 ASSUME CS:CODE START: MOV DI,3500H ;程序开始设数据区首址 MOV CX,0010H ;字节数送入CX中 MOV AX,0000H SAHF A1: MOV [DI],AL ;写入一字节 INC DI ;修改地址指针 INC AX ;修改数据 DAA ;十进制调整 LOOP A1 ;未填完转移 A2: JMP A2 CODE ENDS ;代码段结束 END START ;程序段结束 d.输入程序后,按F2保存程序(规定扩展名为*.asm),使用ALT+X返回集成软件环境。 e.按F2,输入源程序名↙(省略扩展名,系统默认为.asm),对源程序进行汇编,生成目 标文件(*.obj)及错误信息文件(*.m)。若给出LST文件名则生成相应*.lst文件。 f.汇编无误后,按F3输入文件名↙对汇编生成的*.obj文件进行连接,连接信息显示于 屏幕上,生成相应*.exe可执行文件。

实验指导书

混凝土基本理论及钢桁架静力测试试验指导书

试验一、钢筋混凝土受弯构件正截面破坏试验 一、试验目的 1.了解受弯构件正截面的承载力大小、挠度变化及裂缝出现和发展过程; 2.观察了解受弯构件受力和变形过程的三个工作阶段及适筋梁的破坏特征; 3.测定受弯构件正截面的开裂荷载和极限承载力,验证正截面承载力计算方法。 二、试件、试验仪器设备 1.试件特征 (1). 根据试验要求,试验梁的混凝土强度等级为C20,纵向受力钢筋强度等级I级。 (2). 试件尺寸及配筋如图1所示,纵向受力钢筋的混凝土净保护层厚度为15mm 。 (3). 梁的中间500mm 区段内无腹筋,其余区域配有 6@60的箍筋,以保证不发生斜 截面破坏。 (4). 梁的受压区配有两根架立筋,通过箍筋与受力筋绑扎在一起,形成骨架,保证受力钢筋处在正确的位置。 2.试验仪器设备 (1). 静力试验台座、反力架、支座及支墩 (2). 20T 手动式液压千斤顶 (3). 读数显微镜及放大镜 (4). 位移计(百分表)及磁性表座 三、试验装置及测点布置 1.试验装置见图2 (1). 在加荷架中,用千斤顶通过分配梁进行两点对称加载,使简支梁跨中形成长 500mm 的纯弯曲段(忽略梁的自重)。 (2). 构件两端支座构造应保证试件端部转动及其中一端水平位移不受约束,基本符 合铰支承的要求。 2.测点布置 梁的跨中及两个对称加载点各布置一位移计f 3~f 5,量测梁的整体变形,考虑在加载的过程中,两个支座受力下沉,支座上部分别布置位移测点f 1和f 2,以消除由于支座下沉对挠度测试结果的影响。 图1 试件尺寸及配筋图

实验三指导书

实验三钢筋混凝土简支梁正截面受弯破坏试验 一、试验目的 1.掌握制定结构构件试验方案的原则,设计简支梁受弯破坏试验的加荷方案和测试方案,并根据试验的设计要求选择试验测量仪器仪表。 2.观察钢筋混凝土受弯试件从开裂,受拉钢筋屈服,直至受拉区混凝土被压碎这三个阶段的受力与破坏全过程,掌握适筋梁受弯破坏各个临界状态截面应力应变图形的特点。 3.能够按照国家规范要求,对使用荷载作用下受弯构件的强度,刚度以及裂缝宽度等进行正确评估。 二、使用设备和仪表 序 仪器名称数量序号仪器名称数量 号 1 静载反力实验装置1套9 X—Y函数记录仪1台 2 20t液压千斤顶配高压油泵1台10 电测位移计1台 3 荷载分配梁1根11 千分表6块 4 20t或10t荷载传感器1个12 百分表8块 5 滚动和铰支座若干13 附着式应变计的标脚16个 6 支撑架2个14 附着式应变计的测杆8个 7 静态电阻应变仪2台15 磁性表座7个 8 动态电阻应变仪1台16 螺丝刀、导线等器材和工具 三、试验方案 1.试件设计 混凝土强度等级为C20,钢筋为Ⅰ、Ⅱ级,试件配筋详见图4-1。

图4-1 简支梁结构图 2.加荷方案 (1)利用静载反力试验台上液压设备和荷载分配梁系统,对梁跨三分点处施加集中荷载,以便在跨中形成纯弯段.荷载装置如图4_2所示.试验荷载理论计算和试验设备强度验算应在正式试验前完成。 (2)荷载分级原则上是以正常使用阶段荷载标准值的20%为一级,开裂荷载附近加载量应适当减少,不宜大于正常使用阶段荷载标准值的5%.超过正常使用极限状态以后,每级加载量减少至荷载标准值的10%,接近极限承载能力时,每级荷载不宜大于5%。 图4-2 加荷布置图 3.测试方案 (1)根据简支梁的内力和变形特点,一般应在最大应力截面和最大挠度截面处布置测点。由于本试验采用了三分点加载方式,跨中纯弯段内梁的弯矩最大,且该区段内个截面最大应力相等。因此,在纯弯段内任选两个截面,沿梁截面高度上分别布置四个混凝土应变测点,以观测该截面处混凝土压应变和中和轴的变化情况。在梁纯弯段内受拉钢筋的五个截面处布置了10个应变测点,以观测钢筋的应变状态。为了解试件的变形情况,沿梁长(包括梁的跨中和两个集中力作用点处)布置了一定数量的位移传感器。考虑到支座处可能也有下沉,在支座处也安装了千分表。具体测点布置方案如图4-3所示。

EXCEL实验指导书

课程与实验项目对照表 实验一: Excel变量数列编制实验 一、实验名称和性质 二、实验目的 1、了解组距式变量数列的构成; 2、了解等距分组中组距、组数、全距的关系; 3、掌握组距式变量数列的编制原理; 4、学会应用Excel软件“数据分析”功能菜单编制变量数列。 三、实验的软硬件环境要求 硬件环境要求: 计算机1台,带Windows操作系统 使用的软件名称、版本号以及模块: Microsoft Office 2000及以上 四、知识准备 前期要求掌握的知识:变量数列的编制方法;Excel软件的基本操作 实验相关理论或原理:变量数列:按数量标志分组,形成的各组按顺序排列,然后列出各组的单位数。组距式数列:每一组由变量值的一个变动区间构成。适用资料:(1)连续型变量或变量值多、变动范围大的离散型变量。计算各组的频数或频率、累计频数或累计频率,最后形成次数分布表或分布图。 实验流程:

五、实验材料和原始数据 根据抽样调查,得有关样本资料如表1 表1 某月X 市50户居民购买消费品支出资料 (单位:元): 民户月消费支出额编制组距式变量数列,并计算居民户月消费支出额的累计频数和频率。同时对分组资料用统计表和统计图的形式来加以表现。 六、实验要求和注意事项 1、预习实验指导书中实验一的所有内容,结合课程中所讲解的理论,理解该实验的内容、步骤及目的; 2、复习变量数列编制的原理及Excel 的基本操作方法; 3、认真观察实验结果,记录结果; 4、对实验结果作简要分析总结。 七、实验步骤和内容 1.数据输入。分别输入“居民消费品支出”和组限(见附图2 ) 2.执行菜单命令[工具]→[数据分析],调出“数据分析”对话框,选择“直方图”选项,调出“直方图”对话框。 注意,若“数据分析”命令没有出现在“工具”菜单上,则应先使用[工具]→[加载宏]命令来加载“分析工具库”。 3.在“直方图”对话框中,输入相关数据,见附图1。 输入区域:$A$1:$A$51 接收区域:$B$1:$B$9,接收区域的数值应按升序排列 输出区域:$C$1(为输出结果左上角单元格地址) 选中“标志”复选框。 柏拉图:选中此复选框,可以在输出表中同时按降序排列频率数据。如果此复选框被清除,

单片机实验指导书终稿

实验一清零、移数、判断 一、实验目的 1、掌握汇编语言程序设计和调试方法。 2、掌握RAM存储器读写及存储块操作方法 3、熟悉分支结构程序的设计。 二、实验内容 将片内30H~40H及片外0010H~0100H清零,然后将片内41H~47H的内容移到片外0041H~0047H,判断: 若(0041H)<15,则求其平方存到0050H中,并将位00H置1。 (0041H)=15,则加15存到0050H中,并将位01H置1。 (0041H)>15, 则减15存到0050H中,并将位02H置1。 三、实验说明 通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程,调试方法。 四、实验框图 片内外RAM清零流程图移数流程图

判断流程图 五、思考题 1、如果平方数超过255,怎样将数放到片内RAM 30H和31H单元内,写出指令。 2、位的表示方法有哪些,举例说明?将01H位清零的方法有几种,写出指令。

实验二排序、加法 一、实验目的 1、进一步掌握汇编语言程序设计和调试方法。 2、掌握数据排序的算法及加法运算。 二、实验内容 1、有两个长度为10个字节的无符号数分别放在片内30H和40H为首的存储单元中 (低字节),求其和(带进位位),放在50H为首的单元中。 2、将50H为首单元中的数按升序排列放在60H为首的单元中。 三、实验说明 通过本实验,学生可以了解单片机排序的算法,本程序采用“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。 四、实验框图 加法运算流程图排序流程图 五、思考题 1、-125与-9相加,PSW中OV、AC、CY的值是多少?各表示什么含义? 2、两个压缩BCD码59和22相加,结果放到片内RAM 30H单元中,写出程序。

实验指导书

《数控机床》 实 验 指 导 书 (简本) 蚌埠学院机电系李大胜2008年9月修订

实验一数控车床操作模拟(计算机仿真) 一、实验目的和要求 数控加工在制造业中占有非常重要的地位,数控机床是一种高效的自动化设备,它可以按照预先编制好的零件数控加工程序自动地对工件进行加工。宇航数控加工仿真系统可以在计算机屏幕上仿真完成数控加工程序的输入输出、数控机床操作、工件加工、虚拟测量等数控加工全过程,而且在数控加工仿真系统中,机床操作面板和操作步骤与相应的实际数控机床完全相同,学生在这种虚拟工业环境中可以学习掌握典型数控车床的加工操作方法,通过数控加工仿真系统可以使培训得到实物操作训练的目的,本次实验主要要求学生了解宇航仿真软件的使用和熟悉配备主流数控系统的数控车床的操作及对刀方法。 二、实验内容 1、了解数控车床的基本运动、加工对象及其用途; 2、了解数控车床操作面板各按键(CNC界面)的功用; 3、掌握数控车床的调整及加工前的准备工作、尤其要熟练掌握FANUC0i系统的多种对刀方法; 三、实验仪器 软件要求:宇航数控仿真系统30节点 硬件要求:微机30台 四、实验内容及步骤 YHCNC仿真系统及虚拟机床操作(FANUC 0i) 1、机床操作面板 机床操作面板位于窗口的右下侧,如下图所示,主要用于控制机床运行状态,由模式选择按钮、运行控制开关等多个部分组成,每一部分的详细说明如下: FANUC 0i面板 AUTO:自动加工模式。EDIT:编辑模式。MDI:手动数据输入。 INC:增量进给。 HND:手轮模式移动机床。 JOG:手动模式,手动连续移动机床。 REF:回参考点。

UML 新编实验指导书(实验三 类图)

天津理工大学华信软件学院 天津理工大学(华信软件学院) 实验指导书 课程名称:软件工程与UML建模 适应课程: (1969216)

上机实验(三)创建类和类图 一、实验目的: 在Rose 环境下创建类和类图, 完成应用案例的类图设计。 二、实验内容: (一)创建类 1)根据“需求陈述”提炼对象和类 2)分析对象,并将对象抽象成类 (二) 创建类图 建立类之间的关系(关联关系、泛化关系、聚集或组合关系、依赖关系等)创建类图。 (三) 综合应用练习。 三、操作步骤: (一) 创建类 1、启动Rose 2003进入后,在左面结构框内右击Logical View; 2、选New 选Class Diagram ,再在Class Diagram下创建类; 3、给类命名(比如Course); 4、增加属性(右击框途中的类,选New Attribute); 5、添加类操作(右击框途中的类,选New Operation); (二) 建立类之间的关系 1.首先关联关系 (使用按钮工具,如果当前工具栏中没有,右击工具栏,然后添加相关按钮) 1) 单项关联; 2) 双向关联。 2.练习聚集和组合 (先建立关联,再右击靠近“整体”方的关联线,选Aggregate选项。) 3.然后泛化关系。 4.最后练习依赖关系。 四.实例练习(不能用课件及教材上的示例,要自己来想。) 1.举实例说明类之间的关联关系。 包括:单、双向关联、一对一关联、一对多关联、多对多关联、自反关联、限定关联和关联类。 2.举实例说明类之间的聚合(组合)关系。 3.举实例说明类之间的泛化(继承)关系。包括:单继承、多继承。 4.举实例说明接口与实现,抽象类与子类等。 五.综合应用: (一)以“学生选课系统”为例建立类图 1.“学生选课系统”涉及到的类: 1) Database类

实验指导书

实验一材料硬度测定(综合性) 一、实验内容 1.金属布氏硬度实验。 2.金属洛氏硬度实验。 二、实验目的及要求 该实验的目的是使学生熟悉金属布氏、洛氏、维氏硬度计的使用方法,巩固硬度试验方法的理论知识,掌握各种硬度计的结构原理、操作方法及注意事项。要求学生具有踏实的理论知识,同时也具有严谨、一丝不苟的作风。 三、实验条件及要求 (一)实验条件 1.布氏硬度计、洛氏硬度计和显维硬度计,读数放大镜,标准硬度块。 2.推荐试样用材:灰铸铁、经调质处理的45钢、淬火低温回火的T10钢。 (二)要求 制备试样过程中不得使试样因冷、热加工影响试验面原来的硬度。试验面应为光滑的平面,不应有氧化皮及污物,测布氏硬度、洛氏硬度时试验面的粗糙度Ra≤0.8μm。 试验时,应保证试验力垂直作用于试验面上,保证试验面不产生变形、挠曲和振动。试验应在10~35℃温度范围内进行。 不同硬度试验对试样及试验操作尚有具体要求。 四、实验相关知识点 1.硬度试验原理。 2.对试样的要求。 3.硬度试验方法的选择。 4.各种硬度计的结构原理、操作方法及注意事项。 5.试验数据的获得。 6.不同硬度试验方法的关系。 五、实验实施步骤 (一)金属布氏硬度试验 金属布氏硬度值是单位压痕表面积所承受的外力。

1.试验规范的选择 布氏硬度试验时应根据测试材料的硬度和试样厚度选择试验规范,即压头材料与直径、F/D2值、试验力F及试验力保持时间t。 (1)压头材料与直径的选择压头为硬质合金球。 球体直径D的选择按GB/T231.1-2009《金属布氏硬度试验方法》有五种,即10mm、5mm、2.5mm、2mm和1mm。压头直径可根据试样厚度选择,见压头直径、压痕平均直径与试样最小厚度关系表。选择压头直径时,在试样厚度允许的条件下尽量选用10mm球体作压头,以便得到较大的压痕,使所测的硬度值具有代表性和重复性,从而更充分地反映出金属的平均硬度。 (2)F/D2、试验力F及试验力的选择 F/D2比值有七种:30、15、10、5、2.5、1.25和1,其值主要根据试验材料的种类及其硬度范围来选择。 球体直径D和F/D2比值确定后,试验力F也就确定了。 试验须保证压痕直径d在(0.24~0.6)D范围内,试样厚度为压痕深度的10倍以上。 (3)试验力保持时间t的选择试验力保持时间t主要根据试样材料的硬度来选择。黑色金属:t=10~15s;有色金属:t=(30±2)s;<35HBW的材料:t=(60±2)s。 2.布氏硬度试验过程 (1)试验前,应使用与试样硬度相近的二等标准布氏硬度块对硬度计进行校对,即在硬度块上不同部位测试五个点的硬度,取其平均值,其值不超过标准硬度块硬度值的±3%方可进行试验,否则应对硬度计进行调整、修理。 (2)接通电源,打开电源开关。将试样安放在试验机工作台上,转动手轮使工作台慢慢上升,使试样与压头紧密接触,直至手轮与螺母产生相对滑动。同时应保证试验过程中试验力作用方向与试验面垂直,试样不发生倾斜、移动、振动。 启动按钮开关,在施力指示灯亮的同时迅速拧紧压紧螺钉,使圆盘随曲柄一起回转,直至自动反向转动为止,施力指示灯熄灭。从施力指示灯亮到熄灭的时间为试验力保持时间,转动手轮取下试样。 (3)用读数显微镜在两个互相垂直的方向测量出试样表面的压痕直径d1 。

相关主题
文本预览
相关文档 最新文档