搜档网
当前位置:搜档网 › 2、分支结构实验报告

2、分支结构实验报告

2、分支结构实验报告
2、分支结构实验报告

南京工程学院

电力工程学院

2012/ 2013 学年第 2 学期

实验报告

课程名称C语言程序设计

实验项目名称分支结构

实验学生班级供电121

实验学生姓名孙艺芸206120808

同组学生姓名

实验时间2013-3-28

实验地点电力工程基础实验室

实验报告成绩:评阅教师签字:

年月日电力工程学院二OO七年制

说明

1. 实验报告为实验的重要考核依据之一,每个实验必须定一份实验报告. 本实验报告原则上要求手写。

2.本实验报告各项内容的具体格式、字数可由指导教师根据实验具体情况提出具体要求。各项内容可另附页,为便于归档,附页尺寸不得大于本实验报告尺寸,并注意粘牢于附页粘贴处。

3. 实验报告封面中的“实验名称”应为实验教学大纲上所列的规范名称,“实验地点”应写出实验室的具体名称。请确认无误后再填写。

4. 实验报告的建议格式为:

一、实验目的和要求;

二、主要实验仪器和设备;

三、本次实验内容

(一)实验项目名称(按本次实验各项目填写)

1、原理或接线图

2、实验步骤及注意事项

3、实验预习过程中所遇到问题

……

四、实验记录及数据处理(主要内容包括实验具体实施步骤、

实验原始数据、计算过程与结果、数据曲线、图表等。具体

格式按指导教师要求)

五、实验结论(主要内容包括本实验小结、实验体会或疑

问等。具体格式按指导教师要求)

5. 实验成绩由实验预习、实验表现、实验报告三部分组成。其中前两项各占总成绩的30%。实验报告成绩依据报告的科学性、全面性、规范性及书写态度综合考核。实验报告采用百分制,占实验总成绩的40%,教师请阅本报告后需签字并给出实验报告百分制成绩。

6. 实验报告需按要求时间以班级为单位交给指导教师,最长时间不得超过两周,实验报告如有明显抄袭者或不交者,实验总评成绩按0 分记。

一、实验目的和要求

1、熟练掌握if语句的基本结构和switch语句的多分支结构;

2、掌握C语言中关系表达式和逻辑表达式的正确书写;

3、掌握if语句的正确使用,尤其注意else和else if语句的使用;

4、能利用if和switch语句编写选择结构程序。

二、主要实验仪器和设备

计算机、Visual C++

三、本次实验内容

1、题目:设计一个程序,输入一个整数,判断它的奇偶性。(1)算法说明:

开始

输入n

t=n%2

t=0

N

Y

输出偶数输出奇数

结束

(2)程序清单:

#include

void main()

{

int x,t;

printf("请输入x=?\n");

scanf("%d",&x);

t=x%2;

if(t==0) printf("%d是偶数\n",x);

if(t==1) printf("%d是奇数\n",x);

}

(3)运行结果:

(4)分析与思考:

本题是一个if else语句,利用n除以2所得余数判断是否为偶数。

2、题目:求分段函数y=f(x)的值,f(x)的表达式如下:

x2 -1 (x<-1)

f(x)= x2 (-1≤x≤1)

x2 +1 (x>1)

(1)算法说明:

开始

输入x

X<-1

y=x2-1-1≤x≤1

y=x2y=x2+1

输出y

(2)程序清单:

#include

void main()

{

float x,y;

printf("请输入x\n");

scanf("%f",&x);

if(x<-1)

y=x*x-1;

else

if(-1<=x&&x<=1)

y=x*x;

else

y=x*x+1;

printf("y=%f\n",y);

}

(3)运行结果:

(4)分析与思考:

① 本题是两个if else 语句的嵌套,求分段函数的值;

② 要注意-1<=x&&x<=1不能写成-1<=x<=1。

3

、题目:写一个程序,输入圆的半径再输入数字0或1,若为0,计算面积。若为1,计算圆周长。

(1)算法说明: 开始输入r,t,s,c

t=0s=PI*r*r Y t=1N

c=2*PI*r Y 输出error N 输出s 输出c

结束 (2)程序清单: #include #include #define PI 3.1416 void main() { float r,c,s;

int t;

printf("请输入r,t\n");

scanf("%f,%d",&r,&t);

switch(t)

{ case 0:

s=PI*r*r;

printf("s=%f\n",s);break;

case 1: c=2*PI*r; printf("c=%f\n",c);break;

default:

printf("输入错误!\n");

} } (3)运行结果: (4)分析与思考:

4、题目:已知银行不同期限的存款年利率为:

活期0.72%; 一年1.98%; 二年2.25%; 三年2.54%; 五年2.79% 要求输入存款的本金和期限,求到期时能从银行得到的利息与本金的合计(扣除20%的利息税)。

(1)算法说明: 开始输入year year=0输入x ,a Y year=1N 输入x Y year=2N year=3N

year=5N 输入x 输入x 输入x Y Y Y y=0.8*(0.72/100)*(a/365)*x s=y+x y=0.8*(1.98/100)*x s=y+x y=0.8*(2.25/100)*x s=y+x

y=0.8*(2.54/100)*x s=y+x y=0.8(2.79、100)*x s=y+x 结束

(2)程序清单:

#include

void main()

{

float x,y,s;

int a,year;

printf("请输入year=?\n");

scanf("%d",&year);

switch(year)

{

case 0:

printf("请输入本金x,天数a\n");

scanf("%f,%d",&x,&a);

y=0.8*(0.72/100)*((float)a/365)*x;

s=y+x;

printf("s=%f\n",s);break;

case 1:

printf("请输入本金x\n");

scanf("%f",&x);

y=0.8*(1.98/100)*x;

s=y+x;

printf("s=%f\n",s);break;

case 2:

printf("请输入本金x\n");

scanf("%f",&x);

y=0.8*(2.25/100)*x;

s=y+x;

printf("s=%f",s);break;

case 3:

printf("请输入本金x\n");

scanf("%f",&x);

y=0.8*(2.54/100)*x;

s=y+x;

printf("s=%f",s);break;

case 5:

printf("请输入本金x\n");

scanf("%",&x);

y=0.8*(2.79/100)*x;

s=y+x;

printf("s=%f",s);break;

default:printf("error!");

} }

(3)运行结果:

(4)分析与思考:

① 本题有多种算法,第一种方法可以用两个switch 语句嵌套,第二种方法可以用一个switch 语句。

② 第一种方法可以先定义一个变量,规定0为活期、1为定期,然后在活期后再嵌套一个switch 语句,定义一个变量为年份;第二种方法只定义一个变量,并规定活期年份为0,。 5、题目:判断输入的字符属于哪一类字符:大写、小写、数字和其他字符。 (1)算法说明: Y 开始

输入x ‘A ’

‘0’

(2)程序清单:

#include

void main()

{

char x;

printf("请输入x\n");

scanf("%c",&x);

if('A'<=x&&x<='Z')

printf("大写字母\n");

else

if('a'<=x&&x<='z')

printf("小写字母\n");

else

if('0'<=x&&x<='9')

printf("数字\n");

else printf("其他\n");

}

(3)运行结果:

(4)分析与思考:

①这一题将3个if else语句嵌套起来,看起来有些麻烦,但是又不好用switch,因为变量需要判断范围,而不是确切的等于某个定值;

②做这一题,必须知道‘A’~‘Z’代表大写字母等等,也可以用ASCII 代替。

6、题目:输入一个整数,判断其能否被3、5整除,并输出一下信息之一:(1)能被3、5整除:(2)能被3整除:

(3)能被5整除;(4)不能被3、5整除。

(1)算法说明:

开始输入n x=n%3,y=n%5x=0y=0Y y=0N 能被3、5整除能被3整除Y N 能被5整除不能被3、5整除Y N 结束

(2)程序清单: #include void main() {

int n,x,y;

printf("请输入n=?\n");

scanf("%d",&n);

x=n%3;

y=n%5; if(x==0)

if(y==0)

printf("能被3,5整除\n");

else printf("能被3整除\n"); else if(y==0) printf("能被5整除\n");

else

printf("不能被3,5整除\n"); }

(3)运行结果:

(4)分析与思考:

①本题用了3个if else语句,if后嵌套了一个if else语句,else后也嵌套了一个if else语句。

注:附页可粘贴于此页,注意粘贴整齐,不要超过页面边界。

计算机体系结构实验报告二

实验二结构相关 一、实验目得: 通过本实验,加深对结构相关得理解,了解结构相关对CPU性能得影响。 二、实验内容: 1、用WinDLX模拟器运行程序structure_d、s 。 2、通过模拟,找出存在结构相关得指令对以及导致结构相关得部件。 3、记录由结构相关引起得暂停时钟周期数,计算暂停时钟周期数占总执行 周期数得百分比。 4、论述结构相关对CPU性能得影响,讨论解决结构相关得方法。 三、实验程序structure_d、s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; < A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit < this is a ment !! A: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 四、实验过程 打开软件,load structure_d、s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(Rstall 数据相关Stall 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面得数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关得部件:译码部件。

数据结构实验报告格式

《数据结构课程实验》大纲 一、《数据结构课程实验》的地位与作用 “数据结构”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术,并做了性能分析和比较,内容非常丰富。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大的难度: (1)内容丰富,学习量大,给学习带来困难; (2)贯穿全书的动态链表存储结构和递归技术是学习中的重点也是难点; (3)所用到的技术多,而在此之前的各门课程中所介绍的专业性知识又不多,因而加大了学习难度; (4)隐含在各部分的技术和方法丰富,也是学习的重点和难点。 根据《数据结构课程》课程本身的技术特性,设置《数据结构课程实验》实践环节十分重要。通过实验实践内容的训练,突出构造性思维训练的特征, 目的是提高学生组织数据及编写大型程序的能力。实验学时为18。 二、《数据结构课程实验》的目的和要求 不少学生在解答习题尤其是算法设计题时,觉得无从下手,做起来特别费劲。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。在掌握基本算法的基础上,掌握分析、解决实际问题的能力。 三、《数据结构课程实验》内容 课程实验共18学时,要求完成以下六个题目: 实习一约瑟夫环问题(2学时)

(完整版)数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1 .实验目的 (1 )掌握使用Visual C++ 6.0 上机调试程序的基本方法; (2 )掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2 .实验要求 (1 )认真阅读和掌握和本实验相关的教材内容。 (2 )认真阅读和掌握本章相关内容的程序。 (3 )上机运行程序。 (4 )保存和打印出程序的运行结果,并结合程序进行分析。 (5 )按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>// 头文件 #include// 库头文件------ 动态分配内存空间 typedef int elemtype;// 定义数据域的类型 typedef struct linknode// 定义结点类型 { elemtype data;// 定义数据域 struct linknode *next;// 定义结点指针 }nodetype; 2)创建单链表

nodetype *create()// 建立单链表,由用户输入各结点data 域之值, // 以0 表示输入结束 { elemtype d;// 定义数据元素d nodetype *h=NULL,*s,*t;// 定义结点指针 int i=1; cout<<" 建立一个单链表"<> d; if(d==0) break;// 以0 表示输入结束 if(i==1)// 建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));// 表示指针h h->data=d;h->next=NULL;t=h;//h 是头指针 } else// 建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t 始终指向生成的单链表的最后一个节点

数据结构实验报告

数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include "Stack.h"//栈的头文件,没有用上 typedefintElemType; //数据类型 typedefint Status; //返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType data; //数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree; intInsertBST(BiTree&T,int key){//插入二叉树函数 if(T==NULL) { T = (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(keydata){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL; inti=0; while(i

大工13春《土木工程实验(二)》实验报告11

姓名:张坤 院校学号:121213303190 学习中心:浙江建院奥鹏 层次:专升本(高起专或专升本) 专业:土木工程 实验一:混凝土实验 一、实验目的:1.熟悉混凝土的技术性质和成型养护方法; 2.掌握混凝土拌合物工作性的测定和评定方法; 3.通过检验混凝土的立方体抗压强度,掌握有关强度的评定方法。 二、配合比信息: 1.基本设计指标 (1)设计强度等级C30 (2)设计砼坍落度30—50mm 2.原材料 (1)水泥:种类复合硅酸盐水泥强度等级PC32.5Mpa (2)砂子:种类河砂细度模数 (3)石子:种类碎石粒级5-31.5mm连续级配 (4)水:洁净的淡水或蒸馏水 3.配合比:(kg/m3) 三、实验内容: 第1部分:混凝土拌合物工作性的测定和评价 1、实验仪器、设备:电子称:量程50kg,感量50g;量筒;塌落度筒;拌铲;小铲;捣棒(直径16mm、长600mm,端部呈半球形的捣棒);拌和板;金属底板;

2、实验数据及结果 第2部分:混凝土力学性能检验 1、实验仪器、设备:标准试模:150mm×150mm;振动台;压力试验机:测量精度为±1%,试件破坏荷载应大于压力机全量程的20%且小于压力机全量程的80%;标准养护室 2、实验数据及结果 四、实验结果分析与判定: (1)混凝土拌合物工作性是否满足设计要求,是如何判定的? 满足设计要求。实验要求混凝土拌合物的塔落度30-50mm,而此次实验结果中塔落度为40mm,符合要求;捣棒在已坍落的拌合物锥体侧面轻轻敲打,锥体逐渐下沉表示粘聚性良好;坍落度筒提起后仅有少量稀浆从底部析出表示保水性良好。 (2)混凝土立方体抗压强度是否满足设计要求。是如何判定的?

土木工程试验报告

试验一 电阻应变计测量应变技术 1.整理试验数据,并作应变仪按半桥和全桥接线的测量关系比较 表1 试验数据记录表 接法 半桥接法(1)单点外补偿 半桥接法(2)工作片互补偿 次序 0 5 10 20 30 0 5 10 20 30 1 εμ 0 94 187 374 558 2 185 368 736 1102 2 εμ 0 98 192 379 565 3 186 368 735 1101 3 εμ 95 189 376 562 2 187 369 734 1101 平均值(εμ) 0 95.7 189.3 376.3 561.7 2.3 186.0 368.3 735.0 1101.3 表2 试验数据记录表 接法 全桥接法(1)2工作片2补偿片 全桥接法(2)4工作片互补偿 次序 0 5 10 20 30 0 5 10 20 30 1 εμ 2 189 374 742 1110 0 362 722 1446 2172 2 εμ 2 188 372 743 1111 -2 360 720 1445 2170 3 εμ 186 370 740 1108 -3 360 720 1444 2170 平均值(εμ) 1.3 187.7 37 2.0 741.7 1109.7 -1.7 360.7 720.7 1445.0 2170.7 半桥接法(1)单点外补偿是将应变片R1接于应变仪AB 接线柱,温度补偿片R5接于BC 接线柱,另外半桥由应变仪内部两个无感绕线电阻构成,应变仪读出的应变值为测点处沿应变计轴向的应变,即m εε=仪。 半桥接法(2)工作片互补偿是将应变片R1、R2分别接于应变仪AB 、BC 接线柱,两个工作片互为温度补偿,应变仪读数为实际应变的2倍,即m 2εε=仪。 全桥接法(1)2工作片2补偿片是将应变片R1、R3分别接于应变仪AB 、DC 接线柱,将两个补偿片接入AD 、BC 接线柱,应变仪读数为实际应变的2倍,即 m 2εε=仪。 全桥接法(2)4工作片互补偿是将四个工作片都接入桥路中,每个桥路中

体系结构实验报告

中南大学软件学院 软件体系结构 设计模式实验报告 学生姓名:宋昂 所在学院:软件学院 学生学号: 3901080115 学生班级:软件0801 指导老师:刘伟 完成日期: 2010-12-7

一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 简单工厂模式 使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。 (2) 简单工厂模式 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man 对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。 (3) 工厂方法模式 某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。

数据结构实验报告模板

2009级数据结构实验报告 实验名称:约瑟夫问题 学生姓名:李凯 班级:21班 班内序号:06 学号:09210609 日期:2010年11月5日 1.实验要求 1)功能描述:有n个人围城一个圆圈,给任意一个正整数m,从第一个人开始依次报数,数到m时则第m个人出列,重复进行,直到所有人均出列为止。请输出n个人的出列顺序。 2)输入描述:从源文件中读取。 输出描述:依次从显示屏上输出出列顺序。 2. 程序分析 1)存储结构的选择 单循环链表 2)链表的ADT定义 ADT List{ 数据对象:D={a i|a i∈ElemSet,i=1,2,3,…n,n≧0} 数据关系:R={< a i-1, a i>| a i-1 ,a i∈D,i=1,2,3,4….,n} 基本操作: ListInit(&L);//构造一个空的单链表表L ListEmpty(L); //判断单链表L是否是空表,若是,则返回1,否则返回0. ListLength(L); //求单链表L的长度 GetElem(L,i);//返回链表L中第i个数据元素的值; ListSort(LinkList&List) //单链表排序 ListClear(&L); //将单链表L中的所有元素删除,使单链表变为空表 ListDestroy(&L);//将单链表销毁 }ADT List 其他函数: 主函数; 结点类; 约瑟夫函数 2.1 存储结构

[内容要求] 1、存储结构:顺序表、单链表或其他存储结构,需要画示意图,可参考书上P59 页图2-9 2.2 关键算法分析 结点类: template class CirList;//声明单链表类 template class ListNode{//结点类定义; friend class CirList;//声明链表类LinkList为友元类; Type data;//结点的数据域; ListNode*next;//结点的指针域; public: ListNode():next(NULL){}//默认构造函数; ListNode(const Type &e):data(e),next(NULL){}//构造函数 Type & GetNodeData(){return data;}//返回结点的数据值; ListNode*GetNodePtr(){return next;}//返回结点的指针域的值; void SetNodeData(Type&e){data=e;}//设置结点的数据值; void SetNodePtr(ListNode*ptr){next=ptr;} //设置结点的指针值; }; 单循环链表类: templateclass CirList { ListNode*head;//循环链表头指针 public: CirList(){head=new ListNode();head->next=head;}//构造函数,建立带头节点的空循环链表 ~CirList(){CirListClear();delete head;}//析构函数,删除循环链表 void Clear();//将线性链表置为空表 void AddElem(Type &e);//添加元素 ListNode *GetElem(int i)const;//返回单链表第i个结点的地址 void CirListClear();//将循环链表置为空表 int Length()const;//求线性链表的长度 ListNode*ListNextElem(ListNode*p=NULL);//返回循环链表p指针指向节点的直接后继,若不输入参数,则返回头指针 ListNode*CirListRemove(ListNode*p);//在循环链表中删除p指针指向节点的直接后继,且将其地址通过函数值返回 CirList&operator=(CirList&List);//重载赋

《数据结构》实验报告

《数据结构》实验报告 实验序号:4 实验项目名称:栈的操作

附源程序清单: 1. #include #define MaxSize 100 using namespace std; typedef int ElemType; typedef struct { ElemType data[MaxSize]; int top; }SqStack; void InitStack(SqStack *st) //初始化栈 { st->top=-1; } int StackEmpty(SqStack *st) //判断栈为空{ return (st->top==-1); } bool Push(SqStack *st,ElemType x) //元素进栈{ if(st->top==MaxSize-1)

{ return false; } else { st->top++; //移动栈顶位置 st->data[st->top]=x; //元素进栈 } return true; } bool Pop(SqStack *st,ElemType &e) //出栈 { if(st->top==-1) { return false; } else { e=st->data[st->top]; //元素出栈 st->top--; //移动栈顶位置} return true; } //函数名:Pushs //功能:数组入栈 //参数:st栈名,a->数组名,i->数组个数 bool Pushs(SqStack *st,ElemType *a,int i) { int n=0; for(;n数组名,i->数组个数 bool Pops(SqStack *st,ElemType *a,int i) { int n=0; for(;n

数据结构课程实验报告(15)

课程实验报告课程名称:数据结构 专业班级:信安1302 学号: 姓名: 指导教师: 报告日期:2015. 5. 12 计算机科学与技术学院

目录 1 课程实验概述............ 错误!未定义书签。 2 实验一基于顺序结构的线性表实现 2.1 问题描述 ...................................................... 错误!未定义书签。 2.2 系统设计 ...................................................... 错误!未定义书签。 2.3 系统实现 ...................................................... 错误!未定义书签。 2.4 效率分析 ...................................................... 错误!未定义书签。 3 实验二基于链式结构的线性表实现 3.1 问题描述 ...................................................... 错误!未定义书签。 3.2 系统设计 ...................................................... 错误!未定义书签。 3.3 系统实现 ...................................................... 错误!未定义书签。 3.4 效率分析 ...................................................... 错误!未定义书签。 4 实验三基于二叉链表的二叉树实现 4.1 问题描述 ...................................................... 错误!未定义书签。 4.2 系统设计 ...................................................... 错误!未定义书签。 4.3 系统实现 ...................................................... 错误!未定义书签。 4.4 效率分析 ...................................................... 错误!未定义书签。 5 实验总结与评价 ........... 错误!未定义书签。 1 课程实验概述 这门课是为了让学生了解和熟练应用C语言进行编程和对数据结构进一步深入了解的延续。

土木工程实验报告

实验一土得颗粒分析试验 一、实验目得 1 测定干土中各种粒组所占该土总质量得百分数,借以明了颗粒大小分布及级配组成。 2 供土分类及概略判断土得工程性质及作建筑材料用。 二、试验内容 对粒径大于0、075mm且粒径大于2mm得颗粒不超过总质量得10%得无粘性土用标准细筛进行筛分试验。 三、实验仪器与设备 1 标准细筛:孔径为2mm、1mm、0.5mm、0。25mm、0。075mm、底盘; 2电子天平:称量200g,感量0。01g;称量1000g,感量0。1g; 3摇筛机、恒温烘箱; 4其她:毛刷、匙、瓷盘、瓷杯、白纸. 四、实验方法与步骤 1取有代表性得风干土样或烘干冷却至室温得土样200~500g,称量准确至0。1g。 2 将标准细筛依孔径大小顺序叠好,孔径大得在上,最下面为底盘,将称好得土样倒入最上层筛中,盖好上盖.进行筛析。标准细筛放在摇筛机上震摇与约10分钟左右。 3 检查各筛内就是否有团粒存在,若有则碾散再过筛。 4由最大孔径筛开始,将各筛取下,在白纸上用手轻叩摇晃,如有土粒漏下,应继续轻叩摇晃,至去土粒漏下为止。漏下得砂粒应全部放入下级筛内。逐次检查至盘底。 5并将留在各筛上得土样分别分别倒在白纸上,用毛刷将走色中砂粒轻轻刷下,再分别倒入瓷杯内,称量准确至0.1g。 6 各细筛上及底盘内砂土质量总与与筛前称量得砂土样总质量之差不得大于1%。 五、试验数据整理 1按下式计算小于某粒径得试样质量占总质量得百分数: 式中 x—小于某粒径得试样质量占试样总质量得百分数(%); -小于某粒径得试样质量(g); mB-用标准细筛分析时所取得试样质量(g)。 2 以小于某粒径得试样质量占试样总质量得百分数为纵坐标,以粒径(mm)为对数横坐标,绘制颗粒大小分布曲线。 3 计算级配指标 ①按下式计算颗粒大小分布曲线得不均匀系数: 式中Cu—不均匀系数; d60-限制粒径,在粒径分布曲线上小于该粒径得土含量占总土质量得60%得粒径; d10—有效粒径,在粒径分布曲线上小于该粒径得土含量占总土质量得10%得粒径。 ②按下式计算颗粒大小分布曲线得曲率系数: 式中Cc-曲率系数;

计算机系统结构实验报告

计算机系统结构实验报告 一.流水线中的相关 实验目的: 1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 实验平台: WinDLX模拟器 实验内容和步骤: 1.用WinDLX模拟器执行下列三个程序: 求阶乘程序fact.s 求最大公倍数程序gcm.s 求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察 CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 2. 用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相 关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的 百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。 3. 在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的 总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。 1. 求阶乘程序 用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准 输入读入一个整数,求其阶乘,然后将结果输出。 该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。 实验结果: 在载入fact.s和input.s之后,不设置任何断点运行。 a.不采用重新定向技术,我们得到的结果

数据结构实验报告--图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ } void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e)

{ int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: "; cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } } template void MGraph::DFSTraverse(int v) { cout << vertex[v]; visited[v] = 1; for(int j = 0; j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0) DFSTraverse(j); } template void MGraph::BFSTraverse(int v) { int Q[MaxSize]; int front = -1, rear = -1; cout << vertex[v]; visited[v] = 1; Q[++rear] = v; while(front != rear) { v = Q[++front]; for(int j = 0;j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0){ cout << vertex[j]; visited[j] = 1;

计算机体系结构实验报告二

实验二结构相关 一、实验目的: 通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。 二、实验内容: 1. 用WinDLX模拟器运行程序structure_d.s 。 2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。 3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行 周期数的百分比。 4. 论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 三、实验程序structure_d.s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; <- A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit <- this is a comment !! A: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

四、实验过程 打开软件,load structure_d.s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(R-stall 数据相关Stall- 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面的数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关的部件:译码部件。 2)第二个结构相关:ADDI R2, R2, #8,与第一个结构相关类似。由于数据相关, 上一条指令暂停在ID阶段,所以导致下一条指令发生结构相关。

数据结构实验报告及心得体会

2011~2012第一学期数据结构实验报告 班级:信管一班 学号:201051018 姓名:史孟晨

实验报告题目及要求 一、实验题目 设某班级有M(6)名学生,本学期共开设N(3)门课程,要求实现并修改如下程序(算法)。 1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统), 输出实验结果。(15分) 2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学 生的学号、姓名和成绩。 3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。 二、实验要求 1.修改算法。将奇偶排序算法升序改为降序。(15分) 2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)) 3.编译、链接以上算法,按要求写出实验报告(25)。 4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。 5.用A4纸打印输出实验报告。 三、实验报告说明 实验数据可自定义,每种排序算法数据要求均不重复。 (1) 实验题目:《N门课程学生成绩名次排序算法实现》; (2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性; (3) 实验要求:对算法进行上机编译、链接、运行; (4) 实验环境(Windows XP-sp3,Visual c++); (5) 实验算法(给出四种排序算法修改后的全部清单); (6) 实验结果(四种排序算法模拟运行后的实验结果); (7) 实验体会(文字说明本实验成功或不足之处)。

三、实验源程序(算法) Score.c #include "stdio.h" #include "string.h" #define M 6 #define N 3 struct student { char name[10]; int number; int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/ }stu[M]; void changesort(struct student a[],int n,int j) {int flag=1,i; struct student temp; while(flag) { flag=0; for(i=1;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1; } for(i=0;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1;

数据结构实验报告(图)

附录A 实验报告 课程:数据结构(c语言)实验名称:图的建立、基本操作以及遍历系别:数字媒体技术实验日期: 12月13号 12月20号 专业班级:媒体161 组别:无 姓名:学号: 实验报告内容 验证性实验 一、预习准备: 实验目的: 1、熟练掌握图的结构特性,熟悉图的各种存储结构的特点及适用范围; 2、熟练掌握几种常见图的遍历方法及遍历算法; 实验环境:Widows操作系统、VC6.0 实验原理: 1.定义: 基本定义和术语 图(Graph)——图G是由两个集合V(G)和E(G)组成的,记为G=(V,E),其中:V(G)是顶点(V ertex)的非空有限集E(G)是边(Edge)的有限集合,边是顶点的无序对(即:无方向的,(v0,v2))或有序对(即:有方向的,)。 邻接矩阵——表示顶点间相联关系的矩阵 设G=(V,E) 是有n 1 个顶点的图,G 的邻接矩阵A 是具有以下性质的n 阶方阵特点: 无向图的邻接矩阵对称,可压缩存储;有n个顶点的无向图需存储空间为n(n+1)/2 有向图邻接矩阵不一定对称;有n个顶点的有向图需存储空间为n2 9

无向图中顶点V i的度TD(V i)是邻接矩阵A中第i行元素之和有向图中, 顶点V i的出度是A中第i行元素之和 顶点V i的入度是A中第i列元素之和 邻接表 实现:为图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点Vi的边(有向图中指以Vi为尾的弧) 特点: 无向图中顶点Vi的度为第i个单链表中的结点数有向图中 顶点Vi的出度为第i个单链表中的结点个数 顶点Vi的入度为整个单链表中邻接点域值是i的结点个数 逆邻接表:有向图中对每个结点建立以Vi为头的弧的单链表。 图的遍历 从图中某个顶点出发访遍图中其余顶点,并且使图中的每个顶点仅被访问一次过程.。遍历图的过程实质上是通过边或弧对每个顶点查找其邻接点的过程,其耗费的时间取决于所采用的存储结构。图的遍历有两条路径:深度优先搜索和广度优先搜索。当用邻接矩阵作图的存储结构时,查找每个顶点的邻接点所需要时间为O(n2),n为图中顶点数;而当以邻接表作图的存储结构时,找邻接点所需时间为O(e),e 为无向图中边的数或有向图中弧的数。 实验内容和要求: 选用任一种图的存储结构,建立如下图所示的带权有向图: 要求:1、建立边的条数为零的图;

土木工程结构试验总结

1.现代科学研究包括(理论)研究和(试验)研究。 2.根据不同的试验目的,结构试验可分为(生产鉴定性)试验和(科学研究性)试验。 3.工程结构试验大致可分为(试验规划)、(试验准备)、(试验加载测试)和(试验资料整理分析)四个阶段。 4.试件的数量主要取决于测试参数的多少,要根据各参数的(因子数)和(水平数)来决定试件数量。 5.结构在试验荷载作用下的变形可以分为(整体)变形和(局部)变形两类。 6.惠斯顿电桥连接主要有两种方法,即(全桥)和(半桥)。 7.动力试验的振源有(自燃振源)和(人工振源)两大类。 8、结构自振特性主要包括(自振频率)、(阻尼)和(阵型)三个参数。 9.回弹法适用于抗压强度为(19)—(60)MPa的混凝土强度的检测。 10.结构上的荷载按是否引起结构动力反应分为(静力)荷载和(动力)荷载。 11.气压加载按加载方式的不同可分为(正压)加载和(反压)加载。 12.利用环境随机激振方法可以测量建筑物的(动力特性)。 13.反力墙大部分是固定式的,它可以是钢筋混凝土或预应力混凝土的(实体墙)或是空腹式的箱型结构。 14.数据采集就是用(各种仪器)和装置,对数据进行测量和记录。 15.结构振动时,其位移、速度和加速度等随(时间和空间)发生变化。 16.模型设计的程序往往是首先确定(几何比例),再设计确定几个物理量的相似常数。 17.采用等效荷载时,必须全面验算由于(荷载图式)的改变对结构造成的各种影响。 18.采用初位移或初速度的突卸荷载或突加荷载的方法,可使结构受一冲击荷载作用而产生(自由振动)。 19.疲劳试验施加的是一定幅值的(重复荷载),其荷载上限值是按试件在荷载标准值的最不利组合产生的效应值计算而得的. 20.测量混凝土的表面硬度来推算抗压强度,是混凝土结构现场检测中常用的一种(非破损)试验方法。 21.对于结构混凝土开裂深度小于或等于500mm的裂缝,可采用(平测法)或(斜侧法)进行检测。 22.工程结构试验所用试件的尺寸和大小,总体上分为(模型)和(原型)两类。

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

土木工程结构试验学习心得

土木工程结构试验学习心得 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

土木工程结构试验学习心得 土木工程结构试验是研究和发展结构计算理论的重要实践,从材料的力学性能到验证由各种材料构成不同类型结构和构件的基本计算方法,以及近年来发展的大量大跨、超高、复杂结构的计算理论,都离不开试验研究。因此,土木工程结构试验在土木工程结构科学研究和技术革新方面起着重要的作用,与结构设计、施工及推动土木工程学科的发展有着密切的关系。土木工程结构试验是土木工程专业的一门专业技术课程,与材料力学、结构力学、混凝土结构、砌体结构、钢结构、地基基础和桥梁结构等课程直接有关,并涉及物理学、机械与电子测量技术、数理统计分析等内容。通过本课程的学习,使我获得土木工程结构试验方面的基础知识和基本技能,掌握一般工程结构试验规划设计、结构试验、工程检测和鉴定的方法,以及根据试验结果作出正确的分析和结论的能力,为今后的学习和工作打下良好的基础。《土木工程结构试验》是土木工程专业的一门专业课程,也是唯一的一门独立的试验课程。它的任务是在结构或实验对象上,以仪器设备为工具,利用各种实验技术为手段,在荷载或其他因素作用下,通过测试与结构工作性能有关的各种参数(变形、挠度、位移、应变、振幅、频率)后进行分析,从而对结构的工作性能作出评价,对结构的承载能力作出正确的估计,并为验证和发展结构的计算理论提供可靠的依据。通过本门课程的学习,在理论上我学到许多关于结构试验的知识,工程结构试验的量方法、程结构试验过程、可靠性鉴定等。工程结构试验的量方法土木工程结构试验中的试验荷载要与结构在实际中的受力情况相一致,试验时的荷载应使结构处于某一种实际可能的最不利的工作情况。当采用等效荷载时,试验荷载的大小要根据相应的等效条件换算得到,同时要注意荷载图式的改变对结构的各种影响。结构试验的加载制度要根据不同的结构按照相应的规范或标准的规定进行设计。测量方法:机测法。利用机械仪表测量所需的数据或参数,机测法适应性强、简便、可靠、经济,是结构试验中最常用的测量手段。 ②电测法。通过传感元件把试验需要测量的数据或参数,转换为电阻、电容、电感、电压或电流等电量参数,经放大器放大,然后进行测量,由指示记录设备记录和显示,这种转换和测量技术称为非电量电测技术,具有准确、快速测量、自动控制、连续记录和远距离操纵等优点。与计算机联机,还可根据测量结果自行判断和运算。③光测法。利用光的准直性对测量参数放大、转换、实现连续记录,阻尼小、响应快(如光线示波记录仪)。也可利用光敏材料的物理化学原理和力学特性在偏振光作用下产生的光学效应,测定应力场(如光弹仪),简便、可靠、直观性好;及激光测量位移和激光全息的应用。

相关主题