CADCAM实验报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二叉树的遍历实验

一、实验名称:二叉树的遍历实验。

二、实验目的:

1、掌握CAD/CAM系统中常用的数据结构二叉树的概念、存储结构以及二叉树遍历技术。

2、熟练应用C语言编写二叉树的建立,以及用先序、中序、后序遍历方法遍历二叉树的程序。

三、实验容

用TC或VC编程,将图2-14所示的二叉树建立链表存储结构,并分别用先序、中序、后序遍历方法遍历该二叉树α

1、程序流程图

2、程序

#include

#include

struct btree

{ char data;

struct btree *lchild,*rchild;

}*node[9];

void preorder(struct btree *node) { if(!node) return ;

printf("%c",node->data);

preorder(node->lchild);

preorder(node->rchild);

}

void inorder(struct btree *node) { if(!node) return ;

inorder(node->lchild);

printf("%c",node->data);

inorder(node->rchild);

}

void postorder(struct btree *node) { if(!node) return ;

postorder(node->lchild);

postorder(node->rchild);

printf("%c",node->data);

}

void main()

{

int i;

for(i=0;i<9;i++)

{

node[i]=(struct btree *)malloc(sizeof(struct btree));

node[i]->data='A'+i;

node[i]->lchild=NULL;

node[i]->rchild=NULL;

}

node[0]->lchild=node[1];

node[0]->rchild=node[2];

node[1]->lchild=node[3];

node[2]->lchild=node[4];

node[2]->rchild=node[5];

node[3]->lchild=node[6];

node[3]->rchild=node[7];

node[4]->rchild=node[8];

printf("按先序遍历:");

preorder(node[0]);

printf("\n按中序遍历:");

inorder(node[0]);

printf("\n按后序遍历:");

postorder(node[0]);

getchar();

return 0;

}

实验结果如下:

三、主要仪器设备

计算机(C++语言环境)

实验二数表的程序化处理

一、实验名称:数表的程序化处理

二、实验目的

1、掌握对工程手册和设计规中的各种数据表格(包括数值、数表、线

图)的计算机处理技术。

2、熟练应用C语言或VC金星编程数据处理程序。

三、实验容

用TC或VC编写一个线性插值程序,以下表为基本节点参数,插值计

算90°-160°围任意角度的包角修正系数K

α

1、程序流程图

2、程序

#include

#include

#include

void main()

{

int i,j;

int a[8]={90,100,110,120,130,140,150,160};

double

k[8]={0.68,0.74,0.79,0.83,0.86,0.89,0.92,0.95};

double m;

for(;;)

{

do

{ printf("请输入包角值:(包角围为90°至160°)\n");

scanf("%d",&j);

if(j<90||j>160)

{

printf("包角输入错误,请重新输入。\n");

printf("按回车键继续查询,按Ctrl+C键退出\n"); getchar();

getchar();

system("cls");

}

}while(j<90||j>160);

for(i=0;i<8;i++)

{

if(j==a[i])

m=k[i];

if(j>a[i]&&j

m=(k[i+1]*(j-a[i])+k[i]*(a[i+1]-j))/(a[i+1]-a[i]);

}

printf("包角为%d°的包角修正系数为%.3lf\n",j,m);

printf("请按任意键继续查询,按Ctrl+C键退出\n");

getchar();

getchar();

system("cls");

}

相关文档
最新文档