打印二叉树结构-数据结构与算法课程设计报告

打印二叉树结构-数据结构与算法课程设计报告
打印二叉树结构-数据结构与算法课程设计报告

合肥学院

计算机科学与技术系

课程设计报告

2009~2010学年第二学期

课程数据结构与算法

课程设计名称打印二叉树结构

学生姓名张文学

学号0804012017

专业班级08级计算机科学与技术专业(2)班

指导教师王昆仑张贯虹

2010年06月

题目:打印二叉树结构

问题描述:按凹入表形式横向打印任意二叉树结构,即二叉树的根在屏幕的最左边,二叉树的左子树在屏幕的下边,二叉树的右子树在屏幕的上边。提示:

(1)可以利用RDL遍历方法实现。

(2)利用结点的深度控制横向位置。

(3)在屏幕上打印出树形结构。

数据结构的选择和概要设计:

数据结构:因题目为打印二叉树结构,所以数据结构必选二叉树并在此用链式存储。结构体定义为:

typedef struct node{

char data;

struct node *lchild,*rchild;

}Node;

概要设计:题目要求为以凹形方式打印,并根在左边。因此可用递归函数实现这个功能,函数有两个参数,一个为二叉树结点指针,一个为这个结点的层次(void display(Node *bt,int layer))。递归调用先是当前结点的右孩子,层次加一,然后打印当前结点,最后是递归调用当前结点的左孩子,层次同上面右孩子。

详细设计和代码:

详细设计:

首先要建立一个二叉树,在此为了使程序代码尽可能的简洁明了。建立二叉树采用先序方式,即在输入二叉树序列时与在先序遍历时结点数据相同。维一的区别是当出现无结点时,要以空格表示。最后,以回车表示输入结果。

建立完二叉树以后,就可以打印了。题目要求为以凹形方式打印,并根在左边。所以可用从右到左的中序遍历方法实现右孩子在上,根在中间,左孩子在下的结构。要突出层次结构,可利用递归方法。设计一个递归函数,两个参数,一个表示为二叉树结点指针,一个表示结点指针所指向结点层次。在一个递归函数中,先递归调用自己,参数一为当前结点的右孩子,层次因比根结点的层次多一。因此,要在根结点的层次的基础上加一。在此为了突出层次,并使打印出的结果,层次结构更清晰,将每次要加一表示层次的变化,改为加二。然后,打印当根结点的数据。分三步:一,打印n个空格,n为当前形参中的“层次”;二,打印数据;三,回车换行。最后,递归调用自己,实参分别为,一是当前根结点的左孩子,二于前面的“层次”一样,因为,一个根在左右两个孩子结点所在的层次是一样的。如此,就可实现以凹形方式打印二叉树的要求。

代码:

/*

* This program create a binary tree by preorder,then

* print it out,show its layers;

*

* 06/03/2010

*/

#include

#include

/* the type of the binary tree node */

typedef struct node{

char data;

struct node *lchild,*rchild;

}Node;

/* create a binary tree ,preorder */

Node *create(){

char ch;

Node *pnode=NULL;

ch=getchar();

if(ch!=' '&&ch!='\n'){

pnode=(Node *)malloc(sizeof(Node));

pnode->data=ch;

pnode->lchild=create();

pnode->rchild=create();

}

return pnode;

}

/* display a binary tree ,show its layers */

void display(Node *bt,int layer){

int i=0;

if(bt){

display(bt->rchild,layer+2);

for(;i

printf(" ");

printf("%c\n",bt->data);

display(bt->lchild,layer+2);

}

}

int main(){

Node *bt=NULL;

printf("\nThis program create a binary tree by preorder,then\n");

printf("print it out,show its layers\n");

printf("\n06\\03\\2010\n");

printf("\nCreate a binary tree (preorder,backspace(pnode==NULL)):\n");

bt=create();

getchar();

printf("\n\nThe binary tree you just created is :\n\n");

display(bt,0);

printf("\n\n");

getchar();

return 0;

}

上机调试:

1,初次运行时,出现访问内存错误。

原因:在建立二叉树时,返回指针我是通过参数传递实现的。因实参与形参的转换,对形参的更改并没有改变实参。所以在下面继续调用实参指向的左子树时,出现内在访问错误。

改证:方法一,以返回值的形式更改指针。本程序就采用此方法,原因是易理解。

方法二,形参利用引用。如此,形参相当于实参的别名,对形参的更改也就是对实参的更改。

2,两次运行时,又出现访问内存错误。

原因:在打印二叉树时,当访问到最右边的结点时,再次访问它的右子树,此时指针为空,当进入函数后,再次访问它的右子树,就会出现访问内存错误,因为此时的指针为NULL。

改证:在函数的开始处,判断指针是否为空,空则不处理,即返回。否则,利用上述详细设计设计代码。

测试结果及分析:

测试二叉树的先序遍历为:ABDCEF;

实际测试过程:

测试时建立二叉树输入序列为:AB D CE F ↙

测试结果如下:

建立二叉树的过程:

图1 建立二叉树的过程

打印二叉树:

图2 打印二叉树

分析:由上测试过程可以分析得出结论。

(1)程序在输入完全正确的情况下可正常运行。

(2)程序完成了题目的所有要求。

用户使用说明:

本程序首先要求以先序方式建立一个二叉树,然后打印出这个二叉树。

在建立二叉树,结点数据以先序方式输入,并用空格表示当遍历时出现空结点的情况。最后以回车键表示结束。此时程序将以凹形方式打印出这个二叉树。输入任意键结束程序。

参考文献:

[1] 王昆仑,李红.数据结构与算法.北京:中国铁道出版社,2007.

结构力学课程设计报告

一. 课程设计的目的 1. 通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要 功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2. 通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规 律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打 下坚实的基础 二. 课程设计的内容 (1).对图示两类桁架进行分析 在相同荷载作用下,比较各类桁架的受力特点; 讨论各种杆件(上弦杆,下弦杆,竖杆,斜杆)内力随 随高跨比变化的规律; 若增加杆件使其成为超静定桁架,内力有何变化。 (2).两种结构在静力等效荷载作用下,内力有哪些不同? 平行弦桁架 1/2 1 1 1 1 1 1/2 三角桁1/2 1 1 1 1 1 1/2

(3)、用求解器自动求解功能求a=2和a=1.0时的各杆内力。比较两种情况内力分布,试用试算法调整a 的大小,确定使弯矩变号的临界点a 0,当a=a 0时结构是否处于无弯矩状态? (4) 、图示为一个两跨连续梁,两跨有关参数相同(l =6m ,E =1.5*106kPa ,截面0.5*0.6m 2,线膨胀系数1.0*10-5)。第一跨底部温度升高60oC ,分析变形和内力图的特点。 (4) 、计算下支撑式五角形组合屋架的内力,并分析随跨高 比变化内力变化规律。当高度确定后内力随f 1,f 2的比例不同的变化规律(四个以上算例)。 1/4 11×(1/2) 1/4 1/2 1 1 1 1 1 1/2 a a a a 3 6m 6m

一. 课程设计的数据 1. 第(1)题数据 1) 平行弦桁架 a) 高跨比1:4(每小格比例2:3) 输出图形: 输出内力值: 内力计算 杆端内力值 ( 乘子 = 1) ----------------------------------------------------------------------------------------------- 3m 3m 3m 3m f 2 f 1 f =1.2m q =1kN/m

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

结构力学实验报告模板1

结构力学实验报告 班级12土木2班 姓名 学号

实验报告一 实验名称 在求解器中输入平面结构体系 一实验目的 1、了解如何在求解器中输入结构体系 2、学习并掌握计算模型的交互式输入方法; 3、建立任意体系的计算模型并做几何组成分析; 4、计算平面静定结构的内力。 二实验仪器 计算机,软件:结构力学求解器 三实验步骤 图2-4-3 是刚结点的连接示例,其中图2-4-3a 中定义了一个虚拟刚结点和杆端的连接码;各个杆端与虚拟刚结点连接后成为图2-4-3b 的形式,去除虚拟刚结点后的效果为图2-4-3c 所示的刚结点;求解器中显示的是最后的图2-4-3c。图2-4-4 是组合结点的连接示例,同理,无需重复。铰结点是最常见的结点之一,其连接示例在图2-4-5 中给出。这里,共有四种连接方式,都等效于图2-4-5e 中的铰结点,通常采用图2-4-5a 所示方式即可。值得一提的是,如果将三个杆件固定住,图2-4-5b~d 中的虚拟刚结点也随之被固定不动,而图2-4-5a 中的虚拟刚结点仍然存在一个转动自由度,可以绕结点自由转动。这是一种结点转动机构,在求解器中会自动将其排除不计①。结点机构实际上也潜存于经典的结构力学之中,如将一个集中力矩加在铰结点上,便可以理解为加在了结点机构上(犹如加在可自由转动的销钉上),是无意义的。 综上所述,求解器中单元对话框中的“连接方式”是指各杆端与虚拟刚结点的连接方式,而不是杆件之间的连接方式。这样,各杆件通过虚拟刚结点这一中介再和其他杆件间接地连接。这种处理的好处是可以避免结点的重复编码(如本书中矩阵位移法中所介绍的),同时可以方便地构造各种

二叉树课程设计

实验6.1 实现二叉树各种基本运算的算法 编写一个程序algo6-1.cpp,实现二叉树的各种运算,并在此基础上设计一个主程序完成如下功能(T为如图所示的一棵二叉树): (1)以括号表示法输出二叉树T。 (2)输出H结点的左、右孩子结点值。 (3)输出二叉树T的叶子结点个数。 (4)输出二叉树T的深度。 (5)输出对二叉树T的先序遍历序列。 (6)输出对二叉树T的中序遍历序列。 (7)输出对二叉树T的后序遍历序列。 提示:创建二叉树的算法参见书上131页的算法6.4。按先序序列输入二叉树中结点的值(一个字符),#字符表示空树。输入序列: ABD##EHJ##KL##M#N###CF##G#I## 以括号表示法输出二叉树的结果为: A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))

程序段 #include #include #include //#define MAX 50 #define OK 1 //?t2?ê÷á′±í′?′¢?á11 typedef struct btnode { char Data;//?áμ?êy?Y?úèY struct btnode *Llink;//×ó×óê÷????struct btnode *Rlink;//óò×óê÷????}btnode,*btreetype; //11?ì???t2?ê÷ int InitBiTree(btreetype &T) { T=NULL; return OK; } //?¨á¢?t2?ê÷ void CreatBiTree(btreetype &T) {char ch; scanf("%c",&ch); if(ch==' ')T=NULL; else { T=(btreetype)malloc(sizeof(btnode)); if(!T)exit(-1); T->Data=ch; CreatBiTree(T->Llink); CreatBiTree(T->Rlink); } } //ê?3??áμ?μ?×óo¢×ó void LeftChild(btreetype &M,char e) {

结构力学求解器求解示例

结构力学(二)上机试验结构力学求解器的使用 上机报告 班级: 姓名: 学号: 日期:

实验三、计算结构的影响线 1.实验任务 (1)作以下图示梁中截面D 的内力D M 、QD F 的影响线。 观览器:D M 的影响线 观览器:QD F 的影响线 D |F=1 3 365

编辑器: 结点,1,0,0 结点,2,3,0 结点,3,6,0 结点,4,12,0 结点,6,6,1 结点,5,17,1 单元,1,2,1,1,0,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,0 单元,3,6,1,1,0,1,1,0 单元,6,5,1,1,0,1,1,0 结点支承,1,3,0,0,0 结点支承,4,1,0,0 结点支承,5,3,0,0,0 影响线参数,-2,1,1,3 影响线参数,-2,1,1,2 End

作以下图示梁中截面D 的内力D M 、QD F 的影响线。 观览器: D M 的影响线 QD F 的影响线

编辑器: 结点,1,0,0 结点,2,2,0 结点,3,4,0 结点,4,6,0 结点,5,8,0 结点,6,0,1 结点,7,8,1 结点,8,2,1 结点,9,4,1 结点,10,6,1 单元,1,2,1,1,0,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 单元,4,5,1,1,1,1,1,0 单元,1,6,1,1,1,1,1,0 单元,6,8,1,1,0,1,1,0 单元,8,9,1,1,0,1,1,0 单元,9,10,1,1,0,1,1,0 单元,10,7,1,1,0,1,1,0 单元,7,5,1,1,0,1,1,0

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

结构力学 上机实验报告

实验报告一 平面刚架内力计算程序APF 实验目的:(1)分析构件刚度与外界温度对结构位移的影响,如各杆刚度改变对内力分布的影响、温度因数对内力分布的影响。 (2)观察并分析刚架在静力荷载及温度作用下的内力和变形规律,包括刚度的变化,结构形式的改变,荷载的作用位置变化等因素对内力及变形的影响。对结构静力分析的矩阵位移法的计算机应用有直观的了解 (3)掌握杆系结构计算的《结构力学求解器》的使用方法。通过实验加深对静定、超静定结构特性的认识。 实验设计1: 计算图示刚架当梁柱刚度12I I 分别为15、11、15、1 10时结构的内力和位移,由此分析当刚架在水平荷 载作用下横梁的水平位移与刚架梁柱 比(1 2I I )之间的关系。(计算时忽略轴向变形)。 数据文件: (1)变量定义,EI1=1,EI2=0.2(1,5,10) 结点,1,0,0 结点,2,0,4 结点,3,6,4 结点,4,6,0 单元,1,2,1,1,1,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,4,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,1,-1,EI1,0,0,-1 单元材料性质,2,2,-1,EI2,0,0,-1 单元材料性质,3,3,-1,EI1,0,0,-1 (2)变量定义,EI1=5(1,0.2,0.1),EI2=1 结点,1,0,0 结点,2,0,4 结点,3,6,4 结点,4,6,0 单元,1,2,1,1,1,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,4,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,1,-1,EI1,0,0,-1 单元材料性质,2,2,-1,EI2,0,0,-1 单元材料性质,3,3,-1,EI1,0,0,-1 主要计算结果: 位移:

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

结构力学课程设计(word)

结构力学课程设计 专业: 班级: 姓名: 学号: 指导老师: 日期:2015年7月5日

目录 前言 (1) 问题一: (3) 问题描述: (3) 程序说明: (3) 全选主元高斯约当消去法: (3) 全选主元高斯约当消去法的程序及注解如下: (4) 运行结果: (6) 问题二: (6) 问题描述: (6) 方法一:追赶法 (7) 程序说明: (7) 追赶法带型的计算程序及注解: (7) 运行结果: (9) 总结与思考: (9) 方法二:列选主元高斯消去法算带型问题 (10) 程序说明: (10) 列选主元高斯消去法算带型计算程序及注解: (10) 运行结果: (12) 反思与对比(收获): (12) 问题三: (13) 问题描述: (13) 程序框图: (14) 程序特点: (14) 1.主要变量: (15) 2.子例行子程序哑元信息: (15) 3.文件管理: (16) 4.数据文件格式: (16) 源程序: (17) 输入数据如下(input.txt): (23) 输出数据如下(output.txt): (23) 程序运行后输出数据结果如下(需要手动打开output.txt文件): (24) 总结与收获: (25) 参考文献: (26)

前言: 经过这学期的学习与积累,对结构力学这门课程有所收获,结构力学这门课程对我们学习飞行器设计与专业的学生来说,那就是手足的关系,因为我感觉任何航空、航天器都离不开结构的设计,只要有结构就牵涉到结构力学的分析与计算,因为航空器在空中飞行要遇到很多“挫折”,结构力学就是来分析这些个“挫折”下,看航空器能不能经受得了。结构力学课程从内容上讲,主要涉及机构的几何组成分析,求解静定、超静定结构内力的虚功原理。具体分析问题的方法包括力法、位移法等。但对于复杂结构来讲,简单的手算的方法过于繁琐。因此,由于课程设计偏重于利用Fortran 语言编写有限元子程序来完成复杂结构的内力计算,我就恶补了好几天的与Fortran有关的知识,下面就现学现卖的计算了王老师给的三个问题,肯定有不妥之处,希望读者纠错。

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

结构力学实验

结构力学 桁架结构受力性能实验报告 学号:1153377 姓名:周璇 专业:土木工程 实验时间:2016年05月04日周三,中午12:30-13:30 实验指导教师:陈涛 理论课任课教师:陈涛

一、实验目的 (1)参加并完成规定的实验项目内容,理解和掌握结构的实验方法和实验结果,通过 实践掌握试件的设计、实验结果整理的方法。 (2)进行静定、超静定结构受力的测定和影响线的绘制。 二、结构实验 (一)空间桁架受力性能概述 桁架在受结点荷载时,两边支座处产生反力,桁架中各杆件产生轴力,如图1.1为在抛物线桁架结点分别加载时结构示意图。用Q235钢材,桁架跨度6?260=1560mm ,最大高度260mm 。杆件之间为铰接相连。杆件直径为8mm 。 图1.1 (二)实验装置 图1.2为框架结构侧向受力实验采用的加载装置,25kg 挂钩和25kg 砝码。采用单结点集中力加载,由砝码、挂钩施加拉力,应变片测算待测杆件应变。结构尺寸如图1.2所示。 图1.2 (三)加载方式 简单多次加载,将挂钩和砝码依次施加在各个结点,待应变片返回数据稳定后,进行采集。采集结束后卸下重物,等待应变片数值降回初始值后再向下一节点施加荷载,重复采集操作。 (四)量测内容 需要量测桁架待测杆件的应变值在前后四对桁架杆布置单向应变片,具体布置位置如图 1.2 所示,即加粗杆件上黏贴应变片。 三、实验原理 对桁架上的5个位置分别施加相同荷载,记录不同条件下各杆件的应变值。 由公式 2 4 F A E d A σσεπ? ?=? =???=?

可以得到 24 d E F πε = 其中: F ——杆件轴力 E ——Q235钢弹性模量 d ——杆件直径 ε ——杆件应变值 σ ——杆件应力 A ——杆件横截面积 因而可以求得各杆件轴力,进而得到不同杆件的轴力影响线。 四、实验步骤 (1)将载荷挂在加载位置1,待应变片返回数据稳定后,采集相应应变数据。 (2)待应变片数值降回初始值后,重复(1)中操作,将荷载分别挂在加载位置2,3,4,5,分别采集记录各自对应的各杆件应变数据。 五、实验结果与整理 将对应位置杆件应变值取平均值,得到所示一榀桁架四根杆件的应变值如表2.2所示。

结构力学个人总结

结构力学个人总结 本页是精品最新发布的《结构力学个人总结》的详细文章,。篇一:结构力学心得体会 结构力学心得体会 本学期结构力学的课程已经接近尾声。主要是三部分内容,即渐近法、矩阵位移法和平面刚架静力分析的程序设计。通过为期八周的理论课学习和六次的上机课程设计,我收获颇丰。 而对结构力学半年的学习,也让我对这门学科有了很大的认识。结构力学是力学的分支,它主要研究工程结构受力和传力的规律以及如何进行结构优化的学科。工程力学是机械类工种的一门重要的技术基础课,许多工程实践都离不开工程力学,工程力学又和其它一些后绪课程及实习课有紧密的联系。所以,工程力学是掌握专业知识和技能不可缺少的一门重要课程。 首先,渐近法的核心是力矩分配法。计算超静定刚架,不论采用力法或位移法,都要组成和验算典型方程,当未知量较多时,解算联立方程比较复杂,力矩分配法就是为了计算简洁而得到的捷径,它是位移法演变而来的一种结构计算方法。其物理概念生动形象,每轮计算又是按同一步骤重复进行,进而易于掌握,适合手算,并可不经过计算节点位移而直接求得杆端弯矩,在结构设计中被广泛应用,是我们应该掌握的基本技能。本章要

求我们能够熟练得运用力矩分配法对钢架结构进行力矩分配和传递,然后计算出杆端最后的弯矩,画出钢架弯矩图。 其次,与上一学期所学的力法和位移法那些传统的结构力学基本方法相比,本学期所学的矩阵位移法是通过与计算机相结合,解决力法和位移法不能解决的结构分析题。其核心是杆系结构的矩阵分析,主要包括两部分内容,即单元分析和整体分析。矩阵位移法的程序简单并且通用性强,所以应用最广,范文 TOP100也是我们本学期学习的重点和难点。本章要求我们掌握单位的刚度方程并且明白单位矩阵中每一个元素的物理意义,可以熟练的进行坐标转换,最为重要的是能够利用矩阵位移法进行计算。 最后,是平面钢架静力分析的程序设计。其核心是如何把矩阵分析的过程变成计算机的计算程序,实现计算机的自动计算。我们所学的是一种新的程序设计方法—PAD软件设计方法,它的程序设计包括四步:1、把计算过程模块化,给出总体程序结构的PAD设计;2、主程序的PAD设计;3、子程序的PAD设计;4、根据主程序和子程序的PAD设计,用程序语言编写计算程序。要求我们具备结构力学、算法语言,即VB、矩阵代数等方面的基础知识。在上机利用VB 进行程序设计解答实际问题的过程中,我们遇到了各种各样的难题,每一道题得出最后的结果都不会那么容易轻松。第一,需要重视细节,在抄写程序代码时,需要同组人的分工合作,然后再把每一部分的代码合成一个整体然后运行,这

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

结构力学实验报告

实验报告一 平面刚架内力计算程序APF 日期: 2013.4.19 实验地点: 综合楼503 实验目的: 1、通过实验加深对静定、超静定结构特性的认识。如各杆刚度改变对内力分布的影响、温度和沉陷变形因数的影响等。 2、观察并分析刚架在静力荷载及温度作用下的内力和变形规律,包括刚度的变化,结构形式的改变,荷载的作用位置变化等因素对内力及变形的影响。对结构静力分析的矩阵位移法的计算机应用有直观的了解。 3、掌握杆系结构计算的《求解器》的使用方法。 实验设计1: 别为15 、11、15、110 时结构的内力和位移,由此 分析当刚架在水平荷载作用下横梁的水平位移与刚架梁柱比(1 2I I )之间的关系。(计算时忽略轴 向变形)。 一、 数据文件: (1)TITLE, 实验一 变量定义,EI1=1 变量定义,EI2=0.2(1, 5, 10) 结点,1,0,0 结点,2,0,4 结点,3,6,0 结点,4,6,4 单元,1,2,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 单元,2,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,3,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,2,-1,EI1,0,0,-1 单元材料性质,3,3,-1,EI2,0,0,-1 END

二、主要计算结果: 位移: (2)令I2=1时,I1=5,1,0.2,0.1 弯矩: (1) 令I1=1时,I2=0.2,1,5,10 ①梁柱刚度比I2:I1为1:5时的刚架弯矩图如下②梁柱刚度比I2:I1为1:1时的刚架弯矩图如下

③梁柱刚度比I2:I1为5:1时的刚架弯矩图如下④梁柱刚度比I2:I1为10:1时的刚架弯矩图如下

最新数据结构实训总结

精品文档 这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。 编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。 通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解,也形成了一定的个人做事风格。 通过这次课程设计,让我对一个程序的数据结构有更全面更进一步的认识,根据不同的需求,采用不同的数据存储方式,不一定要用栈,二叉树等高级类型,有时用基本的一维数组,只要运用得当,也能达到相同的效果,甚至更佳,就如这次的课程设计,通过用for的多重循环,舍弃多余的循环,提高了程序的运行效率。在编写这个程序的过程中,我复习了之前学的基本语法,哈弗曼树最小路径的求取,哈弗曼编码及译码的应用范围,程序结构算法等一系列的问题它使我对数据结构改变了看法。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,也从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 精品文档

结构力学课程设计

结构力学课程设计报告 系别:() 专业:() 班级:() 姓名:() 指导教师:()

一、绪言 1、课程设计目的或意义: 1、通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2、通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打下坚实的基础 2、结构的工程应用背景简介: 此次设计的结构是桥梁结构,在生活中桥梁在交通运输中起着重要的作用,比如架在江湖、峡谷之间的桥梁起着连接两地的纽带作用。桥梁之上可以过行人、汽车、火车。极大的缩短了两地之间的距离,方便又快捷。 3、课程设计的主要内容: 一:了解明确课程设计的目的,查找工程实际中的桥梁结构 二:参考实际结构设计自己的桥梁结构。 三:估计轴力,初步选择桥梁的钢材。 四:做出内力图。 五:校核,再择钢材。 六:总结优化。

二、结构设计与荷载简化 1、结构简介 此结构形状主要由三角形组成的的下承式组合结构 2、结构参数: 本次设计的桥梁结构跨度为四十米,高二十米。结构中杆件间主要以铰接连接。根据桥梁及承载要求,材料为Q235刚,极限压应力为300MPa,E=210GPa 选择20b号工字型刚,截面面积为46.5平方厘米 3、荷载简化与分析: 设计的结构为火车通道,主要承受火车的质量。将火车看作质量分布均匀的,所受均布荷载为50KN/m

三、结构内力和变形分析 1、结构计算简图 2、内力分析 结构轴力图 结构剪力图 1 11

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

结构力学设计

科学技术学院 课程设计报告 2012----2013学年第二学期 学生姓名: 学号: 专业班级: 时间: 17周(6.17-6.21) 理工学科部

一、课程设计目的 1. 通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2.通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打下坚实的基础。 二、课程设计内容 (一)对三类桁架进行受力分析 1、平行弦桁架分析 变量定义,h=1,l=6 变量定义,c=1/6,h=c*l 结点,1,0,0 结点,2,1/6l,0 结点,3,2/6l,0 结点,4,3/6l,0 结点,5,4/6l,0 结点,6,5/6l,0 结点,7,6/6l,0 结点,8,6/6l,h 结点,9,5/6l,h 结点,10,4/6l,h 结点,11,3/6l,h 结点,12,2/6l,h 结点,13,1/6l,h 结点,14,0/6l,h 单元,1,2,1,1,0,1,1,0 单元,2,3,1,1,0,1,1,0 单元,3,4,1,1,0,1,1,0 单元,4,5,1,1,0,1,1,0 单元,5,6,1,1,0,1,1,0 单元,6,7,1,1,0,1,1,0 单元,7,8,1,1,0,1,1,0 单元,8,9,1,1,0,1,1,0 单元,9,10,1,1,0,1,1,0 单元,10,11,1,1,0,1,1,0 单元,11,12,1,1,0,1,1,0 单元,12,13,1,1,0,1,1,0单元,13,14,1,1,0,1,1,0 单元,14,1,1,1,0,1,1,0 单元,14,2,1,1,0,1,1,0 单元,2,13,1,1,0,1,1,0 单元,13,3,1,1,0,1,1,0 单元,3,12,1,1,0,1,1,0单元,12,4,1,1,0,1,1,0 单元,4,11,1,1,0,1,1,0 单元,4,10,1,1,0,1,1,0 单元,10,5,1,1,0,1,1,0 单元,5,9,1,1,0,1,1,0 单元,9,6,1,1,0,1,1,0 单元,6,8,1,1,0,1,1,0结点支承,1,3,0,0,0结点支承,7,1,0,0结点荷载,14,1,0.5,-90结点荷载,13,1,1,-90结点荷载,12,1,1,-90结点荷载,11, 1,1,-90结点荷载,10,1,1,-90结点荷载,9,1,1,-90结点荷载,8,1,0.5,-90

数据结构课程设计报告-学生成绩管理系统[]

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

关于数据结构课程设计心得体会范文

关于数据结构课程设计心得体会范文 心得体会是指一种读书、实践后所写的感受性文字。是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。下面是小编搜集的关于数据结构课程设计心得体会范文,希望对你有所帮助。 关于数据结构课程设计心得体会(1) 这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。 数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了 c 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。 纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。 刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件

相关文档
最新文档