当前位置:文档之家› 2015春2014级面向对象程序设计实验指导书 (1)

2015春2014级面向对象程序设计实验指导书 (1)

2015春2014级面向对象程序设计实验指导书 (1)
2015春2014级面向对象程序设计实验指导书 (1)

《面向对象程序设计》

实验指导书

适用专业:计算机科学与技术

软件工程

网络工程

编写者:面向对象程序设计课程组

2015年3月

一、基本目的

面向对象程序设计是计算机学科的核心课程之一,C++语言程序设计是当前自20世纪80年代以来迅速推广和广泛使用的一种程序设计语言。

通过本课程实验,使学生掌握基本的面向对象的程序设计方法,熟练类与对象、继承与派生、多态性、模板、异常处理机制以及I/O流等程序设计能力,并利用C++语言进行实际问题的程序设计。

二、实验环境

建议使用Microsoft Visual C++ 6.0集成开发环境。

三、实验要求

1.每人独立完成实验和实验报告。

2.每个实验包括多个实验题目,要求每个实验在规定时间内设计、实现尽量多的题目。

3.程序书写符合程序书写规范。

四、实验内容

五、实验报告

每人针对每个实验上交一份实验报告,不接受不完整的实验报告,或者说明与程序或结果不符合的实验报告。

实验报告主要包括四方面内容:

⑴实验设计

按照每个实验题目要求,设计相应的类以及函数的实现方法,并用适当的方式进行描述。

(2) 程序清单

实验实现的源程序,要求符合代码行首缩进、单句代码换行、标识符命名合理,并包括必要的注释。

(3)运行结果

原始数据,程序运行结果截图及说明。

(4) 实验总结

调试过程及调试中遇到的问题及解决办法;调试程序的收获心得与体会,分析不足之处。

实验一C++程序设计基础练习

一、实验目的

1、学习编写简单的C++程序,并掌握C++程序的基本格式与规范。

2、理解C++程序结构的特点。

3、学习C++程序基本的输入输出操作。

4、学习数据类型常量和变量以及修饰符的使用。

5、学习基本的函数定义与调用方法。

6、学习作用域运算符的功能与基本使用方法。

7、学习内存的动态分配与释放方法。

8、学习引用的概念,掌握引用的基本使用方法。

二、试验内容

(一)程序填空

1、输入并运行所给的下述参考程序,并将程序中的注释部分也输入计算机,体会和理解程序的基本格式规范。

参考程序1

#include

int add(int a,int b);

int main()

{

int x,y,sum;

cout<<"Enter two numbers:"<<'\n';

//在下画线处填上语句,完成用cin读入x和y

_______________

_______________

sum=add(x,y);

cout<<"The sum is:"<

return 0;

}

int add(int a,int b)

{

//在下画线处填上语句,完成计算a与b的和并返回之

_________________

_________________

_________________

2、调试和运行参考程序2和参考程序3,掌握输入输出及其格式控制的基本使用方法。

参考程序2

#include

int main()

{

char name[20];

cout<<”Hello,your name:”;

//在下画线处填上语句,完成将字符串输入到数组name中

____________

//在下画线处填上语句,完成将name数组用cout输出

____________

return 0;

}

参考程序3

# include

void main()

{

int x=25;

//在画线处填上语句,将变量x的值分别以十六进制、十进制、八进制输出

___________________________________________________

}

3、调试和运行参考程序4和参考程序5,理解内置函数与函数重载的概念与基本使用方法。

参考程序4

#include

inline int doub(int x)

{

//在下画线处填上语句,用于返回x的2倍

_____________

}

int main()

{

for(int i=1; i<3;i++)

cout<

cout<<”i+2 doubled is”<

参考程序5

#include

int mul(int x,int y) //mul函数1

{ return x*y; }

int mul(int x,int y,int z) //mul函数2

{ return x*y*z; }

void main()

{

int a=3,b=4,c=5;

//在下画线处填上语句,用于调用mul函数1

cout<

//在下画线处填上语句,用于调用mul函数2

cout<

}

4、调试和运行参考程序6和参考程序7,并观察输出结果,体会和理解作用域运算符的概念与基本使用方法。

参考程序6

#include

int avar=10;

main()

{

//在下画线处填上语句,定义局部变量avar并赋予初始值25

______________

_____________

cout<<"avar is"<

return 0;

}

参考程序7

#include

int avar;

main()

{

int avar;

//在下画线处填上语句,将局部变量avar赋值25

_______________

//在下画线处填上语句,将全局变量avar赋值10

________________

//在下画线处填上语句,输出局部变量avar的值

cout<<"local avar is:"<<______<

//在下画线处填上语句,输出全局变量avar的值

cout<<"g1obal avar is:"<<________<

return 0;

}

5、调试和运行参考程序8和参考程序9,并观察输出结果,体会和理解内存动态分配的概念与new、delete运算符的基本使用方法。

参考程序8

#include

main()

{

int *p; //声明一个整型指针变量p

//在下画线处,用new关键字动态分配一个int型存储区,并将首地址赋给p

______________

*p = 10;

cout<<*p; //在下画线处填上语句,用于撤销指针p,释放p指向的存储空间

________________

return 0;

}

参考程序9

#include

main()

{

int *p;

//在画线处填上语句,用new关键字动态分配一个int型存储区,并将首地址赋给p

_____________________

if (!p)

{

cout<<"allocation failure\n";

return 1;

}

//在下画线处填上语句,将p所指向的存储区赋值20

________________

cout<<*p;

//在下画线处填上语句,用于撤销指针p,释放p指向的存储空间

________________

return 0;

}

(二)程序设计题

1、从键盘上读入两数,比较两个数的大小,并按从小到大的次序输出。(要求使用变量引用)

2、输出1到100的偶数,一行5个。

3、给出一个百分制的成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

4、一个10个整数的数组(34,91,83,56,29,93,56,12,88,72),找出最小数和其下标,并在主函数中打印最小数和下标。

5、编写一个C++风格的程序,解决百元问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?

6、编写一个程序,建立一个上sroot()的函数,返回其参数的二次方根。要求使用重载函数,重载3次,让其返回整数、长整数与双精度数的二次方根。

7、写C++风格的程序,用二分法求解f(x)=0的根。

8、编写一个程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。

实验二类与对象

一、实验目的

1、学习类与对象的定义,掌握类与对象的使用方法。

2、学习数据成员与成员函数的访问方式,理解构造函数和析构函数的定义与执行过程,学会构造函数的重载方法。

3、掌握数组与指针的定义与使用方法,理解数组与指针的存储分配与表示。

4、掌握用指针和引用向函数传递参数。

5、掌握静态数据成员和静态成员函数的使用。

6、理解友元与友元函数的作用与使用方法。

二、实验内容

1、下面是一个计算器类的定义,请完成该类成员函数的实现。

class Counter

{

public:

Counter(int number);

void increment(); //给原值加1

void decrement(); //给原值减1

int getValue(); //取得计数器值

int print(); //显示计数

private:

int value;

};

2、根据注释语句的提示,实现类Date的成员函数。

class Date

{

public:

void printDate();//显示日期

void setDay(int d);//设置日的值

void setMonth(int m);//设置月的值

void setYear(int y);//设置年的值

private:

int day,month,year;

};

int main()

{

Date testDay;

testDay.setDay(5);

testDay.setMonth(10);

testDay.setYear(2014);

testDay.printDate();

return 0;

}

3、建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。用类cylinder计算圆柱体的体积,并存储在一个double 变量中。在类cylinder中包含一个成员函数vol(),用来显示每个cylinder对象的体积。

4、构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将qu初始化为1~5,将price初始化为qu的10倍。显示每个对象的qu*price值。

5、修改上题,通过对象指针访问对象数组,使程序以相反的顺序显示对象数组的qu*price值。

6、构建一个类Stock,含字符数组stockcode[]及整型数据成员quan、双精度型数据成员price。构造函数含3个参数

:字符数组na[]及q、p。当定义Stock的类对象时,将对象的第一个字符串参数赋给数据成员stockcode,第2个和第3个参数分别赋给quan和price。未设置第2个和第3个参数时,quan的值为1000,price的值为8.98。成员函数print()使用this 指针,显示对象内容。

7、参考课本例子,建立一个源程序文件,在此文件中建立一个新的类,将新建的类命名为Rect。

class Rect

{

public:

int Area_int();

double Area_double();

Rect(double length,double width);

Rect(int length,int width);

virtual ~Rect();

private:

int nLength;

int nWidth;

double dLength;

double dWidth;

};

【要求】

(1)向Rect类中添加数据成员及成员函数,并完善成员函数的功能。如设计一个Area_int()函数,计算边长为整型的长方形的面积;设计一个Area_double()函数,计算边长为double型的长方形的面积。

(2)重载构造函数。一种构造函数用整型变量记录长方形的长和宽,另一种构造函数用double型记录。

(3)体现对象的构造和析构过程。例如,在构造函数中用cout<<”I am the constructor!”<

(4)在main()函数中定义两个Rect类的对象,一个对象用实例实现(就像定义普通的变量一样),另一个对象用指针实现(利用关键字new,给指针分配内存空间)。并用不同的参数,以调用不同的构造函数体现构造函数的重载。

8、声明一个Student,在该类中包括一个数据成员score(分数)、两个静态数据成员total_score(总分)和count(学生人数);还包括一个成员函数account()用于设置分数、累计学生的成绩之和、累计学生人数,一个静态成员函数sum()用于返回学生的成绩之和,另一个静态成员函数average()用于求全班成绩的平均值。在main()函数中,输入某班学生的成绩,并调用上述函数求出全班学生的成绩之和和平均分。

实验三派生类与继承

一、实验目的

1、学习类的继承,能够定义和使用类的继承关系。

2、学习派生类的声明与定义方法。

3、掌握类的定义和对象的声明。

4、熟悉公有派生和私有派生的访问特性。

5、掌握派生类构造函数和析构函数的执行顺序。

6、掌握利用访问声明调整基类成员在派生类中的访问属性。

二、试验内容

1、下面的程序可以输出ASCII字符与所对应的数字的对照表。修改下列程序,使其可以输出字母a到z(或任意两个字符间)与所对应的数字的对照表。class table

{

public:

table(int p)

{

i=p;

}

void ascii(void);

protected:

int i;

};

void table::ascii(void)

{

int k=1;

for (;i<127;i++)

{

cout<

if((k)%12==0)

cout<<"\n";

k++;

}

cout<<"\n";

}

class der_table:public table

{

public:

der_table(int p,char *m):table(p)

{

c=m;

}

void print(void);

protected:

char *c;

};

void der_table::print(void)

{

cout<

table::ascii();

}

int main()

{

der_table obl(32,"ASCII value---char");

obl.print();

return 0;

}

提示:修改后的主程序为:

int main()

{

der_table ob('a','z',"ASCII value---char");

ob.print();

return 0;

}

2、已有类Time和Date,要求设计一个派生类Birthtime,它继承类Time和Date,并且增加一个数据成员Childname用于表示小孩的名字,同事设计主程序显示一个小孩的出生时间和名字。

class Time

{

public:

Time(int h,int m, int s)

{

hours=h;

minutes=m;

seconds=s;

}

void display()

{

cout<<"出生时间:"<

}

protected:

int hours,minutes,seconds;

};

class Date

{

public:

Date(int m,int d,int y)

{

month=m;

day=d;

year=y;

}

void display()

{

cout<<"出生年月:"<

}

protected:

int month,day,year;

};

3、编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。

4、给出下面的基类:

class area

{

protected:

double height;

double width;

public:

area(double h,double w)

{

height=h;

width=w;

}

virtual double getarea()=0;

};

【要求】

(1)建立基类area的俩个派生类rectangle与isosceles,让每一个派生类都包含一个函数getarea(),分别用来返回矩形与三角形的面积。用构造函数对height 与width进行初始化。

(2)写出主程序,用来求height与width分别为10.0与5.0的矩形面积,以及求height与width分别为4.0与6.0的三角形面积。

(3)要求通过使用基类指针访问虚函数的方法(即运行时的多态性)分别求出矩形和三角形面积。

5、编写一个程序,递归调用被继承的基类成员函数,实现求素数的功能。

实验四多态性

一、实验目的

1、掌握运算符重载的基本方法。

2、掌握友元运算符函数和成员运算符函数的使用方法及两者之间的不同。

3、学习虚函数的定义与使用方法。

4、了解静态多态性和动态多态性。

5、学习使用虚函数和继承实现动态多态性。

二、试验内容

1、编写一个程序,要求:

(1)生明一个类Complex(复数类),定义类Complex的两个对象c1和c2,对象c1通过构造函数直接指定复数的实部和虚部(类私有数据成员为double类型:real和imag)为2.5及3.7,对象c2通过构造函数直接指定复数的实部和虚部为4.2及6.5;

(2)定义友元运算符重载函数,它以c1、c2对象为参数,调用该函数时能返回两个复数对象相加操作;

(3)定义成员函数print,调用该函数时,以格式“real+imag i”输出当前对象的实部和虚部,例如:对象的实部和虚部分别是4.2和6.5,则调用print函数输出格式为:4.2+6.5 i;

(4)编写主程序,计算出复数对象c1和c2相加结果,并将其结果输出。

2、编写一个程序,其中设计一个时间类Time,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现两个时间的相加。要求将小时范围限制在大于等于0,分钟范围限制在0~59分,秒钟范围限制在0~59秒。

提示:时间类Time的参考框架如下:

class Time

{

public:

Time(int h=0,int m=0,int s=0);//构造函数

Time operator+(Time &);//运算符重载函数,实现两个时间的相加

void disptime();//显示时间函数

private:

int hours,minutes,seconds;

};

3、用友元运算符函数或成员运算符函数,重载运算符“+”、“-”、“*”,实现对实验二中实现的矩阵类的对象的加、减、乘法。

4、下面提供一个体会继承中的多态性和虚函数在多态性中的作用的题目。请根据提示进行实验。定义类BaseFly,其中Fly()函数输出特定内容。例如:class BaseFly

{

public:

void Fly()(cout<<"\n-----CIass BaseFly::Fly()-----\n";}

};

(1)定义类BirdFly、DragonFly和PlaneFly,都继承自BaseFly,重载Fly()函数,使得各类中的Fly()函数分别输出不同的内容。

class BirdFly:public BaseFly

{

public:

void Fly() {cout<<"\n-----class BirdFly::Fly()-----\n";}

};

class DragonFly:public BaseFly

{

public:

vold Fly(){cout<<"\n-----Class DragonFly::Fly()-----\n";)

);

class PlaneFly:public BaseFly

{

public:

void Fly(){cout<<"\n-----Class PlaneFly::Fly()-----\n";}

};

(2)在main()函数中,用“new”关键字分配出以上四个类的实例,调用各

个实例的Fly()函数测试多态性。请参考以下代码:

int main()

{

cout<<"\n测试继承中的多态性(Virtual? Or not?):\n';

BaseFly *pBase;

BirdFly *pBird=new BirdFly;

pBasc=pBird;

cout<<"\nBirdFly->\n";

pBase->Fly();

DragonFly * pDragon=new DragonFly;

pBase=pDragon;

cout<<"\nDragonFly->\n";

pBase->Fly();

PlaneFly * pPlane=new PlaneFly;

pBase=pPlane;

cout<<"\nPlaneFly->\n";

pBase->Fly();

return 0,

}

(3)将BaseFly::Fly()声明为virtual,在main()中定义BaseFly的指针:*pBase,依次分别指向UirdFly、DragonFly和P1aneFly,并调用各类的Fly()函数,体会虚函数作用。

BaseFly * pBase=new BaseFly;

BirdFly *pBird=new BirdFly;

pBase=pBird;

5、写一个程序,定义抽象类Container:

class Container

{

protected:

double radius;

public:

Container(double r);//抽象类Container的构造函数

virtual double surface_area()=0;//纯虚函数surface_area

virtual double volume()=0;//纯虚函数volume

};

【要求】

建立3个继承Container的派生类:Sphere(球体)、Cylinder(圆柱体)、Cube (正方体),让每一个派生类都包含虚函数surface_area()和volume(),分别用来球体、圆柱体和正方体的表面积和体积。要求写出主程序,应用C++的多态性,分别计算边长为6.0的正方体、半径为5.0的球体,以及半径为5.0和高为6.0的圆柱体的表面积和体积。

#(16课时)数据库实验指导书

《数据库原理及使用》实验指导书 (适用于计算机科学和技术、软件工程专业) 热风器4 计算机科学和技术学院 2011年12月 ⒈本课程的教学目的和要求 数据库系统产生于20世纪60年代末。30多年来,数据库技术得到迅速发展,已形成较为完整的理论体系和一大批实用系统,现已成为计算机软件领域的一个重要分支。数据库原理是计算科学和技术专业重要的专业课程。 本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库使用的基本训练,提高其解决实际问题的能力。 ⒉实验教学的主要内容 数据库、基本表、视图、索引的建立和数据的更新;关系数据库的查询,包括单表查询、连接查询、嵌套查询等;数据库系统的实现技术,包括事务的概念及并发控制、恢复、完整性和安全性实现机制;简单数据库使用系统的设计实现。 ⒊实验教学重点 本课程的实验教学重点包括: ⑴数据库、基本表、视图、索引的建立和数据的更新; ⑵SQL的数据查询; ⑶恢复、完整性和安全性实现机制; ⑷简单数据库使用系统的设计实现; 4教材的选用 萨师煊,王珊.数据库系统概论(第四版).北京:高等教育出版社.2006,5 实验1创建数据库(2学时) 实验目的 1.学会数据表的创建; 2.加深对表间关系的理解; 3.理解数据库中数据的简单查询方法和使用。 实验内容 一、给定一个实际问题,实际使用问题的模式设计中至少要包括3个基本表。使用问题是供应商给工程供应零件(课本P74)。 1.按照下面的要求建立数据库: 创建一个数据库,数据库名称可以自己命名,其包含一个主数据文件和一个事务日志文件。注意主数据文件和事务日志文件的逻辑名和操作系统文件名,初始容量大小为5MB,

实验指导书 实验二_SolidWorks建模1

实验二 SolidWorks 草绘特征和放置特征操作(一) 一、 实验目的 1. 掌握基本零件建模的一般步骤和方法 2. 掌握SolidWorks 草绘特征:拉伸凸台、拉伸切除、旋转凸台、旋转切除、扫描、 放样的操作方法。 3. 掌握放置(应用)特征:钻孔特征、倒角特征、圆角特征、抽壳特征、拔模斜度特 征、筋的操作方法 二、 实验内容 完成下列下列零件造型 三、 实验步骤 1. 连接件设计 完成如图 1 (1) (2) 2 所示。 图 1连接件 图 2草图 (3) 单击【拉伸凸台/ 框内选择【两侧对称】选项,在【深度】文本框内输入“54mm ”,单击【确定】按钮,如图 3所示。 图 3 “拉伸”特征 (4) 120°”,然后 在第二参考中选择图形的一条下边线。单击【确定】按钮,建立新基准面,如

错误!未找到引用源。所示。 (5) 1,选择“反转法线” 1,单选择 4所示。 图4草图 图4建立基准面 底面边线

(6) 单击【拉伸凸台/ 列表框内选择【给定深度】选项,在【深度】文本框内输入“12mm”,单击【确定】按钮,如图5所示。 图5“拉伸”特征 (7)选取基体上表面,单击【草图绘制】进入草图绘制,使用中心线工具在 上表面的中心位置绘制直线,注意不要捕捉到表面边线,如图6所示。 图 6 中心线 (8) 内输入“8mm”,在图形区域选择中心线,在属性管理器中选中【添加尺寸】、【选择链】、【双向】和【顶端加盖】复选框,选中【圆弧】单选按钮,单击【确定】按钮,标注尺寸,完成草图,如图7所示。 运用“等距实体”绘制草图 (8) -拉伸】属性管理器,在【终止条件】下拉 列表框内选择【完全贯穿】选项,单击【确定】按钮,如图8所示。

《编译原理》实验指导书-2015

武汉科技大学计算机科学与技术学院 编译原理实验指导书

实验一词法分析器设计 【实验目的】 1.熟悉词法分析的基本原理,词法分析的过程以及词法分析中要注意的问题。 2.复习高级语言,进一步加强用高级语言来解决实际问题的能力。 3.通过完成词法分析程序,了解词法分析的过程。 【实验内容】 用C语言编写一个PL/0词法分析器,为语法语义分析提供单词,使之能把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析,并把分析结果(基本字,运算符,标识符,常数以及界符)输出。 【实验要求】 1.要求绘出词法分析过程的流程图。 2.根据词法分析的目的以及内容,确定完成分析过程所需模块。 3.写出每个模块的源代码,并给出注释。 4.整理程序清单及所得结果。 【说明】 运行成功以后,检查程序,并将运行结果截图打印粘贴到实验报告上。 辅助库函数scanerLib设计以及使用说明: 下面内容给出了一个辅助库函数的接口说明以及具体实现。 接口设计 //字符类 class Token { TokenType type; String str; Int line; } //词法分析结果输出操作类 class TokenWriter { ArrayList tokens; //用来记录所识别出来的token TokenWriter(); //构造函数指定输入文件名,创建文件输出流 V oid Add(Token); //将词法分析器中分析得到的Token添加到tokens中 WriteXML(); //将tokens写出到目标文件.xml中 } //词法分析操作词法分析生成文件接口<暂时不需要对该类的操作;下一步做语法分析的时候使用> class TokenReader

福建工程学院《实验指导书(数据库系统原理及应用)》

数据库系统原理 实验指导书 (本科)

目录 实验一数据定义语言 (1) 实验二SQL Sever中的单表查询 (3) 实验三SQL Serve中的连接查询 (4) 实验四SQL Serve的数据更新、视图 (5) 实验五数据控制(完整性与安全性) (7) 实验六语法元素与流程控制 (9) 实验七存储过程与用户自定义函数 (11) 实验八触发器 (12)

实验一数据定义语言 一、实验目的 1.熟悉SQL Server2000/2005查询分析器。 2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表 的定义、删除与修改,掌握索引的建立与删除方法。 3.掌握SQL Server2000/2005实现完整性的六种约束。 二、实验内容 1.启动SQL Server2000/2005查询分析器,并连接服务器。 2.创建数据库: (请先在D盘下创建DB文件夹) 1)在SQL Server2000中建立一个StuDB数据库: 有一个数据文件:逻辑名为StuData,文件名为“d:\db\S tuDat.mdf”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB; 有一个日志文件,逻辑名为StuLog,文件名为“d:\db\StuLog.ldf”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10% 2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。 3.设置StuDB为当前数据库。 4.在StuDB数据库中作如下操作: 设有如下关系表S:S(CLASS,SNO, NAME, SEX, AGE), 其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。 写出实现下列功能的SQL语句。 (1)创建表S; (2)刷新管理器查看表是否创建成功; (3)右击表S插入3个记录:95031班25号李明,男性,21岁; 95101班10号王丽,女性,20岁; 95031班座号为30,名为郑和的学生记录; (4)将年龄的数据类型改为smallint; (5)向S表添加“入学时间(comedate)”列,其数据类型为日期型(datetime); (6)对表S,按年龄降序建索引(索引名为inxage); (7)删除S表的inxage索引; (8)删除S表; 5.在StuDB数据库中, (1)按照《数据库系统概论》(第四版)P82页的学生-课程数据库创建STUDENT、COURSE 和SC三张表,每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。 并输入相关数据。 (2)将StuDB数据库分离,在D盘下创建DB文件夹下找到StuDB数据库的两个文件,进行备份,后面的实验要用到这个数据库。 6.(课外)按照《数据库系统概论》(第四版)P74页习题5的SPJ数据库。创建SPJ数据 库,并在其中创建S、P、J和SPJ四张表。每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。要作好备份以便后面的实验使用该数据库数据。 三、实验要求:

编译实验指导书(2017)

《编译原理》 实验指导书 太原理工大学计算机与软件学院 2017 年 3 月

《编译原理》实验 适用专业:计算机实验类别:专业实验 实验时数:8学时 一、实验课程的性质、目的和任务 1.培养学生初步掌握编译原理实验的技能。 2.验证所学理论、巩固所学知识并加深理解。 3.对学生进行实验研究的基本训练。 二、实验课程的内容、要求及学时分配 实验一、无符号数的词法分析程序(4学时) 内容:掌握词法分析的基本思想,并用高级语言编写无符号数的词法分析程序。 要求:从键盘上输入一串字符(包括字母、数字等),最后以“;”结束,编写程序识别出其中的无符号数。 无符号数文法规则可定义如下: <无符号数>→<无符号实数>│<无符号整数> <无符号实数>→<无符号整数>.<数字串>[E<比例因子>]│ <无符号整数>E<比例因子> <比例因子>→<有符号整数> <有符号整数>→[+│-]<无符号整数> <无符号整数>→<数字串> <数字串>→<数字>{<数字>} <数字>→0 1 2 3 (9) 读无符号数的程序流程图见下图

实验二、逆波兰式生成程序(4学时) 内容:掌握语法分析的基本思想,并用高级语言编写逆波兰式生成程序; 要求:利用逆波兰式生成算法编写程序,将从键盘上输入的算术表达式(中缀表达式)转化成逆波兰式。 逆波兰表达式的生成过程涉及到运算符的优先级,下表中列出几个常用运算 符的优先关系。 常用运算符优先关系矩阵 如上表所示的优先关系矩阵表示了+,-,*,/,↑,(,)等七种运算符之间的相互优先关系。“>、<、=”三种符号分别代表“大于”、“小于”、“相等”三种优先关系。左边的“=”与右边的“(”之间没有优先关系存在,所以表中为空白。 逆波兰表达式生成算法的关键在于比较当前运算符与栈顶运算符的优先关系,若当前运算符的优先级高于栈顶运算符,则当前运算符入栈,若当前运算符的优先级低于栈顶运算符,则栈顶运算符退栈。 下面给出了逆波兰表达式生成算法的流程图。(为了便于比较相邻运算符的优先级,需要设立一个工作栈,用来存放暂时不能处理的运算符,所以又称运算符栈)。

安全人机工程学实验指导书

安全人机工程学实验指导书 安全人机工程学 验指导湖南工学院20XX年3月 实验六深度知觉测定实验八记忆广度测量实验 实验九动作速度测定实验 实验七手指灵活性、手腕动觉方位能力测定实验六深度知觉测定实验目的 深度知觉测试是测试人的视觉在深度上的视锐程度,通 过测试可以了解双眼对距离或深度的视觉误差,也可以比较双眼和单眼在辨别深度中的差异。 实验仪器简介 采用EP503A深度知觉测试仪。主要技术指标: 1比较刺激移动速度分快慢二档: 快档50mm/s慢档25mm/s 2比较刺激移动方向可逆。±200mm 3比较刺激移动范围:400mm 4比较刺激与标准刺激的横向距离为55mm 5工作电压

220V 50HE 工作原理: 1 EP503A深度知觉测试仪结构如图2所示: 图 2 EP503A深度知 觉测试仪结构移动比较刺激,使之与标准刺激三点成一直线,在 实验 过程中,可测出被试者视觉在深度上的差异性。 2遥控键如图3所示: 图3 EP503A深度知觉测试遥控器面板示意 3面板布置如图4所示: 图4 EP503A深度知觉测试面板示意三实 验步骤 1、被试在仪器前,视线与观察窗保持水平,固定头部, 能看到仪器内两根立柱中部。2、以仪器内其中根立柱为 标准刺激,距离被试2米,位置固定。另一根可移动的立柱为变异刺激,被试可以操纵电键前后移动。 3、正式实验时,先主试将变异刺激调至任意位置,然 后要求被试仔细观察仪器内两根立柱,自调整,直至被试认为两根立柱在同一水平线上,离眼睛的距离相等为止。被试 调整后,主试记录两根立柱的实际误差值,填入下表中 4、正式实验时,先进行双眼观察20次,其中:有10吃是变异刺激在前,近到远调整; 有10次是变异刺激在后,远到近调整。顺序和距离随 机安排。

《数据库系统原理》实验指导书

《数据库系统原理》实验指导书 实验1 熟悉SQL Server 2000环境及数据库文件管理 一、实验目的 1、掌握登录SQL Server 2000的方法,熟悉SQL Server实用工具的使用; 2、了解SQL Serve数据库的存储结构,掌握估算数据库大小技术; 3、掌握创建数据库技术,掌握扩大和压缩数据库技术; 4、掌握使用企业管理器工具和T-SQL语句及系统存储过程对数据库进行管理。 二、实验要求 1、熟悉SQL Server 2000的工作环境,了解SQL Server主要管理工具的用途和使用方法。 2、掌握在SQL Server 2000环境下,利用企业管理器和T-SQL语言创建和管理数据库的方法。 三、实验设备、环境 设备:奔腾II或奔腾II以上计算机 环境:WINDOWS 98或WINDOWS NT、SQL SERVER 2000中文版 四、实验原理、方法 上机操作 五、实验步骤及内容 (一)实验步骤 1、教师讲授 2、教师演示 3、学生实际操作 (二)实验内容 1、熟悉SQL Server 2000管理工具 (1)企业管理器(Enterprise Manager) (2)查询分析器(Query Analyzer) (3)服务管理器(Service Manager) (4)事件探查器(Profiler) (5)导入和导出数据(Import and Export Data) (6)SQL Server其他管理工具 2、数据库文件管理 (1)数据库的创建和删除。 ①在企业管理器中建立一个图书读者库。图书读者数据库中将包括一个数据文件和一个日志文件,各文件的属性见表1-1。

R语言实验指导书(二)

R语言实验指导书(二) 2016年10月27日

实验三创建和使用R语言数据集 一、实验目的: 1.了解R语言中的数据结构。 2.熟练掌握他们的创建方法,和函数中一些参数的使用。 3.对创建的数据结构进行,排序、查找、删除等简单的操作。 二、实验内容: 1.向量的创建及因子的创建和查看 有一份来自澳大利亚所有州和行政区的20个税务会计师的信息样本 1 以及他们各自所在地的州名。州名为:tas, sa, qld, nsw, nsw, nt, wa, wa, qld, vic, nsw, vic, qld, qld, sa, tas, sa, nt, wa, vic。 1)将这些州名以字符串的形式保存在state当中。 2)创建一个为这个向量创建一个因子statef。 3)使用levels函数查看因子的水平。 2.矩阵与数组。

i.创建一个4*5的数组如图,创建一个索引矩阵如图,用这个索引矩 阵访问数组,观察结果。 3.将之前的state,数组,矩阵合在一起创建一个长度为3的列表。

4.创建一个数据框如图。 5.将这个数据框按照mpg列进行排序。 6.访问数据框中drat列值为3.90的数据。

三、实验要求 要求学生熟练掌握向量、矩阵、数据框、列表、因子的创建和使用。

实验四数据的导入导出 一、实验目的 1.熟练掌握从一些包中读取数据。 2.熟练掌握csv文件的导入。 3.创建一个数据框,并导出为csv格式。 二、实验内容 1.创建一个csv文件(内容自定),并用readtable函数导入该文件。 2.查看R语言自带的数据集airquality(纽约1973年5-9月每日空气质 量)。 3.列出airquality的前十列,并将这前十列保存到air中。 4.查看airquality中列的对象类型。 5.查看airquality数据集中各成分的名称 6.将air这个数据框导出为csv格式文件。(write.table (x, file ="", sep ="", https://www.doczj.com/doc/248272725.html,s =TRUE, https://www.doczj.com/doc/248272725.html,s =TRUE, quote =TRUE)) 三、实验要求 要求学生掌握从包中读取数据,导入csv文件的数据,并学会将文件导出。

编译程序实验指导书讲解教学提纲

编译程序实验指导书解讲. 编译程序实验指导书 实验目的:用C语言对一个C语言的子集编制一个一遍扫描的编译程序,以加深对编译原理的理解,掌握编译程序的实现方法和技术。 1.词法分析 1.1 实验目的 设计、编制并测试一个词法分析程序,加深对词法分析原理的理解。 1.2 实验要求 1.2.1 待分析的C语言子集的词法 1. 关键字

main if else int char for while 所有的关键字都是小写。 2.专用符号 = + - * / < <= > >= == != ; : , { } [ ] ( ) 3.其他标记ID和NUM 通过以下正规式定义其他标记: →letter(letter|digit) *ID →digit digit *NUM letter→a|…|z|A|…|Z digit→0|…|9… 4.空格由空白、制表符和换行符组成 空格一般用来分隔ID、NUM、专用符号和关键字,词法分析阶段通常被忽略。 1.2.2 各种单词符号对应的种别码 表1 各种单词符号的种别码 单词符号种别码单词符号种别码单词符号种别码 main 1 = 21 , 32 int 2 + 22 : 33 char 3 - 23 ; 34 if 4 * 24 > 35 else 5 / 25 < 36 for 6 ( 26 >= 37 while 7 ) 27 <= 38 ID 10 [ 28 == 39 MUN 20 ] 29 != 40 { 30 ‘\0' 1000 } 31 ERROR -1 1.2.3 词法分析程序的功能 输入:所给文法的源程序字符串。 输出:二元组(syn,token或sum)构成的序列。其中, . syn为单词种别码。 . Token为存放的单词自身字符串。 . Sum为整型常量。 具体实现时,可以将单词的二元组用结构进行处理。 例如,对源程序 main() { int i=10; while(i) i=i-1; } 的源文件,经词法分析后输出如下序列: (1,main) (26,() (27,)) (30,{} (2,int) (10,i) (21,=) (20,10) (34,;) (7,while) (26,() (10,i) (27,)) (10,i) (21,=) (10,i) (23,-) (20,1) (34,;) (31,))

人机工程学实验

实验一:双手调节器 1.实验目的 2.实验介绍和实验思路:双手调节器是一种典型的动作技能操作仪器。它是通过双手的操 作合作完成设定的曲线轨迹的运动,即是右手完成目标的上下移动,左手完成目标的左右移动。以被试完成任务所用的时间及偏离轨迹的次数,作为衡量其多次练习后的进步水平。 3.实验过程:分两项实验 第一种:自变量:同一个人的被实验次数即练习遍数。(每人四次,左右单程各两次)因变量:走完单程过程中个出错次数和时间 双手协调能力测试实验中的被试者完成实验的时间及错误次数数据统计分析如下:

根据实验结果绘制的练习曲线如下,用练习遍数作横坐标,用完成任务所用时间及出错次数为纵坐标,做出示意图为: 4.实验结论:完成任务所用的时间及每遍练习中的错误次数随着练习遍数的增加总体趋势 偶尔也会错误次数和时间略有增加。 实验二:瞬时记忆 1.实验目的:证实瞬时记忆的现象及其性质。 2.实验(方案一)思路:恒定变量设为1,自变量为设定秒数,因变量为报对码数目。 方案一数据:

根据图表可知,在设定时间不断减少的情况下,学生答对的图码数目不断减少。 (方案二)实验思路:恒定变量为时间(0.4秒),自变量为图码行数不同,因变量为记忆图码正确数量。 方案二数据:

根据图表可知,当被测试者接收一行图码信息时,思路清晰,记忆较快,当被测试者接收两行图码信息时,记忆速度不如一行图码快。 3.实验总结:1. 在设定时间不断减少的情况下,学生答对的图码数目不断减少。 2. 瞬间记忆在0.4秒情况下,记忆的合理码数在 3.2—3.5之间。 实验三:记忆广度 1.实验目的:学习测定光简单反应时的程序,比较光简单反应时的个体差异,通过测定闪光融合领率.学习使用阶梯法测定感觉阈限 2. 实验介绍和实验思路: 影响短时记忆广度的因素很多,组块的大小,熟悉性,复杂性等都会影响短时记忆的容量设自变量为计位数,因变量为正确个数,测试正确率: 3.根据数据分析结果: 随着计位数的不断增加,实验者按对的个数不断减少,正确率越来越低, 这说明人的记忆广度有限,所以在适当的记忆时间内,应设计相应的可记忆的内容,严防记忆过载。从另一方面讲了解短时记忆的特点,选择正确的方法加以训练,有助于个人记忆的

数据库系统实验

实验指导书 班级:090402 姓名:郑锦坤

序言 数据库是数据管理的最新技术,是计算机科学的重要分支。通过学习重点让大家掌握数据库技术的程序设计思想和方法,学习开发管理系统的技术,并结合PB8.0以上版本和SQL SERVER 2000以上版本上机环境编程测试。 为了达到这个目的,这里安排五个实验单元。 实验报告的内容 1.题目 描述每个实验的内容是什么。 2.需求分析 用E-R图描述数据库的模式设计及每个关系模式的建立;描述数据字典及程序数据流;每个事件、函数或过程 的头和规格说明; 3.源程序清单和结果 源程序要加注释,要有测试数据及结果。

实验1:学习SQL 语句与SQL SERVER的数据库环境(4学时) 本次实验的主要目的在于学会使用SQL SERVER环境建 库的方法,学会SQL SERVER企业管理器和查询分析器的使用,通过数据库操纵环境,了解库的建立、表的建立、数据库 的查询实现方法。实验数据如下: Student SC

实验报告 1 日期: 一.SQL语句实验题目: 1.建立课程表 2.建立学生表 3.建立选课表 4.查询所有学生的详细信息

SELECT Student.SCLASS, Student.SNO,Student.SNAME, Student.SSEX, Student.SAGE , Student.SDEPT,https://www.doczj.com/doc/248272725.html,O,SC.GRADE,https://www.doczj.com/doc/248272725.html,AME,Course.CPNO,Course. CCREDIT FROM Course,Student,SC WHERE SC.SCLASS=Student.SCLASS AND SC.SNO=Student.SNO AND https://www.doczj.com/doc/248272725.html,O=https://www.doczj.com/doc/248272725.html,O 5.查询1班的学生号学及姓名 SELECT SNO,SNAME FROM Student WHERE SCLASS='1' 6.查询‘刘晨’的出生年 7.查询姓‘刘’的学生的详细情况

实验指导书实验二_SolidWorks建模1

实验二SolidWorks草绘特征和放置特征操作(一) 一、实验目的 1.掌握基本零件建模的一般步骤和方法 2.掌握SolidWorks草绘特征:拉伸凸台、拉伸切除、旋转凸台、旋转切除、扫描、放样的操 作方法。 3.掌握放置(应用)特征:钻孔特征、倒角特征、圆角特征、抽壳特征、拔模斜度特征、筋的 操作方法 二、实验内容 完成下列下列零件造型 三、实验步骤 1. 连接件设计 完成如图1所示模型。 (1)单击【新建】按钮一1,新建一个零件文件。 (2)选取前视基准面,单击【草图绘制】按钮一I,进入草图绘制,绘制草图,如图2 所示。 图1连接件图2草图 ⑶ 单击【拉伸凸台/基体】按钮,出现【拉伸】属性管理器,在【方向】下拉列表 框内选择【两侧对称】选项,在【深度】文本框内输入" 54mm ”,单击【确定】 按钮,如图3所示。 (4)单击【基准面】按钮一1,出现【基准面】属性管理器,其中第一参考选择图形下底面, 然后单击【两面夹角】按钮日,在【角度】文本框内输入"120°,然后在第二参考中选择 图形的一条下边线。单击【确定】按钮¥,,建立新基准面,如

错误!未找到引用源。所示。 图4建立基准面 (5) 在设计树中右击基准面 1选择“反转法线” 卜,然后再单击基准 面 1单选择 【草图绘制】按钮 ,进入草图绘制,单击【正视于】按钮 ,绘制草图,如图 4所示。 边线 底面 图4草图

(6) 单击【拉伸凸台/基体】按钮 ,出现【拉伸】属性管理 器,在【终止条件】下拉 列表框内选择【给定深度】选项,在【深度】文本框内输入“ 12mm ”,单击【确 定】按钮1 如图5所示。 (7) 选取基体上表面,单击【草图绘制】 按钮_1,进入草图绘制,使用中心线工具 上表面的中心位置绘制直线,注意不要捕捉到表面边线,如图 6所示。 图6中心线 (8) 单击【等距实体】按钮丄,出现【等距实体】属性管理器,在【等距距离】文本框 内输入 “8mm ”,在图形区域选择中心线, 在属性管理器中选中 【添加尺寸】、【选 择链】、【双向】和【顶端加盖】复选框,选中【圆弧】单选按钮,单击【确定】 按钮 ,标注尺寸,完成草图,如图 7所示。 律黑 __________________ 严 玄[B 总 -召 厂[.砲 r 韦歼左眛編◎也 17比自口 R an (A ) 广 Efetfi- 图_7运用“等距实体”绘制草图 (8)单击【拉伸切除】按钮 □,出现【切除-拉伸】属性管理器,在【终止条件】下拉 列表框内选择【完全贯穿】选项,单击【确定】按钮 ,如图8所示。 图5 “拉伸”特征

编译原理实验指导书(图)

编译原理 实 验 指 导 书

前言 编译原理是计算机科学与技术、软件工程等专业的主干课和必修课,由于这门课程相对抽象且内容较复杂,一直是比较难学的一门课程。在编译原理的学习过程中,实验非常重要,只有通过上机实验,才能使学生对比较抽象的课程内容产生一个具体的感性认识。 本书实验环境主要为C环境及一个词法分析器自动生成工具FLEX和一个语法分析器自动生成工具BISON。书中给出的参考源程序也是C源程序,但由于实验者熟悉精通的语言工具不尽相同,因而强求采用统一的编程语言编程是不现实的。实验者在掌握了编译程序各个阶段的功能和原理之后,不难借助使用其他自己熟悉的语言实现相关功能。 实验者在实验过程中应该侧重写出自己在算法分析、设计思路、实现功能或程序代码等方面的特色,写出设计和实现过程中遭遇到的难点和解决办法,可以不拘泥于实验指导给出的参考性设计思路,尽可能在深度和广度上加以拓展。只有这种各具特色的实验报告,才将更有利于体现实验者在创新思维和动手能力上的差异。 通过这些实验,能使学生对这些部份的工作机理有一个详细的了解,达到“知其然,且知其所以然”的目的。并可在C环境下对自动生成工具生成的词法、语法分析器进行编译调试。 由于手工生成词法和语法分析器的工作量太大,在实际中常用自动生成工具来完成之。这些工具中最著名的当属贝尔实验室的词法分析器生成工具LEX和语法分析器生成工具YACC。它们现已成为UNIX的标准应用程序同UNIX一起发行。与此同时GNU推出与LEX完全兼容的FLEX,与YACC完全兼容的BISON。这两个程序都在Internet上以源代码的形式免费发行,所以很容易在其它操作系统下重新编译安装。我们实验采用的就是for dos的FLEX和BISON。本书有关的编译工具及其源程序例子,可到BISON的网站上下载。关于FLEX和BISON的用法简介,参见附录,如需更详细的介绍,请参阅编译工具中帮助文件。

棒框仪实验报告

棒框仪实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

人机工程学 报告书 姓名:董思洋 班级:工业设计10-3班学号: 二零一二年

棒框仪实验指导书 陈亚明编 艺术与设计学院 二0一二年二月

棒框仪实验 一、实验目的 本仪器可测量一个倾斜的框对判断一根棒的垂直性影响的程度。被试的判断受倾斜的框的影响,相当于周围环境条件变化的影响,所以此 本仪器可以通过被试的认知方式来测量人格特性。 二、实验方法 两人一组,正确使用棒框仪进行测量: 1、一个放在平台上的观察筒被试观察面为圆白背景面板上有一个黑色正方形框和黑色棒。棒的倾斜度可由被试通过旋钮调节。 2、主试面有一个半圆形的刻度,圆弧内指针指示框的倾斜度,中央指针指示棒的倾斜度。主试调节面板上旋钮改变框与棒的倾斜度。 3、在平台上有一个水平仪,可通过旋转平台下面的螺丝将平台调整到水平的位置。此棒框仪的优点在于没有电源的条件下可以使用。 三、测量器具 人体形体测量尺350×165×215mm的棒框仪 四、实验内容 (1)将平台调到水平位置。 (2)根据实验的要求,主试将框和棒调到在一定的倾斜度。 (3)要求被试通过观察筒进行观察,并根据自己感觉将棒调整得与地面垂直。(4)从刻度上读出的棒的倾斜度,即记录下误差的度数和方向。 (5)主试调节不同的方框的倾斜度,即不同的场条件下,重复实验。由被试调整出的棒倾斜度总结出框对棒的影响,从而研究被试的场依存性。 五、实验要求 1.每位同学都要参与测量、被测量过程; 2.记录数据以度为单位 3.测量数据要准确,测量精确;

2013《数据库技术及应用》实验指导书资料

《数据库技术及应用》实验指导书

实验环境 1.软件需求 (1)操作系统:Windows 2000 Professional,或者Windows XP (2)数据库管理系统:SQL Server2000 (3)应用开发工具:Delphi7.0 (4)其它工具:Word 2.硬件需求 (1)PC机 (2)网络环境

基本需求信息 一、对某商场采购销售管理进行调研后,得到如下基本需求信息: 该商场有多名工作人员(主要是采购员和销售员),主要负责从供应商处采购商品,而后将商品销售给客户。采购员主要负责根据商场的销售情况确定要采购的商品,并与供应商联系,签订采购单。销售员主要负责将采购来的商品销售给客户,显然一个客户一次可能购买多种商品。一个供应商可以向该商场供应多种商品,而一种商品也可以由多个供应商供应。 商场的管理者每个月需要对该月已采购的商品和已销售的商品进行分类统计,对采购员和销售员的业绩进行考核,对供应商和客户进行等级评定,并计算商场利润。 二、E-R图 三、需要建立的数据表如下 1.供应商表:供应商ID,供应商名称,地区,信誉等级 2.供应表:供应商ID,商品ID,商品单价 3.商品表:商品ID,商品名称,商品库存量,商品均价 4.采购单表:采购单ID,采购员ID,供应商ID,采购总金额,签订日期 5.采购明细表:采购单ID,商品ID,采购数量,商品单价 6.销售单表:销售单ID,销售员ID,客户ID,销售总金额,签订日期 7.销售明细表:销售ID,商品ID,销售数量,商品单价,单价折扣 8.客户表:客户ID,客户名称,联系电话,客户等级 9.职员表:职员ID,职员姓名,职员类型

土工实验指导书及实验报告

土工实验指导书及实验报告编写毕守一 安徽水利水电职业技术学院 二OO九年五月

目录 实验一试样制备 实验二含水率试验 实验三密度试验 实验四液限和塑限试验 实验五颗粒分析试验 实验六固结试验 实验七直接剪切试验 实验八击实试验 土工试验复习题

实验一试样制备 一、概述 试样的制备是获得正确的试验成果的前提,为保证试验成果的可靠性以及试验数据的可比性,应具备一个统一的试样制备方法和程序。 试样的制备可分为原状土的试样制备和扰动土的试样制备。对于原状土的试样制备主要包括土样的开启、描述、切取等程序;而扰动土的制备程序则主要包括风干、碾散、过筛、分样和贮存等预备程序以及击实等制备程序,这些程序步骤的正确与否,都会直接影响到试验成果的可靠性,因此,试样的制备是土工试验工作的首要质量要素。 二、仪器设备 试样制备所需的主要仪器设备,包括: (1)孔径0.5mm、2mm和5mm的细筛; (2)孔径0.075mm的洗筛; (3)称量10kg、最小分度值5g的台秤; (4)称量5000g、最小分度值1g和称量200g、最小分度值0.01g的天平;

(5)不锈钢环刀(内径61.8mm、高20mm;内径79.8mm、高20mm或内径61.8mm、高40mm); (6)击样器:包括活塞、导筒和环刀; (7)其他:切土刀、钢丝锯、碎土工具、烘箱、保湿器、喷水设备、凡士林等。 三、试样制备 (一)原状土试样的制备步骤 1、将土样筒按标明的上下方向放置,剥去蜡封和胶带,开启土样筒取土样。 2、检查土样结构,若土样已扰动,则不应作为制备力学性质试验的试样。 3、根据试验要求确定环刀尺寸,并在环刀内壁涂一薄层凡士林,然后刃口向下放在土样上,将环刀垂直下压,同时用切土刀沿环刀外侧切削土样,边压边削直至土样高出环刀,制样时不得扰动土样。 4、采用钢丝锯或切土刀平整环刀两端土样,然后擦净环刀外壁,称环刀和土的总质量。 5、切削试样时,应对土样的层次、气味、颜色、夹杂物、裂缝和均匀性进行描述。 6、从切削的余土中取代表性试样,供测定含水率以及颗粒分析、界限含水率等试验之用。

编译程序实验指导书讲解教学提纲

编译程序实验指导书 讲解

编译程序实验指导书 实验目的:用C语言对一个C语言的子集编制一个一遍扫描的编译程序,以加深对编译原理的理解,掌握编译程序的实现方法和技术。 1.词法分析 1.1 实验目的 设计、编制并测试一个词法分析程序,加深对词法分析原理的理解。 1.2 实验要求 1.2.1 待分析的C语言子集的词法 1. 关键字 main if else int char for while 所有的关键字都是小写。 2.专用符号 = + - * / < <= > >= == != ; : , { } [ ] ( ) 3.其他标记ID和NUM 通过以下正规式定义其他标记: ID→letter(letter|digit)* NUM→digit digit* letter→a|…|z|A|…|Z digit→0|…|9… 4.空格由空白、制表符和换行符组成 空格一般用来分隔ID、NUM、专用符号和关键字,词法分析阶段通常被忽略。 1.2.2 各种单词符号对应的种别码 表1 各种单词符号的种别码 单词符号种别码单词符号种别码单词符号种别码 main 1 = 21 , 32 int 2 + 22 : 33 char 3 - 23 ; 34 if 4 * 24 > 35 else 5 / 25 < 36 for 6 ( 26 >= 37 while 7 ) 27 <= 38 ID 10 [ 28 == 39 MUN 20 ] 29 != 40 { 30 ‘\0’ 1000 } 31 ERROR -1

1.2.3 词法分析程序的功能 输入:所给文法的源程序字符串。 输出:二元组(syn,token或sum)构成的序列。其中, . syn为单词种别码。 . Token为存放的单词自身字符串。 . Sum为整型常量。 具体实现时,可以将单词的二元组用结构进行处理。 例如,对源程序 main() { int i=10; while(i) i=i-1; } 的源文件,经词法分析后输出如下序列: (1,main) (26,() (27,)) (30,{} (2,int) (10,i) (21,=) (20,10) (34,;) (7,while) (26,() (10,i) (27,)) (10,i) (21,=) (10,i) (23,-) (20,1) (34,;) (31,)) 1.3 词法分析程序的主要算法思想 算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想 是根据扫描到的单词符号的第一个字符的种类,拼出相应的单词符号。 1. 主程序示意图 主程序示意图如图1所示。 图1 词法分析主程序示意图 其中初值包括如下两方面: (1)关键字表初值 关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识 别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:

(完整word版)安全人机工程学综合实验指导书20131

《安全人机工程学》实验指导书 杨轶芙编 实验学时:6学时

目录 实验一手指灵活性测试 ................................................................... - 1 -实验二动觉方位辨别能力的测定 ..................................................... - 3 -实验三暗适应测试实验 ..................................................................... - 5 -实验四明度适应测试 ......................................................................... - 8 -实验五选择、简单反应时测定实验............................................... - 10 -实验六听觉实验 ............................................................................... - 15 -实验七动作稳定性测试 ................................................................... - 22 -

实验一手指灵活性测试 『实验目的』 测定手指、手、手腕灵活性以及手眼协调能力。 『实验仪器』 采用EP707A型手指灵活性测试仪。 该仪器的主要技术参数如下: 1、手指灵活性测试100孔 2、指尖灵活性测试M6、M5、M4、 M3螺栓各25个 3、计时范围0~9999.99秒 4、电源电压220V 50HZ 5、消耗功率10W 6、外形尺寸505×310×48 7、重量3.5千克(净重) 『实验内容』 (一)手指灵活性测试(插孔插板) 1、使用者接上电源打开电源开关,此时计时器即全部显示为0000. 00。然后插上手指灵活性插板(有100个φ 1.6mm 孔),按复位按键被试即可进行测试。 2、被试用优势手拿住镊子钳住φ1.5针,插入开始位,计时器开始计时 3、依次用镊子(从左至右,从上至下)钳住φ1.5针插满100个孔,最后插终止位,计时会自动结束,记录下插入100个棒所需要的时间; 4、每次重新开始需按“复位”键清零。 (二)指尖灵活性测试 1、使用者接上电源打开电源开关,此时计时器即全部显示为0000. 00。然后插上指尖灵活性插板(M6、M5、M4、M3螺栓各25个),按复位按键被试即可进行测试。 2、当被试用优势手放入起始点第一个M6垫圈起,计时器开始计时,然后

数据库实验指导书++数据库系统概论(第四版)++王珊、萨师煊

目录 实验一熟悉POWER DESIGNER (2) 实验二SQL SERVER 2000的安装与使用 (6) 实验三创建数据库、表 (17) 实验四SQL SERVER2000查询分析器 (29) 实验五SQL语言的DDL (38) 实验六SQL语言的DML初步 (40) 实验七DML的数据查询 (43) 实验八SQL语言综合练习 (48) 实验九嵌入式SQL ...................... 错误!未定义书签。实验十数据库设计....................... 错误!未定义书签。

实验一熟悉Power Designer 一、实验目的 1、掌握安装并破解PD的方法。 2、通过阅读和分析应用实例“学生选课系统CDM”,了解和熟悉Power Designer CDM及其相关知识。 3.掌握运用Power Designer工具建立CDM的方法。 4.初步掌握从Power Designer CDM生成相应的PDM的方法。 二、实验内容及实验步骤 1、PD环境的介绍 Power Designer的4种模型文件: (1) 概念数据模型(CDM) CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构 无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对 象。它给运行计划或业务活动的数据一个正式表现方式。 (2)物理数据模型(PDM) :PDM 叙述数据库的物理实现。 藉由PDM ,你考虑真实的物理实现的细节。你能修正PDM 适合你的表现或物理约束。 (3)面向对象模型(OOM) 一个OOM包含一系列包,类,接口, 和他们的关系。这些对象一起形成所有的( 或部份) 一个软件系统的逻辑的设计视图的类结构。 一个OOM本质上是软件系统的一个静态的概念模型。 (4)业务程序模型(BPM) BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用 2、创建CDM(以学生选课系统为例) (1)新建一个CDM,命名为CssCdm(css,Course SelectionSystem ) (2)创建“学生”、“课程”实体和“选课”联系,并命名 (3)为各实体和联系创建属性 学生(学号,姓名,性别,年龄)

《面向对象程序设计》实验指导书(实验二)

实验二类与对象㈡——对象初始化、对象数据与指针 一、实验目的 1.理解构造函数、析构函数的意义及作用,掌握构造函数、析构函数的定义及调用时间,熟悉构造函数的种类; 2.理解this指针及使用方法,熟悉对象数组、对象指针、对象引用的定义及使用方法,熟悉对象作为函数参数的使用方法; 3.熟悉类与对象的应用及编程。 二、实验学时 课内实验:2课时课外练习:2课时 三本实验涉及的新知识 ㈠构造函数与析构函数 在C++中,提供了两个特殊的成员函数,即构造函数和析构函数。 构造函数用于对象的初始化,即在定义一个类对象时,计算机在给对象分配相应的存储单元的同时,为对象的数据成员赋初值。 析构执行的是与构造函数相反的操作,用于撤销对象的同时释放对象所占用的内存空间。 1.构造函数 ⑴构造函数的定义 格式: 类名(形参表) { 构造函数体} ⑵构造函数的调用 构造函数的调用是在定义对象时调用的。 格式:类名对象名(实参表); 类名对象名=构造函数名(实参表); ⑶说明 ①构造函数必须与类同名。 ②构造函数没有返回值,但不能在构造函数前加void类型符(其他没有返回值的成员函数必须加类型符void)。 ③在实际应用中,在定义类时通常应定义一至多个构造函数(重载),以对各数据成员进行初始化;如果不给出构造函数,系统将自定义一个构造函数。 ④构造函数可以可以带参数,也可不带任何参数(称无参构选函数),还可以使用缺省参数。 ⑤不能象普通成员函数一样单独调用。 2.析构函数 ⑴析构函数的定义 格式: ~类名(void) { 析构函数体} ⑵析构函数的调用 析构函数是在撤销对象时自动调用的。 ⑶说明

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