当前位置:文档之家› 实验指导书_sqlserver2005

实验指导书_sqlserver2005

实验指导书_sqlserver2005
实验指导书_sqlserver2005

《Sql Sever2005数据库原理及应用》

实验指导书

目录

实验1 通过E-R图设计关系数据模型 (3)

【实验目的】 (3)

【实验环境】 (3)

【实验内容】 (3)

实验2 确定表中的关键字 (4)

【实验目的】 (4)

【实验环境】 (4)

【实验重点及难点】 (4)

【实验内容】 (4)

实验3 规范化数据 (5)

【实验目的】 (5)

【实验环境】 (5)

【实验重点及难点】 (5)

【实验内容】 (5)

实验4 服务器的启动、暂停和停止 (7)

【实验目的】 (7)

【实验环境】 (7)

【实验重点及难点】 (7)

【实验内容】 (7)

实验5 创建并管理数据库 (11)

【实验目的】 (11)

【实验环境】 (11)

【实验重点及难点】 (11)

【实验内容】 (11)

实验6 创建表并输入数据 (12)

【实验目的】 (12)

【实验环境】 (12)

【实验重点及难点】 (12)

【实验内容】 (13)

实验7 使用Select 语句查询数据(一)——简单查询 (15)

【实验目的】 (15)

【实验环境】 (15)

【实验重点及难点】 (15)

【实验内容】 (15)

实验8 使用Select 语句查询数据(二)——汇总查询 (17)

【实验目的】 (17)

【实验环境】 (17)

【实验重点及难点】 (17)

【实验内容】 (17)

实验9 使用Select 语句查询数据(三)——连接查询和子查询 (19)

【实验目的】 (19)

【实验环境】 (19)

【实验重点及难点】 (19)

【实验内容】 (19)

实验10 创建视图并通过视图操作表数据 (20)

【实验目的】 (20)

【实验环境】 (20)

【实验重点及难点】 (20)

【实验内容】 (20)

实验11 使用规则实现数据完整性 (22)

【实验目的】 (22)

【实验环境】 (22)

【实验重点及难点】 (22)

【实验内容】 (22)

实验12 使用 T-SQL 编写程序 (24)

【实验目的】 (24)

【实验环境】 (24)

【实验重点及难点】 (24)

【实验内容】 (24)

实验13 使用触发器实现数据完整性 (26)

【实验目的】 (26)

【实验环境】 (26)

【实验重点及难点】 (26)

实验14 为用户设置权限 (29)

【实验目的】 (29)

【实验环境】 (29)

【实验重点及难点】 (29)

实验15导入导出数据 (30)

【实验目的】 (30)

【实验环境】 (30)

【实验重点及难点】 (30)

实验1 通过E-R图设计关系数据模型

【实验目的】

1)熟悉E-R模型的基本概念和图形的表示方法。

2)掌握将现实世界的事物转化成E-R图的基本技巧。

3)熟悉关系数据模型的基本概念。

4)掌握将E-R图转化成关系表的基本技巧。

【实验环境】

Sql server 2005

【实验重点及难点】

1)根据需求确定实体、属性和联系。

2)将实体、属性和联系转化为E-R图。

3)将E-R图转化为表。

【实验内容】

(1)设计能够表示出班级与学生关系的数据模型

1)确定班级实体和学生实体的属性和码。

2)确定班级和学生之间的联系,给联系命名并指出联系的类型。

3)确定联系本身的属性。

4)画出班级和学生关系的E-R图。

5)将E-R图转化为表,写出表的关系模式并标明各自的主键或外键。

(2)设计能够表示出顾客与商品关系的数据模型

1)确定顾客实体和商品实体的属性和码。

2)确定顾客和商品之间的联系,给联系命名并指出联系的类型。

3)确定联系本身的属性。

4)画出顾客与商品关系的E-R图。

5)将E-R图转化为表,写出表达关系模式并标明各自的主键或外键。

(3)设计能够表示出学校与校长关系的数据模型

1)确定学校实体和校长实体的属性和码。

2)确定学校和校长之间的联系,给联系命名并指出联系的类型。

3)确定联系本身的属性。

4)画出学校与校长关系的E-R图。

5)将E-R图转化为表,写出表达关系模式并标明各自的主键或外键。

(4)设计能够表示出房地产交易中客户、业务员和合同三者之间的关系的数据模型

1)确定客户实体、业务员实体和合同的属性和码。

2)确定客户实体、业务员实体和合同之间的联系,给联系命名并指出联系的类型。

3)确定联系本身的属性

4)画出客户实体、业务员实体和合同关系的E-R图

5)将E-R图转化为表,写出表达关系模式并标明各自的主键或外键

实验2 确定表中的关键字

【实验目的】

1)正确理解候选键、主键、组合键、外键的基本概念。

2)能够正确判断给定表中各种类型的键。

3)在设计数据库时能正确指定各种类型的键,知道如何实施数据的完整性。【实验环境】

Sql server 2005

【实验重点及难点】

1)复习候选键、主键、外键、组合键以及数据完整性的基本概念。

2)在给出的部门表和员工表中能正确标识出各种类型的键。

【实验内容】

1)写出候选键、主键、组合键、外键、实体完整性、域完整性、参照完整性的定义。

2)已知部门表和员工表如下所示:

部门表

部门代码部门名负责人地点

0001 生产部李华江重庆荣昌县

0002 销售部张丽重庆渝中区

0003 市场部王欣重庆江北区

员工表

员工代码姓名家庭住址联系电话邮政编码部门代码200001 王华重庆67690986 401147 0001 200002 李想成都54387659 508763 0003 200003 张丽上海67893542 208761 0002 200004 李江华重庆76549873 400054 0001

3)确定部门表和员工表中的候选键,并陈述理由。

4)在候选键中确定部门表和员工表的主键。

5)确定部门表和员工表中的共有属性。

6)指出哪个表中的哪个属性时外键。

7)确定哪个表是主表,哪个表是从表。

8)回答问题:部门表和员工表是如何通过关键字实施数据完整性的?

实验3 规范化数据

【实验目的】

1)了解函数(数据)依赖的基本概念。

2)能正确判断某一关系属于第几范式。

3)掌握规范化数据的方法。

【实验环境】

Sql server 2005

【实验重点及难点】

1)复习函数(数据)依赖、数据规范化、范式的基本概念以及各级范式的判别标准。

2)判断给定的表满足哪级别范式的条件。

3)将给定的表转换成特定等级的范式条件的表。

【实验内容】

1)写出函数(数据)依赖、数据规范化、范式的定义以及各级范式的判别标准。2)项目表1,判断是否满足第一范式的条件并说明理由。

项目表1

项目代码职员代码部门累计工作时间P27

P51 P20 E101 系统集成部

90

101

60

P27 P22 E305 销售部

109

98

P51 P27 E508 行政办公室

NULL

72

3)项目表2,判断是否满足第二范式的条件并说明理由。

项目表2

项目代码职员代码部门累计工作时间P27 E101 系统集成部90

P51 E101 系统集成部101

P20 E101 系统集成部60

P27 E305 销售部109

P22 E305 销售部98

P51 E508 行政办公室NULL

P27 E508 行政办公室72

4)职员表,判断其是否满足第三范式的条件并说明理由。

职员表

职员代码部门部门负责人代码

E101 系统集成部E901

E305 财务部E309

E402 销售部E909

E508 行政办公室E908

E607 财务部E909

E608 财务部E909

5)项目表3,判断其是否满足BCNF的条件并说明理由。

项目表3

项目代码职员代码职员姓名累计工作时间P2 E1 李华玉48

P5 E2 陈家伟100

P6 E3 张勤15

P3 E4 谢成全250

P5 E4 谢成全75

P5 E1 李华玉40

6)将项目表1转换成满足第一范式条件的表。

7)将项目表2转换成满足第二范式条件的表。

8)将职员表转换成满足第三范式条件的表。

9)将项目表3转换成满足BCNF条件的表。

10)回答问题:规范化数据带来的不利影响是什么?

实验4 服务器的启动、暂停和停止

【实验目的】

1)熟悉SQL Server 2005 配置管理器。

2)掌握服务器的启动方法。

3)掌握服务器的暂停方法。

4)掌握服务器的停止方法。

【实验环境】

Sql server 2005

【实验重点及难点】

利用SQL Server配置管理器实现服务器的启动、暂停和停止。

【实验内容】

实训1 服务器管理

启动,暂停和停止服务的方法很多,这里主要介绍SQL Server 配置管理器完成这些操作,其操作步骤如下:

1)单击“开始”---“Microsoft SQL Server 2005”-----“配置工具”,选择“SQL Server Configuration Manager”,打开SQL Setver配置管理器,如图2-52

所示。单击“SQL Server 2005服务”选项,在右边的对话框里可以看到

本地所有的SQL Server服务,包括不同实例的服务,如图2-53所示。

2)如果要启动、停止、暂停SQL Server服务的话,鼠标指向服务名称,单击右键,在弹出的快捷键菜单里选择“启动”、“停止”、“暂停”即可。实训2 服务器注册

服务器注册主要为注册本地或者远程SQL Server服务器。打开SQL Server 2005下Management Studio,进行服务器注册。注册步骤如下:

图2-52 SQL Server 配置服务管理器(一)

图2-53 SQL Server 配置管理器(二)

1)在视图菜单中单击“已注册的服务器”菜单选项显示出已注册的服务器,如图2-54所示。

图2-54 已注册服务器

2)在右上角已注册的服务器中,选择注册类型进行相应服务类型注册。3)在选定的服务类型的树型架构的根部单击鼠标右键,选择“新建”菜单下面的“服务器组”进行组的建立,如图2-55所示。

4)输入服务器组名称,单击保存即可,如图2-56所示。

图2-56 新建服务器组

5)在新建的服务器组下面注册服务器,在新建服务器节点处单击鼠标右键,弹出菜单,选择新建选项下面的服务器注册选项,进行服务器注册,如图2-57所示。填写服务器名称,选择相应的认证方式,输入用户名及

密码,完成注册。

图2-57 新建服务器注册

【实验目的】

1)熟悉SQL Server Management Studio 窗口。

2)掌握创建数据库的方法。

3)掌握管理数据库的方法。

【实验环境】

Sql server 2005

【实验重点及难点】

1)启动SQL Server Management Studio 窗口。

2)创建XSCJ 数据库。

3)修改XSCJ 数据库。

4)分离XSCJ 数据库。

5)附加XSCJ 数据库。

【实验内容】

1)打开“SQL Server Management Studio”窗口,在“对象资源管理器”中展开服务器,鼠标右键单击“数据库”节点,单击“新建数据库”命令,会出现“新建数据库”对话框。

2)在对话框的“数据库名称”框内输入数据库名“XSCJ”后,单击“确定”

按钮即可创建默认大小的数据库。

3)鼠标右键单击“XSCJ”数据库,在弹出的快捷菜单中选择“属性”命令,会出现“数据库属性”对话框;在对话框中单击“文件”选项卡,可以增加或删除数据库文件,单击“确定”按钮即可完成数据库的修改。

4)鼠标右键单击“XSCJ”数据库,在弹出的快捷菜单中选择“任务”→“分离”命令,会出现“分离数据库”对话框,单击“确定”按钮即可完成数据库的分离。

5)鼠标右键单击“数据库”,在弹出的快捷菜单里选择“附加”命令,会出现“附加数据库”对话框,在该对话框中单击“添加”按钮,会出现“定位数据库文件”对话框,在改对话框中,选择要附加的数据库文件(.mdf),单击“确定”按钮后,返回到“附加数据库”对话框,再单击“确定”按钮即可完成数据库的附加。

【实验目的】

1) 熟悉创建数据表的操作

2)掌握创建数据表的操作

3)掌握数据输入和修改的操作

【实验环境】

Sql server 2005

【实验重点及难点】

1)在xscj数据库中分别创建学生情况表xsqk,课程表kc,学生与课程表xs_kc,并表结构分别如表4-5,表4-6表4-7所示

列名数据类型长度属性约束

学好Char 6 是否允许

为空置

默认值标识符主键

否无

姓名Char 8 否无唯一

性别Bit 1 否 1 0或1

出生日期Smalldateti

me

4 否无

表4-5

列名数据类型长度属性约束

是否允许为空置默认

标识

所在系Char 10 否无

专业名Char 10 否无

联系电话Char 11 是无6为数字

总学分Tinyint 1 是无0~200

备注Text 30 是无

表4-6

列名数据类型长度属性约束

是否允许

为空值

默认值标识列

序号Int 4 初始值

增量为1

课程号Char 3 否无主键

课程名Char 20 否无

授课教师Char 8 无

开课学期Tinyint 1 否 1 只能为1~6 学时Tinyint 1 无

学分Tinyint 1 无

表4-7

列名数据类型长度属性约束

是否允许

为空

默认值

学号Char 6 否无外键,参

照XSQK

表组合为主键

课程号Char 3 否无外键,参

照cK表

成绩Tinyint 1 无0~100

学分Tinyint 1 无

2)分别向XSQK, KC XS_KC表中输入数据,其内容由用户自定义

【实验内容】

1)打开“SQL server Management Studio”窗口,单击在’标准”工具栏汇总“新建查询”按钮,会出现如图所示的界面

2)在“SQL编辑器”工具栏中,单击“可用数据库”右边的下拉按钮,将当前数据库切换成”XSCJ”库

3)在查询窗口中,输入如下的命令

CREATE TABLE XSQK

(学号CHAR(6) NOT NULL,

姓名CHAR(8) NOT NULL,

性别BIT NOT NULL DEFAULT 1,

生日SMALLEATETIME NOT NULL,

专业CHAR(10) NOT NULL,

所在系CHAR(10) NOT NULL,

联系电话CHAR(11),

总学分TINYINT,

备注TEXT,

CONSTRAINT PK_XSQK_XH PRIMART KEY(学号),

CONSTRAINT UQ_XSQK_DH UNIQUE(姓名),

CONSTRAINT CK_XSQK_XB CHECK(姓名=1 OR 姓名=0) CONSTRAINT CK_XSQK_DH CHECK(联系电话LIKE’【1-9】【1-9】【1-9】【1-9】【1-9】【1-9】‘),

CONSTRAINT CK_XSQK_ZXF CHECK(总学分<=0 AND 总学分<=200》))

GO

CREATE TABLE KC

(序号INT INDENTITY,

课程号CHAR(3) NOT NULL PRIMARY KEY(课程号),

课程名CHAR(20) NOT NULL ,

授课教师CHAR(8),

开课上学期TINYINT NOT NULL DEFAULT 1,

学时TINYINT NOT NULL,

学分TINYINT,

CONSTRAINT CK_KC_XQ CHECK(开课学期>=1 AND 开课学期<=6))

GO

CREATE TABLE XS_KE

( 学号CHAR(6) NOT NULL REFERENCES XSQK(学号),

课程号CHAR(3) NOT NULL,

成绩TINYINT CHECK(成绩>=0 AND 成绩<=100),

学分TINYINT ,

PRIMARY KEY(学号,课程号),

FOREIGN KEY(课程号) REFERENCED KE(课程号))

4)在“SQL编辑器’工具栏中,单击”执行“阿牛,XSQK KE XS_KE 表创建成功后,在结果窗口会出现”命令以成功’的信息提示,如图

5)在“对象资源管理器“中展开数据库”XSCJ”鼠标右键单击”表“节点,在弹出的快捷菜单中单击”刷新“命令,课看到个那个创建号的上面3张表

实验7 使用Select 语句查询数据(一)——简单查询

【实验目的】

掌握SELECT语句的使用和简单查询方法。

【实验环境】

Sql server 2005

【实验重点及难点】

1)启动SQL Server 2005查询环境。

2)涉及单表的简单查询。

【实验内容】

1) 打开“SQL Server Management Studio”窗口。

2) 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口

3) 在窗口中输入以下SQL查询命令并执行:

a.在KC表中,查询第2学期开课的课程、授课教师

select 课程名, 授课教师, 开课学期

from kc

where 开课学期=2

b.在XSQK表中,查询女同学的姓名和电话号码

select 姓名, 性别, 联系电话

from xsqk

where 性别=0

c.在XS_KC表中,查询成绩在80分以上的学号、课程号和成绩

select 学号, 课程号, 成绩

from xs_kc

where 成绩>=80

d.在XS_KC表中,查询在80以上和不及格学生的信息

select 学号, 课程号, 成绩

from xs_kc

where 成绩>=80 or 成绩<60

e.在XSQK表中,查询不在1980年7、8、9月出生的学生信息

select 学号, 姓名, 出生日期

from xsqk

where 出生日期not between ‘1980-07-07’and ‘1980-09-30’

f. 在XSQK表中,擦汗寻陈姓且单名的信息

select *

from xsqk

where 姓名like ‘陈_’

g.在XSQK表中,查询学号中含有1的记录信息

select *

from xsqk

where 学号like ‘%1%’

h.在XSQK表中,查询电话号码第7位为4和6的记录信息

select *

from xsqk

where 联系电话like ‘_ _ _ _ _ _ [46] _’

i.在KC表中,查询第一、三、五学期开设的课程信息

select *

from kc

where 开课学期in (1, 3, 5)

j.查询XSQK表,输出学号、姓名、出生日期、并使查询结构按出生日期升序排列

select 学号, 姓名, 出生日期

from xsqk

order by 出生日期

实验8 使用Select 语句查询数据(二)——汇总查询

【实验目的】

掌握数据汇总查询及其相关子句的使用。

【实验环境】

Sql server 2005

【实验重点及难点】

1)启动SQL Server 2005查询环境。

2)涉及单表的汇总查询。

【实验内容】

1) 打开“SQL Server Management Studio”窗口。

2) 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口

3)在窗口中输入以下SQL查询命令并执行:

a.在KC表中,统计每学期的总分数

select 开课学期, sum(学分) as 各学期的学分合计

from kc

group by 开课学期

b.在XS_KC表中统计每个学生的选修课程的门数

select 学号, count(*) as 每个学生选修的课程门数

from xs_kc

group by 学号

c.统计KC表中的总学分,并显示明细信息

select 课程名称, 开课学期, 学分

from kc

compute sum(学分)

d.按开课学期统计KC表中各期的学分,并显示明细信息

select 课程名称, 开课学期, 学分

from kc

order by 2

compute sum(学分) by 开课学期

e.将XS_KC表中的数据记录按学号分类汇总,输出学号和平均分

select 学号, avg(成绩) as 学生的平均分

from xs_kc

group by 学号

f.查询平均分大于70且小于80的学生学号和平均分

select 学号, avg(成绩) as 学生的平均分

from xs_kc

group by 学号

having avg(成绩) between 70 and 80

g.查询XS_KC表,输出学号、课程号、成绩,并使查询结果首先按照课程号的升序排列,当课程号相同时再按照成绩降序排列,并将查询结果保存到新表TEMP_KC中

select 学号, 课程号, 成绩

into temp_kc

from xs_kc

order by 课程号, 成绩desc

h.查询选修了“101”课程的学生的最高分和最低分

select max(成绩) as 101课程的最高分, min(成绩) as 101课程的最低分from xs_kc

where 课程号=’101’

i.统计每个学期所开设的课程门数

select 开课学期, count(*) as 每学期开设的课程门数

from kc

group by 开课学期

j.查询各专业的学生人数

select 专业名, count(专业名) as 各专业人数

from xsqk

group by 专业名

实验9 使用Select 语句查询数据(三)——连接查询和子查询

【实验目的】

1)掌握内连接的查询方法。

2)了解子查询的查询方法。

【实验环境】

Sql server 2005

【实验重点及难点】

1)启动SQL Server 2005查询环境。

2)涉及多表的复杂查询。

【实验内容】

1) 打开“SQL Server Management Studio”窗口。

2) 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口

3)在窗口中输入以下SQL查询命令并执行:

a.查询不及格学生的学号、课程名、授课教师、开课学期的信息

select 学号, xs_kc.课程号, 授课教师, 开课学期, 成绩

from kc, xs_kc

where kc.学号=xs_kc.学号and 成绩<60

b.按学号分组汇总总分高于100的学生记录,并按总分的降序排列select 学号, sum(成绩) as 各学生的总分

from xs_kc

group by 学号

having sum(成绩)>=100

order by sum(成绩) desc

c.使用子查询求恰好有两门课程不及格的学生信息

select 学号, 姓名

from xsqk

where (select count(课程号)

from xs_kc

where xsqk.学号=xs_kc.学号and 成绩>=60 )=2

d.使用子查询查询每门课程的最高分的学生记录

select *

from xs_kc a

where 成绩=(select max(成绩)

from xs_kc b

where a.课程号=b.课程号)

e.使用子查询查询每个学生的最低分的课程记录

select *

from xs_kc a

where 成绩=(select min(成绩)

from xs_kc b

where a.学号=b.学号)

链表实验报告

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;

《数据结构》实验报告 设计循环单链表

《数据结构》实验报告 1、实验名称:设计循环单链表 2、实验日期: 2013-3-26 3、基本要求: 1)循环单链表的操作,包括初始化、求数据元素个数、插入、删除、取数据元素; 2)设计一个测试主函数实际运行验证所设计循环单链表的正确性。 4、测试数据: 依次输入1,2,3,4,5,6,7,8,9,10,删除5,再依次输出数据元素。 5、算法思想或算法步骤: 主函数主要是在带头结点的循环单链表中删除第i个结点,其主要思想是在循环单链表中寻找到第i-1个结点并由指针p指示,然后让指针s指向a[i]结点,并把数据元素a[i]的值赋给x,最后把a[i]结点脱链,并动态释放a[i]结点的存储空间。 6、模块划分: 1)头文件LinList.h。头文件LinList.h中包括:结点结构体定义、初始化操作、求当前数据个数、插入一个结点操作、删除一个结点操作以及取一个数据元素操作; 2)实现文件dlb.cpp。包含主函数void main(void),其功能是测试所设计的循环单链表的正确性。

7、数据结构: 链表中的结点的结构体定义如下: typedef struct Node { DataType data; struct Node *next; }SLNode; 8、源程序: 源程序存放在两个文件中,即头文件LinList.h和实现文件dlb.cpp。//头文件LinList.h typedef struct Node { DataType data; struct Node *next; }SLNode; void ListInitiate(SLNode **head) //初始化 { *head=(SLNode *)malloc(sizeof(SLNode)); //申请头结点,由head指示其地址 (*head)->next=*head; }

测试技术实验指导书及实验报告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小格;同时齿条下端游标随齿条 下移,读数增大。后次读数减去前次读数,即为这段时间内的顶底板移近量。除以经过的时间,即得

实验空间数据库管理及属性编辑实验报告

实验报告 一、实验名称 二、实验目的 三、实验准备 四、实验内容及步骤 五、实验后思考题 班级:资工(基)10901 姓名:魏文风 序号:28 实验二、空间数据库管理及属性编辑 一、实验目的 1.利用ArcCatalog管理地理空间数据库,理解Personal Geodatabse空间数据库模型的有关概念。 2.掌握在ArcMap中编辑属性数据的基本操作。 3.掌握根据GPS数据文件生成矢量图层的方法和过程。 4.理解图层属性表间的连接(Join)或关联(Link)关系。 二、实验准备 预备知识: ArcCatalog 用于组织和管理所有GIS 数据。它包含一组工具用于浏览和查找地理数据、记录和浏览元数据、快速显示数据集及为地理数据定义数据结构。 ArcCatalog 应用模块帮助你组织和管理你所有的GIS 信息,比如地图,数据集,模型,元数据,服务等。它包括了下面的工具: ●浏览和查找地理信息。 ●记录、查看和管理元数据。 ●创建、编辑图层和数据库 ●导入和导出geodatabase 结构和设计。 ●在局域网和广域网上搜索和查找的GIS 数据。

管理ArcGIS Server。 ArcGIS 具有表达要素、栅格等空间信息的高级地理数据模型,ArcGIS支持基于文件和DBMS(数据库管理系统)的两种数据模型。基于文件的数据模型包括Coverage、Shape文件、Grids、影像、不规则三角网(TIN)等GIS数据集。 Geodatabase 数据模型实现矢量数据和栅格数据的一体化存储,有两种格式,一种是基于Access文件的格式-称为Personal Geodatabase,另一种是基于Oracle或SQL Server等RDBMS关系数据库管理系统的数据模型。 GeoDatabase是geographic database 的简写,Geodatabase 是一种采用标准关系数据库技术来表现地理信息的数据模型。Geodatabase是ArcGIS软件中最主要的数据库模型。 Geodatabase 支持在标准的数据库管理系统(DBMS)表中存储和管理地理信息。 在Geodatabase数据库模型中,可以将图形数据和属性数据同时存储在一个数据表中,每一个图层对应这样一个数据表。 Geodatabase可以表达复杂的地理要素(如,河流网络、电线杆等)。比如:水系可以同时表示线状和面状的水系。 基本概念:要素数据集、要素类 数据准备: 数据文件:National.mdb ,GPS.txt (GPS野外采集数据)。 软件准备: ArcGIS Desktop 9.x ---ArcCatalog 三、实验内容及步骤 第1步启动ArcCatalog打开一个地理数据库 当ArcCatalog打开后,点击, 按钮(连接到文件夹). 建立到包含练习数据的连接(比如 “E:\ARCGIS\EXEC2”), 在ArcCatalog窗口左边的目录树中, 点击上面创建的文件夹的连接图标旁的(+)号,双击个人空间数据库-National.mdb。打开它。. 在National.mdb中包含有2个要素数据集、1个关系类和1个属性表第2步预览地理数据库中的要素类 在ArcCatalog窗口右边的数据显示区内,点击“预览”选项页切换到“预览”视图界面。在目录树中,双击数据集要素集-“WorldContainer”,点击要素类-“Countries94”激活它。 在此窗口的下方,“预览”下拉列表中,选择“表格”。现在,你可以看到Countries94的属性表。查看它的属性字段信息。 花几分钟,以同样的方法查看一下National.mdb地理数据库中的其它数据。

单链表实验报告

计算机与信息技术学院综合性、设计性实验报告 一、实验目的 (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 称为极限弯矩。适筋梁的破坏始于纵筋屈服,终于混凝土压碎。整个过程要经历相当大的变形,破坏前有明显的预兆。这种破坏称为适筋破坏,属于延性破坏。 三、试验装置

数据库原理实验报告(2)

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验二数据库的创建、管理、备份及还原实验 所在院(系):数学与信息技术学院 班级:11软工转本2 学号: 1130708 11130710 姓名:马琦乔凌杰

1.实验目的 (1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改 数据库的基本方法; (2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。 (3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方 法。 2.实验要求 (1)使用SQL Server Management Studio创建“教学管理”数据库。 (2)使用SQL Server Management Studio修改和删除“教学管理”数据库。 (3)使用Transact-SQL语句创建“教学管理”数据库。 (4)使用Transact-SQL语句修改和删除“教学管理”数据库。 (5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server Management Studio对数据库“教学管理”进行备份和还原。 (6)SQL Server 2005数据库文件的分离与附加。 (7)按要求完成实验报告 3.实验步骤、结果和总结实验步骤/结果 (1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。 新建数据库如下图所示: 进入sql server management studio 主界面,选择数据库右击新建数据库。 如何修改数据库 进入sql server management studio 主界面,选择数据库右击属性即可看到数据库信息,可更改数据库基本信息。

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

. 实验一、单链表的插入和删除 一、目的 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 二、要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 三、程序源代码 #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); //删除所有结点,释放内存 } //==========用尾插入法建立带头结点的单链表

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

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

空间数据库报告

武汉理工大学 《空间数据库》实验报告 班级:地理1502班姓名:xx 学号:xxx 第1章需求分析 1.1需求概述 图书管理系统主要是适用于学校的,通过oracle数据库进行逻辑处理,实现对图书、读者(学生)、出版社信息的增删改查,核心功能是实现借书和还书操作,亮点是增添了学生可以挂失和修改密码的功能。下面设计的图书管理信息系统,这些功能均已实现。 1.2功能需求 图1.1

第2章概念设计 2.1 实体与属性 根据需求建立五个实体(admin,book,publisher,reader,booktype),并赋予其各自的属性,如图2.1 图2.1 2.2 初步E-R图 将各个局部E-R图合并,消除属性冲突、命名冲突、结构冲突,然后再用分析的方法或者规范化理论来消除冗余,生成基本E-R图,流程如图2.2,合并后的初步E-R图如图2.3所示。 图2.2

图2.3 第3章逻辑设计 3.1 逻辑结构设计 逻辑结构设计的流程图如图3.1所示,主要包括三个部分:1、将基本E-R图根据七条转化原则转化为一般数据模型;2、根据所选用的DBMS(Oracle)的功能及限制,将数据模型转换为Oracle 规定的模型。 图3.1

3.2 优化后的模型 管理员(职工号,姓名,性别,年龄,密码) 借阅者(卡号,姓名,年龄,性别,密码,专业,学院,最大借阅量)书籍(索书号,书名,作者,出版社号,类型号,价格,是否被借阅)出版社(出版社号,出版社名,电话,地址) 类型(类型号,类型名,所在楼层) 借阅(借阅号,借阅时间,归还时间,是否过期,卡号,索书号) 第4章物理设计 4.1 设计数据表 管理员表(admin) 图书表(book) 图书类型表(bookType)

链表实验报告

链表实验报告

————————————————————————————————作者: ————————————————————————————————日期:

《数据结构》实验报告二 系别:嵌入式系统工程系班级:嵌入式11003班 学号:11160400314姓名:孙立阔 日期:2012年4月9日指导教师:申华 一、上机实验的问题和要求: 单链表的查找、插入与删除。设计算法,实现线性结构上的单链表的产生以及元素的查找、插入与删除。具体实现要求: 1.从键盘输入10个字符,产生不带表头的单链表,并输入结点值。 2.从键盘输入1个字符,在单链表中查找该结点的位置。若找到,则显示“找到了”;否则, 则显示“找不到”。 3.从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插 入在对应位置上,输出单链表所有结点值,观察输出结果。 4.从键盘输入1个整数,表示欲删除结点的位置,输出单链表所有结点值,观察输出结果。 5.将单链表中值重复的结点删除,使所得的结果表中个结点值均不相同,输出单链表所有结 点值,观察输出结果。 6.删除其中所有数据值为偶数的结点,输出单链表所有结点值,观察输出结果。 7.(★)将单链表分解成两个单链表A和B,使A链表中含有原链表中序号为奇数的元素, 而B链表中含有原链表中序号为偶数的元素,且保持原来的相对顺序,分别输出单链表A和单链表B的所有结点值,观察输出结果。 二、程序设计的基本思想,原理和算法描述: (包括程序的结构,数据结构,输入/输出设计,符号名说明等) 创建一个空的单链表,实现对单链表的查找,插入,删除的功能。 三、源程序及注释: #defineOK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define TRUE 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月日

电子科技大学-空间数据库上机实验报告

一、建立Geodatabase数据文件 1、新建一个Geodatabase: 如图1.1所示:在ArcCatalog环境下新建一个名为“Personal Geodatabase”的数据文件。 1.1 建好的Geodatabase 数据文件 2、新建要素集: 在Personal Geodatabase下,新建一个shanghai要素集,定义坐标系统为高斯投影(如图 1.2所示),单位为米,精度为1。

1.2 创建要素数据集 3、新建要素类: 在shanghai要素集中,新建一个parcel和pole要素类,parcle的Shape字段类型为polygon,新增字段parcel_name(文本型)、owner_name (文本型);pole的Shape 字段类型为点类型,新增三个字段:类型(短整型)、高度(短整型)和管理部门(文本型)。 1.3 创建parcel要素类 1.4 创建pole要素类 4、新建表:

如图1.5所示,在Personal Geodatabase下,新建一个owner表,新增字段name (文本型)、age (短整型) 1.5 创建owner表 二、创建子类 1、新建子类: 单击鼠标右键,打开pole要素类的属性表,选择子类选项卡,根据type字段创建pole类型子类,包括Wood、Steel和Cement。 图2.1 pole要素类新建子类 2、对子类赋值: 如图2.2所示,在ArcMap环境下通过列表框选择对要素子类进行赋值。

图2.2 pole要素类赋值 三、按子类定义pole要素类的域: 1、打开Geodatabase的属性表,定义三个域:Wood_pole高度域(短整型),20—30ft;Steel_pole的高度域(短整型),30—50ft;pole的管理部门域(文本),市管,区县管。 图3.1 按子类定义pole要素类的域

单链表实验报告

数据结构 课程设计 设计题目:单链表 专业班级: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、定义一个撤销链表的算法,这个算法用于删除单链表中的所有节点,使链表为空。

链表实现多项式相加实验报告

实验报告 课程名称:数据结构 题目:链表实现多项式相加 班级: 学号: 姓名: 完成时间:2012年10月17日

1、实验目的和要求 1)掌握链表的运用方法; 2)学习链表的初始化并建立一个新的链表; 3)知道如何实现链表的插入结点与删除结点操作; 4)了解链表的基本操作并灵活运用 2、实验内容 1)建立两个链表存储一元多项式; 2)实现两个一元多项式的相加; 3)输出两个多项式相加后得到的一元多项式。 3、算法基本思想 数降序存入两个链表中,将大小较大的链表作为相加后的链表寄存处。定义两个临时链表节点指针p,q,分别指向两个链表头结点。然后将另一个链表中从头结点开始依次与第一个链表比较,如果其指数比第一个小,则p向后移动一个单位,如相等,则将两节点的系数相加作为第一个链表当前节点的系数,如果为0,则将此节点栓掉。若果较大,则在p前插入q,q向后移动一个,直到两个链表做完为止。 4、算法描述 用链表实现多项式相加的程序如下: #include #include #include struct node{ int exp; float coef; struct node*next; };

void add_node(struct node*h1,struct node*h2); void print_node(struct node*h); struct node*init_node() { struct node*h=(struct node*)malloc(sizeof(struct node)),*p,*q; int exp; float coef=1.0; h->next=NULL; printf("请依次输入多项式的系数和指数(如:\"2 3\";输入\"0 0\"时结束):\n"); p=(struct node*)malloc(sizeof(struct node)); q=(struct node*)malloc(sizeof(struct node)); for(;fabs(coef-0.0)>1.0e-6;) { scanf("%f %d",&coef,&exp); if(fabs(coef-0.0)>1.0e-6) { q->next=p; p->coef=coef; p->exp=exp; p->next=NULL; add_node(h,q); } } free(p); free(q); return(h); } void add_node(struct node*h1,struct node*h2) { struct node*y1=h1,*y2=h2; struct node*p,*q; y1=y1->next; y2=y2->next; for(;y1||y2;) if(y1) { if(y2) { if(y1->expexp) y1=y1->next; else if(y1->exp==y2->exp) { y1->coef+=y2->coef; if(y1->coef==0)

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

《流体力学》课程实验指导书袁守利编 汽车工程学院 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(); //函数,删除所有结点,释放内存

电磁场实验指导书及实验报告

CENTRAL SOUTH UNIVERSITY 题目利用Matlab模拟点电荷电场的分布姓名xxxx 学号xxxxxxxxxx 班级电气xxxx班 任课老师xxxx 实验日期2010-10

电磁场理论 实验一 ——利用Matlab 模拟点电荷电场的分布 一.实验目的: 1.熟悉单个点电荷及一对点电荷的电场分布情况; 2.学会使用Matlab 进行数值计算,并绘出相应的图形; 二.实验原理: 根据库伦定律:在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸力,它们之间的力F 满足: R R Q Q k F ? 212 = (式1) 由电场强度E 的定义可知: R R kQ E ? 2 = (式2) 对于点电荷,根据场论基础中的定义,有势场E 的势函数为 R kQ U = (式3) 而 U E -?= (式4) 在Matlab 中,由以上公式算出各点的电势U ,电场强度E 后,可以用Matlab 自带的库函数绘出相应电荷的电场分布情况。 三.实验内容: 1. 单个点电荷 点电荷的平面电力线和等势线 真空中点电荷的场强大小是E=kq /r^2 ,其中k 为静电力恒量, q 为电量, r 为点电荷到场点P(x,y)的距离。电场呈球对称分布, 取电量q> 0, 电力线是以电荷为起点的射线簇。以无穷远处为零势点, 点电荷的电势为U=kq /r,当U 取

常数时, 此式就是等势面方程.等势面是以电荷为中心以r 为半径的球面。 平面电力线的画法 在平面上, 电力线是等角分布的射线簇, 用MATLAB 画射线簇很简单。取射线的半径为( 都取国际制单位) r0=, 不同的角度用向量表示( 单位为弧度) th=linspace(0,2*pi,13)。射线簇的终点的直角坐标为: [x,y]=pol2cart(th,r0)。插入x 的起始坐标x=[x; *x].同样插入y 的起始坐标, y=[y; *y], x 和y 都是二维数组, 每一列是一条射线的起始和终止坐标。用二维画线命令plot(x,y)就画出所有电力线。 平面等势线的画法 在过电荷的截面上, 等势线就是以电荷为中心的圆簇, 用MATLAB 画等势 线更加简单。静电力常量为k=9e9, 电量可取为q=1e- 9; 最大的等势线的半径应该比射线的半径小一点 r0=。其电势为u0=k8q /r0。如果从外到里取7 条等势线, 最里面的等势线的电势是最外面的3 倍, 那么各条线的电势用向量表示为: u=linspace(1,3,7)*u0。从- r0 到r0 取偶数个点, 例如100 个点, 使最中心点的坐标绕过0, 各点的坐标可用向量表示: x=linspace(- r0,r0,100), 在直角坐标系中可形成网格坐标: [X,Y]=meshgrid(x)。各点到原点的距离为: r=sqrt(X.^2+Y.^2), 在乘方时, 乘方号前面要加点, 表示对变量中的元素进行乘方计算。各点的电势为U=k8q. /r, 在进行除法运算时, 除号前面也要加点, 同样表示对变量中的元素进行除法运算。用等高线命令即可画出等势线 contour(X,Y,U,u), 在画等势线后一般会把电力线擦除, 在画等势线之前插入如下命令hold on 就行了。平面电力线和等势线如图1, 其中插入了标题等等。越靠近点电荷的中心, 电势越高, 电场强度越大, 电力线和等势线也越密。

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