版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用TurboC语言编程如下(yyyy1.c):main(){inti,Z1,ip=20;intZ[14]={9,11,13,15,17,19,21,23,25,27,29,31,33,35};floatK[14]={0.446,0.555,0.667,0.775,0.893,1.00,1.12,1.23,1.35,1.46,1.58,1.70,1.81,1.94};printf(“请输入链轮齿数Z1:”);scanf(“%d”,&Z1);for(i=0;i<14;i++)if(Z[i]==Z1){ip=i;i=15;}if(ip<20)printf(“\n当Z=%d时,K=%f”,Z[ip],K[ip]);elseprintf(“\n输入错误!”);}3.1.2二维数表的处理
定义:需由二个已知条件才能确定一个未知数据的表格,称为二维数表。例:表3-2用于链轮设计中,由节距t和链轮齿数z查取链轮轴孔最大直经dkmax和齿侧凸缘最大直经dh,试对其进行程序化处理。表3-2节距t9.52512.7015.87519.0525.40齿数zdhdkdhdkdhdkdhdkdhdk1122113018372245276038132815382248305736775115352046285837704693611741245434684582531107419472963417951946212684215333714789591077214295235937795199651198015910925654287571097313188175120取变量:齿数z——Z[i]i=1,2,3,……8
节距t——T[i]i=1,2,3,……10dh——DH[i,j]i=1,2,3,…,8j=1,2,3,…,10dk——DK[i,j]i=1,2,3,…,8j=1,2,3,…,10
节距t31.7538.1044.4550.863.50齿数zdhdkdhdkdhdkdhdkdhdk117650916010671121801521031396641167913591155105193132151178014095164111187129235163171379316511219313222015227519319158108189129221153253177316224211781222141482501752852003572542319913723816527819731822439827825219152263184307217335249438310用TurboC语言编程如下(yyyy2.c):main(){inti,j,Z1,ip=20,jp=20;floatT1;intZ[8]={11,13,15,17,19,21,23,25};floatT[10]={9.525,12.7,15.875,19.05,25.4,31.75,38.1,44.45,50.8,63.5};intDH[8][10]={22,30,37,45,60,76,91,106,121,152,28,38,48,57,77,96,116,135,155,193,35,46,58,70,93,117,140,164,187,235,41,54,68,82,110,137,165,193,220,275,47,63,79,94,126,158,189,221,253,316,53,71,89,107,142,178,214,250,285,357,59,79,99,119,159,199,238,278,318,398,65,87,109,131,175,219,263,307,315,438,};intDK[8][10]={11,18,22,27,38,50,60,71,80,103,15,22,30,36,51,64,79,91,105,132,20,28,37,46,61,80,95,111,129,163,24,34,45,53,74,93,112,132,152,193,29,41,51,62,84,108,129,153,177,224,33,47,59,72,95,122,148,175,200,254,37,51,65,80,109,137,165,196,224,278,42,57,73,88,120,152,184,217,249,310};
printf(“请输入链轮齿数Z1:”);scanf(“%d”,&Z1);for(i=0;i<8;i++)if(Z[i]==Z1){ip=i;i=9;}printf(“请输入节距T1:”);scanf(“%f”,&T1);for(j=0;j<10;j++)if(T[j]==T1){jp=j;j=11;}if(ip<20&&jp<20)printf(“\n当z=%d,t=%f时,dh=%d,dkmax=%d”,Z[ip],T[jp]),DH[ip][jp],DH[ip][jp]);elseprintf(“\n输入错误!”);}
§3.2数表的文件化处理
1.用编辑软件产生顺序文件
2.用程序生成顺序文件main(){inti;inta[10]={1,2,3,4,5,60,70,80,90,100};FILE*fp;fp=fopen(“AA.DAT”,“w”);for(i=0;i<5;i++)fprintf(fp,“%d”;a[i]);fprintf(fp,“\n”);for(i=5;i<10;i++)fprintf(fp,“%d”;a[i]);fclose(fp);
3.文件的读取和检索
以表3-1由小链轮齿数Z查齿数系数K的文件化处理为例:建立数据文件ZK.DAT如下:
911131517192123252729313335380.4460.5550.6670.7750.8931.01.121.231.351.461.581.701.811.942.12
用TurboC语言编程如下(yyyy3.c):
main(){inti,z1,z[15],jp=20;floatk[15];FILE*fp;fp=fopen(“ZK.DAT”,“r”);for(i=0;i<15;i++)fscanf(fp,“%d”,&z[i]);for(i=0;i<15;i++)fscanf(fp,“%f”,&k[i]);fclose(fp);printf(“请输入链轮齿数z1:”);scanf(“%d”,&z1);for(i=0;i<15;i++)if(z[i]==z1){ip=i;i=16;}if(ip<20)printf(“\n当z=%d时,k=%f”,z[ip],k[ip]);elseprintf(“\n输入错误!”);}
§3.3一维数表的插值处理
由于一维数表只给出了结点X1,X2,…,Xn对应的函数值Y1,Y2,…,Yn,而对于非结点上的函数值,如对表3-1,欲取非结点Z1=18或Z1=24时的K值,则必须用插值法解决。
1.线性插值法:
已知:两点(X1,Y1),(X2,Y2)求:位于X1,X2之间的X坐标对应的Y
可用如下的线性插值公式:
Y=Y1+(Y2-Y1)(X-X1)/(X2-X1)仍以小链轮齿数Z查齿数系数K为例,具有线性插值功能的文件化处理程序如下(yyyy4.c):main(){inti,z1,z[15],x1,x2,ip=20,key1=0;floaty1,y2,kz,k[15];FILE*fp;fp=fopen("zk.dat","r");for(i=0;i<15;i++)fscanf(fp,"%d",&z[i]);for(i=0;i<15;i++)fscanf(fp,"%f",&k[i]);fclose(fp);printf("Inputz1:");scanf("%d",&z1);for(i=0;i<15;i++){if(z[i]==z1){
kz=k[i];key1=1;i=16;}}if(key1==0){for(i=0;i<15;i++){if(z[i]<z1){x1=z[i-1];y1=k[i-1];x2=z[i];y2=k[i];kz=y1+(y2-y1)*(z1-x1)/(x2-x1);}}}printf("\nz=%d,k=%f",z1,kz);}
2.拉格朗日二次插值(抛物线插值):
已知:三点(X1,Y1),(X2,Y2),(X3,Y3)求:位于X1,X2之间或X2,X3之间的X坐标对应的Y可用如下的抛物线插值公式:
Y=[(X-X2)(X-X3)]/[(X1-X2)(X1-X3)]*Y1+[(X-X1)(X-X3)]/[(X2-X1)(X2-X3)]*Y2+[(X-X1)(X-X2)]/[(X3-X1)(X3-X2)]*Y3抛物线插值的C语言函数如下:floatlarg(x1,y1,x2,y2,x3,y3,x0)intx1,x2,x3,x0;floaty1,y2,y3;{inti,j,x[3];floatp,y0,y[3];x[0]=x1;y[0]=y1;x[1]=x2;y[1]=y2;x[2]=x3;y[2]=y3;y0=0.0;for(i=0;i<3;i++){p=1.0;for(j=0;j<3;j++){if(i!=j) p=p*(x0-x[j])/(x[i]-x[j]);}y0=y0+p*y[i];}return(y0);}§3.4线图的处理
线图的处理方法有两种,一种是将其转换成表格,对非表格节点采用插值法求得;另一种方法是将其写成公式表示。3.4.1线图的表格化处理
如果能把线图转换成表格,那么就可以使用数表的处理方法对其进行处理。现有图3.1所示线图,下面对其进行表格化处理:
在图3.1所示线图上取n个节点(X1,Y1)(X2,Y2)…(Xn,Yn),将其制成表格如表3-3所示。节点数取得越多,精度就越高。节点的选取原则是使各节点的函数值不致相差很大。
图3.1线图
X1
X2
X3
…….
Xn
Y1
Y2
Y3
……
Yn
将线图表格化后,再参照数表处理方法,用程序化或文件化处理方法进行处理。
3.4.2线图的公式化处理
上述线图的表格化处理方法,不仅工作量较大,而且还需占用大量的存储空间。因此,理想的线图处理方法是对线图进行公式化处理。线图的公式化处理有两种方法。一种是找到线图原来的公式,另一种是用曲线拟合的方法求出描述线图的经验公式。曲线拟合的方法很多,常用的是最小二乘法。下面介绍曲线拟合的最小二乘法。
表3-31.最小二乘法拟合的基本原理已知:线图曲线I求:多项式y=Pm(x),它表示的曲线为II图3-2数据的曲线拟合在曲线I上取n个点(xi,yi)
i=1,2,3,…,n设拟合公式为因此每一结点处的偏差为偏差的平方和为2.最小二乘法的多项式拟合
设拟合的m次多项式为
则结点偏差的平方和为因为是已知的一组数,它们在式中可看作常数,因此可以看作是的函数,即求出为极小时的的值,并将它们代入式(3-1)中,所得的多项式即为所求的拟合曲线方程式。此时的问题是求偏差平方和的极值,欲使为极小,必须使
于是的条件也就为即
§3.5工程数据的数据库管理
3.5.1数据库系统及管理
数据库系统是一种能够“管理大量的、持久的、可靠的、共享的数据的工具”,通俗地讲,数据库系统可把诸如表格、卡片、设备及零部件等数据有组织地集合在一起,输入到计算机,然后通过计算机处理,再按一定要求输出结果。虽然数据库也是以文件方式存储数据,但它是数据的一种高级组织形式。在应用程序和数据库之间,有一个新的数据管理软件DBMS(DataBaseManagementSystem),即数据库管理系统。数据库管理系统是一组专门处理、访问数据库的程序,它可完成数据库的定义、管理、建立、维护等操作,是用户与数据库之间的接口。
每一种数据库管理系统都是基于某种数据模型的。数据模型是指数据库内部数据的组织方式,描述了数据之间的各种联系。现行数据库系统中,常用的数据模型有以下三种:
1.层次模型
用树形结构表示实体之间联系的模型称为层次模型,它能描述一对多的关系。
2.网状模型
这种模型是用网状数据结构来描述数据库的总体逻辑结构,它体现了事物之间“多对多”的关系。
3.关系模型
上述两种模型都是结构化模型,使用时,事先均需根据应用的需要,将数据之间的逻辑关系固定下来,所以缺乏柔性。关系模型把实体与实体间的联系归结为二维表的组织结构,每一张二维表称为一个关系,其中表中的每行为一个记录,每列为数据项(称为字段)。关系模型的特点是结构比较简单,但能够处理复杂的实体之间的联系,因此得到广泛的应用。目前国内普遍应用的FoxBASE,FoxPro都是关系数据库系统
3.5.2FoxPro关系型数据库系统
1.FoxPro系统简介
(1)命令。在FoxPro语言中,对数据的操作都是由命令来完成的。命令相当于一般高级语言中的语句,但更精炼。FoxPro操作命令的一般形式为:命令动词[<范围>][<表达式表>][FOR<条件>][WHILE<条件>](2)函数。在FoxPro中提供了大量的内部函数,每个函数都有函数名。FoxPro提供了七大类函数,包括字符处理函数、数值函数、逻辑函数、日期和时间函数、数据库操作函数、系统函数和其他函数。
(3)文件。FoxPro有多种文件类型,以扩展名不同来区分。
(4)操作符。FoxPro提供了四种类型的运算,因而有四种操作符:算术操作符:+、-、*、/、**、()、%
关系操作符:<、>、=、==、<=、>=、<>or#
逻辑操作符:AND、OR、NOTor!字符串操作符:+、-(5)数据库结构。对数据库中每个字段的定义建立了数据库文件的数据结构。字段定义由三项组成:字段名:字段名可达10个字符长,必须用一个字母打头字段类型:FoxPro针对字段变量定义了五种数据类型:
C—字符型N—数字型
D—日期型(月/日/年)L—逻辑型M—明细型字段宽度:指在字段中含有字符或数字的最大个数。2.FoxPro常用命令
FoxPro数据库系统提供了100多种操作命令,包括数据库文件的建立、编辑、使用、检索、统计、多重数据库操作、报表输出及其他辅助功能等。下面介绍一些FoxPro的常用命令。
(1)CREATE命令
CREATE为建立数据库文件基本结构的命令,其一般格式为:
CREATE<文件名>
该命令将建立一个用户给定<文件名>的数据库文件,默认扩展名为.DBF。
(2)APPEND命令
APPEND命令用于向数据库“追加”数据记录。
(3)USE命令
USE命令用于打开数据库文件,其一般格式为:
USE<文件名>(4)LIST命令
LIST命令常被用来显示数据库文件中的所有记录或显示数据库文件的结构。
(5)DISPLAY命令
DISPLAY命令与LIST命令的功能相似,但当没有指定范围时,DISPLAY命令只显示当前一条记录。
(6)GOTO命令
GOTO命令是将记录指针直接定位到指定的记录上
(7)SKIP命令
SKIP命令的一般格式为:
SKIP[<数字型表达式>]
该命令用于将记录指针从当前位置向前或向后移动,移动的记录数等于<数字型表达式>的值。
(8)EDIT命令
EDIT命令用于从当前记录开始顺序修改记录。
(9)LOCATE命令
LOCATE命令用来在无索引的数据库文件中查找满足条件的记录,它的一般格式为:
LOCATE[<范围>][FOR<条件>][WHILE<条件>](10)SUM命令
SUM命令用来对有关数字型字段的表达式求和,它的一般格式为:
SUM[<范围>][<数字型表达式表>][FOR<条件>][WHILE<条件>]3.FoxPro常用函数:
在FoxPro中提供了大量的内部函数,以满足用户进行数据库编程的需要。下面分类介绍FoxPro中的常用函数。
(1)数学运算函数*取绝对值函数ABS()*指数函数EXP()*取整函数INT()*自然对数函数LOG()*平方根函数SQRT()*最大值函数MAX()(2)字符函数这里只介绍求子串函数SUBSTR(),调用该函数的一般格式为:SUBSTR(<字符型表达式>,<起始位置>[,<字符个数>])
(3)转换函数*小写转换大写函数UPPER()*大写转换小写函数LOWER()*数字型转换成字符型函数STR()*字符型转换成数字型函数VAL()(4)测试函数*数据类型测试函数TYPE()*字符串长度测试函数LEN()*光标行坐标测试函数ROW()*光标列坐标测试函数COL()*文件结束测试函数EOF()4.建立数据库和数据录入
数据库文件的建立包括两个步骤:首先是定义数据库结构,也就是要把数据库含有多少个字段,每个字段的特征(字段名、数据类型、字段宽度、小数点位数)告诉系统。其次是按照定义好的数据库结构输入每条记录的数据内容。
(1)定义数据库结构:可用定义数据库结构的命令CREATE或利用FoxPro菜单系统定义一个新的数据库。
(2)数据的输入:
FoxPro有多种数据输入方式,最常用的有以下三种:*立即方式输入数据*扩充方式追加新记录*使用BROWSE命令增加数据5.程序设计
FoxPro不仅提供了单命令的工作方式,还允许用户编写程序执行预定的操作,即可将FoxPro提供的命令、函数和程序控制语句组织成为有序的集合,并以文件的形式存放在磁盘上,这个有序的集合称之为FoxPro源程序,这个文件称之为源程序文件。在FoxPro中,源程序的扩展名为.PRG,程序文件可用任何一种编辑软件建立和修改。程序设计功能为用户在FoxPro系统的基础上开发各自所需的数据库应用软件提供了保证。
3.5.3数表的数据库处理
我们可以用FoxPro数据库来处理表格数据。下面以表3-2二维数表为例来介绍数表的数据库处理方法:
1.建立数据库文件:确定数据结构:字段名类型宽度小数
1齿数ZN202节距TN633凸缘直径DHN614轴孔直径DKN61建立TABP.DBF库文件,并输入记录的内容:记录号齿数Z节距T凸缘直径DH轴孔直径DK1119.52522112139.52528153159.5253520...............8259.525654291112.703018101312.703822...............802563.50438310共有80个记录2.数据库检索:
建立后缀为.PRG的数据库命令组文件进行数据库检索。现编写数据库程序(取名TABP.PRG)如下:SETHEADINGOFF(不显示栏标题)SETSAFETYOFF(不显示提示信息来询问已存在的文件是否重写)USETABPCLEARSETTALKOFF(不显示命令的执行信息)SETDEVICETOSCREEN(或PRINT)STORE1TOZZ6,2SAY‘请输入齿数:’GETZZPICT‘99’READSTORE1.0TOTT8,2SAY‘请输入节距:’GETTTPICT’99.999’READDOWHILE.NOT.EOF()IF齿数Z=ZZ.AND.节距T=TTCLEARDISPLAYGOTOBOTTOMSKIP–1ENDIFSKIPENDDOSETTALKONRETURN程序文件建好后,可在FoxPro命令窗口使用DO命令执行如下:
DOTABP↙3.5.4Fo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026年)妇产科胎儿窘迫患者的护理常规 课件
- 护理质量控制与人力资源管理
- 护理职业发展:规划与实现人生价值
- 甲状腺疾病患者的护理应急预案
- 甲状腺癌患者的淋巴水肿预防与护理
- 2026年涪陵区长寿区网格员招聘考试参考题库及答案解析
- 2026年长沙市雨花区网格员招聘笔试参考题库及答案解析
- 皮肤护理的未来趋势:科技与自然的共生
- 2026年清远市清城区网格员招聘考试参考题库及答案解析
- 小学语文二年级下册跨学科主题教学导学案
- 2026山东省鲁信投资控股集团有限公司校园招聘30人备考题库附答案详解(a卷)
- 2026年急性缺血性卒中患者早期管理-美国心脏协会指南
- 2026年台州临海市粮食收储有限公司招聘工作人员5人建设笔试备考题库及答案解析
- DB42∕T 1528-2026 湖北省农业用水定额
- 2026年两会政府工作报告精神宣讲《聚焦两会关注民生》
- 船舶代理公司考核制度
- 2025年建信期货招聘笔试真题及答案
- 2025年北京纪委监委公开遴选公务员笔试试题及答案解析
- GMP计算机系统用户权限管理操作规程
- 2025年7月陕西省普通高中学业水平合格性考试语文试题及答案
- 2025河南编导考试真题及答案
评论
0/150
提交评论