文档库 最新最全的文档下载
当前位置:文档库 › 实验报告1~3

实验报告1~3

实验报告1~3
实验报告1~3

塔里木大学实验报告

顺序结构

#include "stdio.h"

#include "malloc.h"//分配内存

#include "process.h"

#include "string.h"

#define OK 1

#define ERROR 0

#define LIST_INIT_SIZE 100//线性表存储空间的初始分配量

#define LISTINCREMENT 10//线性表存储空间的分配增量

#define TRUE 1

#define FALSE 0

#define INFEASIBLE -1//不可执行-1

#define OVERFLOW -2//

typedef int Status;

typedef int ElemType;

typedef struct

{

ElemType *elem;//存储空间基址

int length; //当前长度

int listsize;//当前分配的存储容量(以sizeof(ElemType)为单位)}List;

//构造一个空的线性表

Status InitList(List &L)

{

L.elem=(ElemType * ) malloc(LIST_INIT_SIZE * sizeof(ElemType)); if(!L.elem) exit(OVERFLOW);//储存分配失败

L.length = 0; //空表长度为0

L.listsize=LIST_INIT_SIZE; //初始存储容量

printf("初始化一个线性表\n\n");

return OK;

}

Status GetElem (List L, int i, ElemType &e){

//L为带头结点的单链表的头指针。

if(i<1||i>L.length+1) return ERROR; //当第i个元素存在时,其值赋给e并返回ok,否则返回ERROR.

e=L.elem[i -1];

return OK;

}

Status ListInsert(List &L,int i,ElemType e){

//在顺序线性表L中第i个位置之前插入新的元素e。

//i的合法值为1<=i<=listlength+1

ElemType *q,*p,*newbase;

if (i<1||i>L.length+1) return ERROR;//i值不合法.

if (L.length>=L.listsize){//当前储存空间已满,增加分配

newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));

if (!newbase) return(OVERFLOW);//储存分配失败

L.elem=newbase; //新基址

L.listsize+=LISTINCREMENT; //增加储存容量

}

q=&(L.elem[i-1]);//把第i个数赋给q,q为插入位置

for(p=&(L.elem[L.length-1]);p>=q;--p) *(p+1)=*p;//插入位置及之后的元素右移

*q=e; //插入e

++L.length; //表长+1

return OK;

}// ListInsert

Status ListDelete(List &L,int i,ElemType &e){

//在顺序线性表L中删除第i个元素,并用e返回其值

//i的合法值为1<=i<=listlength+1

ElemType *p,*q;

if ((i<1)||(i>L.length)) return ERROR;//i值不合法

p=&(L.elem[i-1]);//把第i个数赋给p,q为删除元素的位置

e= *p; //被删除元素的值赋给e

q=(L.elem+L.length-1);//表尾元素的位置

for (++p;p<=q;++p) *(p-1)=*p;//被删除元素之后的元素左移

--L.length; //表长-1

return OK;

}// ListDelete

void main()

{

List L;

ElemType e1,e2;

Status k;

int i,a,b,c,d,e,n,j;

InitList(L);

printf("表的长度");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

printf("输入第%d数据",i);

scanf("%d",&a);

ListInsert(L,i,a);

}

for(j=1;j<2;)

{

printf("请选择您要进行的操作:1:插入2:查找3:删除\n"); scanf("%d",&c);

if(c==1)

{

printf("请输入插入元素的位置及元素:");

scanf("%d %d",&d,&e);

ListInsert(L,d,e);

printf("线性表元素为%d\n",n+1);

n++;

for(i=1;i<=n;i++)

{printf("%d \n",L.elem[i-1]);}

}

if(c==2)

{

printf("输入要查找数的位数:");

scanf("%d",&b);

if(b<1||b>L.length)

{printf("输入错误!!!\n");

continue ;}

GetElem(L,b,e1);

if(k=ERROR)

printf("读取数据失败,",b);

else

printf("第%d个元素的值为%d\n",b,e1);

//删除

if(c==3)

{

printf("输入删除第几个数:");

scanf("%d",&c);

if(c<1||c>L.length)

printf("输入错误!!!元素不存在\n");

k=ListDelete(L,c,e2);

if(k==ERROR)

printf("删除第%d个元素失败\n ",c);

else

printf("删除第%d个元素成功,其值为%d\n\n",c,e2);

}

}

}

线性结构

#include

#include

#define OK 1

#define ERROR 0

#define ElemType int

typedef int Status;

typedef struct LNode

{

ElemType data;

struct LNode *next;

}LNode, *LinkList;

void CreateList_L(LinkList &L,int n)

{

int i =1;

LinkList p,q;

L=(LinkList)malloc(sizeof(LNode));

L->next=NULL; //建立一个带结头的单链表

q=L;

printf("输入链表数据:");

for(i=1;i<=n;++i)

{

p=(LinkList)malloc(sizeof(LNode)); //生成新结点

scanf("%d",&p->data);

q->next=p;

q=q->next;

} p->next=NULL;

} //创建链表

void printList(LinkList &L)

{

struct LNode *q;

q=L;

q->next=L->next;

printf("处理后的线性链表为:");

while(q->next!=NULL)

{

q=q->next;

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

}

printf("\n");

}

Status ListInsert_L(LinkList &L,int i,ElemType e) {

struct LNode *p,*s;

p=L;

int j=0;

while(p&&j

{

p=p->next;

++j;

}

if(!p||j>i-1)

return ERROR;

s=(LinkList)malloc(sizeof(LNode));

s->data=e;

s->next=p->next;

p->next=s;

return OK;

} //插入

Status ListDelete_L(LinkList &L,int i)

{

struct LNode *p,*q;

p=L;

int e,j=0;

while(p->next&&j

{

p=p->next;

++j;

}

if(!(p->next)||j>i-1)

return ERROR;

q=p->next;

p->next=q->next;

e=q->data;

free(q);

printf("删除的数字是: %d\n",e);

return OK;

} //删除

Status GetElem_L(LinkList L,int i)

{

struct LNode *p;

int e,j=1;

p=L->next;

while(p&&j

{

p=p->next;

++j;

}

if(!p||j>i) return ERROR;

e=p->data; printf("查找的数字是: %d\n",e);

return OK;

}//查找

int main()

{

int i,n,a,c,b;

LinkList La;

struct node *head; head=NULL;

printf("请输入链表长度:");

scanf("%d",&n);

CreateList_L(La,n);

printf("链表为");

printList(La);

for(i=0;; )

{

printf("输入你的选择:1:插入2:删除3:查找");

scanf("%d",&a);

if(a==1)

{

printf("输入你的插入位置和数据");

scanf("%d%d",&b,&c);

ListInsert_L( La,b,c);

printList(La);

}

if(a==2)

{

printf("输入你的删除位置");

scanf("%d",&b);

ListDelete_L(La,b);

printList(La);

}

if(a==3)

{

printf("输入你的查找位置");

scanf("%d",&b);

GetElem_L(La,b);

}

}

}

二、实验分析及总结

通过这次试验,掌握了线性表的定义,顺序存储及链式存储的基本方法和基本操作。学会了利用线性表的顺序存储结构和线性存储结构的一些数据管理,实现数据元素的增加和删除等运算。

塔里木大学实验报告

#include

#include

#define STACK_INIT_SIZE 100

#define STACKINCREMENT 10

#define OVERFLOW 2

#define OK 1

typedef int SElemType;

typedef int Status;

typedef struct {

SElemType *base;

SElemType *top;

int stacksize;

}SqStack;

Status InitStack(SqStack &S){

S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));

if(!S.base)exit(OVERFLOW);

S.top=S.base;

S.stacksize=STACK_INIT_SIZE;

return OK;

}

Status ChuShihua(SqStack &S)

{

int n;

printf("请输入数据以-1结束\n");

while(scanf("%d",&n),n!=-1)

*S.top++=n;

return OK;

}

Status Push(SqStack &S)

{

int e;

printf("请输入要压入的元素:");

scanf("%d",&e);

if(S.top-S.base>=S.stacksize){

S.base=(SElemType

*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));

if(!S.base)exit(OVERFLOW);

S.top=S.base+S.stacksize;

S.stacksize+=STACKINCREMENT;

}

*S.top++=e;

return OK;

}

Status Pop(SqStack &S)

{

printf("出栈元素为:");

if(S.top!=S.base)

printf("%d\n",*--S.top);

return 0;

}

void tishi()

{

printf("所有操作如下:\n");

printf("(1)采用顺序存储实现栈的初始化操作。\n");

printf("(2)采用顺序存储实现栈的入栈操作。\n");

printf("(3)采用顺序存储实现栈的出栈操作。\n");

printf("(-1)退出\n");

printf("请选择:");

}

int main()

{

int m;

SqStack s;

InitStack(s);

do{

tishi();

scanf("%d",&m);

switch(m)

{

case 1:

ChuShihua(s);

break;

case 2:

Push(s);

break;

case 3:

Pop(s);

break;

}

}while(m!=-1);

return OK;

}

二、实验分析及总结

通过这次试验,掌握了栈的定义,顺序存储及链式存储的基本方法和基本操作。学会了利用栈的顺序存储结构的一些数据管理,实现数据元素的增加和删除等运算。

塔里木大学实验报告

输入两个队人员的性别,按男女分为两列,用队列的方法实现。

#include

#include

#define MAXQSIZE 100 //最大队列长度

typedef int ElemType;

#define OK 1

#define ERROR 0

#define NULL 0

#define OVERFLOW -2

typedef struct

{

int *base;

int front;

int rear; //尾指针,若队列不空,指向队列尾元素的下一个位置}SqQueue;

void InitQueue(SqQueue &Q) /*初始化队列*/

{

Q.front=Q.rear=0;

/*if(Q.base==NULL)*/

{

Q.base=(int*)malloc(sizeof(int)*MAXQSIZE);

}

}

void DesQueue(SqQueue &Q)

{

Q.front=Q.rear=-1;

}

int Queuelength(SqQueue &Q)

{//返回Q的元素个数,即队列长度

if(Q.base==NULL)return ERROR;

return (Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;

}

int EnQueue(SqQueue &Q,int e)

{//插入元素e为Q的新的队尾元素

if((Q.rear+1)%MAXQSIZE==Q.front)

return OVERFLOW;

else

{

Q.base[Q.rear]=e;

Q.rear=(Q.rear+1)%MAXQSIZE;

return OK;

}

}

int DeQueue(SqQueue &Q,ElemType *e)

{//若队列不空,则删除Q的队头元素,用e返回其值,并返回OK;

//否则返回ERROR

if(Q.front==Q.rear)

return ERROR;

else

{

*e=Q.base[Q.front];

Q.front++;

return OK;

}

}

int main(void)

{

ElemType x,y;

int i,n,m;

SqQueue Q1,Q2;

printf("输入第一列人员的性别。男性请输入11,女性请输入22,结束请输入-1。\n");

InitQueue(Q1);

scanf("%d",&x);

while(x!=-1)

{

if(EnQueue(Q1,x)!=1)

break;

scanf("%d",&x);

}

n=Queuelength(Q1);

printf("输入第二列人员的性别。男性请输入11,女性请输入22,结束请输入-1。\n");

InitQueue(Q2);

scanf("%d",&y);

while(y!=-1)

{

if(EnQueue(Q2,y)!=1)

break;

scanf("%d",&y);

}

m=Queuelength(Q2);

for(i=1;i<=n;i++)

{

DeQueue(Q1,&x);

if(x==22)

EnQueue(Q2,x);

else

EnQueue(Q1,x);

}

for(i=1;i<=m;i++)

{

DeQueue(Q2,&y);

if(y==22)

EnQueue(Q2,y);

else

EnQueue(Q1,y);

}

n=Queuelength(Q1);

m=Queuelength(Q2);

printf("输出调换后第一列的人数%d\n",n); printf("输出第一列人员的性别:");

while(n!=0)

{

DeQueue(Q1,&x);

printf("%3d",x);

n--;

}

printf("\n");

printf("输出调换后第二列的人数%d\n",m); printf("输出第二列人员的性别:");

while(m!=0)

{

DeQueue(Q2,&y);

printf("%3d",y);

m--;

}

printf("\n");

}

二、实验分析及总结

通过这次试验,掌握了队列的定义,顺序存储及链式存储的基本方法和基本操作。学会了利用队列的顺序存储结构的一些数据管理,实现数据元素的增加和删除等运算。

在进行编程的过程中,在进行判断男女,分配第一队列和第二队列时,赋值出现错误

if(x==22)

EnQueue(Q2,y);

else

EnQueue(Q1,x);

正确的应该是:

if(x==22)

EnQueue(Q2,x);

else

EnQueue(Q1,x);

错误:

if(y==22)

EnQueue(Q2,y);

else

EnQueue(Q1,x);

正确的应该是:

if(y==22)

EnQueue(Q2,y);

else

EnQueue(Q1,y);

调换两队列,没有主意人数的变化。在最后输出时,出现错误。

小学自然实验报告样板.doc

小学自然实验报告模板 教学模式是在一定的教学思想或教学理论的指导下建立起来的,较为稳定的教学活动结构框架和活动程序。“结构框架”意在从宏观把握教学活动整体各要素之间的内部关系;“活动程序”意在突出教学模式的有序性和可行性。 自然学科是人类在认识自然的过程中所积累的知识。它与人的认识过程有较高的一致性,最适用于发现式的学习方法。实验是传授自然科学知识和培养与发展学生各种能力的重要手段。我校的教研组推出的四环节实验课教学模式,以其较完美的操作性、开放性、优效性和灵活性形成了自然实验课的基本框架,较好地揭示课堂教学的一般程序、课堂教学诸因素的内在联系和课堂教学的普遍规律。现就模式谈一下我在教学中的实践与几点体会。 一、教学模式的四个环节在实践中的具体运用 (一)提出问题阶段 提出问题阶段是当研究一个问题时,为了激发学生的求知欲望,引导学生探索并调动他们积极性的阶段。教师可结合要研究的问题,用生动形象的语言恰如其分地提问,让学生在观察和思维中发现问题。 例如,《物体的热胀冷缩》一课,先进行演示实验,在铁架台上放一平底烧瓶,瓶中装满水,用酒精灯加热,水还没烧开,瓶中的水就往外溢。教师接着问大家,你们看了这个现象有什么想法?学生一下子提出许多问题:“为什么水加热后往上溢呢?”

“水难道会变多吗?” 教学时,为了激发学生探求知识的欲望,应千方百计创造性地运用各种方法,如:做游戏、讲故事、变魔术、猜谜语、出示挂图、运用幻灯等。引起学生要研究问题的兴趣,提出自己的想法。 (二)作出假设阶段 学生提出了问题,但在还没有学习有关的知识时,教师引导学生对自己的问题作出假设的回答。教师再从学生假设中引导学生逐渐进入要研究的问题中去。 例如,《水蒸气的凝结》,教师将还在冒白气的温水杯加盖,过一会儿再揭开盖,请同学们看盖上的水珠,水蒸气碰到什么样的物体在上面结成水珠呢?引导学生作出假设,发表不同意见。有的同学说:“水蒸气遇到热的物体结成水珠。”有的说:“水蒸气遇到冷的物体结成水珠。”教师接着说:“那么我们就一起研究一下,水蒸气在什么条件下能变成水呢?”这样就逐渐地把学生引入要研究的课题。 在这个阶段中,学生根据已有知识的经验,通过演绎、归纳、推理而提出的假设,不少带有猜测的性质。此时教师要引导学生积极作出假设,不应压抑学生的思维,不管是对是错,都不要忙于作出评价。 (三)设计实验阶段

实验一 手工测试报告

淮海工学院计算机工程学院实验报告书 课程名:《软件测试技术》 题目:上机1 手工测试 班级: 学号: 姓名:

上机1 手工测试 一.实验目的 1.找出软件的缺陷,熟悉软件测试后期的测试工作。 2.复习软件测试的确认测试,黑盒测试方法。 二.实验内容 找出鸿飞记事本的20个bug。 三.软件缺陷 1.登陆界面缺陷。某些文字使用淡灰色字体,不够突出,容易被用户忽略。 2.不是第一次登陆并之前修改用户密码之后,仍提示“默认密码为1,登陆后请修 改”;容易对用户产生误导。 3.界面按钮不够清晰、突出,易对用户造成困扰。 4.用户可以一次性修改用户名和密码,造成用户信息安全隐患。 5.皮肤设置时,软件控制按钮会随界面的皮肤设置而改变,一些特殊的皮肤颜色会 掩盖软件控制按钮,尤其是白色皮肤的时候。

自动保存,一旦改变后即使用户觉得没原来的好也就不能取消。 7.软件的使用帮助是互联网的外连接,而软件介绍时说不需要网络即可以使用。一 旦用户没有连接网络而用户又不会使用,此时使用帮助起不到帮助效果。 8.软件使用框架嵌套,大框架的边框颜色不协调且不能修改。 9. 没有告诉用户打开日志的方法。 10.文本的背景颜色过于浓厚会掩盖文本内容

立日志时比它早建立的日志之前。 体设置”按钮修改;有的时候会出现乱码,如图“人”卧倒了。

13.字体大小设置只有1-7七个规格,可选字体大小过少。 14.表格插入有问题。没有插入选项,自动选择三行三列,只能一行、一列的修改, 工作繁琐,尤其是大表格的时候。 15.文本没有撤销功能,如某些文字视频、表格、文档插进去之后不能撤销。 16.正在编写日志时突然退出时,只提示是否退出,并不提示是否保存编写的日志。 17.图片插入后不能删除

数据结构实验一 实验报告

班级::学号: 实验一线性表的基本操作 一、实验目的 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 二、实验容 定义一个包含学生信息(学号,,成绩)的顺序表和链表(二选一),使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据进行查找,返回此学生的学号和成绩; (4) 根据指定的位置可返回相应的学生信息(学号,,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录; (7) 统计表中学生个数。 三、实验环境 Visual C++ 四、程序分析与实验结果 #include #include #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2

typedef int Status; // 定义函数返回值类型 typedef struct { char num[10]; // 学号 char name[20]; // double grade; // 成绩 }student; typedef student ElemType; typedef struct LNode { ElemType data; // 数据域 struct LNode *next; //指针域 }LNode,*LinkList; Status InitList(LinkList &L) // 构造空链表L { L=(struct LNode*)malloc(sizeof(struct LNode)); L->next=NULL; return OK;

清华大学操作系统课程lab2实验报告

物理内存管理实验报告 练习0:合并lab1和lab2 书上提示使用“diff/merge”工具来合并lab1和lab2的代码,可是没有找到这款工具,但是被推荐使用meld工具,也能很方便地将不同目录的文件异同比较出来,可以一一手动合并,删除,增加代码,避免了不必要的错误。 这部分主要合并的文件有kdebug.c、trap.c。 练习1:实现firstfit连续物理内存分配算法。 完成合并代码的工作之后,make qemu执行lab2,结果出现错误提示:

提示default_pmm.c的第283行出现错误,打开文件看,发现这句话出现在函数static void default_check(void) 中,这是一个检查函数,并且提示不要修改。 当然,为了调试工作,在检查函数中加一些代码还是可以的。例如通过cprintf输出一些调试信息,除此之外,还发现check函数中使用大量assert函数,大概作用是当参数条件不为1的时候就弹出debug minitor。也可以用来调试作用。 起初,我仔细看了basic_check函数,它的作用只是做了一些简单的分配释放的操作,并且也没出错,后面看了default_check函数之后也没找到问题所在。再然后是重点分析default_alloc_pages和default_free_pages函数,结合list_add函数看了许久才发现它的空闲块插入顺序有问题:每次插入都是从free_list的头部插入,事实上,应该保持free_list 的顺序,地址小的空闲块应该放在前面,地址大的空闲块应该放在后面,以便firstfit算法的从头快速查找。 找到问题后大致明白了这个exercise的目标:这个练习主要就是完善 default_alloc_pages和default_free_pages。 关键变量: #define free_list (free_area.free_list)//空闲块的链表,但是不指向具体页 #define nr_free (free_area.nr_free)//空闲块的个数 关键函数: list_init(&free_list);//初始化空闲块链表 SetPageProperty(base); ClearPageProperty(base); 关键宏: le2page(le, page_link);//由链表指针得到对应页的地址 (一)Alloc pages:用firstfit算法寻找空闲块 list_entry_t *le = &free_list; while ((le = list_next(le)) != &free_list) { struct Page *p = le2page(le, page_link);

WORD实验报告

word基本操作实验报告 一、实验目的与要求 1.掌握word的基本操作; 2.掌握字符格式、段落格式和页面格式等排版技术; 3.掌握图文混排、表格处理和邮件合并技术; 4.熟悉个人名片或毕业论文的设计与制作; 5.学会自己提出问题,并得出解决问题的方法。 二、实验内容与方法 1.word的基本操作,通过上机摸索,并查阅书籍网络了解。 2.word的字符格式,段落格式和页面格式等排版技术,通过上机摸索,并查阅书籍网络了解。 3.word的图文混排、表格处理和邮件合并技术,通过上机摸索,并查阅书籍网络了解。 4. 通过word进行个人名片或毕业论文的设计与制作,通过上机摸索,并查阅书籍网络了解。 三、实验步骤与过程 1.word的基本操作:①启动word软件 (1) 启动“开始”菜单中的microsoft word程序 (2) 双击资源管理器或“我的电脑”中的c:\program files\microsoft office\office11\winword.exe程序 (3) 双击word 文档文件(*.doc) (4) 双击桌面上的word图标 (5)开始-运行-输入“winword”②认识word2003窗口(1)标题栏位于屏幕最顶端的是标题栏,由控制菜单图标、文件名、最小化按钮、最大化(还原)按钮、关闭按钮组成。(2)菜单栏 菜单栏位于标题栏下面。使用菜单栏可以执行word的许多命令。菜单栏共有九个菜单:文件、编辑、视图、插入、格式、工具、表格、窗口、帮助。当鼠标指针移到菜单标题上时,菜单标题就会凸起,单击后弹出下拉菜单。在下拉菜单中移动鼠标指针时,被选中的菜单项就会高亮显示,再单击,就会执行该菜单所代表的命令。如“文件”—“打开”,就会弹出“打开”文件对话框。(3)工具栏 标题栏下面的是工具栏,使用它们可以很方便地进行工作。通常情况下,word会显示【常用】和【格式】两个工具栏。 “常用”工具栏:新建、打开、复制、粘贴、打印、撤消、恢复等“格式”工具栏:字体、字号、下划线、边框、对齐方式等 如果想了解工具栏上按钮的简单功能,只需将鼠标指针移到该按钮上,过一会儿旁边会出现一个小框,显示出按钮的名称或功能。 word窗口中可以有许多工具栏,可以根据需要在“视图”—“工具栏”中增加或减少工具栏。每一个工 具栏都可以用鼠标拖动到屏幕的任意位置,所以又称为浮动工具栏。工具栏内图标按钮体现了“菜单栏”中的一些主要功能。我们可以利用这些按钮进行相应操作。如我要打开一个文件,除了可以使用菜单栏外,还可以使用工具栏上的按钮。 (4)编辑窗口 再往下的空白区域就是word的编辑窗口,输入的文字就显示在这里。文档中闪烁的竖线称为光标,代表文字的当前输入位置。(5)标尺 在编辑窗口的上面和左面有一个标尺,分别为水平标尺和垂直标尺,用来查看正文的高度和宽度,以及图片、文本框、表格的宽度,还可以用来排版正文。( 6)滚动条在编辑窗口的右面和下面有滚动条,分别为垂直滚动条和水平滚动条,用来滚动文档,显示在屏幕中看不到的内容。可以单击滚动条中的按钮或者拖动滚动框来浏览文档。(7)显示方式按钮

手工焊接实验报告

手工焊接实验报告 篇一:手工焊实训报告 XX大学 手工焊实训总结 年级专业: 学生姓名:学号:指导教师:焊接 XX大学 完成时间: 2012 年月日 1 2 3 4 篇二:手工电弧焊实习报告 学校实习安排

本次实习主要安排在新疆土哈油田建设有限公司进行,以顶班上岗为主,通过实习使学生全面了解企业单位的各方面工作,强化安全意识,规范操作要领,做到安全生产与文明生产。 我在吐哈油建公司实习以有几个月了,公司首先对我门进行了手工焊接的培训,培训期间遇到了很多问题和困难在几个月的时间内体验到当今电焊界普遍所应用的方法,总的来说这次实习活动是一次有趣且必将影响今后学习和工作的重要实践经验。 手工电弧焊是一门实践性的技术课,是学生学习焊接技术工艺方法和技术,完成工程基本训练的重要必修课。实习不仅可以让我们获得焊接的基础知识,了解焊接的一般操作,而且还可以提高自己的焊接技能和动手能力,而且加强了理论联系实际的锻炼,提高了我们的实践能力,培养了我们的素质。实习是一次我们学习、锻炼的好机会。通

过这次几个月充实的实习我懂得了很多……… 在这几个月内,大家每天都要加强学习焊接技术,并在很短的实习时间里,完成从对各项焊工作业的过程,我们在老师们耐心细致地指导下,很顺利的完成各自的实习内容,并且基本上都达到了老师预期的实习要求,圆满地完成了实习。在实习期间,通过学习焊接的操作,我们做出了自己的工件,虽然这几个月的焊接实习是对我们的一个很大的考验,我们都喜不自禁,感到很有成就感。 在实习中,安全是第一位,这是每个老师给我们的第一忠告。实习是培养学生实践能力的有效途径,又是我们工科类大学生非常重要的也特别有意义的实习课,也是我们一次,离开课堂严谨的环境,感受到车间的气氛,亲手掌握知识的机会。 实习要求

实验1实验报告

实验一词法分析 班级:计科12-3 学号:08123282 姓名:樊鑫 一.实验目的 1、学会针对DFA转换图实现相应的高级语言源程序。 2、深刻领会状态转换图的含义,逐步理解有限自动机。 3、掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理。 二.实验内容 TINY计算机语言的编译程序的词法分析部分实现。 从左到右扫描每行该语言源程序的符号,拼成单词,换成统一的内部表示(token)送给语法分析程序。 为了简化程序的编写,有具体的要求如下: (1)数仅仅是整数。 (2)空白符仅仅是空格、回车符、制表符。 (3)代码是自由格式。 (4)注释应放在花括号之内,并且不允许嵌套 三.实验要求 要求实现编译器的以下功能: (1)按规则拼单词,并转换成二元式形式 (2)删除注释行 (3)删除空白符 (空格、回车符、制表符) (4)列表打印源程序,按照源程序的行打印,在每行的前面加上行号,并且打印出每行包含的记号的二元形式 (5)发现并定位错误 ,词法分析进行具体的要求: (1)记号的二元式形式中种类采用枚举方法定义;其中保留字和特殊字符是每个都一个种类,标示符自己是一类,数字是一类;单词的属性就是表示的字符串值。

(2)词法分析的具体功能实现是一个函数GetToken(),每次调用都对剩余的字符串分析得到一个单词或记号识别其种类,收集该记号的符号串属性,当识别一个 单词完毕,采用返回值的形式返回符号的种类,同时采用程序变量的形式提供 当前识别出记号的属性值。这样配合语法分析程序的分析需要的记号及其属性, 生成一个语法树。 (3)标示符和保留字的词法构成相同,为了更好的实现,把语言的保留字建立一个表格存储,这样可以把保留字的识别放在标示符之后,用识别出的标示符对比 该表格,如果存在该表格中则是保留字,否则是一般标示符。 四.实验程序 #include #include #include #include #include using namespace std; enum WordType {WRONG, NUMBER, BIAOSHI, IF, THEN, ELSE, END, REPEAT, UNTIL, //9 READ, WRITE, PLUS, SUBTRACT, MULTIPLY, DIVIDEY, EQUAL, LESSTHAN, COLON,//18 ASSIGNMENT, LINE_FEED, SPACE, TAB, BRACKET_L, BRACKET_R}; //24 enum CharType {ALPHABET, OTHER}; enum WrongType {ZERO, ALP_NUM, NUM_ALP, UNLEAGL_S, NO_MA TCH, UNKNOW}; char *Words [] = {"wrong", "number", "biaoshi", "if", "then", "else", "end", "repeat", "until", //9 "read", "write", "+", "-", "*", "/", "=", "<", ":",//18 ":=", "\n", " ", " ", "{", "}"}; //24 typedef struct { char *str; int wordtype; }Two; char ArrayChar[100], cbuffer; int i=-1, numline = 1, wordtype; string LineChar; Two T; ifstream fp("source.txt",ios::in); int main () { void HandleAlphabet(); void HandleNumber (); void HandleOther (); if (!fp) cout<<"文件打开错误!"<

控制工程基础实验——Mat lab仿真实验报告

实验一:Mat lab 仿真实验 1.1直流电机的阶跃响应。 给直流电机一个阶跃,直流电机的传递函数如下: ) 1101)(11.0(50 )(4 +?+=-s s s G 画出阶跃响应如下: Step Response Time (sec) A m p l i t u d e 零极点分布: P ole-Zero Map Real Axis I m a g i n a r y A x i s

分析:直流电机的传递函数方框图如下: 所以传递函数可以写成: 1 /1)() (2++= s T s T T C s U s n m a m E a 式中,R L T C C JR T a E M m ==,分别为电动机的机电时间常数与电磁时间常数。一般相差不大。 而试验中的传递函数中,二者相差太大,以至于低频时: 低频时) (1 1.050 ) 1101)(11.0(50 )(4+≈ +?+= -s s s s G 所以对阶跃的响应近似为: )1(50)(1.00t e t x --=

1.2 直流电机的速度闭环控制 如图1-2,用测速发电机检测直流电机转速,用控制器Gc(s)控制加到电机电枢上的电压。 1.2.1 假设G c(s)=100,用matlab 画出控制系统开环Bode 图,计算增益剪切频率、相位裕量、相位剪切频率、增益裕量。 M a g n i t u d e (d B )10 10 10 10 10 10 10 10 P h a s e (d e g ) Bode Diagram Frequency (rad/sec) 幅值裕量Gm =11.1214 相位裕量Pm = 48.1370

科技实验报告.doc

科技实验报告 一、定义与作用 实验报告,就是在某项科研活动或专业学习中,实验者把实验的目的、方法。步骤、结果等,用简洁的语言写成书面报告。 实验报告必须在科学实验的基础上进行。成功的或失败的实验结果的记载,有利于不断积累研究资料,总结研究成果,提高实验者的观察能力。分析问题和解决问题的能力,培养理论联系实际的学风和实事求是的科学态度。 二、写作要求 实验报告的种类繁多,其格式大同小异,比较固定。实验报告,一般根据实验的先后顺序来写,主要内容有: 1.实验名称名称,要用最简练的语言反映实验的内容。如验证某定律,可写成“验证×××”;如测量的实验报告,可写成 “×××的测定。” 2.实验目的实验目的要明确,要抓住重点,可以从理论和实践两个方面考虑。在理论上,验证定理定律,并使实验者获得深刻和系统的理解,在实践上,掌握使用仪器或器材的技能技巧。 3.实验用的仪器和材料如玻璃器皿。金属用具、溶液、颜料、粉剂、燃料等。 4.实验的步骤和方法这是实验报告极其重要的内容。这部分要写明依据何种原理。定律或操作方法进行实验,要写明经过哪儿个

步骤。还应该画出实验装置的结构示意图,再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要。清楚明白。 5.数据记录和计算指从实验中测到的数据以及计算结果。 6.结果即根据实验过程中所见到的现象和测得的数据,作出结论。 7.备注或说明可写上实验成功或失败的原因,实验后的心得体会、建议等。 有的实验报告采用事先设计好的表格,使用时只要逐项填写即可。 三、撰写时应注意事项 写实验报告是一件非常严肃。认真的工作,要讲究科学性、准确性。求实性。在撰写过程中,常见错误有以下几种情况:1.观察不细致,没有及时、准确、如实记录。 在实验时,由于观察不细致,不认真,没有及时记录,结果不能准确地写出所发生的各种现象,不能恰如其分。实事求是地分析各种现象发生的原因。故在记录中,一定要看到什么,就记录什么,不能弄虚作假。为了印证一些实验现象而修改数据,假造实验现象等做法,都是不允许的。 2.说明不准确,或层次不清晰。 比如,在化学实验中,出现了沉淀物,但没有准确他说明是“晶体沉淀”,还是“无定形沉淀”。说明步骤,有的说明没有按照操作顺序分条列出,结果出现层次不清晰。凌乱等问题。

计算机模拟手工实验报告

计算机模拟手工实验 学生实验报告 学院:商学院 课程名称:计算机模拟手工实验 专业班级: 姓名: 学号:

学生实验报告 第一部分:实验概况与内容 一、实验的目的及要求 1、实验目的 本实验以模拟企业的实际会计工作为基础,按照企业会计制度和企业会计准则的要求,进行操作训练,有目的地检验和复习所学的会计理论、方法、技能和技巧通过实际的操作,使我们能够比较系统、全面地掌握工业企业会计核算的基本程序和具体方法,加强我们对会计基本理论的理解和对会计基本技能的掌握,把枯燥、抽象的书本知识转化为实际、具体的操作,使我们能够形象地掌握各种业务的处理及记账凭证的填写方法,掌握账簿的处理及登记方法,掌握成本核算方法,掌握各种报表的编制方法,掌握会计资料的整理归档方法,同时,我们可以体验在不同岗位进行不同操作,使之在实验中,培养职业道德和职业判断能力,提高职业工作能力,为我们今后从事会计实务工作打下扎实的基础。 2、实验要求 ①熟悉会计工作的基本流程,工作内容以及工作规范等基础知识; ②能够熟练的进行对实验企业所发生各经济业务的会计核算和账务处理; ③掌握实验企业建立账户、填制凭证,登记账簿、编制报表等会计实务操作流程。 二、实验内容 1、企业基本情况 津阳市永安公司是批零兼营的以零售为主的商品流通企业,主要经营五金、百货、家电等商品,分设一部四柜组,其中一部为批发部,四柜组为小百货组、五金家电组、鞋帽组、针织服装组。

开户行及账号:中国工商银行贵溪分理处 5189958。 地址:津阳市盛兴路160号。 经营规模:一般纳税人,适用增值税税率为17%。 纳税人识别号:235678902283156。 所得税税率:25% 2、内部主要财务会计制度 (1)批发商品流转业务核算的有关规定和要求: ①库存商品采用数量进价金额核算法,按商品品名开设明细账进行数量进价金额核算。 ②“商品销售收入”、“商品销售成本”账户按批发设置明细账,以便结转成本。 ③商品销售使用增值税专用发票,税率为17%。 ④商品销售成本本月末采用先进先出法,在“库存商品——批发”账户中倒算并结转成本。平时只填制出库单。 (2)零售商品流转业务核算的有关规定和要求: ①库存商品采用售价金额核算法,“库存商品”账户按零售分设小百货组、五金家电组、鞋帽组、针织服装组分户进行明细核算。 ②“商品销售收入”、“商品销售成本”账户按批发设置明细账,以便结转成本。 ③商品销售使用增值税专用发票,税率为17%。 ④商品销售实行“价税合一”、平时“商品销售收入”反映含税(增值税、下同)销售额,月末按下列公式调整为不含税销售额,以此计算冲销已销商品收入所含的增值税(进项税额)。不含税销售额=含税销售额/ (1+增值税税率) ⑤商品销售成本按含税销售额随销随转办法,注销书屋负责人的经济责任。 ⑥“商品进销差价”账户反映含税售价与不含说进价之差的数额,并按前述四柜组分别核算。 ⑦月末,按分类(柜组)差价率计算法计算并分摊已销商品实现的进销差价。(3)本公司采用的是非定额的备用金制度 3.实验过程

实验1实验报告-

实验1 Windows编程基础实验报告 一、实验目的和要求 (1)创建一个Win32应用程序Ex_SDK,在程序中构造一个编辑框控件和一个按钮。 (2)编辑框用于输入一元二次方程的系数,当单击“计算”按钮,获取方程系数得的根通过TextOut显示在窗口客户区中。 二、实验环境 操作系统:Windows 2000 编译器:Visual C++ 6.0的开发环境 三、实验准备和说明 (1)具备知识:简单的SDK编程基础。 (2)准备本次上机所需要的程序。 (3)创建本次实验工作文件夹“…\Visual C++程序\实验\实验1” 四、实验内容和步骤 1.启动Visual C++ 6.0 打开计算机,启动Visual C++ 6.0系统。 2.创建工程并添加代码 ①选择“文件”→“新建”菜单命令,打开应用程序向导,显示出“新建”对话框。单击“工程”标签,从列表框中选中Win32 Application(Win32 应用程序)项。在工程名称框中输入Win32应用程序项目名称Ex_SDK。单击浏览按钮...将工程定位到文件夹“…\Visual C++ 6.0程序\实验\实验1”。 ②单击“确定”按钮继续。在向导第一步对话框中,选中An empty project(一个空的工程)项。单击“完成”按钮,系统将显示AppWizard(应用程序向导)的创建信息,单击“确定”按钮,系统将自动创建此应用程序。 ③再次选择“文件”→“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C++ Source File项,在右边的“文件”下的编辑框中输入Ex_SDK.cpp,单击“确定”按钮。 ④在打开的文档窗口中输入下面的代码: #include #include #include // 求一元二次方程的根,函数返回根的个数 int GetRoot(float a, float b, float c, double *root) { double delta, deltasqrt; delta = b*b - 4.0 * a * c; if (delta<0.0) return 0; // 无根 deltasqrt = sqrt(delta);

操作系统lab2实验报告

HUNAN UNIVERSITY 操作系统实验报告

目录 一、内容 (3) 二、目的 (3) 三、实验设计思想和练习题 (3) 练习0:填写已有实验 (3) 练习1:实现 first-fit 连续物理内存分配算法(需要编程) (3) 练习2:实现寻找虚拟地址对应的页表项(需要编程) (8) 练习3:释放某虚地址所在的页并取消对应二级页表项的映射(需要编程) (11) 运行结果 (13) 四、实验体会 (13)

一、内容 本次实验包含三个部分。首先了解如何发现系统中的物理内存;然后了解如何建立对物理内存的初步管理,即了解连续物理内存管理;最后了解页表相关的操作,即如何建立页表来实现虚拟内存到物理内存之间的映射,对段页式内存管理机制有一个比较全面的了解。 二、目的 1.理解基于段页式内存地址的转换机制; 2.理解页表的建立和使用方法; 3.理解物理内存的管理方法。 三、实验设计思想和练习题 练习0:填写已有实验 使用eclipse中的diff/merge工具将实验1的代码填入本实验中代码中有“LAB1”的注释相应部分。 练习1:实现 first-fit 连续物理内存分配算法(需要编程) 在实现first fit 内存分配算法的回收函数时,要考虑地址连续的空闲块之间的合并操作。提示:在建立空闲页块链表时,需要按照空闲页块起始地址来排序,形成一个有序的链表。可能会修改default_pmm.c 中的default_init,default_init_memmap,default_alloc_pages, default_free_pages等相关函数。请仔细查看和理解default_pmm.c中的注释。 请在实验报告中简要说明你的设计实现过程。请回答如下问题: 你的first fit算法是否有进一步的改进空间。 解答: 分析思路: (1)数据结构: A.每个物理页利用一个Page结构体表示,查看kern/mm/memlayout.h包括:

手工香皂 实验报告 朱琳 1131592007

开放性实验报告 实验名称手工香皂(红酒香皂)的制作学院艺术设计学院 专业班产品设计131 姓名朱琳 学号1131592007 同组实验者丁佳杰din jia jie 实验日期2015.4.——2015.6. 指导教师李惠

一、实验目的 1.学习制作手工香皂的方法。 2.掌握皂化反应原理,并将它运用到实践。 二、实验原理 香皂是一种最普遍和最广泛使用的个人洗涤用品。香皂制作的主要反应是皂化反应,皂化反应是碱催化下的酯水解反应,尤其指的是油脂的水解。狭义地讲,皂化反应仅限于油脂与氢氧化钠混合,得到高级脂肪酸的钠盐和甘油的反应(还有部分水)。这个反应是制造肥皂流程中的一步,因此而得名。 皂化反应是一个放热反应。它是一个较慢的化学反应,为了加快反应速率,可以在化学反应的过程中保持系统的较高温度,用物理方式不断搅拌溶液以增加分子碰撞的数量。 脂肪和植物油的主要成分是甘油三酯,它们在碱性条件下水解的方程式为: CH2COOR CH2OH | | CHCOOR + 3 NaOH → 3 RCOONa + CHOH | | CH2COOR CH2OH R基可能不同,但生成的R-COONa都可以做肥皂。常见的R基有:十七碳烯基。R-COOH为油酸。 正十五烷基。R-COOH为软脂酸。 正十七烷基。R-COOH为硬脂酸。 香皂的制作方法大致可以分为热制法和冷制法。热制法属于持续性地加热成形,它的好处是制皂时间较短,约2个小时即可完成,缺点是部分营养都在持续性的高温下被破坏了。而冷制法的好处是可以保留大多数的营养,但缺点是制作时间非常长,最少必须等待3--8周以上才可以完成。 通常市售的普通香皂大多数采用热制法制作,在制皂的过程中会产生甘油,一般会将甘油提取出来,并添加一些化学物质与防腐剂等,所以使用后常常会将肌肤的天然油脂一起带走。而手工香皂大多数采取天然的植物油及其他天然原料,再加上不提取甘油,相对而言,不仅健康,而且滋润肌肤的效果更是普通香皂无法比拟的。手工香皂的制作过程之中没有添加清洁的人工化学物质,因此手工香皂遇到水之后,大约24小时以内就会被完全中和分解掉,所以并不会造成生态环境的破坏。 本实验采取冷制法制备手工红酒香皂。

实验1实验报告格式

实验1实验报告格式 《计算机图形学》实验1实验报告 实验题目:用户坐标、视图坐标、Java awt坐标概念的建立和应用 实验内容:掌握用户坐标、视图坐标、Java awt坐标概念,掌握三类坐标的转换算法。编写自己的算法函数,并形成Java语言程序包。编写程序调用验证之。 参考程序:有两个示范程序MyTest.java和MyLineDrawApplet.java 基本概念: 用户坐标:是独立于设备的逻辑坐标,可以是用户用来定义设计对象的各种坐标。 应用程序使用该坐标系:所有传给Java 2D渲染过程的坐标都是指用户坐标。例如下面程序中的默认用户坐标的范围是X轴从-1到1,Y轴也是凑够-1到1。 视图坐标:是设备相关的坐标,随目标渲染设备不同而不同。下面程序中定义的视图坐标的缺省值为(0,0)和(1,1)。 Java awt坐标:使用java.awt时使用的坐标,即窗口显示图像时的边界坐标。 填充:这个过程可以抽象的理解为以已知的线为中心,向周围扩展像素,然后对这些像素所在的方块进行着色。 将用户坐标转换为视图坐标实际上是将独立于设备的逻辑坐标转换为设备相关的坐标,将视图坐标转化为A WT坐标就是将视图坐标按照显示窗口的大小进行缩放。 算法设计:(详细叙述自己设计程序的功能、算法及实现) 程序的功能: 可以根据传入的用户坐标进行视图坐标、A WT坐标之间的转换,其反向转换同理也可以实现,即将转换的方法逆过去即可。此外,程序还可以进行图形的绘画和填充,比如矩形、椭圆、多边形等。 算法及其实现函数: 用户坐标到视图坐标的转换:对于相应的用户坐标应用数学中的平移与放缩,就可以得到视图坐标。具体方法如下:在用户坐标系下,设矩形窗口的左下角坐标为(Ux1,Uyb), 右上角为(Uxr,Uyt),视图坐标系下的两个点坐标分别为(Vx1,V yb)和(Vxr,V yt), 则视图坐标的表达式为:(Xu,Y u)是已知的用户坐标,(Xv ,Y v)是要求的视图坐标Xv=aXu+b Y v=cY u+d 其中:a=(Vxr-Vxl)/(Uxr-Uxl) b=Vxl-aUxl c=(V yt-V yb)/(Uyt-Uyb) d=V yb-cUyb //将用户坐标的点转换到视图坐标 public double view_x(double x) { double s=(x-user_i_x)/(user_a_x- user_i_x); double t=view_i_x[currentV iew]+s* //坐标的平移及压缩 (view_a_x[currentView]-view_i_x[currentV iew]); return t; } public double view_y(double y) { double s=(y-user_i_y)/(user_a_y-user_i_y); double t=view_i_y[currentV iew]+s* //坐标的平移及压缩 (view_a_y[currentView]-view_i_y[currentV iew]); return t; } 视图坐标到A WT坐标的转换:由于视图坐标在0到1之间,因此将显示窗口的宽和高

lab1汇编语言与DOS系统实验报告

汇编语言与DOS系统实验报告 一、实验目的 1、掌握x86体系段式内存组织方式,了解如何用程序指令访问不同的内存空 间 2、了解DOS系统的基本操作 3、掌握汇编语言的编译和调试方法 二、实验条件 1、DOS操作系统平台 三、实验原理 1、x86实模式下内存采用分段的组织方式,将20位的地址空间分为16位的 段地址和16位的偏移地址,表示为“段地址:偏移地址”的形式,实际物理地址=段地址×16+偏移地址。 2、DOS系统基本操作命令: (1)cd命令进入磁盘或文件夹 (2)dir命令列出目录下的文件 (3)makedir创建目录 (4)del删除文件 (5)copy复制文件 (6)rename文件重命名 3、汇编语言编译命令: (1)edit命令编辑程序

(2)masm生成目标文件 (3)link链接生成可执行文件 (4)输入文件名运行程序 4、程序调试方法 使用debug命令调试程序,常用的调试参数有: (1)-u反汇编生成程序的汇编代码 (2)-d查看内存地址的内容 (3)-p/t单步调试 (4)-g设置断点 (5)-e修改指定地址内容 四、实验内容 1、写出A+B problem的汇编代码,使用编译命令生成可执行文件并使用 debug加载可执行程序。实验代码如下: DATA SEGMENT ADDER1 DB 35H ADDER2 DB 48H SUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX MOV AL,ADDER1 ADD AL,ADDER2 MOV SUM,AL MOV AX,4C00H INT 21H CODE ENDS END START 首先将源文件使用masm命令和link命令生成可执行文件,使用debug命令调试程序,使用-u参数显示汇编代码,g命令设置断点到MOV SUM,AL指令处,此时使用d ds:0000即可在内存中显示两个加数以及两个数的和的数值,可以使用-e命令修改参数。 2、增加变量N,实现N个数字的加法运算,实验中N设置为4,实验代码 如下: DATA SEGMENT ADDER1 DB 35H ADDER2 DB 48H ADDER3 DB 20H ADDER4 DB 30H SUM DB ? DATA ENDS

实验报告模板

实验报告 (2013 / 2014 学年第二学期) 课程名称Java语言程序设计 实验名称综合图形界面程序设计 实验时间2014年5月5日 指导单位计算机学院软件教学中心 指导教师薛景 学生姓名臧玉付班级学号12001037 计算机科学与技术学院(系)计算机学院专业 (计算机通信)

2、编写一个简单的计算器软件,实现简单的四则运算。(请在下方空白处填写本程序的全部 ..程序代码及软件界面截图) import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class test extends JFrame { private final int BUTTON_WIDTH=50; private final int BUTTON_HEIGHT=40; JButton one=new JButton("1"); JButton two=new JButton("2"); JButton three=new JButton("3"); JButton four=new JButton("4"); JButton five=new JButton("5"); JButton six=new JButton("6"); JButton seven=new JButton("7"); JButton eight=new JButton("8"); JButton nine=new JButton("9"); JButton zero=new JButton("0"); JButton DOT=new JButton("."); JButton ADD=new JButton("+"); JButton SUB=new JButton("-"); JButton MUL=new JButton("*"); JButton DIV=new JButton("/"); JButton EQU=new JButton("=");

电机学实验1实验报告

实验报告 课程名称:电机学指导老师:史涔溦成绩:__________________实验名称:直流电动机实验实验类型:验证性实验同组学生姓名: 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1、进行电机实验安全教育和明确实验的基本要求 2、认识在直流电机实验中所用的电机、仪表、变阻器等组件 3、学习直流电动机的接线、起动、改变电机转向以及调速的方法 4、掌握用实验方法测取直流并励电动机的工作特性和机械特性 5、掌握直流并励电动机的调速方法 6、并励电动机的能耗制动 二、实验内容和原理 1、并励直流电动机起动实验 2、改变并励直流电动机转向实验 : 3、测取并励直流电动机的工作特性和机械特性 4、并励直流电动机的调速方法 三、主要仪器设备 1、直流电源(220V,3A,可调) 2、并励直流电动机 3、负载:测功机。与被测电动机同轴相连。 4、调节电阻。电枢调节电阻选取0-90欧,磁场调节电阻选取0—3000欧。 5、直流电压电流表。电压表为直流250V,电枢回路电流表量程,励磁回路电流表量程200mA。 四、操作方法与实验步骤 (1)并励直流电动机的起动实验 接线图: `

实验时,首先将电枢回路电阻调节到最大,因为起动初n=0,而端电压为额定值,如果电枢回路电阻过小那么会因电流过大而烧坏电机。其次应该Rf调节到最小,因为当电枢电流和电动势一定时,磁通量和转速是成反比的,如果磁场太弱,那么会造成很大的转速,从而造成危险。调节电源电压,缓缓启动电机,观察电动机的旋转方向是否符合负载的加载方向。最后逐步减小R1,实现分级起动,直到完全切除R1. 注意每次起动前,将测功机加载旋钮置0。实验完成后,将电压和测功机加载旋钮置0。 (2)改变并励直流电动机转向实验 改变转向,即改变导体的受力方向,则改变电枢电流或者磁场的方向都可以实现。因此对调励磁绕组或者电枢绕组的极性即可。重新起动,观察转向。 (3)测量并励直流电动机的工作特性和机械特性 1、完全起动电机并获取稳定转速,使得R1=0 2、将电动机调节到额定状态,调节电源电压测功机加载旋钮及磁场调节电阻R f ,至额定状态:U=U N , I=I N ,n=n N ,记下此时的I f ,即I fN 。 . 3、保持U=U N ,I f =I fN 不变,调测功机加载旋钮,逐渐减小电动机负载至最小,测I、n、T 2 。 (4)并励直流电动机的调速特性1、改变电枢电压调速 1) 按操作1起动后,切除电枢调节电阻R 1(R 1 =0)

Lab1_体系结构实验报告

2012年3月1日 一、实验目的和要求 1.understand the principles of ALU and master methods of ALU design 2.understand the principles of ALU controller and master methods of ALU controller design 3.understand the principles of register file and master methods of register file design so the task is first, design a ALU with ALU controller then, design a register file 二、实验内容和原理 2.1 ALU with ALU controller We input the operand r, s; both are 32 bit integer, and aluc is the control code that defines the operation. So we just make the code block, totally as ALU block, ALUC block, display block.

Figure 1 the input and output diagram Figure 2 ALU operations Figure 3 the truth table of operation cod e

Figure 4 principle of ALU 2.2 register file The process is similar to the 2.1, when we get the principle of register file , it can be easily coding. Figure 5 the input and output

相关文档