编译方法实验报告(中间代码生成器的设计)

编译方法实验报告(中间代码生成器的设计)
编译方法实验报告(中间代码生成器的设计)

编译方法实验报告

2011年10月

word文档可自由复制编辑

一、实验目的

熟悉算术表达式的语法分析与中间代码生成原理。

二、实验内容

(1)设计语法制导翻译生成表达式的四元式的算法;

(2)编写代码并上机调试运行通过。

输入——算术表达式;

输出——语法分析结果;

相应的四元式序列。

(3)设计LL(1)分析法或LR(0)分析法的属性翻译文法,并根据这些属性翻译文法,使用扩展的语法分析器实现语法制导翻译。

三、实验原理及基本步骤

●算术表达式文法:

G(E): E →E ω0 T | T

T →T ω1 F | F

F → i | (E)

●文法变换:

G’(E) E →T {ω0 T}

T →F {ω1 F}

F → i | (E)

●属性翻译文法:

E →T {ω0“push(SYN,w)” T “QUAT”}

T →F {ω1“push(SYN, w)” F “QUAT”}

F →i “push(SEM, entry(w))” | (E)

其中:

push(SYN, w) —当前单词w入算符栈SYN;

push(SEM, entry(w)) —当前w在符号表中的入口值压入语义栈SEM;

QUAT —生成四元式函数

i.T = newtemp;

ii.QT[j] =( SYN[k], SEM[s-1], SEM[s], T); j++;

iii.pop( SYN, _ ); pop( SEM, _ ); pop( SEM, _ );

push( SEM, T );

●递归下降子程序:

数据结构:SYN —算符栈;

SEM —语义栈;

四、数据结构设计

使用递归的结构进行四元式的设计,同时,运用堆栈结构将四元式的输出序列打印出来

while ( exp[i]=='+' || exp[i]=='-'){

syn[++i_syn]=exp[i]; //push(SYN,w)

i++; //read(w)

T();

quat();}

while ( exp[i]=='*' || exp[i]=='/'){

syn[++i_syn]=exp[i]; //push(SYN,w)

i++; //read(w)

F();

quat();}

void quat(){

strcpy(qt[j],"(, , , )");

//QT[j]:=(SYN[k],SEM[s-1],SEM[s],temp);

qt[j][1]=syn[i_syn];

qt[j][3]=sem[i_sem-1];

qt[j][5]=sem[i_sem];

qt[j][7]=temp;

j++;

i_syn--; //pop(SYN);

i_sem--; //pop(SEM);

i_sem--; //pop(SEM);

sem[++i_sem]=temp; //push(SEM,temp);

temp++;}

五、关键代码分析(带注释)及运行结果

#include

#include "string.h"

#include "stdio.h"

using namespace std;

char syn[10]; //文法符号栈

int i_syn;

char sem[10]; //运算对象栈

int i_sem;

char exp[50]; //算术表达式区

int i;

char qt[30][15]; //四元式区

int j=0;

char temp='q'; //临时变量,取值为r--z

int E();

int T();

int F();

void quat(); //生成四元式函数

int main(int argc, char* argv[]){

printf("please input your expression:");

scanf("%s",exp); //输入四元式

i=0; //read(w)

E();

if (exp[i]=='\0')

for (i=0;i

printf("%s\n",qt[i]);

else

printf("err");

return 0;}

int E(){

T();

while ( exp[i]=='+' || exp[i]=='-'){

syn[++i_syn]=exp[i]; //push(SYN,w)

i++; //read(w)

T();

quat();}

return 1;}

int T(){

F();

while ( exp[i]=='*' || exp[i]=='/'){

syn[++i_syn]=exp[i]; //push(SYN,w)

i++; //read(w)

F();

quat();}

return 1;}

int F(){

if ( exp[i]=='('){

i++; //read(w)

E();

if ( exp[i]!=')'){

printf("err");

return 0;}

}else if ((exp[i]>='a' && exp[i]<='p')||(exp[i]>='0' && exp[i]<='9')){ sem[++i_sem]=exp[i]; } //push(SEM,w) else{

printf("err");

return 0;}

i++; //read(w)

return 1;}

void quat(){

strcpy(qt[j],"( , , , )"); //QT[j]:=(SYN[k],SEM[s-1],SEM[s],temp);

qt[j][1]=syn[i_syn];

qt[j][3]=sem[i_sem-1];

qt[j][5]=sem[i_sem];

qt[j][7]=temp;

j++;

i_syn--; //pop(SYN);

i_sem--; //pop(SEM);

i_sem--; //pop(SEM);

sem[++i_sem]=temp; //push(SEM,temp);

temp++;}

六、总结与分析

我们知道,定义一种语言除了要求定义语法外,还要求定义语义,即对语言的各种语法单位赋予具体的意义。语义分析的任务是首先对每种语法单位进行静态的语义审查,然后分析其含义,并用另一种语言形式,即比源语言更加接近于目标语言的一种中间代码来进行描述这种语言。因此,中间代码就显得十分重要,它关系着整个程序语言的正确编译与否,同时也是进行下一步编译的重要先决条件。

七、实验思考题

(1)自顶向下法(推导法)

从开始符号出发,采用推导运算,试图自顶向下构造语法树。

自底向上法(归约法)

从给定的符号串出发,采用归约运算,试图自底向上构造语法树。

(2)递归下降子程序法:递归子程序法属于自顶向下语法分析方法。故又名递归下降法。要求文法是LL(1)文法。

LL(1)分析法:LL(1)分析法是指从左到右扫描(第一个L) 、最左推导(第二个L)和只查看一个当前符号(括号中的1)之意;LL(1)分析法又称预测分析法,属于自顶向下确定性语法分析方法。要求文法是LL(1)文法。

(3)相同点:都要求文法是LL(1)文法;都是自顶向下的分析方法;都通过分析下个字符来判断该进入哪个状态或者调用哪个函数。

不同点:LL(1)分析法先建立起预测分析表,通过对分析栈的不断操作(出栈,入栈)来进行;递归下降子程序法是通过函数间的函数调用来实现不同状态间的转换,并简化了代码。

(4)语法制导翻译是在语法分析过程中,随着分析(推导或归约)的逐步进展,每识别出一个语法结构,根据文法的每个规则所对应的语义子程序进行翻译的方法;核心技术是构造属性翻译文法。

(5)假定:SEM(m)-- 语义栈(属性传递、赋值场所);

QT[q] –四元式区;

G``(E):E -> T | E+T{GEQ(+)} | E-T{GEQ(-)} T -> F | T*F{GEQ(*)} | T/F{GEQ(/)}

F -> i{PUSH(i)} | ( E )

其中:

⑴PUSH(i)–压栈函数(把当前i 压入语义栈);

⑵GEQ(w) –表达式四元式生成函数:

生成一个四元式送QT[q]过程:

①t := NEWT; { 申请临时变量函数;}

②SEND(w,SEM[m-1],SEM[m],t)

③POP;POP;PUSH(t)

传感器实验报告

传感器实验报告(二) 自动化1204班蔡华轩 U2 吴昊 U5 实验七: 一、实验目的:了解电容式传感器结构及其特点。 二、基本原理:利用平板电容C=εA/d 和其它结构的关系式通过相应的结 构和测量电路可以选择ε、A、d 中三个参数中,保持二个参数不变,而只改变其中一个参数,则可以有测谷物干燥度(ε变)测微小位移(变d)和测量液位(变A)等多种电容传感器。 三、需用器件与单元:电容传感器、电容传感器实验模板、测微头、相敏 检波、滤波模板、数显单元、直流稳压源。 四、实验步骤: 1、按图6-4 安装示意图将电容传感器装于电容传感器实验模板上。 2、将电容传感器连线插入电容传感器实验模板,实验线路见图7-1。图 7-1 电容传感器位移实验接线图 3、将电容传感器实验模板的输出端V01 与数显表单元Vi 相接(插入主控 箱Vi 孔),Rw 调节到中间位置。 4、接入±15V 电源,旋动测微头推进电容传感器动极板位置,每间隔 记下位移X 与输出电压值,填入表7-1。

5、根据表7-1 数据计算电容传感器的系统灵敏度S 和非线性误差δf。 图(7-1) 五、思考题: 试设计利用ε的变化测谷物湿度的传感器原理及结构,并叙述一 下在此设计中应考虑哪些因素 答:原理:通过湿度对介电常数的影响从而影响电容的大小通过电压表现出来,建立起电压变化与湿度的关系从而起到湿度传感器的作用;结构:与电容传感器的结构答大体相同不同之处在于电容面板的面积应适当增大使测量灵敏度更好;设计时应考虑的因素还应包括测量误差,温度对测量的影响等

六:实验数据处理 由excle处理后得图线可知:系统灵敏度S= 非线性误差δf=353=% 实验八直流激励时霍尔式传感器位移特性实验 一、实验目的:了解霍尔式传感器原理与应用。 二、基本原理:霍尔式传感器是一种磁敏传感器,基于霍尔效应原理工作。 它将被测量的磁场变化(或以磁场为媒体)转换成电动势输出。 根据霍尔效应,霍尔电势UH=KHIB,当霍尔元件处在梯度磁场中 运动时,它就可以进行位移测量。图8-1 霍尔效应原理

程序设计基础实验报告

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

机械设计上机设计实验报告

机械设计上机设计 班级: 姓名: 学号:

目录 1.数表和线图的程序化处理 (1) 1.1数表的程序化 (1) 1.1.1查表检索法 (1) 1.1.2数表解析法 (12) 1.2线图的程序化 (15) 1.3有关数据处理 (16) 2.典型零部件的程序设计 (18) 2.1 V带传动的程序设计 (18) 2.2 齿轮传动的程序设计 (19) 2.3 滚动轴承的程序设计 (21) 3.课后习题计算 (22)

一、表和线图的程序化处理 1.1数表程序化 数表程序化有两种方法:一是查表检索法;二是数表解析法1.1.1 查表检索法 1)一元数表的存取 表1-1 普通V带型号及有关参数 运行界面:

程序代码: Private Sub Command1_Click() Dim s As Integer Dim q1 As Single, dm As Single, kb As Single s = Val(Txt_s.Text) Select Case s Case 0 q1 = 0.02: dm = 20: kb = 0.00006 Case 1 q1 = 0.06: dm = 50: kb = 0.00039 Case 2 q1 = 0.1: dm = 75: kb = 0.00103 Case 4 q1 = 0.17: dm = 125: kb = 0.00265 Case 5 q1 = 0.3: dm = 200: kb = 0.0075 Case 6 q1 = 0.62: dm = 355: kb = 0.0266 Case 7 q1 = 0.9: dm = 500: kb = 0.0498 End Select Txt_q1.Text = Str(q1) Txt_dmin.Text = Str(dm) Txt_kb.Text = Str(kb) End Sub Private Sub Command2_Click() End End Sub 2)二元数表的存取 表1-2齿轮传动工作状况系数K

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

传感器与检测技术实验报告

“传感器与检测技术”实验报告 学号: 913110200229 姓名:杨薛磊 序号: 83

实验一电阻应变式传感器实验 (一)应变片单臂电桥性能实验 一、实验目的:了解电阻应变片的工作原理与应用并掌握应变片测量电路。 二、基本原理:电阻应变式传感器是在弹性元件上通过特定工艺粘贴电阻应变片来组成。一种利用电阻材料的应变效应将工程结构件的内部变形转换为电阻变化的传感器。此类传感器主要是通过一定的机械装置将被测量转化成弹性元件的变形,然后由电阻应变片将弹性元件的变形转换成电阻的变化,再通过测量电路将电阻的变化转换成电压或电流变化信号输出。它可用于能转化成变形的各种非电物理量的检测,如力、压力、加速度、力矩、重量等,在机械加工、计量、建筑测量等行业应用十分广泛。 三、需用器件与单元:主机箱中的±2V~±10V(步进可调)直流稳压电源、±15V直流 1位数显万用表(自备)。 稳压电源、电压表;应变式传感器实验模板、托盘、砝码; 4 2 四、实验步骤: 应变传感器实验模板说明:应变传感器实验模板由应变式双孔悬臂梁载荷传感器(称重传感器)、加热器+5V电源输入口、多芯插头、应变片测量电路、差动放大器组成。实验模板中的R1(传感器的左下)、R2(传感器的右下)、R3(传感器的右上)、R4(传感器的左上)为称重传感器上的应变片输出口;没有文字标记的5个电阻符号是空的无实体,其中4个电阻符号组成电桥模型是为电路初学者组成电桥接线方便而设;R5、R6、R7是350Ω固定电阻,是为应变片组成单臂电桥、双臂电桥(半桥)而设的其它桥臂电阻。加热器+5V是传感器上的加热器的电源输入口,做应变片温度影响实验时用。多芯插头是振动源的振动梁上的应变片输入口,做应变片测量振动实验时用。

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

计数器的设计实验报告

计数器的设计实验报告 篇一:计数器实验报告 实验4 计数器及其应用 一、实验目的 1、学习用集成触发器构成计数器的方法 2、掌握中规模集成计数器的使用及功能测试方法二、实验原理 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等等。目前,无论是TTL还是

CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 1、中规模十进制计数器 CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。 图5- 9-1 CC40192引脚排列及逻辑符号 图中LD—置数端CPU—加计数端CPD —减计数端CO—非同步进位输出端BO—非同步借位输出端 D0、D1、D2、D3 —计数器输入端 Q0、Q1、Q2、Q3 —数据输出端CR—清除端 CC40192的功能如表5-9-1,说明如下:表5-9-1 当清除端CR为高电平“1”时,计数

器直接清零;CR置低电平则执行其它功能。当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3 置入计数器。 当CR为低电平,LD为高电平时,执行计数功能。执行加计数时,减计数端CPD 接高电平,计数脉冲由CPU 输入;在计数脉冲上升沿进行8421 码十进制加法计数。执行减计数时,加计数端CPU接高电平,计数脉冲由减计数端CPD 输入,表5-9-2为8421 码十进制加、减计数器的状态转换表。加法计数表5-9- 减计数 2、计数器的级联使用 一个十进制计数器只能表示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级联使用。 同步计数器往往设有进位(或借位)输出端,故可选用其进位(或借位)输出信号驱动下一级计数器。 图5-9-2是由CC40192利用进位

传感器测试实验报告

实验一 直流激励时霍尔传感器位移特性实验 一、 实验目的: 了解霍尔式传感器原理与应用。 二、基本原理: 金属或半导体薄片置于磁场中,当有电流流过时,在垂直于磁场和电流的方向上将产生电动势,这种物理现象称为霍尔效应。具有这种效应的元件成为霍尔元件,根据霍尔效应,霍尔电势U H =K H IB ,当保持霍尔元件的控制电流恒定,而使霍尔元件在一个均匀梯度的磁场中沿水平方向移动,则输出的霍尔电动势为kx U H ,式中k —位移传感器的灵敏度。这样它就可以用来测量位移。霍尔电动势的极性表示了元件的方向。磁场梯度越大,灵敏度越高;磁场梯度越均匀,输出线性度就越好。 三、需用器件与单元: 霍尔传感器实验模板、霍尔传感器、±15V 直流电源、测微头、数显单元。 四、实验步骤: 1、将霍尔传感器安装在霍尔传感器实验模块上,将传感器引线插头插入实验模板的插座中,实验板的连接线按图9-1进行。1、3为电源±5V , 2、4为输出。 2、开启电源,调节测微头使霍尔片大致在磁铁中间位置,再调节Rw1使数显表指示为零。 图9-1 直流激励时霍尔传感器位移实验接线图 3、测微头往轴向方向推进,每转动记下一个读数,直到读数近似不变,将读数填入表9-1。 表9-1 X (mm ) V(mv) 作出V-X 曲线,计算不同线性范围时的灵敏度和非线性误差。 五、实验注意事项: 1、对传感器要轻拿轻放,绝不可掉到地上。 2、不要将霍尔传感器的激励电压错接成±15V ,否则将可能烧毁霍尔元件。 六、思考题:

本实验中霍尔元件位移的线性度实际上反映的时什么量的变化 七、实验报告要求: 1、整理实验数据,根据所得得实验数据做出传感器的特性曲线。 2、归纳总结霍尔元件的误差主要有哪几种,各自的产生原因是什么,应怎样进行补偿。 实验二集成温度传感器的特性 一、实验目的: 了解常用的集成温度传感器基本原理、性能与应用。 二、基本原理: 集成温度传器将温敏晶体管与相应的辅助电路集成在同一芯片上,它能直接给出正比于绝对温度的理想线性输出,一般用于-50℃-+150℃之间测量,温敏晶体管是利用管子的集电极电流恒定时,晶体管的基极—发射极电压与温度成线性关系。为克服温敏晶体管U b电压生产时的离散性、均采用了特殊的差分电路。集成温度传感器有电压型和电流型二种,电流输出型集成温度传感器,在一定温度下,它相当于一个恒流源。因此它具有不易受接触电阻、引

Java程序设计-实验报告1-模板 (1)

实验报告 课程名称Java程序设计 实验项目实验一类和对象 系别_________计算机_________ 专业/班级_______计算机类/1402______ 姓名_____李馨雪________ 实验日期______2015.10.10______ 成绩_______________________ 指导教师

一、实验题目:实验一类和对象 二、实验内容: (1)用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。 1)PC类与CPU类和HardDisk类关联的UML图如图所示。 其中,CPU类要求getSpeed()返回speed的值,setSpeed(int m)方法 将参数m的值赋值给speed。 HardDisk类要求getAmount()返回amount的值,setAmount(int m)方 法将参数m的值赋值给amount。 PC类要求setCPU(CPU c)将参数c的值赋值给cpu,要求setHardDisk (HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示 cpu的速度和硬盘的容量。 2)主类Test的要求 main()方法中创建一个CPU对象cpu,其speed设置为2200; main()方法中创建一个HardDisk对象disk,其amount设置为200; main()方法中创建一个PC对象pc, pc调用setCPU方法,实参是cpu;调用setHardDisk方法,实参是 disk;调用show方法。 (2)设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下: 1)编写接口Animal,有2个抽象方法cry()和getAnimaName(); 2)编写模拟器类Simulator,该类有一个playSound(Animal animal)方法,其形参是Animal类型,可以调用实现Animal接口的类所重写的cry()方法播放具体动物的声音,调用重写方法显示动物种类的名称; 3)编写实现Animal接口的Dog类和Cat类。具体的UML图如下所示:4)编写主类Application,其main方法中至少包含如下代码: Simulator si=new Simulator();

传感器实验报告详解

五邑大学 《传感器与电测技术》 实验报告 实验时间:2016年11月16日-17日实验班级:班 实验报告总份数: 4 份 实验教师:

信息工程学院(系) 611 实验室 __交通工程_____专业 班 学号 姓名_______协作者______________ 成绩:

实验一熟悉IAR 集成开发环境下C程序的编写 一.实验目的 1、了解IAR 集成开发环境的安装。 2、掌握在IAR 环境下程序的编辑、编译以及调试的方法。 二.实验设备 1、装有IAR 开发环境的PC 机一台 2、物联网开发设计平台所配备的基础实验套件一套 3、下载器一个 三.实验要求 1、熟悉IAR 开发环境 2、在IAR 开发环境下编写、编译、调试一个例程 3、实验现象节点扩展板上的发光二极管 D9 被点亮 三、问题与讨论 根据提供的电路原理图等资料,修改程序,点亮另一个LED 灯D8。(分析原理,并注释。) 先定义IO口,再初始化,最后点亮

一、实验目的与要求 1、理解光照度传感器的工作原理 2、掌握驱动光照度传感器的方法 二、实验设备 1、装有IAR 开发工具的PC 机一台 2、下载器一个 3、物联网开发设计平台一套 三、实验要求 1、编程要求:编写光照度传感器的驱动程序 2、实现功能:检测室内的光照度 3、实验现象:将检测到的数据通过串口调试助手显示,用手遮住传感器,观察数据变化。 四、实验讨论 讨论:光敏电阻的工作原理?光敏电阻是否为线性测量元件,为什么?常用于什么测量场合? 1.它的工作原理是基于光电效应。在半导体光敏材料两端装上电极引线,将其 封装在带有透明窗的管壳里就构成光敏电阻。为了增加灵敏度,两电极常做成梳状。半导体的导电能力取决于半导体导带内载流子数目的多少。当光敏电阻受到光照时,价带中的电子吸收光子能量后跃迁到导带,成为自由电子,同时产生空穴,电子—空穴对的出现使电阻率变小。光照愈强,光生电子—空穴对就越多,阻值就愈低。当光敏电阻两端加上电压后,流过光敏电阻的电流随光照增大而增大。入射光消失,电子-空穴对逐渐复合,电阻也逐渐恢复原值,电流也逐渐减小 2.不是线性测量元件,可以说光敏电阻在照度固定时是线性的。光敏电阻的阻 值随光照的增强而减少,但这个关系不是线性的。 3.常用作开关式光电转换器

C语言程序设计基础实验报告6【VIP专享】

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

实验报告的设计和填写

实验报告的设计和填写 实验报告的设计能够从以下几方面来做:先考虑用物理方法,然后考虑化学方法, 先简单,后难,也能够物理和化学方法共同结合使用。 看颜色:例如氯化铁,氯化铜,氯化钠三种溶液就能够根据溶液颜色的不同来做。 闻气味:例如酒精,白醋,盐水三种不同的液体就能够根据物质气味的不同实行设计。 看溶解性:三种白色的粉末碳酸钙,氯化钠,硫酸铜就能够根据物质溶于水后的不同现象来做。 二.化学方法:任选试剂:(1)有盐酸,氢氧化钠溶液,水三种无色的液体就能够根据物质的酸碱性不同用石蕊试液或者测量PH就能够检验出来,请完成下题。 (2)两种碱一种酸能够考虑加入碳酸钠就能够一步到位。 请设计实验方案:任选一种试剂鉴别出氢氧化钙,氢氧化钠,稀盐酸三种无色的液体

2.实验室有几瓶失去标签的液体,分别是硫酸铜溶液,氢氧化钠溶液,氯化镁溶液和水,不用其它试剂,

三.有时也能够考虑物理和化学方法相结合,一般先考虑用物理方法,在考虑用化学方法。 现需要鉴别三包失去标签的白色固体粉末,可能是碳酸钙,碳酸钠和硫酸钠,现在要鉴别它们,请设计方 练习:1.实验室中有失去标签的四瓶无色的溶液:氯化镁,氯化钠,盐酸,氢氧化钠,现实验桌上只有一 2.某化学小组的同学围绕澄清的石灰水与碳酸钠溶液反应后的溶液中的溶质成分展开如下探究活动。(1)完成澄清石灰水与碳酸钠反应的化学方程式:。 (2)请设计实验,探究反应后的溶液中的溶质成分。 提出假设:假设1:有氢氧化钠和碳酸钠;假设2:有氢氧化钠和氢氧化钙;假设3: 。 某同学取少量溶液于试管中,加入过量的稀盐酸,发现无气泡产生。说明假设是不成立的。

C语言程序设计实验报告

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分: 4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序: main( ) {int i=8,j=10,m,n; m=++i;n=j++;

传感器与检测技术实验报告

“传感器与检测技术”实验报告 学号:913110200229 姓名:杨薛磊 序号:83

实验一电阻应变式传感器实验 (一)应变片单臂电桥性能实验 一、实验目的:了解电阻应变片的工作原理与应用并掌握应变片测量电路。 二、基本原理:电阻应变式传感器是在弹性元件上通过特定工艺粘贴电阻应变片来组成。一种利用电阻材料的应变效应将工程结构件的内部变形转换为电阻变化的传感器。此类传感器主要是通过一定的机械装置将被测量转化成弹性元件的变形,然后由电阻应变片将弹性元件的变形转换成电阻的变化,再通过测量电路将电阻的变化转换成电压或电流变化信号输出。它可用于能转化成变形的各种非电物理量的检测,如力、压力、加速度、力矩、重量等,在机械加工、计量、建筑测量等行业应用十分广泛。 三、需用器件与单元:主机箱中的±2V~±10V(步进可调)直流稳压电源、±15V直流 1位数显万用表(自备)。 稳压电源、电压表;应变式传感器实验模板、托盘、砝码; 4 2 四、实验步骤: 应变传感器实验模板说明:应变传感器实验模板由应变式双孔悬臂梁载荷传感器(称重传感器)、加热器+5V电源输入口、多芯插头、应变片测量电路、差动放大器组成。实验模板中的R1(传感器的左下)、R2(传感器的右下)、R3(传感器的右上)、R4(传感器的左上)为称重传感器上的应变片输出口;没有文字标记的5个电阻符号是空的无实体,其中4个电阻符号组成电桥模型是为电路初学者组成电桥接线方便而设;R5、R6、R7是350Ω固定电阻,是为应变片组成单臂电桥、双臂电桥(半桥)而设的其它桥臂电阻。加热器+5V是传感器上的加热器的电源输入口,做应变片温度影响实验时用。多芯插头是振动源的振动梁上的应变片输入口,做应变片测量振动实验时用。 1、将托盘安装到传感器上,如图1—4所示。 图1—4 传感器托盘安装示意图

回转器电路设计(完整版,包括pspice仿真电路以及实验数据)

南京航空航天大学电路实验报告 回转器电路设计 姓名:李根根 学号:031220720 指导老师:王芸

目录 一、实验目的 (2) 二、实验仪器 (2) 三、实验原理 (2) 四、实验要求 (3) 五、用pspice软件进行电路仿真并分析 (5) 六、实验内容 (9) 七、实验心得 (11) 八、附件(Uc – f 图) (12)

一、实验目的 1.加深对回转器特性的认识,并对其实际应用有所了解。 2.研究如何用运算放大器构成回转器,并学习回转器的测试方法。 二、实验仪器 1.双踪示波器 2.函数信号发生器 3.直流稳压电源 4.数字万用表 5.电阻箱 6.电容箱 7.面包板 8.装有pspice软件的PC一台 三、实验原理 1.回转器是理想回转器的简称。它是一种新型、线性非互易的双端口元件,其电路符号如图所示。其特性表现为它能够将一端口上的电压(或者电流)“回转”成另一端口上的电流(或者电压)。端口变量之间的关系为 I1 = gu2 u1 = -ri2 I2 = gu1 u2 = ri1

式子中,r,g称为回转系数,r称为回转电阻,g称为回转电导。 2.两个负阻抗变换器实现回转器 图中回转电导为: 四、实验要求 先利用pspice软件进行电路仿真,(提示:仿真时做瞬态分析,信号源用Vsin ,做频率分析时,信号源用VAC)然后在实验室完成硬件测试: 1.用运算放大器构成回转器电路(电路构成见实验教材p216图9-24,其中电阻R的标称值为1000Ω),测量回转器的回转电导。 2.回转器的应用——与电容组合构成模拟电感。

3.用电容模拟电感器,组成一个并联谐振电路,并测出谐振频率以及绘制其Uc~f幅频特性曲线。 具体要求: 1.回转器输入端接信号发生器,调得Us=1.5V(有效值),输出端接负载电阻RL=200Ω,分别测出U1、U2及I1,求出回转电导g。 试回答改变负载电阻以及频率的大小对回转电导有何影响? 2.回转器输出端接电容,C分别取0.1μF和0.22μF,用示波器观察频率为500Hz、1000Hz 时U1和I1的相位关系,解释模拟电感是如何实现的。 要求画出测试U1和I1的相位关系的接线图,并用坐标纸分别画出两个不同C值时的U1和I1波形,记录其相位关系。说明模拟电感的实现与频率的大小有何关系。 3.用C1回转后的模拟电感作并联谐振电路,谐振频率f0取1000Hz左右,确定C和C1的大小,信号源输出电压保持Us=1.5V(有效值)不变,改变频率(200Hz~2000Hz)测量Uc的值,同时观察us和uc的相位关系。(要求串联一取样电阻1kΩ) 预习要求: 1.画出设计任务中完整的电路接线图,明确I1的测量方法,建议取样电阻取1kΩ。2.电容不要取大于1μF的电解电容,以免误差大。 报告要求: 1.提交一份电路仿真实验报告。 2.现场整理测试数据和图表,与仿真结果比较,给出比较详细的分析和说明。

传感器检测技术实验报告

《传感器与检测技术》 实验报告 姓名:学号: 院系:仪器科学与工程学院专业:测控技术与仪器实验室:机械楼5楼同组人员: 评定成绩:审阅教师: 传感器第一次实验

实验一 金属箔式应变片——单臂电桥性能实验 一、实验目的 了解金属箔式应变片的应变效应及单臂电桥工作原理和性能。 二、基本原理 电阻丝在外力作用下发生机械形变时,其电阻值发生变化,这就是电阻应变效应。 金属箔式应变片就是通过光刻、腐蚀等工艺制成的应变敏感元件,通过它反映被测部位受力状态的变化。电桥的作用是完成电阻到电压的比例变化,电桥的输出电压反映了相应的受力状态。单臂电桥输出电压 1/4o U EK ε=,其中K 为应变灵敏系数,/L L ε=?为电阻丝长度相对变化。 三、实验器材 主机箱、应变传感器实验模板、托盘、砝码、万用表、导线等。 四、实验步骤 1. 根据接线示意图安装接线。 2. 放大器输出调零。 3. 电桥调零。 4. 应变片单臂电桥实验。

050 100150200 246810x y untitled fit 1y vs. x 由matlab 拟合结果得到,其相关系数为0.9998,拟合度很好,说明输出电压与应变计上的质量是线性关系,且实验结果比较准确。 系统灵敏度 (即直线斜率),非线性误 差= = 五、思考题 单臂电桥工作时,作为桥臂电阻的应变片应选用:(1)正(受拉)应变片;(2)负(受压)应变片;(3)正、负应变片均可以。 答:(1)负(受压)应变片;因为应变片受压,所以应该选则(2)负(受压)应变片。 实验三 金属箔式应变片——全桥性能实验 一、实验目的 了解全桥测量电路的优点

C++程序设计实验报告5

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

仪器分析设计实验实验报告

气相色谱法测定异丙醇 赵宏2011051780 应用化学 一、实验目的 1.了解气相色谱法的分离原理和特点 2.熟悉气相色谱仪的基本构造和一般使用方法 二、实验原理 气相色谱法是一种高效、快速而灵敏的分离分析技术。当样品溶液由进样口注入后立即被汽化,并载气带入色谱柱,经过多分配而得以分离的各个组分逐一出色谱柱进入检测器,检测器把各组分的浓度信号转变成电信号后由记录仪或工作站软件记录下来,得到相应信号大小随时间变化的曲线即色谱图。利用色谱峰的保留值可以进行定性分析,利用峰面积或峰高可以进行定量分析。 内标法是一种常用的色谱定量分析方法。在一定量(m)的样品中加入一定量(m is )的内标物。根据待测组分和内标物的峰面积及内标物的质量计算计算待测组分质量(m i )的方法。被没组分的质量分数可用下式计算: P i = %100%100m m i i ??=?m m A f A is is i 式中,A i 为样品溶液中待测组分的峰面积,A is 为样品溶液中内标物的峰面积;m is 为样品溶液中内标物的质量;m 为样品的质量;f i 为待测组分i 相对于内标物的相对定量因子,由标准溶液计算: f i = is i is i is is i i A A m A A m m m f f is i ''''=''?''='' 式中,i A '为标准溶液中待测组分i 的峰面积;is A '为标准溶液中内标物的峰面积;is m '为标准溶液中内标的质量;i m '为标准溶液中标准物质的质量。 用内标法进行定量分析必须选定内标物。内标物必须满足以下条件: 1.就是样品中不存在的、稳定易得的纯物质; 2.内标峰应在各待测组分之间或与相近; 3.能与样品互溶但无化学反应; 4.内标物浓度应恰当,峰面积与等测组分相差不大。 三、实验仪器 气相色谱仪带有氢火焰检测器(FID )和色谱工作站,微量注射器,无水异丙醇(A.R.)无水正丙醇(A.R.),待测液。 四、实验步骤 根据文献资料、理论计算及实验操作,实验小组得出以下色谱操作的最佳条件: 柱温,104度;汽化室温度,160度;检测器温度,140度;N 2(载气)流速,15 mL/min ;H 2流速,50 mL/min ;空气流速,600 mL/min 。其中内标物为正丙醇。 定量标准溶液的配制:准确移取0.50mL 无水异丙醇和0.50mL 正丙醇于10mL 容量瓶中,用乙醚定容,摇匀。

相关文档
最新文档