《算法与数据结构》实验指导书

《算法与数据结构》实验指导书
《算法与数据结构》实验指导书

《算法与数据结构》吴景岚王润鸿编撰

闽江学院计算机实验教学中心印制

目录

前言 (1)

实验一顺序表基本操作的实现 (2)

实验二链表基本操作的实现 (4)

实验三串基本操作的实现 (7)

实验四二叉树基本操作的实现 (9)

实验五图基本操作的实现 (12)

前言

《数据结构》是计算机科学与技术、软件工程等专业的专业基础必修课,主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法进行分析和评价。本课程的学习应使学生深刻地理解数据结构的逻辑结构和物理结构的基本概念及有关算法,培养学生基本的、良好的程序设计技能以及针对具体问题,选择适当的数据结构,设计出有效算法的能力。

《数据结构》是一门理论和实践相结合的课程,它在整个计算机专业教学体系中处于举足轻重的地位,是计算机科学的算法理论基础和软件设计的技术基础,其上机实验的目的主要是编程实现数据结构各章的主要算法,训练学生实际动手进行程序设计和程序调试的能力,加深对数据结构相关概念和算法的理解。

实验一顺序表基本操作的实现

专业:计算机科学系嵌入式应用班级: 2班学号: 3141101212 姓

名:粟代琼

实验地点:工A207 实验时间: 2015 10 15 指导教师:陈雄峰【实验课程名称】算法与数据结构

【实验项目名称】顺序表基本操作的实现

一、实验目的

1掌握线性表顺序存储基本操作;

2学会设计实验数据验证程序。

二、实验仪器及环境计算机,window xp操作系统,VC++6.0

三、实验内容及步骤

线性表顺序存储基本操作

存储结构定义:

#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量

#define LISTINCREMENT 10 //线性表存储空间的分配增量

typedef struct{

ElemType *elem; //存储空间基址

int length;//当前长度

int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)

}SqList;

实现的基本操作:

InitList( &L )

操作结果:构造一个空的线性表 L 。

DestroyList( &L )

初始条件:线性表 L 已存在。

操作结果:销毁线性表 L 。

ListLength( L )

初始条件:线性表 L 已存在。

操作结果:返回 L 中元素个数。

PriorElem( L, cur_e, &pre_e )

初始条件:线性表 L 已存在。

操作结果:若 cur_e 是 L 中的数据元素,则用 pre_e 返回它的前驱,

否则操作失败,pre_e 无定义。

NextElem( L, cur_e, &next_e )

初始条件:线性表 L 已存在。

操作结果:若 cur_e 是 L 中的数据元素,则用 next_e 返回它的后继,否则操作失败,next_e 无定义。

GetElem( L, i, &e )

初始条件:线性表 L 已存在,1≤i≤LengthList(L)。

操作结果:用 e 返回 L 中第 i 个元素的值。

LocateElem( L, e, compare( ) )

初始条件:线性表 L 已存在,compare( ) 是元素判定函数。

操作结果:返回 L 中第1个与 e满足关系 compare( )的元素的位序。若这样的元素不存在,则返回值为0。

ClearList( &L )

初始条件:线性表 L 已存在。

操作结果:将 L 重置为空表。

PutElem( &L, i, &e )

初始条件:线性表L已存在,1≤i≤LengthList(L)。

操作结果:L 中第 i 个元素赋值同 e 的值。

ListInsert( &L, i, e )

初始条件:线性表 L 已存在,1≤i≤LengthList(L)+1。

操作结果:在 L 的第 i 个元素之前插入新的元素 e,L 的长度增1。ListDelete( &L, i, &e )

初始条件:线性表 L 已存在且非空,1≤i≤LengthList(L)。

操作结果:删除L 的第 i 个元素,并用 e 返回其值,L 的长度减1。四、实验记录(自己设计测试数据验证算法的正确性)

五、

六、实验小结

七、思考题

1.线性表的顺序存储有何优缺点?

优点:具有简单、运算方便等优点,特别是对于小线性表或长度固定的线性表,采用顺序存储结构的优越性更为突出;

缺点:

(1)顺序存储空间容易满,出现上溢,程序访问容易出问题,顺序存储结构下,存储空间不便扩充;

(2)顺序存储空间的分配问题,分多了浪费,分少了空间不足上溢

(3)顺序存储插入与删除一个元素,必须移动大了的数据元素,以此对大的线性表,特别是在元素的插入和删除很频繁的情况下,采取顺序存储

很是不方便,效率低;

2.各举一两个例子说明求解什么样的问题用顺序存储较好。【源代码说明】

1.文件名:

2.操作说明:

实验二链表基本操作的实现

专业:班级:学号:姓名:

实验地点:实验时间:指导教师:

【实验课程名称】算法与数据结构

【实验项目名称】链表基本操作的实现

一、实验目的

1掌握线性表链式存储基本操作;

2学会设计实验数据验证程序。

二、实验仪器及环境计算机,window xp操作系统,VC++6.0

三、实验内容及步骤

线性表链式存储基本操作

存储结构定义:

typedef struct LNode{

ElemType data;

struct LNode *next;

}LNode,*LinkList;

实现的基本操作:

InitList( &L )

操作结果:构造一个空的线性表 L 。

DestroyList( &L )

初始条件:线性表 L 已存在。

操作结果:销毁线性表 L 。

ListEmpty( L )

初始条件:线性表L已存在。

操作结果:若 L 为空表,则返回 TRUE,否则返回 FALSE。

ListLength( L )

初始条件:线性表 L 已存在。

操作结果:返回 L 中元素个数。

PriorElem( L, cur_e, &pre_e )

初始条件:线性表 L 已存在。

操作结果:若 cur_e 是 L 中的数据元素,则用 pre_e 返回它的前驱,否则操作失败,pre_e 无定义。

NextElem( L, cur_e, &next_e )

初始条件:线性表 L 已存在。

操作结果:若 cur_e 是 L 中的数据元素,则用 next_e 返回它的后继,否则操作失败,next_e 无定义。

GetElem( L, i, &e )

初始条件:线性表 L 已存在,1≤i≤LengthList(L)。

操作结果:用 e 返回 L 中第 i 个元素的值。

LocateElem( L, e, compare( ) )

初始条件:线性表 L 已存在,compare( ) 是元素判定函数。

操作结果:返回 L 中第1个与 e满足关系 compare( )的元素的位序。若这样的元素不存在,则返回值为0。

ListTraverse(L, visit( ))

初始条件:线性表 L 已存在,visit( ) 为元素的访问函数。

操作结果:依次对 L 的每个元素调用函数visit( )。一旦visit( ) 失败,则操作失败。

ClearList( &L )

初始条件:线性表 L 已存在。

操作结果:将 L 重置为空表。

PutElem( &L, i, &e )

初始条件:线性表L已存在,1≤i≤LengthList(L)。

操作结果:L 中第 i 个元素赋值同 e 的值。

ListInsert( &L, i, e )

初始条件:线性表 L 已存在,1≤i≤LengthList(L)+1。

操作结果:在 L 的第 i 个元素之前插入新的元素 e,L 的长度增1。ListDelete( &L, i, &e )

初始条件:线性表 L 已存在且非空,1≤i≤LengthList(L)。

操作结果:删除L 的第 i 个元素,并用 e 返回其值,L 的长度减1。四、实验记录

(自己设计测试数据验证算法的正确性)

五、实验小结

六、思考题

1.线性表的链式存储有何优缺点?

2.各举一两个例子说明求解什么样的问题用链式存储较好。【源代码说明】

1.文件名:

2.操作说明:

实验三串基本操作的实现

专业:班级:学号:姓名:

实验地点:实验时间:指导教师:

【实验课程名称】算法与数据结构

【实验项目名称】串基本操作的实现

一、实验目的

1 理解定长顺序串的存储结构及基本操作的定义;

2 掌握定长顺序串的基本操作;

3 学会设计实验数据验证程序。

二、实验环境

计算机,window xp操作系统,VC++6.0

三、实验内容

1. 存储结构定义:

#define MAXSTRLEN 255 //串的长度最大为255

typedef unsigned char SString[MAXSTRLEN+1];

//0号单元存放串的长度,其最大值刚好是255

2. 实现的基本操作:

StrAssign (&T, chars)

初始条件:chars 是串常量。

操作结果:赋于串T的值为chars。

StrCopy (&T, S)

初始条件:串S 存在。

操作结果:由串S 复制得串T。

DestroyString (&S)

初始条件:串S 存在。

操作结果:串S 被销毁。

StrEmpty (S)

初始条件:串S 存在。

操作结果:若S 为空串,则返回TRUE,否则返回FALSE。

StrCompare (S, T)

初始条件:串S 和T 存在。

操作结果:若S>T,则返回值=0;若S=T,则返回值<0;若S

StrLength (S)

初始条件:串S 存在。

操作结果:返回串S 序列中的字符个数,即串的长度。

ClearString (&S)

初始条件:串S 存在。

操作结果:将S 清为空串。

Concat (&T, S1, S2)

初始条件:串S1 和S2 存在。

操作结果:用T 返回由S1 和S2 联接而成的新串。

SubString (&Sub, S, pos, len)

初始条件:串S存在,1≤pos≤StrLength(S)且0≤len≤StrLength(S)-pos+1。

操作结果:用Sub 返回串S的第pos 个字符起长度为len 的子串。

Index (S, T, pos)

初始条件:串S和T存在,T 是非空串,1≤pos≤StrLength(S)。

操作结果:若主串S中存在和串T值相同的子串,则返回它在主串S中第pos个字符之后第一次出现的位置;否则函数值为0。

Replace (&S, T, V)

初始条件:串S,T 和V 存在,T 是非空串。

操作结果:用V替换主串S中出现的所有与T相等的不重叠的子串。

StrInsert (&S, pos, T)

初始条件:串S 和T 存在,1≤pos≤StrLength(S)+1。

操作结果:在串S 的第pos 个字符之前插入串T。

StrDelete (&S, pos, len)

初始条件:串S 存在,1≤pos≤StrLength(S)-len+1。

操作结果:从串S 中删除第pos 个字符起长度为len 的子串。

四、测试及实验结果

(1) 建立如下字符串S1:

“输入结点值的顺序必须对应二叉树结点前序遍历的顺序。并约定以输入序列中不可能出现的值作为空结点的值以结束递归。”

(2) 输出S1;

(3) 查找“二叉树”出现的位序;

(4) 将文中的”顺序”改为”次序”;

(5) 建立如下字符串S2:

例如用“@”或用“-1”表示字符序列或正整数序列空结点。

(6) 将S1串与S2串连接成S串;

(7) 输出S串的值与串的长度;

(8) 删除S1串和S2串;

五、实验小结

六、思考题

定长顺序串的存储结构与c语言中用字符指针存储字符串相比有何优点?

【源代码说明】

1.文件名:

2.操作说明:

实验四二叉树基本操作的实现

专业:班级:学号:姓名:

实验地点:实验时间:指导教师:

【实验课程名称】算法与数据结构

【实验项目名称】二叉树基本操作的实现

一、实验目的

1 理解二叉树概念及其存储结构;

2掌握采用二叉链储存结构的二叉树基本操作;

3学会设计实验数据验证程序。

二、实验环境

计算机,window xp操作系统,VC++6.0

三、实验内容

1. 存储结构定义:

typedef struct BiTNode { //结点定义

TElemType data;

struct BiTNode * lchild, * rchild;

} BiTNode,*BiTree;

2. 实现的基本操作:

InitBiTree(&T);

操作结果:构造空二叉树T。

CreateBiTree(&T, definition);

初始条件:definition 给出二叉树T 的定义。

操作结果:按definition 构造二叉树T。

DestroyBiTree(&T);

初始条件:二叉树T 存在。

操作结果:销毁二叉树T。

BiTreeEmpty(T);

初始条件:二叉树T 存在。

操作结果:若T为空二叉树,则返回TRUE,否则返回FALSE。

BiTreeDepth(T);

初始条件:二叉树T 存在。

操作结果:返回T 的深度。

Root(T);

初始条件:二叉树T 存在。

操作结果:返回T 的根。

Value(T, e);

初始条件:二叉树T 存在,e 是T 中某个结点。

操作结果:返回 e 的值。

Parent(T, e);

初始条件:二叉树T 存在,e 是T 中某个结点。

操作结果:若e是T的非根结点,则返回它的双亲,否则返回"空"。

LeftChild(T, e);

初始条件:二叉树T 存在,e 是T 中某个结点。

操作结果:返回 e 的左孩子。若 e 无左孩子,则返回"空"。

RightChild(T, e);

初始条件:二叉树T 存在,e 是T 中某个结点。

操作结果:返回 e 的右孩子。若 e 无右孩子,则返回"空"。

LeftSibling(T, e);

初始条件:二叉树T 存在,e 是T 中某个结点。

操作结果:返回 e 的左兄弟。若 e 是其双亲的左孩子或无左兄弟,则返回"空"。

RightSibling(T, e);

初始条件:二叉树T 存在,e 是T 的结点。

操作结果:返回 e 的右兄弟。若 e 是其双亲的右孩子或无右兄弟,则返回"空"。

PreOrderTraverse(T, visit());

初始条件:二叉树T 存在,visit 是对结点操作的应用函数。

操作结果:先序遍历T,对每个结点调用函数visit 一次且仅一次。一旦visit() 失败,则操作失败。

InOrderTraverse(T, vsit());

初始条件:二叉树T 存在,visit 是对结点操作的应用函数。

操作结果:中序遍历T,对每个结点调用函数Visit 一次且仅一次。一旦visit() 失败,则操作失败。

PostOrderTraverse(T, visit());

初始条件:二叉树T存在,visit 是对结点操作的应用函数。

操作结果:后序遍历T,对每个结点调用函数visit 一次且仅一次。一旦visit() 失败,则操作失败。

LevelOrderTraverse(T, visit());

初始条件:二叉树T 存在,visit 是对结点操作的应用函数。

操作结果:层序遍历T,对每个结点调用函数visit 一次且仅一次。一旦visit() 失败,则操作失败。

ClearBiTree(&T);

初始条件:二叉树T 存在。

操作结果:将二叉树T 清为空树。

Assign(&T, &e, value);

初始条件:二叉树T 存在,e 是T 中某个结点。

操作结果:结点 e 赋值为value。

InsertChild(&T, p, LR, c);

初始条件:二叉树T 存在,p 指向T 中某个结点,LR 为0 或1,非空二叉树c 与T 不相交且右子树为空。

操作结果:根据LR 为0 或1,插入 c 为T 中p 所指结点的左或右子树。p 所指结点原有左或右子树成为 c 的右子树。

DeleteChild(&T, p, LR);

初始条件:二叉树T 存在,p 指向T 中某个结点,LR 为0 或1。

操作结果:根据LR 为0 或1,删除T 中p 所指结点的左或右子树。

四、测试数据及实验结果

(参照前几个实验的测试方法自己设计测试数据验证算法的正确性)

五、实验小结

六、思考题

1举例说明什么样的二叉树采用顺序存储,什么样的二叉树采用二叉链存储。

2总结编程调试过程中遇到的问题,你采取的解决方案。若未能测试通过所有操作,请分析原因。

【源代码说明】

1.文件名:

2.操作说明:

实验五图基本操作的实现

专业:班级:学号:姓名:

实验地点:实验时间:指导教师:

【实验课程名称】算法与数据结构

【实验项目名称】图基本操作的实现

一、实验目的

1 理解图的存储结构;

2掌握邻接矩阵储存结构的图基本操作;

3学会设计实验数据验证程序。

二、实验环境

计算机,window xp操作系统,VC++6.0

三、实验内容

1. 存储结构定义:

#define INFINITY INT_MAX; // 最大值∞

#define MAX_VERTEX_NUM 20;// 最大顶点个数

typedef enum {DG, DN, AG, AN} GraphKind;

// 类型标志{有向图,有向网,无向图,无向网} typedef struct ArcCell { // 弧的定义

VRType adj; // VRType是顶点关系类型。对无权图,用1或0

//表示相邻否;对带权图,则为权值类型。

InfoType *info; // 该弧相关信息的指针} AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

typedef struct { // 图的定义

VertexType vexs[MAX_VERTEX_NUM]; // 顶点信息

AdjMatrix arcs; // 表示顶点之间关系的二维数组

int vexnum, arcnum; // 图的当前顶点数和弧(边)数

GraphKind kind; // 图的种类标志} MGraph;

2. 实现的基本操作:

CreateGraph(&G, V, VR);

初始条件:V 是图的顶点集,VR 是图中弧的集合。

操作结果:按V 和VR 的定义构造图G。

DesstroyGraph(&G);

初始条件:图G 存在。

操作结果:销毁图G。

LocateVex(G, u);

初始条件:图G 存在,u 和G 中顶点有相同特征。

操作结果:若G 中存在和u 相同的顶点,则返回该顶点在图中位置;

否则返回其它信息。

GetVex(G, v);

初始条件:图G 存在,v 是G 中某个顶点。

操作结果:返回v 的值。

FirstAdjVex(G, v);

初始条件:图G 存在,v 是G 中某个顶点。

操作结果:返回v 的第一个邻接点。若该顶点在G 中没有邻接点,

则返回"空"。

NextAdjVex(G, v, w);

初始条件:图G 存在,v 是G 中某个顶点,w 是v 的邻接顶点。

操作结果:返回v 的(相对于w 的)下一个邻接点。若w 是v

的最后一个邻接点,则返回"空"。

PutVex(&G, v, value);

初始条件:图G 存在,v 是G 中某个顶点。

操作结果:对v 赋值value。

InsertVex(&G, v);

初始条件:图G 存在,v 和图中顶点有相同特征。

操作结果:在图G 中增添新顶点v。

DeleteVex(&G, v);

初始条件:图G 存在,v 是G 中某个顶点。

操作结果:删除G 中顶点v 及其相关的弧。

InsertArc(&G, v, w);

初始条件:图G 存在,v 和w 是G 中两个顶点。

操作结果:在G 中增添弧,若G 是无向的,则还增添对称

DeleteArc(&G, v, w);

初始条件:图G 存在,v 和w 是G 中两个顶点。

操作结果:在G 中删除弧,若G 是无向的,则还删除对称

DFSTraverse(G, Visit());

初始条件:图G 存在,Visit 是顶点的应用函数。

操作结果:对图G 进行深度优先遍历。遍历过程中对每个顶点调

用函数Visit 一次且仅一次。一旦visit() 失败,则操作失败。

BFSTraverse(G, Visit());

初始条件:图G 存在,Visit 是顶点的应用函数。

操作结果:对图G 进行广度优先遍历。遍历过程中对每个顶点调

用函数Visit 一次且仅一次。一旦visit() 失败,则操作失败。

四、测试数据及实验结果

(参照前几个实验的测试方法自己设计测试数据验证算法的正确性)

五、实验小结

六、思考题

1与图的邻接表存储方式相比,邻接矩阵存储有何有缺点。

2总结编程调试过程中遇到的问题,你采取的解决方案。若未能测试通过所有操作,请分析原因。

【源代码说明】

1.文件名:

2.操作说明:

链表实验报告

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)在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标按照车辆访问的顺序逐个放在点上。

测试技术实验指导书及实验报告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. 掌握Oracle9i服务器和客户端软件的安装配置方法。 2. 掌握Oracle9i数据库的登录、启动和关闭。 实验环境 局域网,windows 2000 实验学时 2学时,必做实验。 实验内容 1. 在局域网环境下安装配置Oracle9i服务器和客户端软件。 2. 练习Oracle9i数据库的登录、启动和关闭等基本操作。 实验步骤 1、将Oracle 9i的第1号安装盘放入光驱,双击setup,将弹出“Oracle Universal Installer:欢迎使用”对话框。 2、单击“下一步”按钮,出现“Oracle Universal Installer:文件定位”对话框。 在路径中输入“E:\Oracle\ora92”,其它取默认值。 3、启动第1号盘的安装程序setup,具体方法同安装Oracle 9i服务器,不同的是在 选择安装产品时选择“Oracle9i Client 9.2.0.1.0”选项; 4、安装结束后,弹出“Oracle Net Configuration Assistant:欢迎使用”对话框。取 默认值。 5、登录Oracle9i数据库:选择“开始”→“所有程序”→Oracle-OraHome92→Enterprise Manager Console ; 6、系统出现“登录”对话框。选择“独立启动”。 分析与思考 (1)简述启动Oracle9i数据库的一般步骤。 (2)简述启动Oracle9i模式中三个选项的区别? (3)简述关闭Oracle9i模式中四个选项的区别?

单链表实验报告

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

大数据库应用实验指导书(1,2)

《—数据库应用—》上机指导书 数据库课程组编写 前言

“数据库应用”是一门理论性和实践性都很强的专业课程, 通过本课程的学习,学生会使用SQL Server数据库管理系统并能进行实际应用。能熟练掌握Transact-SQL语言,能保证数据的完整性和一致性、数据库的安全,并能进行简单编程。 “数据库应用”课程上机的主要目标: 1)通过上机操作,加深对数据库系统理论知识的理解。 2)通过使用SQL SERVER2000,了解SQL SERVER 数据库管理系统的数据管理方式,并掌握其操作技术。 3)通过实际题目的上机,提高动手能力,提高分析问题和解决问题的能力。 “数据库应用”课程上机项目设置与内容 表3列出了”数据库应用”课程具体的上机项目和内容 上机组织运行方式:

⑴上机前,任课教师需要向学生讲清上机的整体要求及上机的目标任务;讲清上机安排和进度、平时考核内容、期末考试办法、上机守则及上机室安全制度;讲清上机操作的基本方法,上机对应的理论内容。 ⑵每次上机前:学生应当先弄清相关的理论知识,再预习上机内容、方法和步骤,避免出现盲目上机的行为。 ⑶上机1人1组,在规定的时间内,由学生独立完成,出现问题时,教师要引导学生独立分析、解决,不得包办代替。 ⑷该课程上机是一个整体,需要有延续性。机房应有安全措施,避免前面的上机数据、程序和环境被清除、改动等事件发生,学生最好能自备移动存储设备,存储自己的数据。 ⑸任课教师要认真上好每一堂课,上机前清点学生人数,上机中按要求做好学生上机情况及结果记录。 上机报告要求 上机报告应包含以下内容: 上机目的,上机内容及操作步骤、上机结果、及上机总结及体会。 上机成绩评定办法 上机成绩采用五级记分制,分为优、良、中、及格、不及格。按以下五个方面进行综合考核: 1、对上机原理和上机中的主要环节的理解程度; 2、上机的工作效率和上机操作的正确性; 3、良好的上机习惯是否养成; 4、工作作风是否实事求是; 5、上机报告(包括数据的准确度是否合格,体会总结是否认真深入等) 其它说明 1.在上机课之前,每一个同学必须将上机的题目、程序编写完毕,对运行中可能出 现的问题应事先作出估计;对操作过程中有疑问的地方,应做上记号,以便上机时给予注意。做好充分的准备,以提高上机的效率 2.所有上机环节均由每位同学独立完成,严禁抄袭他人上机结果,若发现有结果雷 同者,按上机课考核办法处理。 3.上机过程中,应服从教师安排。 4.上机完成后,要根据教师的要求及时上交作业。

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

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

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

土工实验指导书及实验报告编写毕守一 安徽水利水电职业技术学院 二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“请确定窗体使用的布局”段对话框中

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 数据库

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

《流体力学》课程实验指导书袁守利编 汽车工程学院 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, 其中插入了标题等等。越靠近点电荷的中心, 电势越高, 电场强度越大, 电力线和等势线也越密。

C语言链表实验报告

链表实验报告 一、实验名称 链表操作的实现--学生信息库的构建 二、实验目的 (1)理解单链表的存储结构及基本操作的定义 (2)掌握单链表存储基本操作 (3)学会设计实验数据验证程序 【实验仪器及环境】计算机 Window XP操作系统 三、实验内容 1、建立一个学生成绩信息(学号,姓名,成绩)的单链表,按学号排序 2、对链表进行插入、删除、遍历、修改操作。 3、对链表进行读取(读文件)、存储(写文件) 四、实验要求 (1)给出终结报告(包括设计过程,程序)-打印版 (2)对程序进行答辩

五、实验过程、详细内容 1、概念及过程中需要调用的函数 (1)链表的概念结点定义 结构的递归定义 struct stud_node{ int num; char name[20]; int score; struct stud_node *next; }; (2)链表的建立 1、手动输入 struct stud_node*Create_Stu_Doc() { struct stud_node *head,*p; int num,score; char name[20]; int size=sizeof(struct stud_node); 【链表建立流程图】

2、从文件中直接获取 先建立一个 (3)链表的遍历 (4 )插入结点 (5)删除结点 (6)动态储存分配函数malloc () void *malloc(unsigned size) ①在内存的动态存储区中分配一连续空间,其长度为size ②若申请成功,则返回一个指向所分配内存空间的起始地址的指针 ③若申请不成功,则返回NULL (值为0) ④返回值类型:(void *) ·通用指针的一个重要用途 ·将malloc 的返回值转换到特定指针类型,赋给一个指针 【链表建立流程图】 ptr ptr ptr->num ptr->score ptr=ptr->next head pt r s s->next = ptr->next ptr->next = s 先连后断 ptr2=ptr1->next ptr1->next=ptr2->next free (ptr2)

相关文档
最新文档