《机械CAD、CAM技术(第4版)》王隆太第2章PPT文件格式下载.ppt
《《机械CAD、CAM技术(第4版)》王隆太第2章PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《《机械CAD、CAM技术(第4版)》王隆太第2章PPT文件格式下载.ppt(73页珍藏版)》请在冰点文库上搜索。
|&
赋值运算符:
=及其扩展条件运算符:
?
:
逗号运算符:
指针运算符:
*&
求字节数:
sizeof强制类型转换:
(类型)分量运算符:
.-下标运算符:
其它:
()-,34种运算符,这是用C语言书写程序时,在程序中所允许使用的数据的全部的数据类型。
简单的C语言程序介绍,/*example1.1ThefirstCProgram*/#includemain()printf(“Hello,World!
”);
输出:
Hello,World!
/*example1.2calculatethesumofaandb*/#include/*Thisisthemainprogram*/main()intadd(intx,inty);
inta,b,sum;
a=10;
b=24;
sum=add(a,b);
printf(”sum=%dn,sum);
/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty)intz;
z=x+y;
return(z);
运行结果:
sum=34,格式特点,习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式,main().,#includemain()inti,j,sum;
sum=0;
for(i=1;
i10;
i+)for(j=1;
j10;
j+)sum+=i*j;
printf(“%dn”,sum);
优秀程序员的素质之一:
使用TAB缩进对齐有足够的注释有合适的空行,结构特点,1.C程序是由函数构成的。
每个程序由一个或多个函数组成,其中必须有且仅有一个主函数main()。
函数容易实现程序的模块化.2.一个可执行的C语言程序总是从main函数开始执行,而不论其在整个程序中的位置如何。
3.每条语句和数据定义的最后必须有一个分号(;
)。
说明:
在以下三种情况下不允许有分号:
a.所定义的函数的名称后面不使用分号;
b.在右花括号“”后面不使用分号;
c.预处理语句后面不使用分号。
max();
while(i=100)i+;
s=s+i;
#include;
4.C对输入输出实行函数化。
5.C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。
6.可用/*/对C程序中的任何部分作注释,注释可以写在程序的任何位置上,“/*”与“*/”也可不在同一行上。
7.C语言中大小写字母代表不同含义(即大小写敏感)。
(C语言一般用小写字母),例2.1编写将字符元素X插入到字符线性表第i个元素前的C语言程序。
2)链式存储结构-用任意的存储单元存放线性表中各个数据元素,用指针指示各元素的前驱和后继。
链表结点结构:
数据域和指针域。
指针域:
有单向指针和双向指针,可构成单向链表和双向链表。
a)单向循环链表b)双向循环链表,例2.2编写创建单向字符链表的C语言程序。
例2.3编写单向字符链表的插入运算C语言程序。
提示:
申请新结点存储单元;
将插入元素存放在新增结点数据域;
链接新增结点指针。
线性表顺序存储与链式存储结构比较,顺序存储:
优点:
结构均匀,便于数据元素访问和修改操作。
不足:
删除插入大量数据元素时需进行移动操作,运算效率低。
应用:
多用于查找频繁、很少增删的场合。
链式存储:
删除插入效率高,不需进行数据元素的移动操作,不需事先分配存储空间,存储空间利用充分。
搜索效率低,需从头结点开始顺次搜寻。
多用于事先难以确定容量、频繁增删的场合。
谢谢!
入队,出队,队列数据结构,循环队列,2.1.3栈和队列栈(Stack):
限定在表尾进行插入或删除操作,为“后进先出”型线性表。
队列(Queue):
限定在表一端插入,在另一端删除的“先进先出”型线性表。
栈的数据结构,2.1.4树树结构(层次结构):
每个结点有一个以上后继,除根结点之外,所有结点仅有一个直接前驱。
树的逻辑结构,树结构相关术语:
结点:
树的基本单元,包含一个数据元素及若干指向其子树的指针;
结点度:
各结点子树个数;
树的度:
树中最大结点的度,图示树的度为4;
叶结点:
度为0的结点或终端结点,如图中C、E、K、G、H、I、L等;
分支结点:
度不为0的结点或非终端结点;
结点层数:
根结点为第一层,根的子结点为第二层,其余类推;
树的深度:
树的最大层数,图示深度为4;
森林:
森林是n棵互不相交树的集合。
树的存储结构:
一般采用链式存储结构。
不定长树存储结构,树结构,定长树存储结构,2.1.5二叉树二叉树:
各结点仅有左子树和右子树的特殊树结构。
满二叉树:
所有结点都有左子树和右子树,所有叶结点都在同一层上。
完全二叉树:
结点数为n的二叉树,从1至n每一结点编号都与满二叉树编号一致。
二叉树存储结构顺序存储:
仅适合于完全二叉树,若用于一般二叉树将有许多空存储单元。
链式存储:
每结点除包含有数据域及左子树和右子树指针。
preorder(structbtree*node)if(!
node)return;
printf(“%d”,node-data);
preorder(node-lchild);
preorder(node-rchild);
先序遍历结点顺序:
ABDGHCEIF,二叉树的遍历算法:
所谓遍历,即每节点被访问且仅能访问一次。
常用遍历算法:
先序遍历、中序遍历、后序遍历。
先序遍历:
先访问根结点,然后先序遍历左子树,再先序遍历右子树。
二叉树,二叉树先序遍历C语言函数,inorder(structbtree*node)if(!
inorder(node-lchild);
inorder(node-rchild);
中序遍历:
先中序遍历左子树,然后访问根结点,再中序遍历右子树。
中序遍历结点顺序:
GDHBAEIGF,二叉树,二叉树中序遍历C语言函数,postorder(structbtree*node)if(!
postorder(node-lchild);
postorder(node-rchild);
后序遍历:
先后序遍历左子树、后序遍历右子树,再访问根结点。
后序遍历结点顺序:
GHDBIEFCA,二叉树,二叉树后序遍历C语言函数,一般树转换为二叉树步骤:
将各层兄弟结点用水平线连起来;
除最左子结点外,去掉各结点与其父结点连线;
以根为中心,将整棵树顺时针旋转45,最终得到所需二叉树。
作业:
用二叉树表示下列实体的CSG建模集合运算和几何变换的过程。
2.2.1文件管理模式数据文件:
具有相同性质和结构记录的集合。
文件管理系统:
是由操作系统提供,规定数据文件的存取方法,管理文件存储地址。
特点:
系统简单、实现方便灵活、处理效率高。
数据冗余度大;
缺乏数据独立性;
数据完整性、安全性难以保证。
2.2数据管理技术,应用程序与数据文件间的关系,2.2.2数据库管理模式数据库管理系统特点:
数据的存储独立于应用程序,数据结构的改变不会影响应用程序;
应用程序的开发,可不考虑数据的存储管理;
实现数据的共享,减少了数据的冗余;
有DBMS对数据进行统一管理和控制,保证了数据的完整性和保密性。
数据库与数据管理系统的关系,数据库常用数据模型层次模型:
是一种树结构,可表示“一对多”关系;
网状模型:
各节点可有多个父节点,可表示“多对多”关系;
关系模型:
是一种二维数表结构,每张二维数表可看作是一种关系,关系与关系之间可通过关键码实现联系。
关系模型,层次模型,网状模型,机械CAD/CAM涉及的数据类型管理型数据如设计标准、产品目录、技术资料等,其数据结构不变,数据间关系分明,数据相对稳定。
设计型数据如产品功能数据、设计分析参数、各种资源描述数据等,其特点是动态性,随设计过程的展开在不断地变化。
加工制造型数据包括工艺数据、数控指令、监控数据等,其实时性要求较高。
图形类数据包括各种图表、零件图和装配图等,其特点呈动态变化,随设计过程急剧增加,如三维图形经剖切后,将产生新交点、交线和面等大量新的图形数据。
工程数据库:
存储和管理工程设计的数据库,包含有几何的、物理的、技术的、工艺的数据及其它技术实体特性及其相互间的关系。
工程数据库与一般商用数据库的比较,2.2.3产品数据管理PDMPDM:
是管理所有与产品相关的信息和过程的技术。
与产品相关的信息:
CAD/CAM文件、材料清单、产品配置、电子表格、供应商及用户清单等。
与产品相关的过程:
设计过程、加工工序、工作流程、审批发放过程、产品变更过程等。
PDM的体系结构,PDM体系结构第1层-支持层包括计算机硬件、计算机网络以及关系型数据库管理系统第2层-对象层采用面向对象的技术,通过若干个二维关系数表描述一个个产品对象数据及其动态变化。
第3层-功能层。
包括系统管理类模块以及基本功能模块,如文档管理、产品配置管理、工作流程管理、零件分类和检索管理、项目管理等。
第4层-用户层为不同用户提供的友好操作平台。
PDM基本功能电子资料室管理与检索这是PDM最基本的功能,是PDM核心。
产品配置管理以电子资料室为底层支持,以物料清单BOM为组织核心,将所有产品数据和文档联系起来,对产品对象及其相互间关系进行维护和管理。
工作流程管理实现产品设计与修改过程的跟踪与控制,包括产品资料的提交、修改控制、监视审批、文档的分布控制、自动通知控制等。
项目管理实现项目实施过程中的计划、人员以及相关数据的管理与配置,进行项目运行状态监控,完成计划反馈。
基于PDM的集成平台,PDM集成平台应用PDM系统封装嵌入功能,可将CAD、CAE、CAPP、CAM等单元系统封装在PDM同一设计开发平台,使CAD/CAPP/CAM作业时可从PDM中提取各自所需要的信息,将处理结果放回PDM中,从而实现CAD/CAM系统的集成。
2.3工程数表的计算机处理技术,工程数表,常数数表,列表函数,程序化,文件化,数据库,插值计算,函数拟合,2.3.1工程数表的类型和处理方法,2.3.2数表的程序化处理,例2.2将下列一维数表进行程序化处理。
用C语言两个一维数组进行程序化处理:
floatalfa8=90.0,100.0,110.0,120.0,130.0,140.0,150.0,160.0;
floatkalfa8=0.68,0.74,0.79,0.83,0.86,0.89,0.92,0.95;
例2.3将下列V型带参数二维数表进行程序化处理,并编程根据已知型号查找该V带的尺寸参数。
V带数表程序化及其检索C语言程序如下:
#includevoidmain()inti;
floatbp7=5.3,8.5,11.0,14.0,19.0,27.0,32.0;
floatb7=6.0,10.0,13.0,17.0,22.0,32.0,38.0;
floath7=4.0,6.0,8.0,11.0,14.0,19.0,23.0;
floata7=40.0,40.0,40.0,40.0,40.0,40.0,40.0;
while
(1)scanf(请输入V带型号(0,1,2,3,4,5,6):
%d,elseprintf(“您所输入的V带型号不对,请重新输入!
”);
例2.4用一个二维数组将下列二维数表程序化,并编制根据给定条件检索齿轮传动工况系数的C语言程序。
C语言程序:
#includevoidmain()inti,j;
floatka33=1.0,1.25,1.75,1.25,1.5,2.0,1.5,1.75,2.25;
while
(1)printf(“输入原动机载荷特性(0,1,2):
scanf(“%d”,,例2.5将下列V带传递功率的三维数表进行程序化处理。
用三维数组N07425定义并赋值V带功率参数:
2.3.3数表的文件化处理,数表程序化处理存在的不足:
使程序膨胀、累赘,仅适合于小型数表;
数据的独立性较差,数据变动均需修改程序。
数表文件化处理特点:
可使程序简练;
使数表与应用程序分离;
一个数据文件可供多个应用程序使用;
提高了数据的可维护性。
例2.6编程将平键参数表建立数据文件,并根据给定的轴径检索所建数据文件中的平键参数。
创建数据文件“key.dat”程序:
#include#definenum=12structkey_GBfloatd1,d2,b,h,t,t1;
key;
voidmain()inti;
FILE*fp;
If(fp=fopen(“key.dat”,”w”)=NULL)printf(“Cannotopenthedatafile”);
exit();
for(i=0;
inum;
i+)printf(“record%d:
d1,d2,b,h,t,t1=”,i);
scanf(“%f,%f,%f,%f,%f,%f”,给定轴径d,编写检索已建数据文件key.dat中键槽尺寸程序:
while
(1)printf(“Inputtheshaftdiameterd=”);
scanf(“%f”,2.3.4数表的公式化处理,改写成为:
可见,g(x)是两个基本插值多项式的线性组合。
1)线性插值(两点插值),1、函数插值在插值点附近选取若干已知结点,用过结点的构造函数g(x)近似原有未知函数f(x)。
2)抛物线插值(三点插值),3)拉格朗日插值(多点插值),2、函数拟合,函数插值存在的不足:
严格通过每个结点,复印了原有的结点误差;
仍需将各结点数据进行存贮,占用存贮空间。
函数拟合:
不要求函数曲线通过已知结点,仅反映数据变化趋势。
函数拟合方法:
最小二乘法,即曲线到各结点误差平方和最小。
拟合思路:
绘制已知结点;
根据结点变化趋势确定近似函数;
应用最小二乘法求出待定系数。
例2.9如下列表函数各结点呈现一种单调的线性关系,用最小二乘法进行线性函数的拟合,即:
误差函数:
求导数:
方程组求解,求得待定系数为:
线性函数最小二乘法拟合:
指数函数最小二乘法拟合:
对上式两边取对数,将之转化为线性函数:
令,有,用最小二乘法求解上式线性函数系数u和v,然后再求出原待定系数a和b,最终得到所拟合的指数函数。
2.3.5数表的数据库管理,1、VFP数据库管理系统简介属关系型数据库模式,被称为大众型数据库管理系统;
提供友好的集成环境,具有Windows窗口功能;
可通过系统菜单、工具条或命令窗口对数据库进行操作,包括数据库创建、记录输入、修改、插入、删除、剪切、拷贝、粘贴等作业。
有较强的数据库管理功能、丰富的开发工具,用户可利用编辑器、设计器、项目管理器等工具,开发自身应用程序。
VFP常用数据类型:
字符型(character):
用于表示包括各类字符和汉字在内的字符型变量。
数字型(numical):
用于表示包括正负号、小数点以及0-9的数字型变量。
日期型(Data):
用于表示月、日、年的日期型变量。
逻辑型(logical):
用于表示由逻辑真或逻辑假构成的逻辑型变量。
备注型(Memory):
用于存放可变长的由ASCII码组成的字段。
货币型(Current):
用于表示货币值的变量数值。
通用型(Geranal):
用于存放OLE(对象链接和嵌入)各种对象数值。
2、VFP数据库管理系统应用实例,例2.7应用VFP将深沟球轴承参数数表进行建库存储、修改和查询作业。
1)数据库数表结构定义可通过菜单、图标或Create窗口命令定义数表结构,弹出如下表结构定义对话框。
2)数表记录的输入数表结构定义后,系统弹出数据录入界面,按已定义数表格式依次输入各个数据记录。
3)添加、修改和浏览数表文件可用APPEND命令添加记录,用EDIT命令修改,用BROWSE、LIST、DISPLAY命令浏览数表文件。
4)数表查询例如,若查询型号为204轴承参数,可使用窗口命令:
LOCATEFOR轴承型号=202系统自动将数表指针指向数表的第3个记录,显示该轴承各个参数。
2.4线图的计算机处理技术,2.4.1线图一般处理方法:
附有公式的线图:
将公式直接编写到程序中;
一般线图:
先将线图离散为数表,再对数表进行程序化处理;
复杂线图:
分别编程处理。
2.4.2一般线图的离散化处理,x=0时渐开线齿轮当量齿数与齿形系数的关系曲线,分割离散原则:
各分割点间的函数值不致相差很大。
若为多条线图,可将之离散化为一张二维数表。
2.4.3复杂线图的计算机处理需通过编程对线图逐条进行处理。
V型皮带选型折线图,编程思路:
界定各皮带型号区域边界,拟合边界方程,根据给定功率和转速确定V带所在型号区域。
对数直线边界方程:
由已知Px值,求解边界值,进而求得:
voidbelt(intn,floatp,int*k)floatc;
c=log10(490.0)+(log10(p)-log10(0.8)*(log10(4900.0)-log10(490.0)/(log10(2.8)-log10(0.8)if(n=4900|n=10*c)*k=0;
O型带elsec=log10(100.0)+(log10(p)-log10(1.0)*(log10(3400.0)-log10(100.0)/(log10(10.5)-log10(1.0)if(n=3400|n=10*c)*k=1;
A型带else,