当前位置:文档之家› 东北大学编译原理实验3

东北大学编译原理实验3

东北大学编译原理实验3
东北大学编译原理实验3

编译原理程序设计实验报告

——四元式生成班级:计算机1507班姓名:罗艺博学号:20154377

一、实验目标:

利用上次实验所编写的语法分析器,完成算术表达式四元式翻译器的设计。

二、实验内容:

1.概要设计:

2.流程图

主程序Z

子程序E

子程序T

子程序F 3.关键函数

//主程序

int ParserPlus()

{

is = 0; //初始化

flag = 0;

qt = qToken.front(); //Next(w)

qreal = qTreal.front();

SubE();

if(qt==50&&flag==0)

{

cout << "语法正确!" << endl;

cout << endl;

cout << "生成的四元式如下:" << endl;

}

else if(flag != 0)

return 1;

else

{

flag = 1;

cout << "语法错误(err 1)!" << endl;

return flag;

}

//cout<<"myQT.size="<

for(int k=0;k

myQT[k].printQT();

}

return 0;

}

//子程序E

int SubE()

{

SubT();

while(qt==60||qt==61)

{

if(qt == 60) //GEQ(+)

{

Nextword();

SubT();

char c = '+';

GEQ(c);

}

else if(qt == 61) //GEQ(-)

{

Nextword();

SubT();

char c = '-';

GEQ(c);

}

}

return 0;

}

//子程序T

int SubT()

{

SubF();

while(qt==70||qt==71)

{

if(qt == 70) //GEQ(*)

{

Nextword();

SubF();

char c = '*';

GEQ(c);

}

else if(qt == 71) //GEQ(/)

{

Nextword();

SubF();

char c = '/';

GEQ(c);

}

}

return 0;

}

//子程序F

int SubF()

{

qtw = qt/10;

if(qtw==1||qtw==2) //为i的情况下

{

sem.push(qt);

qsem.push(qreal);

Nextword();

}

else if(qtw == 3) //为(的情况下

{

Nextword();

//cout<

SubE();

qtw = qt/10; //若无qtw仍为3

//cout<

//cout<

if(qtw == 4) //若为)

{

Nextword();

}

else

{

flag = 3;

cout << "语法错误(err 3)!" << endl;

return flag;

}

}

else

{

flag = 2;

cout << "语法错误(err 2)!" << endl;

return flag;

}

return 0;

}

//创建临时变量

int Newtemp()

{

int i = 0;

for(i=0; i<100; i++)

{

if(used[i] == 0)

{

used[i] = i+1;

return i; //返回t编号i

}

}

}

//生成四元式

void GEQ(char c)

{

string el2 = qsem.top();

qsem.pop();

sem.pop();

string el1 = qsem.top();

qsem.pop();

sem.pop();

int tt = Newtemp();

sem.push(10);

string treal = "t";

treal += to_string(tt);

qsem.push(treal);

Send(c, el1, el2, treal);

}

//将四元式作为类对象储存

void Send(char s, string e1, string e2,string t) {

myQT.push_back(QT(s,e1,e2,t));

}

源程序代码:(加入注释)

int ParserPlus() //主程序

{

is = 0; //初始化

flag = 0;

qt = qToken.front(); //Next(w)

qreal = qTreal.front();

SubE();

if(qt==50&&flag==0)

{

cout << "语法正确!" << endl;

cout << endl;

cout << "生成的四元式如下:" << endl;

}

else if(flag != 0)

return 1;

else

{

flag = 1;

cout << "语法错误(err 1)!" << endl;

return flag;

}

//cout<<"myQT.size="<

for(int k=0;k

myQT[k].printQT();

}

return 0;

}

int SubE() //子程序E

{

SubT();

while(qt==60||qt==61)

{

if(qt == 60) //GEQ(+)

{

Nextword();

SubT();

char c = '+';

GEQ(c);

}

else if(qt == 61) //GEQ(-)

{

Nextword();

SubT();

char c = '-';

GEQ(c);

}

}

return 0;

}

int SubT() //子程序T

{

SubF();

while(qt==70||qt==71)

{

if(qt == 70) //GEQ(*)

{

Nextword();

SubF();

char c = '*';

GEQ(c);

}

else if(qt == 71) //GEQ(/)

{

Nextword();

SubF();

char c = '/';

GEQ(c);

}

}

return 0;

}

int SubF() //子程序F

{

qtw = qt/10;

if(qtw==1||qtw==2) //为i的情况下

{

sem.push(qt);

qsem.push(qreal);

Nextword();

}

else if(qtw == 3) //为(的情况下

{

Nextword();

//cout<

SubE();

qtw = qt/10; //若无qtw仍为3

//cout<

//cout<

if(qtw == 4) //若为)

{

Nextword();

}

else

{

flag = 3;

cout << "语法错误(err 3)!" << endl;

return flag;

}

}

else

{

flag = 2;

cout << "语法错误(err 2)!" << endl;

return flag;

}

return 0;

}

void Nextword() //NEXT(w)

{

qToken.pop();

qt = qToken.front();

qTreal.pop();

//cout<<"!!!"<

qreal = qTreal.front();

}

#include

#include

#include

#include

#include

#include

using namespace std;

char ch; //当前字符

int is; //处理到当前字符串第几个

int it; //token串第几个

char str[100]; //输入字符串

char token[5]; //用于生成token

int state; //词法分析此状态

int statebefore; //词法分析前状态

int code;

int code1;

int code2;

int qt; //语法分析存放当前token(word) string qreal; //四元式用

int qtw; //判断qt属于哪种字符

int flag; //用于存放语法错误原因

int lexer; //存放Lexer函数的返回值

int parser; //存放Parser函数的返回值int used[50] = {0}; //存放临时变量

char *PT0[2] = {"+", "-"};

char *PT1[2] = {"*", "/"};

char *PT2[1] = {"("};

char *PT3[1] = {")"};

char *PT4[1] = {"#"};

queue qToken;

queue qTreal; //四元式用存放真正的字符stack sem; //语义栈

stack qsem; //四元式用存放真正的字符

int IsAlpha(char c); //判断是否为字母

int IsNum(char c); //判断是否为数字

int IsPT0(char c); //判断是否为‘+’,‘-’

int IsPT1(char c); //判断是否为‘*’,‘/’

int state_change(int sta, char c);

int state_to_code(int stabe, char* tok);

void Nextword(); //NEXT(w)

void GEQ(char c); //生成四元式

void Send(char s, string e1, string e2,string t); //存四元式int SubE(); //子程序E

int SubT(); //子程序T

int SubF(); //子程序F

int Lexer(); //词法分析器

int ParserPlus(); //语法分析器改进版

class QT

public :

QT(char s, string e1, string e2, string t):symbol(s),element1(e1),element2(e2),ttemporary(t){} //设置四元式~QT(){}

void printQT() //打印四元式

{

cout<<"( "<

}

private:

char symbol; //符号变量1 变量2 临时变量

string element1;

string element2;

string ttemporary;

};

vector myQT; //将类对象放入向量,便于储存和最后的输出

int main()

{

cout << "请输入算术表达式,以‘#’号结束。" << endl;

cin >> str;

lexer = Lexer();

//cout<<"!"<

//cout<<"~"<

//cout << lexer <

if(lexer == 0)

{

cout << endl;

cout << "语法分析如下:" << endl;

parser = ParserPlus();

}

return 0;

}

//词法分析部分

int Lexer()

{

is = 0;

it = 0;

state = 1;

东南大学编译原理试题

东南大学一九九三年攻读硕士学位研究生入学考试试题 试题编号:553 试题名称:编译原理 一:(15分)判断下列命题的真假,并简述理由: 1.文法G的一个句子对应于多个推导,则G是二义的. 2.LL(1)分析必须对原有文法提取左因子和消除左递归. 3.算符优先分析法采用"移近-归约"技术,其归约过程是规范的. 4.文法S→aA;A→Ab;A→b是LR(0)文法(S为文法的开始符号). 5.一个BASIC解释程序和编译程序的不同在于,解释程序由语法制导翻译成目标代码并立即执行之,而编译程序需产生中间代码及优化. 二:(15分)设计一个最小状态有穷自动机,识别由下列子串组成的任意字符串. GO,GOTO,TOO,ON 例如:GOTOONGOTOOGOON是合法字符串. 三:(15分)构造一个LL(1)文法G,识别语言L: L={ω|ω为{0,1}上不包括两个相邻的1的非空串} 并证明你的结论. 四:(20分)设有一台单累加器计算机,并汇编语言含有通常的汇编指令LOAD,STORE,ADD和MUL. 1.写一个递归下降分析程序,将如下文法所定义的赋值语句翻译成汇编语言: A→i:=E E→E+E|E*E|(E)|i 2.利用加,乘法满足交换率这一性质,改进你的分析程序,以期产生比较高效的目标代码. 五:(15分)C为大家熟知的程序语言. 1.C的参数传递采用传值的方式,而且允许函数定义和调用时的参数个数不一致(如printf).请指出其函数调用语句: f(arg1,arg2,...,argn) 翻译成的中间代码序列,并简述其含义. 2.C语言中的变量具有不同的作用范围,试述C应采用的存储分配策略. 六:(20分)设有一个子程序的四元式序列为: (1) I:=1 (2) if I>20 GOTO (16) (3) T1:=2*J (4) T2:=20*I (5) T3:=T1+T2 (6) T4:=addr(A)-22 (7) T5:=2*I (8) T6:=T5*20 (9) T7:=2*J (10) T8:=T6+T7 (11) T9:=addr(A)-22 (12) T10:=T9[T8] (13) T4[T3]:=T10+J

电工学+A卷+殷洪义标准答案

东北大学继续教育学院 电工学试卷(作业考核线上2) A 卷(共 4 页) 总分题号一二三四五六七八九十得分 1 选择题( 25分):请把选中的题号填入括号中。(每小题5分) ((1) 两个极性相同电压源串联一个电压为15V,另一个电压为25V,其等效电路为( B )。 A 电压源10V B 电压源40V C 其它 (2) 两个流向相反电流源并联,一个电流为2A,另一个电流为3A,其等等效电路为( A )。 A 电流源1A B 电流源5A C 其它 (3) 一阶RC电路中,R=100,C=10F。电路的时间常数为( A )秒 A 1mS B 1S C 其它 (4) 整流二极管加正向电压,起( B ) 作用。 A 稳定电压 B 导通电流 C 其它 (5) 本征半导体入五价元素后成为( A ) 型半导体。 A N型半导体 B P型半导体 C 其它 2 判断题(25分):判断论述是正确(Y) 还是错误(N) ,并填入括号中。(每小题5分) (6) 叠加定理不适用于线性电路。( N ) (7) 戴维南等效电路是由电流源和电阻并联族构成的。( N ) (8) 一阶电路的时间常数越大,完成过渡过程所需要的时间就越长。( Y ) (9) 熔断器是一种当电设备发生短路故障时能自动切断电路的短路保护电器。( Y ) (10) 晶体管进入截止区工作,造成截止失真。适当增加基极电流可消除截止失真。( Y ) 3 问答题( 50分):要过程。(每小题10分) (11) 求图中的电流I 。

(12) 图中u1=) 2 10t V,求u2 。 sin( 1000 解: u2=10Sin(1000t-450)V (13) 求图中的电流i L。 解:

东北大学C++实验报告6

东北大学C++实验报告6 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

实验六 1.实验要求 (1)定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。 (2)定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。 2. 实验内容及实验步骤 (1) 编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point& operator++();Point operator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point&operator--();Point operator--(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。程序名:1ab8_1.cpp。 (2) 编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:lab8_2.cpp。 3. 源程序 Lab8_1 #include using namespace std; class Point{ public: Point(int X,int Y): _x(X),_y(Y){} Point operator++(); Point operator++(int); Point operator--(); Point operator--(int); void Putout() const; private:

数据库原理实验报告

数据库原理 实验报告 系别电子信息系 专业计算机科学与技术班级学号4080522 姓名龚敏 指导教师李爱英

一.概要设计 1.教学数据库各表的关系模式:(加下线的属性为主键) 学生 (学号,姓名,性别, 出生日期,所在系) 英文缩写对照:student(s_no,s_name,s_sex,s_age,s_birthday,s_department) 课程 (课程号,课程名,学分) 英文缩写对照:course(c_no,c_name,c_score) 教师 (职工号,姓名,性别,职称) 英文缩写对照:teacher(t_no,t_name,t_sex,t_duty) 选课 (学号,课程号,成绩) 英文缩写对照:choice(s_no,c_no,score) 讲授 (职工号,课程号) 英文缩写对照:teaching(t_no,c_no) 2.教学数据库E-R 图: 实体:课程,学生,选课 联系:选课(学生同课程之间多对多的联系m:n),讲授(教师同课程之间多对多的联系m:n)。 二.逻辑设计 代码: use master go create database stu go use stu go n m m n 课程 教师 讲授 选课 学号 姓名 性别 出生日期 成绩 职工号 姓名 性别 职称 学分 课程号 课程名 学生

create table student (s_no char(8) not null primary key, s_name char(8) not null , s_sex varchar(8) not null, s_birthday smalldatetime not null, s_department varchar(13) not null) drop table student use stu go create table teacher (t_no char(8) not null primary key, t_name char(8) not null, t_sex varchar(8) not null, t_duty char(8) not null) create table course (c_no char(8) not null primary key, c_name char(8) not null, c_score varchar not null) create table choice( s_no char(8) not null primary key, c_no char(8) not null primary key, score varchar not null) create table teaching( t_no char(8) not null primary key, c_no char(8) not null primary key) insert student values('101','袁敏','女','1982-2-3','机电') insert student values('102','李志强','男','1983-4-5','计算机') insert student values('103','张亮','男','1984-10-9','建筑') insert student values('104','李平','女','1984-5-6','计算机') insert student values('105','王丽','女','1983-2-1','机电') insert student values('106','刘明耀','男','1982-4-16','计算机') select* from student insert course values('1011','C语言','6') insert course values('1012','数据结构','4') insert course values('1013','微机原理','6') insert course values('1014','数字电路','5') insert course values('1015','高等数学','6') select* from course insert teacher values('0511','张大维','男','副教授') insert teacher values('0512','林楠','女','讲师') insert teacher values('0513','韩晓颖','女','副教授') insert teacher values('0514','李辉','男','讲师') insert teacher values('0515','孙丽','女','助教') select* from teacher insert choice values('101','1011','82.5') insert choice values('101','1012','79') insert choice values('102','1012','92.5') insert choice

东南大学信号与系统试题含答案

东 南 大 学 考 试 卷(A 、B 卷) (答案附后) 课程名称 信号与线性系统 考试学期 03-04-3 得分 适用专业 四系,十一系 考试形式 闭卷 考试时间长度 120分钟 一、简单计算题(每题8分): 1、 已知某连续信号()f t 的傅里叶变换为 21 ()23F j j ωωω= -+,按照取 样间隔1T =对其进行取样得到离散时间序列()f k ,序列()f k 的Z 变换。 2、 求序列{} 10()1,2,1 k f k ==和2()1cos ()2f k k k πε????=+ ???????的卷积和。 3、 已知某双边序列的Z 变换为 21 ()1092F z z z = ++,求该序列的时域表 达式()f k 。

4、 已知某连续系统的特征多项式为: 269111063)(234567+++++++=s s s s s s s s D 试判断该系统的稳定情况,并指出系统含有负实部、零实部和正实部的根各有几个? 5、 已知某连续时间系统的系统函数为: 323 2642 ()21s s s H s s s s +++=+++。试给出该系统的状态方程。 6、 求出下面框图所示离散时间系统的系统函数。 ) (k

二、(12分)已知系统框图如图(a ),输入信号e(t)的时域波形如图(b ),子系统h(t)的冲激响应波形如图(c)所示,信号()f t 的频谱为 ()jn n F j e πω ω+∞ =-∞ = ∑ 。 图(a) y(t) ) (t f e(t)图(b) h(t)图(c) 试:1) 分别画出)(t f 的频谱图和时域波形; 2) 求输出响应y(t)并画出时域波形。 3) 子系统h(t)是否是物理可实现的?为什么?请叙述理由;

软件工程专业介绍范文

软件工程专业介绍范文 软件工程学的定义 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。IEEE:软件工程是开发、运行、维护和修复软件的系统方法。FritzBauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 编辑本段软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理。软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。 专业简介 是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策。本专业培养掌握计算机软件基本理论知识,熟悉软件开发和管理技术、能够在计算机软件领域中从事软件设计、开发和管理的高级人才。

主修课程 该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。 毕业去向 除考取国内外名牌大学研究生外,主要毕业去向是计算机软件专业公司﹑信息咨询公司﹑以及金融等其它独资、合资企业。 培养目标 本专业培养适应社会发展需求,德、智、体、美全面发展,具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具有较强的实践能力和创新精神,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按照工程化的原则和方法从事软件项目开发和管理的应用型人才。 就业方向

电工电子技术及应用(B)带答案

东北大学继续教育学院 电工电子技术及应用试卷(作业考核线下) B 卷(共 4 页)总分题号一二三四五六七八九十得分 1 选择题( 25分):请把选中的题号填入括号中。(每小题5分) (1) 两个极性相反电压源串联一个电压为15V,另一个电压为25V,其等效电路为( A )。 A 电压源10V B 电压源40V C 其它 (2) 两个流向相同电流源并联,一个电流为2A,另一个电流为3A,其等等效电路为( B )。 A 电流源1A B 电流源5A C 其它 (3) 一阶RC电路中,R=10K,C=10F。电路的时间常数为( B )秒 A 10S B 0.1S C 其它 (4) 稳压二极管加一定的反向电压,被击穿后会能起( A ) 作用。 A 稳定电压 B 稳定电流 C 其它 (5) 本征半导体入三价元素后成为( B ) 型半导体。 A N型半导体 B P型半导体 C 其它 2 判断题(25分):判断论述是正确(Y) 还是错误(N) ,并填入括号中。(每小题5分) (6) 叠加定理仅适用于线性电路。( Y ) (7) 诺顿等效电路是由电流源和电阻并联族构成的。( Y )

(8) 一阶电路的时间常数越大,完成过渡过程所需要的时间就越短。( N ) (9) 接触器是一种当电设备发生短路故障时能自动切断电路的短路保护电器。( N ) (10) 晶体管进入截止区工作,造成截止失真。适当增加基极电流可消除截止失真。( Y ) 3 问答题( 50分):请把具体回答写入各题“答:”的后面。(每小题10分) (11) 求图中的电流I的值。 答:3A+9A- I=0 I=12A (12) 求图中的U=10伏,R=30欧。求电阻电压U1有效值。

东北大学操作系统第一次实验报告

实验1:熟悉Linux系统 一、题目:熟悉Linux系统 二、目的: 熟悉和掌握Linux系统基本命令,熟悉Linux编程环境,为以后的实验打下基础。 1、启动、退出、ls(显示目录内容)、cp(文件或目录的复制)、mv(文件、目录更名或移动)、rm(删除文件或目录)、mkdir(创建目录)、rmdir(删除空目录)、cd(改变工作目录)… 2、C语言编辑、编译 三、内容及要求: 1、熟练掌握Linux基本文件命令; 2、掌握Linux编辑程序、对源代码进行编译、连接、运行及调试的过程; 3、认真做好预习,书写预习报告; 4、实验完成后要认真总结、完成实验报告。 四、内容及要求: 在Linux环境下编制、调试源程序的实际过程(每一步的具体说明)。 实验2:进程状态 一、题目:进程状态

二、目的: 自行编制模拟程序,通过形象化的状态显示,使学生理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一一对应关系。 三、内容及要求 1、设计并实现一个模拟进程状态转换及其相应PCB组织结构变化的程序; 2、独立设计、编写、调试程序; 3、程序界面应能反映出在模拟条件下,进程之间状态转换及其对应的PCB 组织的变化。 4、进程的状态模型(三状态、五状态、七状态或其它)可自行选择, 5、代码书写要规范,要适当地加入注释; 6、鼓励在实验中加入新的观点或想法,并加以实现; 7、认真进行预习,完成预习报告; 8、实验完成后,要认真总结,完成实验报告。 四、程序流程图

图4.1 进程转换流程五、使用的数据结构及其说明 struct PCB //进程控制块PCB { char name; //名字标识 string state; //状态 int time; //执行时间 }; typedefstruct PCB ElemType; structQNode { ElemType data; structQNode *next; }; //链式队列结点 typedefstructQNodeQNode; //结点 typedefstructQNode *PNode; typedefstruct { PNodefrnt; PNode rear;

东北大学数据库实验报告

课程编号:B080109004 数据库应用程序设计实践 报告 东北大学软件学院

1.关系数据库 设计以下三个表: 客户信息表: ?客户号(主码) NUMBER(4) ?客户姓名V ARCHAR2(20) ?客户类型V ARCHAR2(20) ?地址VARCHAR2(20) ?余额NUMBER(7,2) 计费设备表 ?计费设备号(主码) NUMBER(4) ?客户号(外码)NUMBER(4) ?设备类别(01,02)Characters(1) 应收费用表 ?年月Date ?计费设备号(外码)NUMBER(4) ?基本费用NUMBER(7,2) ?附加费用1 NUMBER(7,2) ?附加费用2 NUMBER(7,2) ?应收违约金NUMBER(7,2) ?实收违约金NUMBER(7,2) ?减免违约金NUMBER(7,2) ?收费标志(0未交费,1已交费)Characters(1) 第一部分: 1.指出你所设计表的各种键值,在选择时不要考虑性能问题。 1)指出每张表是否存在主码,若存在,请指出具体的主码,并说明原因。 CLIENT主码:CLIENTNO DEVICE主码:DEVICENO MONTHLYNEDDPAY主码:ID 这些能够作为主码的字段的数据都是唯一的,因此能够进行唯一性标识,能够作为主码来使 用。 2)指出每张表是否存在备用码(除了主码之外的所有候选码),若存在,请指出所有的备用码, 并说明原因。 Client和Device表不存在候选码, Montthlyneedpay 中的DeviceNo和logdate 可以作为一个候选码。 3)指出各表中存在的外码和完整性约束,并说明原因。 Client表中没有外码,但是clientno不能为空,因为它是主码。

东北大学学生必读手册

zt:东北大学学生必读手册(2007-03-08 22:50:37)转载分类:他山石 号外:发现一篇东大宝典《东北大学学生必读手册》!读来正是大块人心,佩服写这个宝典的东大校友了,这比东大官方版的学生必读手册通俗易懂、总结全面,建议以此替换掉官方版的必读手册.......下面是全文摘录,是东大的都来通读一遍啊.... 东北大学学生必读手册 学习篇 1. 注意,馆里面有偷东西的(真为东大丢人),他们喜欢在中午11:30-13:00,晚上4:30-5:30出没(这个时间段大家都去吃饭了,馆里人少),目的在于窃取那些出去吃饭人的书包。所以当自习室人少或者较长时间离开时,书包等个人物品随身带走。 2. 上自习要早点去,不然很容易找不到座位的,一般采矿馆、机电馆、教学馆、逸夫楼的人比较多哦,冶金馆的人少(传说闹鬼)。 3. 不要拿个书、坐垫一类的占座,很烦人的,尤其是占着座还不去的,纯占着茅楼不拉屎,还容易丢失。 4. 尽量去上每一节课,毕竟花那么多学费是用来买这些课程的,而且学点东西没有什么不好,最起码的关系到你期末是不是可以及格的问题。 5. 考试前一个月一定要上自习,不然有挂科的危险。 6. 英语和计算机作为工具还是要好好学习的,争取拿个证什么的,一方面有目标可以学习东西,另一方面为将来工作做准备。 7. 考试前一个星期,你基本上会面临着没有地方上自习的情况,所以,一定要早早的去,一般情况下7点30之前还是能找到空座的。 8. 一定要多去图书馆,会有意外的收获。 9. 不要浪费电子资源,我校图书馆提供的电子文献,还是非常不错的。 10. 考试挂科了可以补,不要因为挂几科就想不开,寻短见,怨天尤人,人生的路还长着呢,努力学习把挂的课补过去才是正确的做法。 11. 图书馆夏天凉快,而且累了还可以上网。 12. 考试前突击2星期大多可以过,除数学,物理,运筹学,编译原理等理论性强的科目。 13. 考试之前一定要搞到以前该科目的试卷,弄懂上面的题目就可以顺利通过考试了,一不小心还可能考个优秀什么的。图书馆一楼的复印室有卖。 吃饭篇 1. 各位如果厌烦了平时的饭菜,我建议到西门的菜市场弄一下新鲜蔬菜(尤其是小葱沾酱)吃,美味啊! 2. 餐饮中心基本上是不刷盘子的,盘子刷的较干净的是一食堂。但是注意有时一食堂的餐盘由于刚刚消毒过,很烫手,当心啊。 3. 西门超市的食堂,油烟很重,会弄一身味道的。尤其是冬天。 4. 去食堂打饭一定要排队,否则遭受鄙视,切记。 5. 饭卡应该设置最大消费额度,比如15元,这样可以避免丢失饭卡时被人家把钱花光。免费办理在二食堂那个管饭卡挂失的地方。实在不行,还可以给饭卡加密码,就是用起来比较麻烦,但是那样就不怕丢失被人乱划了。

东北大学c++实验报告

实验六 1?实验要求 (1)定义Point类,有坐标_x, _y两个成员变量;对Point类重载牛+ ”(自增)、“一-(自减)运算符,实现对坐标值的改变。 (2)定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。 2.实验容及实验步骤 (1)编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point& operato叶+() ; Point operato叶+(int);以实现对Point 类重载++ ”(自增)运算符,定义成员函数Point& operator ------------------------------ ();Point operator -------- (int);以实现对Point类重载(自减)运算符,实现对坐标值的改变。程序名:1ab8_1. cpp。 ⑵编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派 生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle 的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:lab8_2. cpp。 3.源程序 Lab8 1 #in clude using n amespace std;

东南大学编译原理词法分析器实验报告

词法分析设计 1. 实验目的 通过本实验的编程实践,了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。 2. 实验内容 用C++语言实现对C++语言子集的源程序进行词法分析。通过输入源程序从左到右对字符串进行扫描和分解,依次输出各个单词的内部编码及单词符号自身值;若遇到错误则显示“Error”,然后跳过错误部分继续显示;同时进行标识符登记符号表的管理。 3. 实验原理 本次实验采用NFA->DFA->DFA0的过程: 对待分析的简单的词法(关键词/id/num/运算符/空白符等)先分别建立自己的FA,然后将他们用产生式连接起来并设置一个唯一的开始符,终结符不合并。 待分析的简单的词法 (1)关键字: "asm","auto","bool","break","case","catch","char","class","

const","const_cast"等 (2)界符(查表) ";",",","(",")","[","]","{","}" (3)运算符 "*","/","%","+","-","<<","=",">>","&","^","|","++","--"," +=","-=","*=","/=","%=","&=","^=","|=" relop: (4)其他单词是标识符(ID)和整型常数(SUM),通过正规式定义。 id/keywords: digit: (5)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。

东北大学图像处理实验报告

计算机图像处理实验报告 哈哈哈哈哈哈实验台31 1.应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及 彩色图像的程序,并进行相互之间的转换 1)彩色图像转换为灰度图像、索引图像、二值图像 A=imread('F:\colorful.jpg'); subplot(221);imshow(A);title('彩色图像'); I1=rgb2gray(A); subplot(222);imshow(I1);title('灰度图像'); [X1,map]=rgb2ind(A,256); subplot(223);imshow(X1);title('索引图像'); BW=im2bw(A); subplot(224);imshow(BW);title('二值图像'); 彩色图像灰度图像 索引图像二值图像

2)灰度图像转换为索引图像、二值图像 clear A=imread('F:\colorful.jpg'); B=rgb2gray(A); subplot(131);imshow(B);title('灰度图像'); [X2,map]=gray2ind(B,128); subplot(132);imshow(X2);title('索引图像'); BW2=im2bw(B); subplot(133);imshow(BW2);title('二值图像'); 灰度图像索引图像二值图像 3)索引图像转为灰度图像、二值图像、彩色图像 clear A=imread('F:\colorful.jpg'); [X,map]=rgb2ind(A,256); subplot(221);imshow(X);title('索引图像'); I3=ind2gray(X,map); subplot(222);imshow(I3);title('灰度图像'); BW3=im2bw(X,map,0.5); subplot(223);imshow(BW3);title('二值图像'); RGB=ind2rgb(X,map); subplot(24);imshow(RGB);title('还原彩色图像'); 索引图像灰度图像 二值图像还原彩色图像

东北大学数据库实验报告2016

实验(一): 熟练掌握SQL语言 实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。 实验内容:具体包括如下三部分。 一、熟悉上机环境。 客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。具体包括: 1.了解SQL Server 环境。鼠标点击开始,进入“Microsoft SQL Server→企 业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。 2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名 和口令,进入SQL查询分析器。如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。 3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。 二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有 关查询。 1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的 关系模式 2.在数据库中定义这些关系模式,并向基本表中插入如下数据: CREATE table Students (Sno char(10) primary key, Sname char(20), Sage int,

东北大学C++实验报告6

实验六 1.实验要求 (1)定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。 (2)定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。 2. 实验内容及实验步骤 (1) 编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point& operator++();Point operator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point&operator--();Point operator--(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。程序名:1ab8_1.cpp。 (2) 编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:lab8_2.cpp。 3. 源程序 Lab8_1 #include using namespace std; class Point{ public: Point(int X,int Y): _x(X),_y(Y){} Point operator++(); Point operator++(int); Point operator--(); Point operator--(int); void Putout() const; private: int _x,_y; };

电气工程及其自动化考研总况

电气工程及其自动化考 研总况 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

电气工程及其自动化考研总况 一、全国电气工程及其自动化专业学校排名 1.清华大学 2.西安交通大学 3.华中科技大学 4.浙江大学 5.重庆大学 6.天津大学 7.哈尔滨工业大学 8.上海交通大学 9.华北电力大学10.东南大学11.西南交通大学12.沈阳工业大学13.中国矿业大学14.华南理工大学15.南京航空航天大学16.北京交通大学17.武汉大学18.哈尔滨理工大学19.四川大学20.河海大学21.哈尔滨工程大学22.郑州大学23.广西大学24.陕西科技大学 二,电气工程与自动化专业 (1)业务培养目标: 业务培养目标:本专业培养在工业与电气工程有关的运动控制、工业过程控制、电气工程、电力电子技术、检测与自动化仪表、电子与计算机技术等领域从事工程设计、系统分析、系统运行、研制开发、经济管理等方面的高级工程技术人才。 业务培养要求:本专业学生主要学习电工技术、电子技术、自动控制理论、信息处理、计算机技术与应用等较宽广领域的工程技术基础和一定的专业知识。学生受到电工电子、信息控制及计算机技术方面的基本训练,具有工业过程控制与分析,解决强弱电并举的宽口径专业的技术问题的能力。

(2)主干课程: 主干学科:电气工程、控制科学与工程、计算机科学与技术 主要课程:电路原理、电子技术基础、计算机原理及应用、计算机软件基础、控制理论、电机与拖动、电力电子技术、信号分析与处理、电力拖动控制系统、工业过程控制与自动化仪表等。高年级可根据社会需要设置柔性的专业方向模块课及选修课。 主要实践性教学环节:包括电路与电子基础实验、电子工艺实习、金工实习、专业综合实验、计算机上机实践、课程设计、生产实习、毕业设计。 主要实验:运动控制实验、自动控制实验、计算机控制实验、检测仪表实验、电力电子实验等 (3)修业年限: 四年 (4)授予学位: 工学学士 (5)相近专业: 微电子学自动化电子信息工程通信工程计算机科学与技术电子科学与技术生物医学工程电气工程与自动化信息工程信息科学技术软件工程

东北大学编译原理实验3

编译原理程序设计实验报告 ——四元式生成班级:计算机1507班姓名:罗艺博学号:20154377 一、实验目标: 利用上次实验所编写的语法分析器,完成算术表达式四元式翻译器的设计。 二、实验内容: 1.概要设计: 2.流程图

主程序Z 子程序E

子程序T 子程序F 3.关键函数

//主程序 int ParserPlus() { is = 0; //初始化 flag = 0; qt = qToken.front(); //Next(w) qreal = qTreal.front(); SubE(); if(qt==50&&flag==0) { cout << "语法正确!" << endl; cout << endl; cout << "生成的四元式如下:" << endl; } else if(flag != 0) return 1; else { flag = 1; cout << "语法错误(err 1)!" << endl; return flag; }

//cout<<"myQT.size="<

东北大学电气工程学科

电气工程 学科专业介绍 东北大学信息科学与工程学院二O一一年五月

本专业历史与发展历程 1875年法国巴黎火车站建成世界上最早的一座火力发电厂,1882年爱迪生建立商业化电厂和直流电力网能发660kw电力,1876-1878年俄国人亚布洛切科夫成功试验了单相交流输电技术。1880年前后英国费朗蒂改进了改进了交流发电机,并力主采用交流输电。1882年法国人高兰德和英国人约翰。吉布斯成功研制了第一台实用变压器,使得交流输电,变压变得得心应手,1885年英国工程师菲尔安基设计的第一座交流单相发电站建成发电发电功率1000kw,电压2500v升压后10kv传输,最后用户供电电压为100v,交流和直流输电在历史上有过很大的争议,但是最终交流输电走上了历史的舞台。 电气工程及其自动化专业是电气信息领域的一门新兴学科,但由于和人们的日常生活以及工业生产密切相关,发展非常迅速,现在也相对比较成熟。已经

成为高新技术产业的重要组成部分,广泛应用于工业、农业、国防等领域,在国民经济中发挥着越来越重要的作用。 电力网理论和控制理论是电气工程及自动化专业的基础,电力电子技术、计算机技术则为其主要技术手段,同时也包含了系统分析、系统设计、系统开发以及系统管理与决策等研究领域。该专业还有一些特点,就是强弱电结合、电工电子技术相结合、软件与硬件相结合,具有交叉学科的性质,电力、电子、控制、计算机多学科综合,使毕业生具有较强的适应能力,是“宽口径”专业。 我国许多大学设立了本专业,主要实践性教学环节包括电路与电子技术实验、电气工艺实习、金工实习课程设计、生产实习、毕业设计,并为国家培养了许多的这方面人才。他们已成为本行业的专家学者,分布在我国许多省、市,成为骨干力量。“文革”期间,由于受政治的影响,全国的高等院校相继停止招生,本专业受到了很大的影响,先是老师被批斗,后来学校根本办不下去了,只能停止招生。但是,即便如此,许多老师并没有停止研究。他们知道电气工程及自动化对我国的现代化建设起重要的作用,然而,在这一时期,并没有放弃对专业的研究和探索。 来,许多大学设立了本专业,并陆续招生,每年为国家培养大量的高级复合型人才,包括学士、博士等高级知识分子,特别是目前,各专业扩招,本专业的招生量也在上升。虽然我国在这方面的发展还没有站在世界的最前沿,但随着我国综合国力的提高,对外交往的增加,我们已经逐渐缩小与发达国家的差距。具有代表性的是:每秒3000亿次计算机研制成功;纳米技术的掌握;模拟技术的应用。一个不容忽视的问题摆在我们面前:如何迎接新技术革命的挑战?经过本专业的老师和同学的共同努力,设有“电机与电器”、“电力系统及其自动化”、“电力电子与电力传动”、“高电压与绝缘技术” 和“电工理论与新技术”博士学位(二级学科)方向。并以工业产品设计为基础,应用计算机造型、设计、实现工业产品的结构、性能、加工、外形等的设计和优化。该专业培养适应社会急需的,既有扎实科学技术基础又有艺术创新能力的高级复合型技术人才。囊括了电路原理、电子技术基础、电机学、电力电子技术、电力拖动与控制技术、计算机技术(语言、软件基础、硬件基础、单片机等)、信号与系统、控制理论等课程。高年级还根据社会需要学习柔性的、适应性强、覆盖面宽的专业课及专业选修课。同时也进

东北大学DSP实验

.title "io" ;title伪指令。双引号括起来的源程序名。伪指令小写。 .global _c_int00 ;global伪指令,将变量_c_int00说明为外部符号。 ;外部符号:在一个模块中定义而在另一模块中引用的符号称为外部符号。 .mmregs ;将TMS320各寄存器名定义为全局符号,这样就可以直接引用寄存器(符号)。 ;mmregs 定义存储器映射寄存器的符号名称。 FG_ADDR .set 1002H ;set伪指令。将一个值分配给一个符号。1002HI/O口地址定义。 DA TA .set 60h ;double ram data .sect ".vectors" ;sect定义初始化命名段。段名必须用双引号括起,建立包含代码和数据的自定义断。 ;".vectors"定义向量表,紧跟其后的是复位向量和中断向量。 reset: B _c_int00 ; B 无条件跳转指令。将变量_c_int00说明为外部变量,程序入口地址1000。 NOP ;空指令。等待一个机器周期。 NOP .space 31*4*16 ;space 伪指令。在当前段内保留一个指定数目的位数,并用0填充, 保留31*4个字单元。 DELAY .macro sec_tenth ;macro 宏指令开始。DELAY宏名。sec_tenth形式参数。延时sec_tenth/10 秒 STM sec_tenth-1,AR5 ;STM存储指令。AR0~AR7 寄存器辅助。 loop1? STM #09h,AR6 loop0? STM #19999,AR7 ;STM存储指令。AR0~AR7 辅助寄存器。 BANZ $,*AR7- BANZ loop0?,*AR6- ;AR6-不为0时转移。 BANZ loop1?,*AR5- .endm ;Endm 宏指令结束。 .text ;text 段是源程序正文。经汇编后,紧跟.text 后的是可执行程序代码。 _c_int00: ; LD #0h,DP ;LD装入指令。设置数据页指针,DP=0H,则数据存储器地址为0000H~007FH。 STM #3000h,SP ;STM存储指令。把累加器的低端存放到存储器映射寄存器中。SP设置堆栈指针 RSBX INTM ;RSBX清除指令。INTM中断方式位=0,允许可屏蔽中断。INTM中断方式位=1,禁止可屏蔽中断。 STM #07FFFh,SWWSR ;SWWSR可编程软件等待状态寄存器。作用:高速内存与

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