当前位置:文档之家› 《监控软件设计》实验指导书.doc

《监控软件设计》实验指导书.doc

《监控软件设计》实验指导书.doc
《监控软件设计》实验指导书.doc

嘉兴学院

XXX专业实验指导书

机电工程实验中心

2010、9

目录

1 《XXX》课程实验 (1)

1.1 绪论

1.1.1 XXXX………………………………………………………………………………………X 1.1.2 XXXX………………………………………………………………………………………X

1.2 实验项目指导………………………………………………………………………………X 实验一XXXXXX………………………………………………………………………………X 实验二XXXXXX………………………………………………………………………………X

2 XXX课程实验

2.1 绪论

2.1.1 XXXX………………………………………………………………………………………X 2.1.2 XXXX………………………………………………………………………………………X

2.2 实验项目指导

实验一XXXXXX

实验二XXXXXX

1 《监控软件设计》课程实验

1.1 绪论

1.1.1 实验特点、目的与作用

《监控软件设计》是一门具有很强实践性的课程,只有通过大量的实际程序设计的实践,才能真正掌握这门技术。该课程的实践环节就是为了使学生巩固知识、加深印象、熟练掌握。实验中,一是弄懂教材中的基本知识和实例;二是针对程序中的相关部分能按照自己的要求进行修改,运行,掌握程序设计要领;三是锻炼对前后章节知识的综合运用的能力,逐步全面掌握面向对象与可视化编程技术。

1.1.2实验方式与基本要求

1)教师在实验前将实验内容布置给学生;

2)学生根据实验内容进行程序设计准备;

3)实验时教师检查学生准备情况,学生进行程序调试;

4)实验完成时经老师检查合格方可离开。

1.1.3实验报告要求

本课程实验要求完成实验报告,实验报告内容包括程序源代码及运行结果等,具体内容与格式要求详见附录模板。

1.2 实验项目指导

实验一使用Visual C++进行控制台程序设计

一.实验目的

1)利用Visual C++6.0编译器进行一般C和C++程序设计

2)了解C++程序结构特点及数据的输入输出

3)了解Visual C++6.0编译器的基本使用方法

4)C++的动态内存分配方法

二.实验原理

1)C++的主要特点

●C++是由C扩充而来,因此,除了与C兼容,C++还继承了C的以下特点:丰富的

运算符和数据类型、结构化的程序设计方法、高效的机器代码、良好的可移植

性。

●支持面向对象程序设计的方法。

●C++的错误检查机制强,提供了专门的机制检查类和异常处理功能。

●C++有很多成熟的编译器:Visual C++、Inprise(被Borland兼并)的C++

Builder、Borland的Borland C++和IBM的Visual Age C++。

2)C语言程序:

/* 这是一个简单的C程序: simple.c */

#include

void main(void)

{

printf( " Hello World !\n " ) ; // 输出字符串

}

用C++语言编写同样功能的程序

C++语言程序:

// 这是一个简单的C++程序:simple.cpp

#include

void main(void)

{

cout<<" Hello World !\n "; // 输出字符串

}

程序运行后在屏幕上输出:

Hello World !

3)C++程序与C程序的比较:

●C++程序与C程序的结构完全相同。

●C源程序文件的扩展名为C,C++源程序文件的扩展名为CPP。

●C注释使用符号“/*”和“*/”,表示符号“/*”和“*/”之间的内容都是注

释;C++除了支持这种注释,还提供了一个双斜线“//”注释符,表示“//”

之后的本行内容是注释,注释在行尾自动结束。

●C程序所包含的标准输入、输出的头文件是stdio.h,输入、输出通常通过调用

函数来完成;而C++程序可以包含标准输入、输出流的头文件iostream.h,输

入、输出可以通过使用标准输入、输出流对象来完成

4)C++程序基本结构:

●一个C++程序可以由多个函数构成;

●每个程序都从主函数main()开始执行,从主函数返回时结束执行;

●组成程序的语句主要包括声明语句和执行语句;

●声明语句用于声明变量和函数,变量声明语句说明变量的名称和数据类型,

函数声明语句说明函数的名称、参数类型和返回值;

●执行语句包括:赋值语句、表达式语句、函数调用语句和流程控制语句等,

它们写在一个函数中(包括主函数)。

5)C++对C的一般扩充

●C++用new和delete运算符取代C的内存分配和释放函数malloc()和free()。

●标准C++提供了字符串类,可以替代C函数库中的字符数组处理函数。

●进行输入、输出操作时,C++用控制台输入、输出流对象(在头文件iostream.h

中进行了类的声明)替代C的stdio函数库,利用“>>”流提取运算符或“<<”

流插入运算符,分别将数据对象从输入流提取出来或插入到输出流,从而完成

数据的输入和输出。

●使用C++面向流的输入、输出方式提高了程序的可读性,减少了错误的发生。

三.实验设备与器材

1.软件环境:操作系统:WIN98/ME/2000/XP;软件工具:Visual C++

2.硬件环境:个人电脑

四.实验内容与记录

1.程序设计题:设计函数prime(),它只带一个整型参数,当这个参数的值是素数时,

该函数返回非0,否则返回0。利用这个函数编写一个程序来验证哥德巴赫猜想:

任何一个大于2的偶数都可以表示成两个素数之和。

2.程序设计题:定义一个字符串反转函数,例如将字符串“abcd”反转为“dcba”。

3.程序设计题:编写一段程序,利用new运算动态分配float型,long型和char型三个

内存单元,将它们的首地址分别赋给指针fl、pl和pc。给这些存储单元赋值,并在

屏幕上显示它们的值。最后利用delect运算符释放所有动态分配的内存单元。

4.程序设计题:采用动态内存分配方法设计一个学生成绩处理,要求输入任意数量学

生的学号,姓名和四门课的成绩,并按平均成绩的高低输出每个学生的姓名和成绩。五.实验预习与思考题

1.预习有关参数默认值,内敛函数以及引用的相关内容,思考并回答以下问题:

(1)C++中函数参数的传递方式有哪几种?请说明这几种方式之间的区别。

(2)能否在函数定义中为形参指定一个默认值?请编程验证你的结论。

(3)什么是内联函数?它与宏有何区别?

(4)完成课后练习3-41,程序改错。

六.实验报告要求

1.实验分为三环节:实验预习,实验操作,报告完成。其中“实验预习”环节要求学

生在实验课前完成,涉及与实验相关知识点的复习与程序的编写;“实验操作”环

节在实验课上完成,主要涉及程序的调试;实验课后,完成实验报告的撰写。

2.实验报告格式统一,使用A4纸打印上交。

3.实验内容与记录中,应包含程序说明性文字,程序核心代码及相关注释,最后附上

程序运行结果。

实验二类与对象

一.实验目的

1)掌握类与对象的创建

2)理解类的定义,声明,实现的基本概念,理解对象创建的概念

3)正确区分类的三种访问属性

4)理解构造函数以及析构函数的功能,掌握构造函数及析构函数的定义

二.实验原理

1)类的定义与实现

C++类将对象的属性抽象为数据成员,将对象的行为抽象为成员函数,并对它们进行封装。数据成员又称成员变量,成员函数又称为方法。

2)C++类定义的基本形式:

class <类名>

{

private:

<私有数据成员和私有成员函数的声明列表>;

public:

<公有数据成员和公有成员函数的声明列表>;

protected:

<保护数据成员和保护成员函数的声明列表>;

};

3)类的实现

●利用C++类进行面向对象编程,定义类的成员只是完成了工作的第一步,

最重要的工作是实现定义的类。

●类的实现实质上是类的成员函数的实现,即定义类的成员函数。

●成员函数的定义形式与一般函数的定义形式基本相同,但必须在成员函数

名前加上类名和作用域限定符(::)。

●成员函数的定义也可放在类体内(该函数声明之处),这时成员函数将变成

内联函数。

4)利用类声明对象

对象是类的一个实例,定义并实现了类,就可以利用定义好的类来声明对象,即创建对象。声明对象的形式与声明普通变量类似,例如:

Time t1, start ;

point *pt1=&t1

5)构造函数和析构函数

成员变量的初始化一般是利用一个名为构造函数的成员函数来完成。

构造函数是一种特殊的成员函数,它是在创建对象时(声明或new动态创建)系统自动调用的成员函数。

析构函数也是一种特殊的成员函数,它是在对象生存期结束时系统自动调用的成员函数。

三.实验设备与器材

1.软件环境:操作系统:WIN98/ME/2000/XP;软件工具:Visual C++

2.硬件环境:个人电脑

四.实验内容与记录

1.程序设计题:设计一个日期类Date,该类用于表示日期值(年、月、日)。要求除

了能够通过相应的成员函数设置和获取日期值外,还能实现将日期加一天的操作。

2.程序设计题:设计一个类CRectangle,除了有相关的数据成员外,该类还要求包含

以下成员函数:矩形从一个位置移动到另一个位置的Move()函数;改变矩形大小的

Size()函数;返回矩形左上角的坐标值的Where()函数;计算矩形面积的Area()函

数。

3.程序设计题:建立一个名为Student的类,该类有以下私有数据成员:学生姓名、

学号、性别和年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性

别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数,声明一个

学生对象,然后调用成员函数在屏幕上输出学生信息。

五.实验预习与思考题

1.完成下列思考题

(1)什么是对象?什么是类?简述对象与类的关系。

(2)何谓数据成员?何谓成员函数?

(3)在C++中如何定义类?如何实现定义的类?如何利用类声明对象?

(4)何谓构造函数?何谓析构函数?请说明它们分别有什么作用?

(5)程序改错,课后练习3-37,3-38

六.实验报告要求

1.实验分为三环节:实验预习,实验操作,报告完成。其中“实验预习”环节要求学

生在实验课前完成,涉及与实验相关知识点的复习与程序的编写;“实验操作”环

节在实验课上完成,主要涉及程序的调试;实验课后,完成实验报告的撰写。

2.实验报告格式统一,使用A4纸打印上交。

3.实验内容与记录中,应包含程序说明性文字,程序核心代码及相关注释,最后附上

程序运行结果。

实验三静态成员

一.实验目的

1)静态成员的特点和使用方式

2)静态数据成员和静态成员函数的调用关系

二.实验原理

1)静态成员的概念

一般情况下,同一个类不同对象的数据成员所占用的内存空间是不同的(体现了不同对象具有不同的属性值)。在有些情况下,类的数据成员的值对每个对象都是相同的,如当前已创建对象的数量,这时可以将该数据成员声明为静态数据成员(占有相同的存储单元)。

2)静态成员的声明

在声明成员时以关键字static开头,例如:

public:

static int m_nCount;

3)静态成员的初始化

放在类定义的外部

int Person :: m_nCount=0;

三.实验设备与器材

1.软件环境:操作系统:WIN98/ME/2000/XP;软件工具:Visual C++

2.硬件环境:个人电脑

四.实验内容与记录

1.生成一个储蓄类CK。用静态数据成员表示每个存款人的年利率lixi。类的每个对

象包含一个私有数据成员cunkuan,表示当前存款额。提供一个calLiXi()成员函数,计算利息,用cunkuan乘以lixi除以12取得月息,不计复利,并将这个月息加进

cunkuan中。提供设置存款额函数set()。提供一个静态成员函数modLiXi(),可以

将利率lixi修改为新值。

实例化两个不同的CK对象saver1和saver2,结余分别为2000.0和3000.0。将lixi设置为3%,计算一个月后和3个月后每个存款人的结余并打印新的结果。

完善程序:

#include

class CK{

double cunkuan;

public:

static float lixi; //定义静态数据成员lixi

CK(double c){ cunkuan=c; }//构造函数

void set(double x){ cunkuan=x; }//设置存款额

static double modLiXi() //声明静态成员函数modLiXi()

void calLiXi(int m=1); //m表示存款时间,单位:月

};

//编写CK类的成员函数,并初始化静态数据成员。

void CK::calLiXi(int m)

{

double x;

x= (cuankuan*lixi)/12 ; //计算月利息

Cunkuan+=x cwc ; //将利息加入到存款中

cout<

}

void CK::modLiXi(double x) //更改年利率

{ lixi=x; }

//初始化静态变量为0,静态变量必须初始化

double CK::lixi=0 ;

//主函数:实例化两个对象,将年利率更改为3%,计算并显示存款人的实际存款。void main()

{

CK saver1(2000.0),saver2(3000.0);//实例化两个对象

CK::modLiXi(0.03) ; //以类名来调用静态成员函数,将年利率设为3%

cout<<"年利率为 3%时"<

cout<<"一个月后甲的存款余额为: ¥";

saver1.calLiXi();

cout<<"一个月后乙的存款余额为: ¥";

saver2.calLiXi();

saver1.set(2000.0);saver2.set(3000.0);

cout<<"三个月后甲的存款余额为: ¥";

saver1.calLiXi(3);

cout<<"三个月后乙的存款余额为: ¥";

saver2.calLiXi(3);

saver1.set(2000.0);saver2.set(3000.0);

CK::modLiXi(0.06) ; //以对象名来调用静态成员函数,将年利率设为6% cout<<"年利率为 6%时"<

cout<<"一个月后甲的存款余额为: ¥";

saver1.calLiXi();

cout<<"一个月后乙的存款余额为: ¥";

saver2.calLiXi();

saver1.set(2000.0);saver2.set(3000.0);

cout<<"三个月后甲的存款余额为: ¥";

saver1.calLiXi(3);

cout<<"三个月后乙的存款余额为: ¥";

saver2.calLiXi(3);

}

2.程序设计题:修改实验二的类Student,添加一个静态成员变量,用于表示已创建

对象的数量;添加两个静态成员函数,一个用于输出已创建的对象的数量,一个用

于输出学生的学号和姓名。

五.实验预习与思考题

1.程序改错,课后练习3-39(1)。

2.思考并回答:什么是静态数据成员,什么是静态成员函数?它们与一般数据成员和

一般成员函数有何不同。静态数据成员和一般数据成员在内存分配方式上有什么区

别?

六.实验报告要求

1.实验分为三环节:实验预习,实验操作,报告完成。其中“实验预习”环节要求学

生在实验课前完成,涉及与实验相关知识点的复习与程序的编写;“实验操作”环

节在实验课上完成,主要涉及程序的调试;实验课后,完成实验报告的撰写。

2.实验报告格式统一,使用A4纸打印上交。

3.实验内容与记录中,应包含程序说明性文字,程序核心代码及相关注释,最后附上

程序运行结果。

实验四友元与常成员

一.实验目的

1)掌握面向对象的友元机制,特别是友员函数及友员类的概念

2)掌握常对象,常成员函数的概念

二.实验原理

1)友元函数

C++提供了一种函数,它虽然不是一个类的成员函数,但可以象成员函数一样访问该类的所有成员,包括私有成员和保护成员。这种函数称为友元(friend)函数。

2)友元类

友元的另一种类型是友元类,一个类可以声明另一个类为其友元类,这个友元类的所有成员函数都可以访问声明其为友元的类的所有成员。

3)常对象

用const修饰的对象叫对象常量,其格式如下:

〈类名〉const 〈对象名〉或者const 〈类名〉〈对象名〉

声明为常对象的同时必须被初始化,并从此不能改写对象的数据成员。

4)常成员函数

用const关键词说明的函数叫常成员函数。其格式如下:

〈类型〉〈函数名〉(〈参数表〉)const;

5)常成员函数的作用和功能:

常成员函数不能更新对象的数据,也不能调用非const修饰的成员函数。常对象只能调用类的常成员函数以及类的静态成员函数。

三.实验设备与器材

1.软件环境:操作系统:WIN98/ME/2000/XP;软件工具:Visual C++

2.硬件环境:个人电脑

四.实验内容与记录

1.程序设计题:将实验二中的类Date的“日期加一天”成员函数改为友员函数。

2.程序设计题:将实验二中得类Student的学生信息输出函数改为友员函数。

3.程序设计题:将实验二中的类Student的相关成员函数改为常成员函数。

五.实验预习与思考题

1.思考:常对象,普通对象,常成员函数以及普通成员函数之间的调用关系。

2.程序改错:课后练习3-39。

六.实验报告要求

1.实验分为三环节:实验预习,实验操作,报告完成。其中“实验预习”环节要求学

生在实验课前完成,涉及与实验相关知识点的复习与程序的编写;“实验操作”环

节在实验课上完成,主要涉及程序的调试;实验课后,完成实验报告的撰写。

2.实验报告格式统一,使用A4纸打印上交。

3.实验内容与记录中,应包含程序说明性文字,程序核心代码及相关注释,最后附上

程序运行结果。

实验五继承与派生

一.实验目的

1)掌握派生类的定义与实现

2)理解不同继承方式下基类成员在派生类中的访问属性变化

3)派生类构造函数的定义及调用顺序

4)理解继承结构中出现的二义性

5)掌握虚基类的概念

二.实验原理

1)三种继承方式的声明

public 公有继承

公有继承:在定义一个派生类时将基类的继承方式指定为public 的继承方式。

例如:class student : public person { }

private 私有继承

私有继承:在定义一个派生类时将基类的继承方式指定为private的继承方式。

例如:class student : private person { }

protected 保护继承

保护继承:在定义一个派生类时将基类的继承方式指定为protected的继承方式。

例如:class student : protected person { }

2)三种继承方式的区别

如表1指明了三种继承方式的区别,即派生类对基类成员的访问能力。

表 1 三种继承方式的区别

3)派生类对基类成员的访问形式主要有以下两种:

●内部访问:由派生类中的新增成员对从基类继承来的成员的访问。

●对象访问:在派生类外部,通过派生类的对象对从基类继承的成员的访问。

4)虚基类的声明

当某一个派生类Drv的多个直接基类是从另一个共同基类Base派生而来时,这些直接基类中从上一级基类Base继承来的成员就有相同的名称。在派生类Drv的对象中,这些同名的成员在内存中同时有多份拷贝。

如果要使这个公共基类Base在派生类Drv中只产生一份基类成员拷贝,则需要将这个基类设置为虚基类。

虚基类的作用是解决二义性问题,使得公共基类在它的派生类中只产生一份基类成员拷贝。

三.实验设备与器材

1.软件环境:操作系统:WIN98/ME/2000/XP;软件工具:Visual C++

2.硬件环境:个人电脑

四.实验内容与记录

1.分析以下程序。找出非法语句并在程序中注释非法的原因并写出删除非法语句后程

序的运行结果。

源代码:

#include

#include

class Base

{

private:

int pvx;

protected:

int ptf;

public :

void Setxf(int w, int f)

{

pvx = w; ptf = f;

}

void Print()

{

cout << "pvx= " << pvx << endl;

cout << "ptf= " << ptf << endl;

}

};

class Derive:private Base //私有继承

{

private:

double pvy ;

protected:

double ptz;

public:

int pd;

void Setvalue(int a, int b, double c, double d) {

pvx = a;

ptf = b + 6;

Setxf(a, b);

pvy = c;

ptz = d;

pd = 90;

}

void Output()

{

cout << "pvx= " << pvx << endl;

Print();

cout << "pvy= " << pvy << endl;

cout << "ptz= " << ptz << endl;

}

};

void main()

{

Derive obj;

obj.Setvalue(1, 6, 5.3, 3.8);

obj.Output();

obj.Setxf(101, 87);

cout << "pvx= " << obj.pvx << endl;

cout << "pvy= " << obj.pvy << endl;

cout << "ptz= "<

obj.pd = 68;

cout << "pd= " << obj.pd << endl;

system("pause");

}

2.分析以下程序。找出非法语句并在程序中注释非法的原因,并写出删除非法语句后

程序的运行结果。

源代码:

#include

#include

class Base

{

private:

int pvx;

protected:

int pty;

public:

int puz;

void setx(int a)

{

pvx = a;

}

int getx()

{

return pvx;

}

};

class Derive:protected Base // 保护继承

{

private:

int pva;

protected:

int ptb;

public:

int puc;

void setvalue(int a, int b, int c, int d, int e, int f)

{

pvx = a;

setx(a);

pty = b;

puz = c;

pva = d;

ptb = e;

puc = f;

}

void print()

{

cout << "pvx= " << pvx << endl;

cout << "pty= " << pty << endl;

cout << "puz= " << puz << endl;

cout << "pva= " << pva << endl;

cout << "ptb= " << ptb << endl;

cout << "puc= " << puc << endl;

}

};

void main()

{

Derive obj;

obj.setvalue(9, 8, 7, 6, 5, 4);

obj.print();

cout << "puc= " << obj.puc << endl;

system("pause");

}

3.分析以下程序。找出非法语句并在程序中注释非法的原因。

源代码:

#include

using namespace std;

class person

{

public :

char name[8];

char gender;

void show()

{ cout<< name <<" " << gender <<" " <

int age;

protected:

char address[20];

};

class teacher : public person //公有继承

{

private :

char tecpost[8] ;

char department[20];

public:

void putout()

{

cout << name << " " << address << endl;

cout << age << endl;

cout << department << " " << tecpost << endl;

}

};

class student : protected person //保护继承

{

public:

char stuno[15];

char school[20];

void putout()

{

cout<

cout<

cout<

}

};

class doctor : private person //私有继承

{

public:

char tel[13];

char position[15];

void putout()

{

cout<

cout<

cout<

}

};

void main()

{

teacher a;

student b;

doctor c;

cout<

cout<

cout<

cout<

cout<

cout<

cout<

}

4.分析以下程序。指出程序中哪些语句存在二义性。删除错误语句并运行出结果。源代码:

#include

#include

class Base

{

public:

int a;

void show()

{

cout << "Base::a= " << a << endl;

}

};

class Derive1:public Base //公有单继承

{

public:

int d1;

};

class Derive2:public Base //公有单继承

{

public:

int d2;

};

class Drv :public Derive1, public Derive2 //公有多继承{

public:

int d12;

void print()

{

cout << "d12= " << d12 << endl;

}

};

void main()

{

Drv objd;

objd.d1 = 9;

objd.a = 6;

objd.Derive1 :: a = 6;

objd.Derive1 :: show() ;

system("pause");

}

5.分析以下程序。回答如下问题:

1)程序能编译通过吗?问题何在?

2)试通过虚基类的方式解决该问题。

源代码:

#include

#include

class A

{

public:

int aa;

void func()

{

cout << " A aa= " << aa << endl;

cout << "class A " << endl;

}

};

class B:public A

{

protected:

int ba;

};

class C: public A

{

protected:

int ca;

};

class D:public B, public C

{

private:

int da;

public:

void print()

{

cout << "class D " << endl;

}

};

void main()

{

D d1;

d1.aa = 5;

d1.func();

d1.print();

system("pause");

}

6.程序设计:修改例题3-11中类Point和类Circle的定义,添加构造函数设置坐标和

半径。

7.程序设计:利用时间类Time和日期类Date多重派生出日期时间类DateTime,并实现

类的基本功能。

五.实验报告要求

1.实验分为三环节:实验预习,实验操作,报告完成。其中“实验预习”环节要求学

生在实验课前完成,涉及与实验相关知识点的复习与程序的编写;“实验操作”环

节在实验课上完成,主要涉及程序的调试;实验课后,完成实验报告的撰写。

链表实验报告

C语言程序设计实验报告 实验一:链表的基本操作一·实验目的 1.掌握链表的建立方法 2.掌握链表中节点的查找与删除 3.掌握输出链表节点的方法 4.掌握链表节点排序的一种方法 5.掌握C语言创建菜单的方法 6.掌握结构化程序设计的方法 二·实验环境 1.硬件环境:当前所有电脑硬件环境均支持 2.软件环境:Visual C++6.0 三.函数功能 1. CreateList // 声明创建链表函数 2.TraverseList // 声明遍历链表函数 3. InsertList // 声明链表插入函数 4.DeleteTheList // 声明删除整个链表函数 5. FindList // 声明链表查询函数 四.程序流程图 五.程序代码 #include #include typedef int Elemtype; typedef int Status; typedef struct node//定义存储节点 { int data;//数据域 struct node *next;//结构体指针 } *linklist,node;//结构体变量,结构体名称 linklist creat (int n)//创建单链表 { linklist head,r,p;//定义头指针r,p,指针 int x,i; head=(node *)malloc(sizeof(node));//生成头结点

r=head;//r指向头结点 printf("输入数字:\n"); for(i=n;i>0;i--)//for 循环用于生成第一个节点并读入数据{ scanf("%d",&x); p=(node *)malloc(sizeof(node)); p->data=x;//读入第一个节点的数据 r->next=p;//把第一个节点连在头结点的后面 r=p;//循环以便于生成第二个节点 } r->next=0;//生成链表后的断开符 return head;//返回头指针 } void output (linklist head)//输出链表 { linklist p; p=head->next; do { printf("%3d",p->data); p=p->next; } while(p); printf("\n") } Status insert ( linklist &l,int i, Elemtype e)//插入操作 { int j=0; linklist p=l,s; while(jnext; ++j; } if(!p || j>i-1) return -1; else { s=(node *)malloc(sizeof(node)); s->data=e; s->next=p->next; p->next=s; return 1; } } Status delect ( linklist &l,int i, Elemtype &e)//删除操作 { int j=0; linklist p=l,q; while(jnext) { p=p->next; ++j; } if(!p->next || j>i-1) return -1;

空间分析实验指导书

空间分析实验指导书 黎华 武汉理工大学资环学院 2011年9月

目录 实验一、市区择房分析 (2) 实验二、最短路径分析 (3) 实验三、寻找最佳路径 (5) 实验四(综合实验一)、学校选址规划 (7)

实验一、市区择房分析 1、背景 如何找到环境好、购物方便、小孩上学方便的居住区地段是购房者最关心的问题,因此购房者就需要从总体上对商品房的信息进行研究分析,选择最适宜的购房地段。 2、数据 ●城市市区交通网络图(network.shp) ●商业中心分布图(marketplace.shp) ●名牌高中分布图(school.shp) ●名胜古迹分布图(famous place.shp) 3、步骤 1)所寻找的区域应该满足以下条件 ●离主要交通要道200米之外,以减少噪音污染 ●在商业中心的服务范围内,服务范围以商业中心规模的大小(属性字段YUZHI)来 确定 ●距名牌高中在750米内,以便小孩上学便捷 ●距名胜古迹500米内,环境幽雅 2)对每个条件进行缓冲区分析,得到各个条件所对应的区域 3)运用空间叠置分析对上述4个图层进行叠加,得到适合的购房地段

实验二、最短路径分析 1.背景:在现实生活中寻求最短,最快,提高效率有着重大意义,而交通网络中要素的设置如权重的改变和阻强的设置对最短路径的选择也有着很大的影响,研究这些因子的改变究竟对最短路径能造成多大的影响,对于现实也有一定的指导意义。 2.目的:学会用ArcGIS9 进行各种类型的最短路径分析,了解内在的运算机理。 3.数据:试验数据位于\Chp7\Ex2,请将练习拷贝至E:\Chp7\Ex2\ 一个GeoDatabase 地理数据库:City.mdb,内含有城市交通网、超市分布图,家庭住址以及网络关系。 4.要求:应该能够给出到达指定目的地的路径选择方案根据不同的权重要求得到不同的最佳路径,并给出路径的长度;根据需求找出最近的设施的路径,这里是以超市为例。 (1)在网络中指定一个超市,要求分别求出在距离、时间限制上从家到超市的最佳路径。 (2)给定访问顺序,按要求找出从家经逐个地点达到目的地的最佳路径。 5.操作步骤: 首先打开ArcMap选择E:\Chp7\Ex2\city.mdb再双击后选择将整个要素数据集city加载进来。然后将place 点状要素以HOME 字段属性值进行符号化,1 值是家,0 值是超市,(1)无权重最佳路径的选择 1)在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标放在家和想要去的超市点上。 2)确认在Analysis 下拉菜单中的Options 按钮打开的Analysis Options 对话框中的weight 和weight filter 标签项全部是none,这样使得进行的最短路径分析是完全按照这个网络自身的长短来确定的。 3)点选追踪工作(Track task)下拉菜单选择寻找路径(find path)。单击solve 键,则最短路径将显示出来,这条路径的总成本将显示在状态列。 (2)加权最佳路径选择 1)在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标放在家和想去的某个超市点上。 2)选择Analysis 下拉菜单,选择Option按钮,打开Analysis Option对话框,选择Weight 标签页,在边的权重(edge weight)上,全部选择长度(length)权重属性。 3)点选追踪工作(Track task)下拉菜单选择寻找路径(find path)。单击solve键,则以长度为比重为基础的最短路径将显示出来,这条路径的总成本将显示在状态列。 4)上述是通过距离的远近选择而得到的最佳路径,而不同类型的道路由于道路车流量的问题,有时候要选择时间较短的路径,同样可以利用网络分析进行获得最佳路径。 这里的时间属性是在建网之前,通过各个道路的类型(主干道,次要道等)来给定速度属性,然后通过距离和速度的商值确定的,并将其作为属性设定于每个道路上,这里没有考虑红灯问题以及其他因素,而是一种理想情况,不过可以将其他的要素可以逐渐加入来完善。 (3)按要求和顺序逐个对目的点的路径的实现 1)在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标按照车辆访问的顺序逐个放在点上。

实验指导书

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

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

测试技术实验指导书及实验报告2006级用汇总

矿压测试技术实验指导书 学号: 班级: 姓名: 安徽理工大学 能源与安全学院采矿工程实验室

实验一常用矿山压力仪器原理及使用方法 第一部分观测岩层移动的部分仪器 ☆深基点钻孔多点位移计 一、结构简介 深基点钻孔多点位移计是监测巷道在掘进和受采动影响的整个服务期间,围岩内部变形随时间变化情况的一种仪器。 深基点钻孔多点位移包括孔内固定装置、孔中连接钢丝绳、孔口测读装置组成。每套位移计内有5~6个测点。其结构及其安装如图1所示。 二、安装方法 1.在巷道两帮及顶板各钻出φ32的钻孔。 2.将带有连接钢丝绳的孔内固定装置,由远及近分别用安装圆管将其推至所要求的深度。(每个钻孔布置5~6个测点,分别为;6m、5m、4m、3m、2m、lm或12m、10m、8m、6m、4m、2m)。 3.将孔口测读装置,用水泥药圈或木条固定在孔口。 4。拉紧每个测点的钢丝绳,将孔口测读装置上的测尺推至l00mm左右的位置后,由螺丝将钢丝绳与测尺固定在一起。 三、测试方法 安装后先读出每个测点的初读数,以后每次读得的数值与初读数之差,即为测点的位移值。当读数将到零刻度时,松开螺丝,使测尺再回到l00mm左右的位置,重新读出初读数。 ☆顶板离层指示仪 一、结构简介: 顶板离层指示仪是监测顶板锚杆范围内及锚固范围外离层值大小的一种监测仪器,在顶板钻孔中布置两个测点,一个在围岩深部稳定处,一个在锚杆端部围岩中。离层值就是围岩中两测点之间以及锚杆端部围岩与巷道顶板表面间的相对位移值。顶板离层指示仪由孔内固定装置、测量钢丝绳及孔口显示装置组成如图1所示。

二、安装方法: 1.在巷道顶板钻出φ32的钻孔,孔深由要求而定。 2.将带有长钢丝绳的孔内固定装置用安装杆推到所要求的位置;抽出安装杆后再将带有短钢丝绳的孔内固定装置推到所要求的位置。 3.将孔口显示装置用木条固定在孔口(在显示装置与钻孔间要留有钢丝绳运动的间隙)。 4.将钢丝绳拉紧后,用螺丝将其分别与孔口显示装置中的圆管相连接,且使其显示读数超过零刻度线。 三、测读方法: 孔口测读装置上所显示的颜色,反映出顶板离层的范围及所处状态,显示数值表示顶板的离层量。☆DY—82型顶板动态仪 一、用途 DY-82型顶板动态仪是一种机械式高灵敏位移计。用于监测顶底板移近量、移近速度,进行采场“初次来压”和“周期来压”的预报,探测超前支撑压力高 峰位置,监测顶板活动及其它相对位移的测量。 二、技术特征 (1)灵敏度(mm) 0.01 (2)精度(%) 粗读±1,微读±2.5 (3)量程(mm) 0~200 (4)使用高度(mm) 1000~3000 三、原理、结构 其结构和安装见图。仪器的核心部件是齿条6、指针8 以及与指针相连的齿轮、微读数刻线盘9、齿条下端带有读 数横刻线的游标和粗读数刻度管11。 当动态仪安装在顶底板之间时,依靠压力弹簧7产生的 弹力而站立。安好后记下读数(初读数)并由手表读出时间。 粗读数由游标10的横刻线在刻度管11上的位置读出,每小 格2毫米,每大格(标有“1”、“22'’等)为10毫米,微读数 由指针8在刻线盘9的位置读出,每小格为0.01毫米(共200 小格,对应2毫米)。粗读数加微读数即为此时刻的读数。当 顶底板移近时,通过压杆3压缩压力弹簧7,推动齿条6下 移,带动齿轮,齿轮带动指针8顺时针方向旋转,顶底板每 移近0.01毫米,指针转过1小格;同时齿条下端游标随齿条 下移,读数增大。后次读数减去前次读数,即为这段时间内的顶底板移近量。除以经过的时间,即得

单链表实验报告

计算机与信息技术学院综合性、设计性实验报告 一、实验目的 (1)熟悉顺序表的创建、取值、查找、插入、删除等算法,模块化程序设计方法。 二、实验仪器或设备 (1)硬件设备:CPU为Pentium 4 以上的计算机,内存2G以上 (2)配置软件:Microsoft Windows 7 与VC++6.0 三、总体设计(设计原理、设计方案及流程等) 设计原理: 单链表属于线性表,线性表的存储结构的特点是:用一组任意存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。因此,对于某个元素来说,不仅需要存储其本身的信息,还需要存储一个指示其直接后继的信息。 设计方案: 采用模块化设计的方法,设计各个程序段,最终通过主函数实现各个程序段的功能。设计时,需要考虑用户输入非法数值,所以要在程序中写入说可以处理非法数值的代码。 设计流程: 1. 引入所需的头文件; 2. 定义状态值; 3. 写入顺序表的各种操作的代码; 写入主函数,分别调用各个函数。在调用函数时,采用if结构进行判断输 入值是否非法,从而执行相应的程序 四、实验步骤(包括主要步骤、代码分析等) #include // EOF(=A Z 或F6),NULL #in clude // srand( ) ,rand( ),exit (n) #in clude // malloc( ),alloc( ),realloc() 等 #in clude // INT_MAX 等 #in clude #in clude #in clude // floor(),ceil( ),abs() #in clude // cout,ci n #in clude // clock( ),CLK_TCK,clock_t #defi ne TRUE 1 #defi ne FALSE 0 #defi ne OK 1 #defi ne ERROR 0 #defi ne INFEASIBLE -1

混凝土结构实验指导书及实验报告(学生用)

土木工程学院 《混凝土结构设计基本原理》实验指导书 及实验报告 适用专业:土木工程周淼 编 班级::学 号: 理工大学 2018 年9 月

实验一钢筋混凝土梁受弯性能试验 一、实验目的 1.了解适筋梁的受力过程和破坏特征; 2.验证钢筋混凝土受弯构件正截面强度理论和计算公式; 3.掌握钢筋混凝土受弯构件的实验方法及荷载、应变、挠度、裂缝宽度等数据的测试技术 和有关仪器的使用方法; 4.培养学生对钢筋混凝土基本构件的初步实验分析能力。 二、基本原理当梁中纵向受力钢筋的配筋率适中时,梁正截面受弯破坏过程表现为典型的三个阶段:第一阶段——弹性阶段(I阶段):当荷载较小时,混凝土梁如同两种弹性材料组成的组合梁,梁截面的应力呈线性分布,卸载后几乎无残余变形。当梁受拉区混凝土的最大拉应力达到混凝土的抗拉强度,且最大的混凝土拉应变超过混凝土的极限受拉应变时,在纯弯段某一薄弱截面出现首条垂直裂缝。梁开裂标志着第一阶段的结束。此时,梁纯弯段截面承担的弯矩M cr称为开裂弯矩。第二阶段——带裂缝工作阶段(II阶段):梁开裂后,裂缝处混凝土退出工作,钢筋应力急增,且通过粘结力向未开裂的混凝土传递拉应力,使得梁中继续出现拉裂缝。压区混凝土中压应力也由线性分布转化为非线性分布。当受拉钢筋屈服时标志着第二阶段的结束。此时梁纯弯段截面承担的弯矩M y称为屈服弯矩。第三阶段——破坏阶段(III阶段):钢筋屈服后,在很小的荷载增量下,梁会产生很大的变形。裂缝的高度和宽度进一步发展,中和轴不断上移,压区混凝土应力分布曲线渐趋丰满。当受压区混凝土的最大压应变达到混凝土的极限压应变时,压区混凝土压碎,梁正截面受弯破坏。此时,梁承担的弯矩M u 称为极限弯矩。适筋梁的破坏始于纵筋屈服,终于混凝土压碎。整个过程要经历相当大的变形,破坏前有明显的预兆。这种破坏称为适筋破坏,属于延性破坏。 三、试验装置

单链表的插入和删除实验报告

. 实验一、单链表的插入和删除 一、目的 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 二、要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 三、程序源代码 #include"stdio.h" #include"string.h" #include"stdlib.h" #include"ctype.h" typedef struct node //定义结点 { char data[10]; //结点的数据域为字符串 struct node *next; //结点的指针域 }ListNode; typedef ListNode * LinkList; // 自定义LinkList单链表类型 LinkList CreatListR1(); //函数,用尾插入法建立带头结点的单链表

ListNode *LocateNode(); //函数,按值查找结点 void DeleteList(); //函数,删除指定值的结点void printlist(); //函数,打印链表中的所有值 void DeleteAll(); //函数,删除所有结点,释放内存 //==========主函数============== void main() { char ch[10],num[10]; LinkList head; head=CreatListR1(); //用尾插入法建立单链表,返回头指针printlist(head); //遍历链表输出其值 printf(" Delete node (y/n):");//输入“y”或“n”去选择是否删除结点scanf("%s",num); if(strcmp(num,"y")==0 || strcmp(num,"Y")==0){ printf("Please input Delete_data:"); scanf("%s",ch); //输入要删除的字符串 DeleteList(head,ch); printlist(head); } DeleteAll(head); //删除所有结点,释放内存 } //==========用尾插入法建立带头结点的单链表

实验指导四空间大数据处理与地图投影

实验四空间数据处理与地图投影 一、实验目的 1.掌握空间数据处理(融合、拼接、剪切、交叉、合并)的基本方法,原理。 2.掌握地图投影变换的基本原理与方法。 3.掌握ArcGIS中投影的应用及投影变换的方法、技术,同时了解地图投影及其变换在实际中的应用。 二、实验准备 1.软件准备:ArcGIS 10.2 2.数据准备: (1)stationsll.shp(美国爱达荷州轮廓图) (2)idll.shp(美国爱达荷州滑雪场资料) 以上两个数据是以十进制表示经纬度数值的shapefile (3)snow.txt(美国爱达荷州40个滑雪场的经纬度值) (4)stations.shp,一个已投影的shapefile,用于检验习作2的投影结果 (5)idoutl.shp,基于爱达荷横轴墨卡托坐标系的爱达荷州轮廓图,用于检验习作3投影的正确性 三、实验容与步骤 1.空间数据处理 1.1 裁剪要素 ?在ArcMap中,添加数据“县界.shp”、“Clip.shp”(Clip 中有四个实体) ?开始编辑,激活Clip图层。选中Clip图层中的一个实体(注意不要选中“县界”中的实体!)

图4-1 编辑Clip ?点击按钮,打开ArcToolBox; ?选择“Analysis Tools->Extract”,双击“Clip”,弹出窗口剪切窗口,指定输入实体为“县界”,剪切实体为“Clip”(必须为多边形实体),并指定输出实体类路径及名称,这里请命名为“县界_Clip1” 如图4-5; 图4-2 工具箱

图4-3 剪切窗口 ?依次选中Clip主题中其它三个实体,重复以上的操作步骤,完成操作后将得到共四个图层——“县界_Clip1”,“县界_Clip2”,“县界_Clip3”,“县界_Clip4”); ?操作完成后,一定要“Save Editors”。 图4-4 生成四个剪切图层

智能仪器实验指导书.doc

《智能仪器》实验指导书 适用专业:电子信息专业 说明:实验课时数为8节课,可从以下实验中自行选取8学时进行实验 实验一模拟信号调理实验(有源滤波器的设计) 一、实验目的 1. 熟悉运算放大器和电阻电容构成的有源波器。 2. 掌握有源滤波器的调试。 二、实验学时 课内:2学时课外:2学时 三、预习要求 1. 预习有源低通、高通和带通滤波器的工作原理 2. 已知上限截止频率fH=480Hz,电容C=0.01uF,试计算图1所示电路形式的巴特沃斯二阶低通滤波器的电阻参数,运放采用OP-07。 3. 将图2中的电容C改为0.033uF,此时图2所示高通滤波器的下限截止频率fL=?。 四、实验原理及参考电路 在实际的电子系统中输入信号往往包含有一些不需要的信号成份,必须设法将它衰减到足够小的程度,或者把有用信号挑选出来。为此,可采用滤波器。 考虑到高于二阶的滤波器都可以由一阶和二阶有源滤波器构成,下面重点研究二阶有源滤波器。 1.二阶有源低通滤波器

二阶有源低通滤波器电路如图1所示。可以证明其幅频响应表达式为 图1 二阶有源低通滤波器图2 二阶有源高通滤波器 式中: 上限截止频率 当Q=0.707时,这种滤波器称为巴特沃斯滤波器。 2. 二阶有源高通滤波器 如果将图1中的R和C的位置互换,则可得二阶高通滤波器电路,如图2所示。令 和 可得其幅频响应表达式为

其下限截止频率 五、实验内容 1. 已知截止频率fH=200Hz,试选择和计算图1所示电路形式的巴特沃斯二阶低通滤波器的参数。运算放大器用OP-07。 2. 按图1接线,测试二阶低通滤波器的幅频响应。测试结果记入表1中。 表1 Vi=0.1V(有效值)的正弦信号 3. 按图2接线,测试二阶高通滤波器的幅频响应。测试结果记入表2中。 表2 Vi=0.1V(有效值)的正弦信号 4. 将图2中的电容C改为0.033uF,同时将1的输出与图2的输入端相连,测试它们串联起来的幅频响应。测试结果记入表3中。 表3 Vi=0.1V(有效值)的正弦信号 六、实验报告要求

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

土工实验指导书及实验报告编写毕守一 安徽水利水电职业技术学院 二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、从切削的余土中取代表性试样,供测定含水率以及颗粒分析、界限含水率等试验之用。

ACCESS2010数据库技术实验指导书3

《ACCESS2010数据库技术及应用》 实验指导(3) 学号: 姓名: 班级: 专业:

实验三窗体 实验类型:验证性实验课时: 4 学时指导教师: 时间:201 年月日课次:第节教学周次:第周 一、实验目的 1. 掌握窗体创建的方法 2. 掌握向窗体中添加控件的方法 3. 掌握窗体的常用属性和常用控件属性的设置 二、实验内容和要求 1. 创建窗体 2. 修改窗体,添加控件,设置窗体及常用控件属性 三、实验步骤 案例一:创建窗体 1.使用“窗体”按钮创建“成绩”窗体。 操作步骤如下: (1)打开“教学管理.accdb”数据库,在导航窗格中,选择作为窗体的数据源“教师”表,在功能区“创建”选项卡的“窗体”组,单击“窗体”按钮,窗体立即创建完成,并以布局视图显示,如图3-1所示。 (2)在快捷工具栏,单击“保存”按钮,在弹出的“另存为”对话框中输入窗体的名称“教师”,然后单击“确定”按钮。 图3-1布局视图 2.使用“自动创建窗体”方式 要求:在“教学管理.accdb”数据库中创建一个“纵栏式”窗体,用于显示“教师”表中的信息。 操作步骤: (1)打开“教学管理.accdb”数据库,在导航窗格中,选择作为窗体的数据源“教师”表,在功能区“创建”选项卡的“窗体”组,单击“窗体向导”按钮。如图3-2所示。 (2)打开“请确定窗体上使用哪些字”段对话框中,如图3-3 所示。在“表和查询”下拉列表中光图3-2窗体向导按钮

标已经定位在所学要的数据源“教师”表,单击按钮,把该表中全部字段送到“选定字段”窗格中,单击下一步按钮。 (3)在打开“请确定窗体上使用哪些字”段对话框中,选择“纵栏式”,如图3-4所示。单击下一步按钮。 (4)在打开“请确定窗体上使用哪些字”段对话框中,输入窗体标题“教师”,选取默认设置:“打开窗体查看或输入信息”,单击“完成”按钮,如图3-5所示。 (5)这时打开窗体视图,看到了所创建窗体的效果,如图3-6所示。 图3-3“请确定窗体上使用哪些字”段对话框 图3-4“请确定窗体使用的布局”段对话框中

实验指导书

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

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

CAD上机实验指导书及实验报告

北京邮电大学世纪学院 实验、实习、课程设计报告撰写格式与要求 (试行) 一、实验报告格式要求 1、有实验教学手册,按手册要求填写,若无则采用统一实验报告封面。 2、报告一律用钢笔书写或打印,打印要求用A4纸;页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 3、统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。 4、实验报告中的实验原始记录,须经实验指导教师签字或登记。 二、实习报告、课程设计报告格式要求 1、采用统一的封面。 2、根据教学大纲的要求手写或打印,手写一律用钢笔书写,统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。打印要求用A4纸;页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 三、报告内容要求 1、实验报告内容包括:实验目的、实验原理、实验仪器设备、实验操作过程、原始数据、实验结果分析、实验心得等方面内容。 2、实习报告内容包括:实习题目、实习任务与要求、实习具体实施情况(附上图表、原始数据等)、实习个人总结等内容。 3、课程设计报告或说明书内容包括:课程设计任务与要求、总体方案、方案设计与分析、所需仪器设备与元器件、设计实现与调试、收获体会、参考资料等方面内容。 北京邮电大学世纪学院 教务处 2009-8

实验报告 课程名称计算机绘图(CAD) 实验项目AutoCAD二维绘图实验 专业班级 姓名学号 指导教师实验成绩 2016年11月日

单链表实验报告

数据结构 课程设计 设计题目:单链表 专业班级:11软会四班 指导教师:吉宝玉 日期:2012 目录 一、实验目的 (2) 1、 (2) 2、 (2) 二、实验内容 (3)

三、实验基本要求(软、硬件) (3) 四、算法设计思想 (3) 1、 (3) 2、 (3) 3、 (3) 4、 (3) 5、 (3) 6、 (3) 7、 (3) 8、 (3) 五、算法流程图 (4) 六、算法源代码 (4) 七、运行结果 (9) 1、 (9) 2、 (10) 3、 (11) 4、 (11) 5、 (11) 6、 (12) 7、 (12) 8、 (13) 9、 (13) 八、收获及体会 (14) 一、实验目的 1、理解并掌握单链表的结构特点和相关概念; 2、学会单链表的基本操作:建立、插入、删除、查找、 输入、撤销、逆置、求前驱和后继等并实现其算法。

二、实验内容 利用头插建立一个带头结点的单链表,并用算法实现该单链表的插入、删除查找、输出、求前驱和后继、再把此单链表逆置,然后在屏幕上显示每次操作的结果当所有操作完成后能撤销该单链表。 三、实验基本要求(软、硬件) 用VC++6.0软件平台,操作系统:Windows XP 硬件:内存要求:内存大小在256MB,其他配置一般就行。 四、算法设计思想 1、定义一个创建链表的函数,通过该函数可以创建一个链表,并为下面的函数应用做 好准备。 2、定义输出链表的算法,通过对第一步已经定义好的创建链表函数的调用,在这一步 通过调用输出链表的函数算法来实现对链表的输出操作。 3、定义一个遍历查找的算法,通过此算法可以查找到链表中的每一个节点是否存在。 4、定义查找链表的每一个前驱和后继,通过定义这个算法,可以很容易的实现对链表 的前驱和后继的查找工作。 5、定义插入节点的算法,通过定义这个算法,并结合这查找前驱和后继的算法便可以 在连链表的任意位置进行插入一个新节点。 6、定义删除节点的操作,这个算法用于对链表中某个多余节点的删除工作。 7、定义一个逆置单链表的操作,通过定义这个算法,可以逆置输出单链表。 8、定义一个撤销链表的算法,这个算法用于删除单链表中的所有节点,使链表为空。

oracle数据库实验指导书

计算机科学学院《ORACLE数据库》实验指导书

《ORACLE数据库》实验指导书 实验一Oracle数据库安装配置以及基本工具的使用 1.实验的基本内容 实验室中oracle数据库安装后某些服务是关闭的(为了不影响其他课程的使用),所以在进入数据库前需要对oracle进行配置: (1)启动oracle OraHomeTNSLISTENER 和oracleserviceORACLE 两个服务 (2)修改listener.ora 和tnsnames.ora 两个文件的内容 (3)以用户名:system ,口令:11111 以“独立登录”的方式进入oracle 数据库系统 (4)熟悉数据库中可用的工具。 2.实验的基本要求 (1)掌握Oracle11g的配置以及登录过程。 (2)熟悉系统的实验环境。 3.实验的基本仪器设备和耗材 计算机 4.实验步骤 (1) 查看设置的IP地址是否与本机上的IP地址一致。若不一致则修改为本机IP地址。 (2) 启动oracle OraHomeTNSLISTENER 和oracleserviceORACLE 两个服务 控制面板/性能与维护/管理工具/服务/ oracle OraHomeTNSLISTENER(右击/启动)。 控制面板/性能与维护/管理工具/服务/ oracleserviceORACLE(右击/启动) (3) 修改listener.ora 和tnsnames.ora 两个文件的内容 D:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN (用记事本方式打开),将HOST=“…..”内容修改为本机的IP地址,保存退出。 D:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN (用记事本方式打开),将HOST=“…..”内容修改为本机的IP地址,保存退出。 (4) 启动oracle 数据库

实验指导书

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

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

《流体力学》课程实验(上机)指导书及实验报告格式

《流体力学》课程实验指导书袁守利编 汽车工程学院 2005年9月

前言 1.实验总体目标、任务与要求 1)学生在学习了《流体力学》基本理论的基础上,通过伯努利方程实验、动量方程实 验,实现对基本理论的验证。 2)通过实验,使学生对水柱(水银柱)、U型压差计、毕托管、孔板流量计、文丘里流量计等流体力学常用的测压、测流量装置的结构、原理和使用有基本认识。 2.适用专业 热能与动力工程 3.先修课程 《流体力学》相关章节。 4.实验项目与学时分配 5. 实验改革与特色 根据实验内容和现有实验条件,在实验过程中,采取学生自己动手和教师演示相结合的方法,力求达到较好的实验效果。

实验一伯努利方程实验 1.观察流体流经实验管段时的能量转化关系,了解特定截面上的总水头、测压管水头、压强水头、速度水头和位置水头间的关系,从而加深对伯努利方程的理解和认识。 2.掌握各种水头的测试方法和压强的测试方法。 3.掌握流量、流速的测量方法,了解毕托管测速的原理。 二、实验条件 伯努利方程实验仪 三、实验原理 1.实验装置: 图一伯努利方程实验台 1.水箱及潜水泵 2.上水管 3.电源 4.溢流管 5.整流栅 6.溢流板 7.定压水箱 8.实验 细管9. 实验粗管10.测压管11.调节阀12.接水箱13.量杯14回水管15.实验桌 2.工作原理 定压水箱7靠溢流来维持其恒定的水位,在水箱下部装接水平放置的实验细管8,水经实验细管以恒定流流出,并通过调节阀11调节其出水流量。通过布置在实验管四个截面上的四组测压孔及测压管,可以测量到相应截面上的各种水头的大小,从而可以分析管路中恒定流动的各种能量形式、大小及相互转化关系。各个测量截面上的一组测压管都相当于一组毕托管,所以也可以用来测管中某点的流速。 电测流量装置由回水箱、计量水箱和电测流量装置(由浮子、光栅计量尺和光电子

数据结构实验报告 - 答案汇总

数据结构(C语言版) 实验报告

专业班级学号姓名 实验1 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤: 1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序 的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序: (1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码: #include"stdio.h" #include"string.h" #include"stdlib.h" #include"ctype.h" typedef struct node //定义结点 { char data[10]; //结点的数据域为字符串 struct node *next; //结点的指针域 }ListNode; typedef ListNode * LinkList; // 自定义LinkList单链表类型 LinkList CreatListR1(); //函数,用尾插入法建立带头结点的单链表 LinkList CreatList(void); //函数,用头插入法建立带头结点的单链表 ListNode *LocateNode(); //函数,按值查找结点 void DeleteList(); //函数,删除指定值的结点 void printlist(); //函数,打印链表中的所有值 void DeleteAll(); //函数,删除所有结点,释放内存

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