当前位置:文档之家› 串的基本操作演示实验报告

串的基本操作演示实验报告

串的基本操作演示实验报告
串的基本操作演示实验报告

串的基本操作演示实验报告学号:姓名:班级:

一.实验环境问题描述:

如果语言没有把串作为一个预先定义好的基本类型对待,又需要用该语言写一个涉及串操作的软件系统时,用户必须自己实现串类型。试实现串类型,并写一个串的基本操作的演示系统。

基本要求:在教科书4.2.2节用堆分配存储表示实现HString串的最小操作子集的基础上,实现串抽象数据类型的其余基本操作(不使用C语言本身提供的串函数)。参数合法性检查必须严格。说明:(在格式中,Φ表示0个、1个或多个空格所组成的串。〈串标识〉表示一个内部名或一个串文字。前者是一个串的唯一标识,是一种内部形式的(而不是字符形式的)标识符。后者是两端由单引号括起来的仅可打印字符组成的序列。串内每两个连续的单引号表示一个单引号符。)

利用上述基本操作函数构造以下系统:它是一个命令解释程序,循环往复地处理用户键入的每一条命令,直至终止程序的命令为止。命令定义如下:

(1)赋值。格式:AΦ〈串标识〉Φ〈回车〉

用〈串标识〉所表示的值建立新串,并显示新串的内部名和串值。如:A′Hi!′

(2)判相等。格式:EΦ〈串标识1〉Φ〈串标识2〉Φ〈回车〉

若两串相等,则显示“EQUAL”,否则显示“UNEQUAL”。

(3)联接。格式:CΦ〈串标识1〉Φ〈串标识2〉Φ〈回车〉

将两串联接产生结果串,它的内部名和串值都显示出来。

(4)求长度格式:LΦ〈串标识〉Φ〈回车〉显示串的长度。

(5)求子串格式:SΦ〈串标识〉Φ+〈数1〉Φ+〈数2〉Φ〈回车〉

如果参数合法,则显示子串的内部名和串值。〈数〉不带正负号。

(6)子串定位。格式:IΦ〈串标识1〉Φ〈串标识2〉Φ〈回车〉

显示第二个串在第一个串中首次出现时的位置。

(7)串替换格式:RΦ〈串标识1〉Φ〈串标识2〉Φ〈串标识2〉Φ〈回车〉

将第一个串中出现所有出现的第二个串用第三个串替换,显示结果串的内部名和串值,原串不变。

(0)退出格式:QΦ〈回车〉结束程序的运行。

编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下:

编写栈的基本操作函数

顺序串类型定义如下所示:

typedef struct node

{

char data;

struct node *next;

}linkstring;

(1)串赋值Assign(s,t)

将一个字符串常量赋给串s,即生成一个其值等于t的串s

(2)串复制StrCopy(s,t)

将串t赋给串s

(3)计算串长度StrLength(s)

返回串s中字符个数

(4)判断串相等StrEqual(s,t)

若两个串s与t相等则返回1;否则返回0。

(5)串连接Concat(s,t)

返回由两个串s和t连接在一起形成的新串。

(6)求子串index(s,j)

返回找到串t在串s中的位置

(7)插入InsStr (s,i,t)

将串t插入到串s的第i(1≤i≤StrLength(s)+1)个字符中,即将t的第一个字符作为s

的第i个字符,并返回产生的新串

(8)串删除DelStr (s,i,j)

从串s中删去从第i(1≤i≤StrLength(s))个字符开始的长度为j的子串,并返回产生的

新串。

(9)串替换RepStr (s,s1,s2)

在串s中,将所有出现的子串s1均替换成s2。

(10)输出串DispStr(s)

输出串s的所有元素值

(11)判断串是否为空IsEmpty(s)

(12)输入串inputchuan(char str[100],linkstring *&s)输入字符串str并将字符串传递给指针串s

三:程序

:#include

#include

#include

typedef struct node

{

char data;

struct node *next;

}linkstring;

{

int i=0;

linkstring *q,*tc;

s=(linkstring *)malloc(sizeof(linkstring));

s->next=NULL;

tc=s;//tc指向s串的最后一个结点

while(t[i]!='\0')//实现字符数组顺序赋值到串s

{

q=(linkstring *)malloc(sizeof(linkstring));

q->data=t[i];

tc->next=q;//使得s中与tc同地址的next指向q,使tc与q相连接

tc=q;//tc直接指向q

i++;

}

tc->next=NULL;

}

void strcopy(linkstring *&s,linkstring *t)//将t串赋值给s串并返回s

{

linkstring *p=t->next,*q,*tc;

s=(linkstring *)malloc(sizeof(linkstring));

s->next=NULL;

tc=s;//tc指向s串的最后一个结点

while(p!=NULL)//实现字符数组顺序赋值到串s

{

q=(linkstring *)malloc(sizeof(linkstring));

q->data=p->data;

tc->next=q;//使得s中与tc同地址的next指向q,使tc与q相连接

tc=q;//tc直接指向q

p=p->next;

}

tc->next=NULL;

}

int strlength(linkstring *s)//求s的长度

{

int n=0;

linkstring *p;

p=s->next;

while(p!=NULL)

{

n++;

p=p->next;

}

return n;

void dispstr(linkstring *s)//输出串s

{

linkstring *p=s->next;

while(p!=NULL)

{

cout<data;

p=p->next;

}

cout<

}

int strequal(linkstring *s,linkstring *t)//判断s串和t串是否相等{

linkstring *p,*q;

p=s->next;q=t->next;

while(p!=NULL&&q!=NULL)

{

if(p->data!=q->data)

{

return 0;

}

p=p->next;

q=q->next;

}

if(p!=NULL||q!=NULL)

{

return 0;

}

else

return 1;

}

linkstring *concat(linkstring *s,linkstring *t)//将t串连接到s串后{

linkstring *p,*q,*tc,*r;

r=(linkstring *)malloc(sizeof(linkstring));

r->next=NULL;

tc=r;

p=s->next;

while(p!=NULL)

{

q=(linkstring *)malloc(sizeof(linkstring));

q->data=p->data;

tc->next=q;

tc=q;

}

p=t->next;

while(p!=NULL)

{

q=(linkstring *)malloc(sizeof(linkstring));

q->data=p->data;

tc->next=q;

tc=q;

p=p->next;

}

tc->next=NULL;

return r;

}

int index(linkstring *s,linkstring *t)//找到串t在串s中的位置

{

linkstring *p,*q,*p1;

int i=0;

p=s->next;

while(p!=NULL)

{

q=t->next;//q始终从头开始与p进行比对

if(p->data==q->data)

{

p1=p;

while(p1!=NULL&&q!=NULL&&p1->data==q->data)

{

p1=p1->next;

q=q->next;

}

if(q==NULL)

{

return i;

break;

}

}

p=p->next;

i++;

}

return -1;

}

int instr(linkstring *&s,int i,linkstring *t)//将t插入s串的第i个位置{

int k;

r=(linkstring *)malloc(sizeof(linkstring));

strcopy(r,t);

//p=r;//考虑到如果k=1的情况

r=r->next;

//free(p);

for(k=0;k

{

if(q==NULL)

{

return 0;

}

p=q;

q=q->next;

}

p->next=r;

while(r->next!=NULL)

{

r=r->next;

}

r->next=q;

p=p->next;

// s->next=p;

return 1;

}

int delstr(linkstring *&s,int i,int j)//删除串s 中从第i个位置开始的j个字符

{

int k;

linkstring *p,*q;//

q=s;

p=s->next;

for(k=0;k

if(p==NULL)

return 0;

q=p;

p=p->next;

}

for(k=0;k

{

if(p==NULL)

p=p->next;

}

q->next=p;

return 1;

}

void repstr(linkstring *&s,linkstring *t,linkstring *r)//将s中出现的t替换成r

{

int i;

i=index(s,t);

while(i>=0)

{

delstr(s,i,strlength(t));

instr(s,i,r);

i=index(s,t);

}

}

void inputchuan(char str[100],linkstring *&s)//输入字符串str并将字符串传递给指针串s {

cin>>str;assign(s,str);

}

void main()

{

linkstring *s,*t,*r;//也可以先定义多个串指针实现书上说的“显示”“删除”两个功能;

char str[100],str1[100],str2[100];

int i,n;

cout<<"输入要执行操作的序号"<

cout<<"1)赋值2)判相等3)连接4)求长度5)求子串6)子串定位7)串替换0)退出"<

cin>>n;

while(n!=0)

{

switch(n)

{

case 1:

{

cout<<"输入要赋值的串:"<

inputchuan(str,s);

dispstr(s);

break;

case 2:

{ cout<<"输入要判定是否相等的两个串:"<

inputchuan(str1,s);

inputchuan(str2,t);

if(strequal(s,t)==1)

cout<<"equal"<

else

cout<<"unequal"<

break;

}

case 3:

{

cout<<"输入要连接的两个串:"<

inputchuan(str1,s);

inputchuan(str2,t);

r=concat(s,t);

dispstr(r);

cout<

break;

}

case 4:

{

cout<<"输入要求长度的串:"<

inputchuan(str,s);

cout<

break;

}

case 5:

{

break;

}

case 6:

{

cout<<"输入第一个串并输入要定位的串"<

inputchuan(str1,s);

inputchuan(str2,t);

n=index(s,t);

if(n==-1)

cout<<"找不到"<

else

cout<

break;

}

case 7:

cout<<"将第一个串中所有出现的第二个串用第三个串替代"<

inputchuan(str,s);

inputchuan(str1,t);

inputchuan(str2,r);

repstr(s,t,r);

dispstr(s);

break;

}

}

cout<<"输入1-7继续,否则输入0退出"<

cin>>n;

}

}

四、实验心得与小结

1)熟悉串的定义和串的基本操作。

4)运用到了串的链式存储结构,对链表也有了进一步提高。

本次课程设计是对我们这一学期来数据结构课程学习成果的一次实践检验,是对我们的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节,本次课程设计的的问题比平时的习题复杂的多,也更接近实际。是软件设计的综合训练,包括问题分析、总体结构分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。培养我们养成一整套软件工作规范的训练和科学作风的培养。

在这次课程设计的实践过程中,刚开始时候由于对问题的认识还不是很清楚和对c语言一些知识的遗忘,遇到问题解决不了。通过向老师和同学请教,还有自己重新复习了c语言那本书。然后又重新对问题进行分析,设计和调试。顺利的完成了程序设计要求的基本内容和要求,对自己的编程水平有了很大程度的提高。

MATLAB基本操作实验报告

南昌航空大学 数学与信息科学学院 实验报告 课程名称:数学实验 实验名称: MATLAB基本操作 实验类型:验证性■综合性□ 设计性□ 实验室名称:数学实验室 班级学号: 10 学生姓名:钟 X 任课教师(教师签名): 成绩: 实验日期: 2011-10- 10

一、实验目的 1、熟悉MATLAB基本命令与操作 2、熟悉MATLAB作图的基本原理与步骤 3、学会用matlab软件做图 二、实验用仪器设备、器材或软件环境 计算机MATLAB软件 三、实验原理、方案设计、程序框图、预编程序等 问题1:在区间【0,2π】画sinx 实验程序: >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) 问题2:在【0,2π】用红线画sinx,用绿圈画cosx,实验程序:

>> x=linspace(0,2*pi,30); >> y=sin(x); >> z=cos(x); >> plot(x,y,'r',x,z,'co') >> 问题3:在【0,π】上画y=sinx的图形。 实验程序: >> ezplot('sin(x)',[0,pi]) >> 问题4:在【0,π】上画x=cos3t,y=sin3t星形图形。

实验程序: >> ezplot('cos(t).^3','sin(t).^3',[0,pi]) >> 问题5:[-2,0.5],[0,2]上画隐函数 实验程序: >> ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) >> 问题6:在[-2,2]范围内绘制tanh的图形。实验程序: >> fplot('tanh',[-2,2])

物理演示实验报告

物理演示实验报告 学院材料科学与工程 专业材料科学与工程 年级2014级 姓名杨林 班级信箱号80 实验时间2016年5月4日星期三晚上 2016年5月10日 实验一锥体上滚 【实验目的】: 1.通过观察与思考双锥体沿斜面轨道上滚的现象,使学生加深了解在重力场中物体总是以降低重心,趋于稳定的运动规律。 2.说明物体具有从势能高的位置向势能低的位置运动的趋势,同时说明物体势能和动能的相互转换。 【实验仪器】:锥体上滚演示仪 图1 锥体上滚演示仪 【实验原理】: 能量最低原理指出:物体或系统的能量总是自然趋向最低状态。本实验中在低端的两根导轨间距小,锥体停在此处重心被抬高了;相反,在高端两根导轨较为分开,锥体在此处下陷,重心实际上降低了。实验现象仍然符合能量最低原理。 【实验步骤】: 1.将双锥体置于导轨的高端,双锥体并不下滚;

2.将双锥体置于导轨的低端,松手后双锥体向高端滚去; 3.重复第2步操作,仔细观察双锥体上滚的情况。 【注意事项】: 1.移动锥体时要轻拿轻放,切勿将锥体掉落在地上。 2.锥体启动时位置要正,防止它滚动时摔下来造成变形或损坏。 实验二陀螺进动 【实验目的】: 演示旋转刚体(车轮)在外力矩作用下的进动。 【实验仪器】:陀螺进动仪 图2陀螺进动仪 【实验原理】: 陀螺转动起来具有角动量L,当其倾斜时受到一个垂直纸面向里的重力矩(r×mg)作用,根据角动量原理, 其方向也垂直纸面向里。 下一时刻的角动量L+△L向斜后方,陀螺将不会倒下,而是作进动。 【实验步骤】: 用力使陀螺快速转动,将其倾斜放在支架上,放手后陀螺不仅绕其自转轴转动,而且自转轴还会绕支架旋转。这就是进动现象。

大学物理实验报告

( 实验报告) 姓名:____________________ 单位:____________________ 日期:____________________ 编号:YB-BH-053939 大学物理实验报告College Physics Experiment Report

大学物理实验报告 大学物理实验报告1 实验目的:通过演示来了解弧光放电的原理 实验原理:给存在一定距离的两电极之间加上高压,若两电极间的电场达到空气的击穿电场时,两电极间的空气将被击穿,并产生大规模的放电,形成气体的弧光放电。 雅格布天梯的两极构成一梯形,下端间距小,因而场强大(因)。其下端的空气最先被击穿而放电。由于电弧加热(空气的温度升高,空气就越易被电离, 击穿场强就下降),使其上部的空气也被击穿,形成不断放电。结果弧光区逐渐上移,犹如爬梯子一般的壮观。当升至一定的高度时,由于两电极间距过大,使极间场强太小不足以击穿空气,弧光因而熄灭。 简单操作:打开电源,观察弧光产生。并观察现象。(注意弧光的产生、移动、消失)。 实验现象: 两根电极之间的高电压使极间最狭窄处的电场极度强。巨大的电场力使空气电离而形成气体离子导电,同时产生光和热。热空气带着电弧一起上升,就象圣经中的雅各布(yacob以色列人的祖先)梦中见到的天梯。

注意事项:演示器工作一段时间后,进入保护状态,自动断电,稍等一段时间,仪器恢复后可继续演示, 实验拓展:举例说明电弧放电的应用 大学物理实验报告2 一、演示目的 气体放电存在多种形式,如电晕放电、电弧放电和火花放电等,通过此演示实验观察火花放电的发生过程及条件。 二、原理 首先让尖端电极和球型电极与平板电极的距离相等。尖端电极放电,而球型电极未放电。这是由于电荷在导体上的分布与导体的曲率半径有关。导体上曲率半径越小的地方电荷积聚越多(尖端电极处),两极之间的电场越强,空气层被击穿。反之越少(球型电极处),两极之间的电场越弱,空气层未被击穿。当尖端电极与平板电极之间的距离大于球型电极与平板电极之间的距离时,其间的电场较弱,不能击穿空气层。而此时球型电极与平板电极之间的距离最近,放电只能在此处发生。 三、装置 一个尖端电极和一个球型电极及平板电极。 四、现象演示 让尖端电极和球型电极与平板电极的距离相等。尖端电极放电,而球型电极未放电。接着让尖端电极与平板电极之间的距离大于球型电极与平板电极之间的距离,放电在球型电极与平板电极之间发生 五、讨论与思考

数据结构《第4章 串存储与基本操作的实现》

第四章串存储与基本操作的实现 本章学习要点 ◆熟悉串的相关概念以及串与线性表的关系 ◆重点掌握串的定长存储、堆分配存储的表示方法与基本操作的实现 ◆了解串的各种存储结构,能根据需要合理选用串的存储结构解决实际问题 “串”(string),是字符串的简称,它是一种特殊的线性表,其特殊性在于组成线性表的数据元素是单个字符。字符串在计算机处理实际问题中使用非常广泛,比如人名、地名、商品名、设备名等均为字符串。同样在文字编辑、自然语言理解和翻译、源程序的编辑和修改等方面,都离不开对字符串的处理。 4.1串的基本概念 4.1.1串的概念 1.串的定义 串(string)是由n个字符组成的有限序列,记为:S=”a0a1a2…a n-1” (n≥0)。 其中,S是串的名字,字符序列a0a1a2…a n-1是串的值,a i(0≤i≤n-1)可以是字母、数字或其他字符元素;由于在C语言系统中数组元素的下标是从0开始的,所以串中所含元素的序号等于该元素的下标值加1;串中所含字符的个数n称为该串的长度,长度为0的字符串称为空串(null string)。 从串的定义可以看出,串实际上是数据元素为字符的特殊的线性表。 例如: (1)A=“X123” (长度为4的串) (2)B=“12345654321” (长度为11的串) (3)C=“Bei Jing” (长度为8的串) (4)D=“” (长度为0的空串) (5)E=“This is a string” (长度为16的串) (6)F=“ is a ” (长度为6的串) 2.子串、主串和位置 串中任意连续的字符组成的子序列称为该串的子串;相应地,包含子串的串称为主串。串中的字符在串序列中的序号称为该字符在该串中的位置;子串的第一个字符在主串中的位置称为子串在主串中的位置。显然,串为其自身的子串,并规定空串为任何串的子串。显然,在不考虑空子串的情况下,一个长度为n的字符串具有n(n+1)/2个子串。 例如: 在上例的(6)中串F就是(5)中串E的子串,且子串F在主串E中的位置是5。由于空格符也是一个字符,所以在串G=“abc defghne”中包含有子串“c def”,而串“cdef”不是串G的子串。串G中第一个字符…e?的位置是6,第二个字符…e?的位置是11。 3.串的比较 如果两个串的长度相等且对应位置上的字符相同,则称这两个串相等。两个串A、B的比较过程是:从前往后逐个比较对应位置上的字符的ASCII码值,直到不相等或有一个字符串结束为止,此时的情况有以下几种: (1)两个串同时结束,表示A等于B; (2)A中字符的ASCII码值大于B中相应位置上字符的ASCII码值或B串结束,表示A大于B;(3)B中字符的ASCII码值大于A中相应位置上字符的ASCII码值或A串结束,表示A小于B。

图的遍历操作实验报告

. .. . .. .. 实验三、图的遍历操作 一、目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应用。 二、要求 采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS 和BFS操作。 三、DFS和BFS 的基本思想 深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,从W出发按同样方法向前遍历。直到图中所有的顶点都被访问。 广度优先算法BFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后访问与Vo相邻的所有未被访问过的顶点V1,V2,……,Vt;再依次访问与V1,V2,……,Vt相邻的起且未被访问过的的所有顶点。如此继续,直到访问完图中的所有顶点。 四、示例程序 1.邻接矩阵作为存储结构的程序示例

#include"stdio.h" #include"stdlib.h" #define MaxVertexNum 100 //定义最大顶点数 typedef struct{ char vexs[MaxVertexNum]; //顶点表 int edges[MaxVertexNum][MaxVertexNum]; //邻接矩阵,可看作边表int n,e; //图中的顶点数n和边数e }MGraph; //用邻接矩阵表示的图的类型 //=========建立邻接矩阵======= void CreatMGraph(MGraph *G) { int i,j,k; char a; printf("Input VertexNum(n) and EdgesNum(e): "); scanf("%d,%d",&G->n,&G->e); //输入顶点数和边数 scanf("%c",&a); printf("Input Vertex string:"); for(i=0;in;i++) { scanf("%c",&a); G->vexs[i]=a; //读入顶点信息,建立顶点表 }

初中物理实验报告单(完整版)

年级:八年级姓名:日期:地点:物理实验室 实验名称:探究平面镜成像的特点 一、实验目的 观察平面镜成像的情况,找出成像的特点。 二、实验仪器和器材. 同样大小的蜡烛一对,平板玻璃一块,方座支架(或玻璃板支架),白纸一张,三角板 一对,刻度尺一把。 三、实验原理: 光的反射规律 四、实验步骤或内容: (1)检查器材。 (2)在桌上铺上白纸,在白纸上竖直的放上平板玻璃,在纸上记录玻璃板的位置。 (3)把点燃的蜡烛放在玻璃板前。 (4)移动未点燃的蜡烛,在玻璃板后让它跟点燃的蜡烛的像重合。 (5)观察两根蜡烛的位置、像与物的大小并记录。 (6)移动点燃的蜡烛,重复实验步骤(4)、( 5)两次。 (6)找出平面镜成像的特点及像的位置跟物体和平面镜的位置的关系。 (7)整理器材、摆放整齐。 五、实验记录与结论 1.记录数据 实验次数蜡烛到玻璃板的距离像到玻璃板的距离像的大小与物的大小155相等 288相等 377相等 2.实验结论 ( 1)平面镜成像的大小与物体的大小相等。 ( 2)像到平面镜的距离与物体到平面镜的距离相等。

年级:八年级姓名:日期:11、15地点:物理实验室 实验名称:探究凸透镜成像的特点 一、实验目的 探究凸透镜成放大和缩小实像的条件。 二、实验仪器和器材. 光具座,标明焦距的凸透镜,光屏,蜡烛,火柴,废物缸。 三、实验原理: 凸透镜成像的规律 四、实验步骤或内容: (1)检查器材,了解凸透镜焦距,并记录。 (2)把凸透镜、光屏安装在光具座上,位置基本正确。将点燃的蜡烛,安装在光具 座上,通过调节,使透镜、光屏和烛焰中心大致在同一高度。 (3)找出 2 倍焦距点,移动物体到 2 倍焦距以外某处,再移动光屏直到屏幕上成倒立、 缩小的、清晰的实像时为止,记下此时对应的物距 u1。 (4)找出 2 倍焦距点,移动物体到 2 倍焦距以内且大于 1 倍焦距某处,再移动光屏直 到屏幕上成倒立、放大的、清晰的实像时为止,记下此时对应的物距u2。 (5)熄灭蜡烛,将蜡烛、凸透镜、光屏取下放回原处。 五、实验记录与结论 1.凸透镜的焦距=10。 2.记录数据: 物距 u 的大小成像情况 u1=30倒立的缩小的实像 u2=15倒立的放大的实像 3.实验结论: 物体 (蜡烛 )到凸透镜的距离大于 2 倍焦距时,成倒立、缩小的实像。 物体 (蜡烛 )到凸透镜的距离小于 2 倍焦距大于 1 倍焦距时,成倒立、放大的实像。

大学物理演示实验报告

实验一锥体上滚 【实验目的】: 1.通过观察与思考双锥体沿斜面轨道上滚的现象,使学生加深了解在重力场中物体总是以降低重心,趋于稳定的运动规律。 2.说明物体具有从势能高的位置向势能低的位置运动的趋势,同时说明物体势能和动能的相互转换。 【实验仪器】:锥体上滚演示仪 图1,锥体上滚演示仪 【实验原理】: 能量最低原理指出:物体或系统的能量总是自然趋向最低状态。本实验中在低端的两根导轨间距小,锥体停在此处重心被抬高了;相反,在高端两根导轨较为分开,锥体在此处下陷,重心实际上降低了。实验现象仍然符合能量最低原理。【实验步骤】: 1.将双锥体置于导轨的高端,双锥体并不下滚;

2.将双锥体置于导轨的低端,松手后双锥体向高端滚去; 3.重复第2步操作,仔细观察双锥体上滚的情况。 【注意事项】: 1.移动锥体时要轻拿轻放,切勿将锥体掉落在地上。 2.锥体启动时位置要正,防止它滚动时摔下来造成变形或损坏。

实验二陀螺进动 【实验目的】: 演示旋转刚体(车轮)在外力矩作用下的进动。 【实验仪器】:陀螺进动仪 图2陀螺进动仪 【实验原理】: 陀螺转动起来具有角动量L,当其倾斜时受到一个垂直纸面向里的重力矩(r ×mg)作用,根据角动量原理, 其方向也垂直纸面向里。

下一时刻的角动量L+△L向斜后方,陀螺将不会倒下,而是作进动。 【实验步骤】: 用力使陀螺快速转动,将其倾斜放在支架上,放手后陀螺不仅绕其自转轴转动,而且自转轴还会绕支架旋转。这就是进动现象。 【注意事项】: 注意保护陀螺,快要停止转动时用手接住,以免掉到地上摔坏。 实验三弹性碰撞仪 【实验目的】: 1. 演示等质量球的弹性碰撞过程,加深对动量原理的理解。 2. 演示弹性碰撞时能量的最大传递。 3. 使学生对弹性碰撞过程中的动量、能量变化过程有更清晰的理解。 【实验仪器】:弹性碰撞仪 图3,弹性碰撞仪

串的基本操作

1上机实训3:串的基本操作 一、实训目的 通过实训,掌握串的运算(赋值,比较,联结,插入子串,模式匹配……等) 二、实验理论知识 1)串的基本概念及其含义 串( string)是由零个或多个字符组成的有限序列,一般记作: s='a1a2…an'(n≥0),其中s为串的名字,用单引号括起来的字符序列为串的值;ai(1≤i≤n)可以是字母、数字或其它字符(取决于程序设计语言所使用的字符集);n为串中字符的个数,称为串的长度。 2)串的存储表示及其实现 ●顺序存储 可以用一组地址连续的存储单元依次存放串的各个字符,这是串的顺序 存储结构,也称为顺序串 ●链式存储 和线性表的链式存储结构相类似,也可采用链表方式存储串值。串的这 种链式存储结构简称为链串。用链表存储字符串,每个结点需要有两个 域:一个数据域(data)和一个指针域(Next),其中数据域存放串中的 字符,指针域存放后继结点的地址。 3)模式匹配问题 三、实训案例与分析 【实例1】串的存储与基本运算 【实例分析】在本实例中练习计算字符串的长度、字符串的复制、字符串的比较、字符串的连接、字符串的插入等基本操作。在设计时 1)编写一个菜单函数,根据不同情况做(1-5)不同选择。 2)如果选择1,即要求计算输入字符串的长度。 3)如果选择2,完成字符串的复制。 4)如果选择3,完成字符串的比较。 5)如果选择4,完成两个字符串的连接。 6)如果选择5,字符串的插入。 【参考程序】 #include #define MAX 128

typedef enum {fail,success} status; typedef enum {false,true} boolean; main() { int strlen(); void strass(); boolean strcmp(); status strcat( ); status strins(); int t,n,i; boolean b; status st; char s[MAX],s1[MAX],s2[MAX]; printf("\n1. The length of string\n"); printf(" 2. The assignment of string\n"); printf(" 3. A string compare with another string:\n"); printf(" 4. A string connect with another string:\n"); printf(" 5. A string to be inserted into another string\n"); printf(" Please input a operation:");/*输入操作选项*/ scanf("%d",&t); switch(t) { case 1: printf("please input a string:\n"); getchar(); gets(s); n=strlen(s); printf("the length is: %d",n); break; case 2: printf("please input the first string:\n"); getchar(); gets(s1); printf("please input the second string:\n"); getchar(); gets(s2);

实验报告1windows的基本操作范例

实验名称:Windows的基本操作 一、实验目的 1.掌握桌面主题的设置。 2.掌握快捷方式的创建。 3.掌握开始菜单的组织。 4.掌握多任务间的数据传递——剪贴板的使用。 5.掌握文件夹和文件的创建、属性查看和设置。 6.掌握文件夹和文件的复制、移动和删除与恢复。 7.熟悉文件和文件夹的搜索。 8.熟悉文件和文件夹的压缩存储和解压缩。 二、实验环境 1.中文Windows 7操作系统。 三、实验内容及步骤 通过上机完成实验4、实验5所有内容后完成该实验报告 1.按“实验4--范例内容(1)”的要求设置桌面,将修改后的界面复制过来。 注:没有桌面背景图“Autumn”的,可选择其它背景图。 步骤:在桌面空白区域右击,选择菜单中的“个性化”,在弹出的窗口中点击“桌面背景”,在背景栏内选中“某一张图片”,单击“确定”。 修改后的界面如下图所示: 2.将画图程序添加到“开始”菜单的“固定项目列表”上。 步骤:右击“开始/所有程序/附件”菜单中的画图程序项,在弹出的快捷菜单中选“附到「开始」菜单”命令。 3.在D盘上建立以“自己的学号+姓名”为名的文件夹(如01108101刘琳)和其子文件 夹sub1,然后:

步骤:选定D:\为当前文件夹,选择“文件/新建/文件夹”命令,并将名字改为“学号+姓名”;选定“ D:\学号+姓名”为当前文件夹,选择“文件/新建/文件夹”命令,并将名字改为“sub1” ①在C:\WINDOWS中任选2个TXT文本文件,将它们复制到“学号+姓名”文件夹中;步骤:选定“C:\WINDOWS”为当前文件夹,随机选取2个文件, CTRL+C复制,返回“D:\学号+姓名”的文件夹,CTRL+V粘贴 ②将“学号+姓名”文件夹中的一个文件移到其子文件夹sub1中; 步骤:选定“ D:\学号+姓名”为当前文件夹,选中其中任意一个文件将其拖拽文件到subl ③在sub1文件夹中建立名为“”的空文本文档; 步骤:选定“ D:\学号+姓名\ sub1”为当前文件夹,在空白处单击右键,选择“新建\文本文档”,把名字改为test,回车完成。 ④删除文件夹sub1,然后再将其恢复。 步骤:选定“ D:\学号+姓名”为当前文件夹,右键单击“sub1”文件夹,选择“删除”,然后打开回收站,右键单击“sub1”文件夹,在弹出的快捷菜单中选择“还原”。 4.搜索C:\WINDOWS\system文件夹及其子文件夹下所有文件名第一个字母为s、文件长 度小于10KB且扩展名为exe的文件,并将它们复制到sub1文件夹中。 步骤:选定“ C:\WINDOWS\system”为当前文件夹,单击“搜索”按钮,在左侧窗格选择“所有文件和文件夹”,在“全部或部分文件名”中输入“s*.exe”,在“大小”中,选择“0~10KB”。 5.用不同的方法,在桌面上创建名为“计算器”、“画图”和“剪贴板”的三个快捷方式, 它们应用程序分别为:、和。并将三个快捷方式复制到sub1文件夹中。 步骤:①在"开始"菜单的"所有程序"子菜单中找到"计算器",单击右键,在弹出的快捷菜单中选择“发送到\桌面快捷方式”。 ②在"开始"菜单的"所有程序"子菜单中找到"画图",将其拖至桌面空白处。 ③在桌面上单击右键,在弹出的快捷菜单中选择“新建\快捷方式”,在“创建快捷方式”

(完整版)Excel表格的基本操作[初学者专用]超级技能

目录 技巧1、单元格内强制换行 技巧2、锁定标题行 技巧3、打印标题行 技巧4、查找重复值 技巧5、删除重复值 技巧6、快速输入对号√ 技巧7、万元显示 技巧8、隐藏0值 技巧9、隐藏单元格所有值。 技巧10、单元格中输入00001 技巧11、按月填充日期 技巧12、合并多个单元格内容 技巧13、防止重复录入 技巧14、公式转数值 技巧15、小数变整数 技巧16、快速插入多行 技巧17、两列互换 技巧18、批量设置求和公式 技巧19、同时查看一个excel文件的两个工作表。技巧20:同时修改多个工作表 技巧21:恢复未保存文件 技巧22、给excel文件添加打开密码 技巧23、快速关闭所有excel文件 技巧24、制作下拉菜单 技巧25、二级联动下拉 技巧27、删除空白行 技巧28、表格只能填写不能修改 技巧29、文字跨列居中显示 技巧30、批注添加图片 技巧31、批量隐藏和显示批注 技巧32、解决数字不能求和 技巧33、隔行插入空行 技巧34、快速调整最适合列宽 技巧35、快速复制公式 技巧36、合并单元格筛选

技巧1、单元格内强制换行 在单元格中某个字符后按alt+回车键,即可强制把光标换到下一行中。 技巧2、锁定标题行 选取第2行,视图 - 冻结窗格 - 冻结首行(或选取第2行 - 冻结窗格)冻结后再向下翻看时标题行始终显示在最上面。 技巧3、打印标题行 如果想在打印时每一页都显示标题,页面布局 - 打印标题 - 首端标题行:选取要显示的行

技巧4、查找重复值 选取数据区域 - 开始 - 条件格式 - 突出显示单元格规则 - 重复值。 显示效果:

数据结构实验图的基本操作

浙江大学城市学院实验报告 课程名称数据结构 实验项目名称实验十三/十四图的基本操作 学生姓名专业班级学号 实验成绩指导老师(签名)日期2014/06/09 一.实验目的和要求 1、掌握图的主要存储结构。 2、学会对几种常见的图的存储结构进行基本操作。 二.实验内容 1、图的邻接矩阵定义及实现: 建立头文件test13_AdjM.h,在该文件中定义图的邻接矩阵存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时建立一个验证操作实现的主函数文件test13.cpp(以下图为例),编译并调试程序,直到正确运行。 2、图的邻接表的定义及实现: 建立头文件test13_AdjL.h,在该文件中定义图的邻接表存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时在主函数文件test13.cpp中调用这些函数进行验证(以下图为例)。

3、填写实验报告,实验报告文件取名为report13.doc。 4、上传实验报告文件report13.doc到BB。 注: 下载p256_GraphMatrix.cpp(邻接矩阵)和 p258_GraphAdjoin.cpp(邻接表)源程序,读懂程序完成空缺部分代码。 三. 函数的功能说明及算法思路 (包括每个函数的功能说明,及一些重要函数的算法实现思路) 四. 实验结果与分析 (包括运行结果截图、结果分析等)

五.心得体会

程序比较难写,但是可以通过之前的一些程序来找到一些规律 (记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 【附录----源程序】 256: //p-255 图的存储结构以数组邻接矩阵表示, 构造图的算法。 #include #include #include #include typedef char VertexType; //顶点的名称为字符 const int MaxVertexNum=10; //图的最大顶点数 const int MaxEdgeNum=100; //边数的最大值 typedef int WeightType; //权值的类型 const WeightType MaxValue=32767; //权值的无穷大表示 typedef VertexType Vexlist[MaxVertexNum]; //顶点信息,定点名称 typedef WeightType AdjMatrix[MaxVertexNum][MaxVertexNum]; //邻接矩阵typedef enum{DG,DN,AG,AN} GraphKind; //有向图,有向网,无向图,无向网typedef struct{ Vexlist vexs; // 顶点数据元素 AdjMatrix arcs; // 二维数组作邻接矩阵 int vexnum, arcnum; // 图的当前顶点数和弧数 GraphKind kind; // 图的种类标志 } MGraph; void CreateGraph(MGraph &G, GraphKind kd)// 采用数组邻接矩阵表示法,构造图G {//构造有向网G int i,j,k,q; char v, w; G.kind=kd; //图的种类 printf("输入要构造的图的顶点数和弧数:\n"); scanf("%d,%d",&G.vexnum,&G.arcnum); getchar();//过滤回车 printf("依次输入图的顶点名称ABCD...等等:\n"); for (i=0; i

物理力学演示实验报告

物理力学演示实验报告 导读:想知道物理力学演示实验报告怎么写?只要看看帮你的就可以了。 《物理力学演示实验报告一》 今天上午我们很高兴的到理学院参观了大学物理演示实验室,我们参观并亲自操作了一些实验,在这次的演示实验课中,我见到了一些很新奇的仪器和实验, 一个个奇妙的实验吸引了我们的注意力,通过奇妙的物理现象感受了伟大的自然科学的奥妙,给我印象深刻地有以下几个实验,在演示实验室,老师首先给我们演示的是锥体上滚实验, 其实验原理是:能量最低原理指出:物体或系统的能量总是自然趋向最低状态,本 今天上午我们很高兴的到理学院参观了大学物理演示实验室,尽管天气很冷,但是我们的热情很高,毕竟这对我们来说是一个全新的领域,是我们之前从未接触过的东西。 在老师的带领下,我们参观并亲自操作了一些实验。 在这次的演示实验课中,我见到了一些很新奇的仪器和实验,一个个奇妙的实验吸引了我们的注意力,通过奇妙的物理现象感受了伟大的自然科学的奥妙。 给我印象深刻地有以下几个实验。 一.锥体上滚 在演示实验室,老师首先给我们演示的是锥体上滚实验。

其实验原理是:能量最低原理指出:物体或系统的能量总是自然趋向最低状态。 本实验中在低端的两根导轨间距小,锥体停在此处重心被抬高了;相反,在高端两根导轨较为分开,锥体在此处下陷,重心实际上降低了。 实验现象仍然符合能量最低原理,其核心在于刚体在重力场中的平衡问题,而自由运动的物体在重力的作用下总是平衡在重力势能极小的位置。 通过这个实验,我们知道了有时候现象和本质完全相反。 二.电磁炮 接着我们又做了电磁炮的实验。 电磁炮是利用电磁力代替火药爆炸力来加速弹丸的电磁发射系统,它主要有电源、高速开关、加速装置和炮弹组成。 根据通电线圈磁场的相互作用原理,加速线圈固定在炮管中,当它通入交变电流时,产生的交变磁场就会在线圈中产生感应电流,感应电流的磁场与加速线圈电流的磁场相互作用,使弹丸加速运动并发射出去。 我们将炮弹放入炮管中距尾部25cm左右,按下启动按钮发射了炮弹。 虽然炮弹的射程很小,但我们都觉得很奇妙,做的很开心。 三.会飞的碗

实验三 串基本操作的实现

实验三串基本操作的实现 专业:计算机科学与技术班级:10计本1班学号:姓名: 实验地点: B102 实验时间: 2011.11.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

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示:

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作....................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验二:图像的灰度变换和直方图变换............................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验三:图像的平滑处理....................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验四:图像的锐化处理......................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。

大学物理演示实验报告

大学物理演示实验报告 大学物理演示实验报告 工作报告实验报告大学物理演示实验报告 大学物理演示实验报告 实验目的:通过演示来了解弧光放电的原理实验原理:给存在一定距离的两电极之间加上高压,若两电极间的电场达到空气的击穿电场时,两电极间的空气将被击穿,并产生大规模的放电,形成气体的弧光放电。雅格布天梯的两极构成一梯形,下端间距小,因而场强大。其下端的空气最先被击穿而放电。由于电弧加热(空气的温度升高,空气就越易被电离,击穿场强就下降),使其上部的空气也被击穿,形成不断放电。结果弧光区逐渐上移,犹如爬梯子一般的壮观。当升至一定的高度时,由于两电极间距过大,使极间场强太小不足以击穿空气,弧光因而熄灭。简单操作:打开电源,观察弧光产生。并观察现象。(注意弧光的产生、移动、消失)。实验现象:两根电极之间的高电压使极间最狭窄处的电场极度强。巨大的电场力使空气电离而形成气体离子导电,同时产生光和热。热空气带着电弧一起上升,就象圣经中的雅各布(aob以色列人的祖先)梦中见到的天梯。注意事项:演示器工作一段时间后,进入保护状态,自动断电,稍等一段时间,仪器恢复后可继续演示,实验拓展:举例说明电弧放电的应用大学物理演示实验报告相关内容:诗词诵读基本模式研究实验报告《亲近母语小学语文课外阅读教学基本模式实践与研究》之子课题《诗词诵读基本模式研究实验报告》浩友慧全

一、课题提出所谓儿童经典背诵,是指在0-13岁这一人生中记忆力最好的年龄段里,各国儿童们通过诵读古今中外最经典的篇章以达到文化。 大学物理演示实验报告 学物理演示实验报告--避雷针 一、演示目的气体放电存在多种形式,如电晕放电、电弧放电和火花放电等,通过此演示实验观察火花放电的发生过程及条件。 二、原理首先让尖端电极和球型电极与平板电极的距离相等。 小学中高年级作文系列训练实验报告 小学中高年级作文系列训练实验报告 一、提出问题培养小学生的作文能力,是小学语文学科诸项任务中既重要又困难的任务。从目前农村小学作文教学的现状来看,仍存在着序列不明,路子不清,方法不当等问题,影响了作文教学质量的提高。 网页制作实验报告 网页制作实验报告实验一:站点设置 一、实验目的及要求本实例是通过“站点定义为”对话框中的“高级”选项卡创建一个新站点。 二、仪器用具 1、生均一台多媒体电脑,组建内部局域网,并且接入国际互联网。 例谈科学探究实验与实验报告

大学物理演示实验报告.doc

大学物理演示实验报告 学物理演示实验报告--避雷针 一、演示目的 气体放电存在多种形式,如电晕放电、电弧放电和火花放电等,通过此演示实验观察火花放电的发生过程及条件。 二、原理 首先让尖端电极和球型电极与平板电极的距离相等。尖端电极放电,而球型电极未放电。这是由于电荷在导体上的分布与导体的曲率半径有关。导体上曲率半径越小的地方电荷积聚越多(尖端电极处),两极之间的电场越强,空气层被击穿。反之越少(球型电极处),两极之间的电场越弱,空气层未被击穿。当尖端电极与平板电极之间的距离大于球型电极与平板电极之间的距离时,其间的电场较弱,不能击穿空气层。而此时球型电极与平板电极之间的距离最近,放电只能在此处发生。 三、装置 一个尖端电极和一个球型电极及平板电极。 四、现象演示 让尖端电极和球型电极与平板电极的距离相等。尖端电极放电,而球型电极未放电。接着让尖端电极与平板电极之间的距离大于球型电极与平板电极之间的距离,放电在球型电极与平板电极之间发生

五、讨论与思考 雷电暴风雨时,最好不要在空旷平坦的田野上行走。为什么? 学物理演示实验报告--避雷针 一、演示目的 气体放电存在多种形式,如电晕放电、电弧放电和火花放电等,通过此演示实验观察火花放电的发生过程及条件。 二、原理 首先让尖端电极和球型电极与平板电极的距离相等。尖端电极放电,而球型电极未放电。这是由于电荷在导体上的分布与导体的曲率半径有关。导体上曲率半径越小的地方电荷积聚越多(尖端电极处),两极之间的电场越强,空气层被击穿。反之越少(球型电极处),两极之间的电场越弱,空气层未被击穿。当尖端电极与平板电极之间的距离大于球型电极与平板电极之间的距离时,其间的电场较弱,不能击穿空气层。而此时球型电极与平板电极之间的距离最近,放电只能在此处发生。 三、装置 一个尖端电极和一个球型电极及平板电极。 四、现象演示 让尖端电极和球型电极与平板电极的距离相等。尖端电极放电,而球型电极未放电。接着让尖端电极与平板电极之间的距离大于球型电极与平板电极之间的距离,放电在球型电极与平板电极之间发

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