《計算機輔助設計電子文檔》第三章 一程數(shù)據(jù)的處理技術(shù)_第1頁
《計算機輔助設計電子文檔》第三章 一程數(shù)據(jù)的處理技術(shù)_第2頁
《計算機輔助設計電子文檔》第三章 一程數(shù)據(jù)的處理技術(shù)_第3頁
《計算機輔助設計電子文檔》第三章 一程數(shù)據(jù)的處理技術(shù)_第4頁
《計算機輔助設計電子文檔》第三章 一程數(shù)據(jù)的處理技術(shù)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第三章 工程數(shù)據(jù)的處理技術(shù)在工程設計及產(chǎn)品制造過程中需要處理大量的信息數(shù)據(jù)。例如各種各樣的標準和規(guī)范、經(jīng)驗數(shù)據(jù)、實驗曲線以及大量的圖表等。在傳統(tǒng)的設計過程中,這些數(shù)據(jù)往往是以設計手冊的形式提供的,設計者需要手工進行查詢。在CAD過程中,就是要將各種各樣的信息數(shù)據(jù)存儲在計算機中,通過計算機來進行管理與處理。常用的數(shù)據(jù)處理技術(shù)有程序化、公式化、文件化及數(shù)據(jù)庫技術(shù)。第一節(jié) 工程數(shù)據(jù)的基本概念一、數(shù)據(jù)的定義 在計算機科學中,數(shù)據(jù)是計算機程序加工處理的對象或信息,這些信息可以是數(shù)字、字符(包括漢字、字母)、符號、圖形和聲音等。從工程本身來看,數(shù)據(jù)是用來描述客觀實體的某些特性或特征。所謂實體,可以是某些具

2、體的實體,也可是某個抽象的事件、活動,實體的特征稱為屬性。例如:齒輪是一個實體,描述齒輪的屬性有模數(shù)、齒數(shù)、材料、結(jié)構(gòu)尺寸和精度等。當這些屬性賦予不同的具體數(shù)值時,它就表示一個具體的齒輪實體,具體的數(shù)值稱為屬性值。模數(shù)、齒數(shù)、材料、結(jié)構(gòu)尺寸和精度是描述齒輪的數(shù)據(jù),具體的數(shù)據(jù)就代表某一個齒輪。二、數(shù)據(jù)的類型 1)數(shù)據(jù)按性質(zhì)可分為:圖形數(shù)據(jù)和非圖形數(shù)據(jù)。圖形數(shù)據(jù):是描述設計對象的幾何形體的數(shù)據(jù),如結(jié)構(gòu)尺寸等;非圖形數(shù)據(jù):又分為普通數(shù)據(jù)和標準數(shù)據(jù),普通數(shù)據(jù):包括產(chǎn)品設計要求,性能、經(jīng)濟指標等數(shù)據(jù),這類數(shù)據(jù)因產(chǎn)品而異;標準數(shù)據(jù):是固定不變的,包括設計規(guī)范和通用標準。2)數(shù)據(jù)按存取方式分為:靜態(tài)數(shù)據(jù)和動

3、態(tài)數(shù)據(jù)。靜態(tài)數(shù)據(jù):是固定不變的,即存取方式不允許隨時修改,如標準數(shù)據(jù);動態(tài)數(shù)據(jù):是隨機產(chǎn)生的,即存取方式允許隨時修改變動的數(shù)據(jù)。第二節(jié) 數(shù)表程序化代號材料密度/(gcm-3)12345678球墨鑄鐵工業(yè)鑄鐵碳 鋼鑄 鋼紫 銅鑄 鋁硬 鋁鎳鉻合金7.37.877.857.88.92.562.738.4一、數(shù)表的分類 機械設計中所用到的數(shù)表是多種多樣的,根據(jù)表中各數(shù)據(jù)元素和表格的維數(shù)可將數(shù)表分為簡單數(shù)表和列表函數(shù)數(shù)表,按數(shù)表的維數(shù)可分為一維數(shù)表、二維數(shù)表和多維數(shù)表。 表3-1 金屬材料的密度1)簡單數(shù)表 這種數(shù)表數(shù)據(jù)之間沒有一定的函數(shù)關系。例如各種材料的力學性能、齒輪的標準模數(shù)系列、各種材料的密度

4、等。表3-1所示為金屬材料密度數(shù)據(jù)表。2)列表函數(shù)數(shù)表 數(shù)表中的數(shù)據(jù)之間存在某種函數(shù)關系。這種數(shù)表可分為兩類:一類是數(shù)據(jù)本身有精確的計算公式或經(jīng)驗公式,由于公式復雜,為了方便計算,將其制成表格供設計人員查用,在CAD中可將公式編入應用程序進行計算,這種方法簡單,結(jié)果精確;另一類是一組離散的數(shù)據(jù),沒有相應的計算公式,在CAD中可用程序化方法來處理。表3-2所示為三角皮帶設計中,帶輪包角系數(shù)K和帶輪包角之間的關系數(shù)表,這是一個一元列表函數(shù)表。表3-2 帶輪包角系數(shù)K和帶輪包角之間的關系()708090100110120130140150160170180190200210220K0.560.620

5、.680.730.780.820.860.890.920.950.981.01.051.11.151.21) 一維數(shù)表 所要檢索的數(shù)據(jù)只與一個變量有關,表3-1和表3-2都是這樣的數(shù)表。2) 二維數(shù)表 所要檢索的數(shù)據(jù)與兩個變量有關。表3-3所示的齒輪傳動工況系數(shù)表 就是一個二維數(shù)表的例子。3-3 齒輪傳動工況系數(shù)表工作機載荷特性原動 工況機載荷特性 系數(shù)KKij工作平穩(wěn)中等沖擊較大沖擊j = 1j = 2j = 3工作平穩(wěn)i = 11.01.251.75輕度沖擊i = 21.251.502.00中度沖擊i = 31.501.752.253) 多維數(shù)表 所要檢索的數(shù)據(jù)與兩個以上的變量有關。在機械

6、設計中,這種數(shù)表較少見。在CAD中,常將其轉(zhuǎn)化為一維數(shù)表或二維數(shù)表進行處理。二、數(shù)表的程序化 用程序完整、準確地描述不同函數(shù)關系的數(shù)表。常用的有如下幾種方法:1)屏幕直觀輸入法 采用屏幕直觀顯示表格的方法,讓用戶自行選定所需數(shù)據(jù)。這種方法可用屏幕輸出語句顯示整個表格,程序?qū)崿F(xiàn)很簡單。2)數(shù)組存儲法 例1 將標準三角膠帶型號及斷面尺寸數(shù)表(表3-4)程序化,三角膠帶斷面如圖3-1所示。 型號頂寬a斷面高h節(jié)寬a0節(jié)高y0OABCDEF101317223238506810.513.51923.5308.51114192732432.12.34.14.86.98.311.0 表3-4 標準三角膠帶型

7、號及斷面尺寸 圖31 三角膠帶斷面圖此表只有一個自變量,即型號,且為字符型。查得的函數(shù)值即為膠帶的頂寬、斷面高等,均為離散型實型數(shù)。在程序化時可定義4個一維數(shù)組,并將表中的數(shù)值填寫在程序中使數(shù)組初始化,再定義一個整形變量i代表型號,當i = 0時代表O型,i = 1時代表A型,以此類推。下面是C語言程序片段。int i;float a7=10.0,13.0,17.0,22.0,32.0,38.0,50.0;float h7=6.0,8.0,10.5,13.5,19.0,23.5,30.0;float a07=8.5,11.0,14.0,19.0,27.0,32.0,42.0;float y07

8、=2.1,2.3,4.1,4.8,6.9,8.3,11.0;如果用戶給定i = 2(即B型),則程序可立即查出a2=17.0,h2=10.5,a02=14.0,y02=4.1。例2 將帶輪包角系數(shù)K和帶輪包角之間的關系數(shù)表(表3-2)程序化。帶輪包角和帶輪包角系數(shù)K均為數(shù)值型,可設計兩個一維數(shù)組來實現(xiàn)。查表時可根據(jù)來查K值。在實際計算中所得的實際包角可能不是表中所列的值,那么所查得的K值也不可能正好是表中之值,因此要用一元列表函數(shù)的插值法來求解。具體方法將在后面詳述。設帶輪包角為alf,包角系數(shù)為kalf,定義兩個一維數(shù)組alfi,kalfi:float alf16=70.,80.,90.,2

9、00.,210.,220;float kalf16= 0.56,0.62,0.68,1.1,1.15,1.2;調(diào)用一元列表函數(shù)的插值函數(shù)即可求出實際的包角系數(shù)值。例3 將平鍵剖面尺寸與軸徑關系數(shù)表(表3-5)程序化,平鍵的剖面及鍵槽如圖3-2所示。要求輸入軸徑d后,能輸出相應的鍵寬和鍵高尺寸。 表3-5 平鍵剖面尺寸與軸徑關系 單位:mm序號軸徑(d)平 鍵鍵寬(b)鍵高(h)123456789688101012121717222230303838444450234568101214234567889 圖32 平建的剖面尺寸與軸徑關系圖33 平鍵尺寸檢索程序流程圖此表的特點是軸徑d在某一范圍內(nèi)

10、對應的b,h值是相同的,故程序在檢索時應作適當?shù)呐袛嗵幚?。編程時可將它的上限或下限用一個一維數(shù)組pdi來表示,鍵寬和鍵高也分別用兩個一維數(shù)組pbi,phi表示。檢索時,根據(jù)設計中計算出來的直徑d,先判斷它位于表中軸徑的哪個范圍內(nèi),然后由i在數(shù)組pbi,phi中確定對應的b,h值。平鍵尺寸檢索程序流程圖如圖3-3所示。 用C語言編寫的平鍵尺寸程序化及檢索程序如下:/*=Pingjian.c=*/main() int i; float d; float pd10=6.0,8.0,10.0,12.0,17.0,22.0,30.0,38.0,44.0,50.0; /*定義數(shù)組并初始化*/ float

11、pb9=2.0,3.0,4.0,5.0,6.0,8.0,10.0,12.0,14.0; float ph9=2.0,3.0,4.0,5.0,6.0,7.0,8.0,8.0,9.0;loop1:printf(n); printf(n); printf( *n); printf( Please Input d(mm):); /*輸入軸徑*/ scanf(%f,&d);printf( *n);if (d=999) goto loop2; if(dpd9) /*數(shù)據(jù)越界檢查*/ printf(*n); printf(Data out of the table,please input again!n)

12、; printf(*n); goto loop1; for(i=0;ipdi&d=pdi+1) printf(n); printf( *n); printf( d=%6.2f b=%6.2f h=%6.2fn,d,pbi,phi); printf( *n); loop2: printf( *The End*n);程序運行結(jié)果如下:*Please Input d(mm):4*Data out of the table,please input again!*Please Input d(mm):15*d= 15.00 b= 5.00 h= 5.00* *The End*xx1x2x3xnyy1y

13、2y3yn3)插值計算法 表3-6 列表函數(shù)假設有一列表函數(shù)y=f(x),如表3-6所示。由于列表函數(shù)只能給出結(jié)點x1,x2, ,xn處的函數(shù)值y1,y2, ,yn。當自變量為結(jié)點中間值時,就要用插值計算法求取其函數(shù)值。插值法的基本思想是:在插值點附近選取幾個合適的結(jié)點,過這些結(jié)點構(gòu)造一個簡單函數(shù)P(x)代替原來的函數(shù)F(x),這樣插值點的函數(shù)值就用P(x)的值來代替。因此插值的實質(zhì)問題是如何構(gòu)造一個既簡單又具有足夠精度的函數(shù)P(x)。線性插值 即兩點插值,如圖3-4所示。已知插值點P(x,y)其相鄰兩點為 Pi(xi,yi)和Pi+1(xi+1, 圖34 線性插值幾何示意圖yi+1),近似認

14、為函數(shù)在此區(qū)間呈線型關系,根據(jù)幾何關系可求得插值點P對應于x的函數(shù)值y y yi(xxi) (3-1)該式即為線型插值公式。為了與后面的拋物線插值公式在形式上取得一致,可將公式(3-1)改寫成y yi (3-2)對于例2,若=125.4代入上式可得K=0.8416。從圖34可以看出,這種插值存在一定的誤差。當表格中自變量間隔較小,而插值精度又要求不高時,線型插值是可以滿足使用要求的。 線型插值程序的流程圖如圖3-5所示。符號說明如下: 圖35 線性插值程序流程圖x(n),y(n)一維數(shù)組,存放列表函數(shù)中的x,y值; n 列表函數(shù)中的結(jié)點數(shù);t 插值點自變量數(shù)值;f 插值點的函數(shù)值。拋物線插值

15、如圖3-6所示,在F(x)上取三點作拋物線P(x),以P(x)代替F(x)。拋物線插值可以獲得比線型插值精度高的結(jié)果。設已知三點為pi-1(xi-1,yi-1),pi(xi,yi),pi+1(xi+1,yi+1),插入值為x,則 (3-3) 在拋物線插值中,關鍵是要根據(jù)插值點x選取合適的三個點,插值區(qū)間的確定如圖3-7 所示。選取方法歸納如下:a) 若,即x靠近xi-1點,則選xi-2,xi-1,xi三個點,這時式(3-3)中的i=i-1,如圖3-7(a)所示。b) 若,即x靠近xi點,則選xi-1,xi,xi+1三個點,這時式(3-3)中的 i= i,如圖3-7(b)所示。 圖36 拋物線插

16、值幾何示意圖c) 若,即x靠近表頭,則選x1,x2,x3三個點,這時式(3-3)中的i=2,如圖3-7(c)所示。 圖37 插值區(qū)間的確定d) 若,即x靠近表尾,則選xn-2,xn-1,xn三個點,這時式(3-3)中的i=n-1,如圖3-7(c)所示。圖38 拋物線插值程序流程圖拋物線插值程序的流程圖如圖3-8所示。符號說明與線型插值相同。三、線圖的程序化 在機械設計中,經(jīng)常遇到一些線圖供查找系數(shù)或參數(shù)等使用,有些還以曲線族的形式繪出。例如圖3-9就是根據(jù)齒輪在軸上不同的布置方式,根據(jù)齒寬系數(shù)d查找齒輪載荷系數(shù)K的一族曲線。線圖的程序化有以下幾種處理方式。1) 找到線圖原來的公式,將公式編入程

17、序,這是最精確的程序化處理方法。但不是所有的線圖都存在著原來的公式,即使有,一時也難于找到。 2)將線圖離散化為數(shù)表,再用數(shù)表程序化方法加以處理。 圖39 齒輪載荷分布系數(shù)3)用曲線擬合的方法求出線圖的經(jīng)驗公式,再將公式編入程序。例4:將蝸輪的齒形系數(shù)圖(圖3-10)程序化。 線圖數(shù)表化 從曲線上選取有限點列成數(shù)表。取一個Zz,相應找到一個Yz,在取點時應根據(jù)曲線的形狀特點,Zz的間距可疏可密,如表3-7所示。 圖310 蝸輪的齒形系數(shù)表3-7 蝸輪的齒形系數(shù)Yz(變位系數(shù)0,20,h1)Zz1011121314151617181920222426Yz4.554.143.73.553.343.

18、223.072.962.892.822.762.662.572.51Zz28303540455060708090100150200300Yz2.482.442.362.322.272.242.202.172.142.122.102.072.042.04 數(shù)表程序化 利用前面介紹的程序化方法進行處理。作業(yè):將“標準三角膠帶型號及斷面尺寸”數(shù)表程序化。要求:交互式輸入三角膠帶型號,輸出斷面尺寸。第三節(jié) 數(shù)據(jù)公式化在工程設計中,有些問題較復雜,很難用理論公式描述。在實際的工程問題中往往通過一系列試驗測得相關數(shù)據(jù),然后根據(jù)這些數(shù)據(jù)建立一個描述工程問題的數(shù)學模型,來近似表達工程問題中各參數(shù)的相互關系,即

19、建立經(jīng)驗公式。這種建立經(jīng)驗公式的過程稱為數(shù)據(jù)公式擬合。前面介紹的插值方法是通過給定點的直線、拋物線來代替函數(shù)曲線,直線或拋物線都通過給定的結(jié)點。由于試驗、觀察和測試得到的數(shù)據(jù)總是帶有一定程度的誤差,而且這些誤差又具有隨機的性質(zhì)。因此,曲線通過所有的點不僅不能提高精度,反而會使曲線保留全部誤差的影響。為了消除誤差的干擾,數(shù)據(jù)擬合不要求曲線通過所有的點,而是盡可能接近這些點,反映給定數(shù)據(jù)的一般趨勢。下面主要介紹采用最小二乘法的曲線擬合。一、最小二乘擬合法的基本思想 圖311 最小二乘法的曲線擬合如圖3-11所示,由線圖或?qū)嶒炈胢個點的坐標值為 (x1,y1),(x2,y2),(xm,ym)設擬合

20、公式為 y = f(x),因此每一結(jié)點處的偏差為 Dif(xi)yi i1,2,m 偏差的平方和為 Di2 (f(xi)yi)2 要求:各結(jié)點的偏差的平方和為最小,因此稱為最小二乘擬合。 擬合公式的類型通常選取初等函數(shù),如對數(shù)函數(shù)、指數(shù)函數(shù)、代數(shù)多項式等。本書主要討論最小二乘法的多項式擬合方法。二、最小二乘法的多項式擬合設擬合公式為 y = f(x)= a0a1xa2x2anxn =ajxj j=0,1,n (1)已知m個點的值為(x1,y1),(x2,y2),(xm,ym),且mn,結(jié)點的偏差平方和為 Di2(f(xi)yi)2 ajxijyi2 i=1,2,m;j=0,1,n (2)在式(

21、2)中,xi, yi是已知的,是aj的函數(shù),即是多項式f(x)系數(shù)的函數(shù)。當為極小時,將a0,a1,a2,an值代入(1)式中,就可以得到一個滿足要求的多項式。下面的問題就是求多項式的系數(shù)aj的值。若使為極小,aj必須滿足下列方程組0 j = 0,1,n (3)由式(2)得 j=0,1,n (4)求偏導數(shù),并整理后得 (5)將式(5)寫成方程組如下 (6)其中均為i =1,2,m求和。公式(6)中待求的系數(shù)(a0,a1,an)共(n+1)個,方程也是(n+1)個,因此解此聯(lián)立方程,就可求得各系數(shù)值。三、列主元素高斯消去法求解線性聯(lián)立方程組求解線性聯(lián)立方程組有兩種方法:消去法(直接解法)和迭代法

22、(間接法)。下面舉例說明列主元素高斯消去法求解線性聯(lián)立方程組。首先用一個具體的四階方程組作為例子說明高斯消去法的實質(zhì)。假設有一四階方程組如下所示: 其求解步驟如下:1)把系數(shù)矩陣和等式右邊向量組成增廣矩陣 其中ai,5bi(i1,2,3,4)2)第一次消元使a111,ai10(i2,3,4)。其方法是從第2行減去2倍的第1行,從第3行減去1倍的第1行,從第4行減去3倍的第1行,得到如下矩陣: 3)第二次消元使a221,重復步驟2)的過程使ai20(i3,4)。得到如下矩陣: 4)第三次消元使a331,并同時使ai30(i4)。得到如下矩陣:5)第四次消元使a441,得到如下矩陣:由此得到與原方

23、程組等價的上三角形方程組: x1x2x3 x410表3-8 試驗數(shù)據(jù) x2x30x41x30x43 結(jié)點號x坐標y坐標1-342-223-1340051-162-273-5x45 6)通過回代過程可得出: X例5 有一組試驗數(shù)據(jù)如表3-8所示,用二次曲線擬合表中所列數(shù)據(jù)。設擬合公式為:ya0a1xa2x2 由試驗數(shù)據(jù)及擬合公式知:m7,n2代入公式(6)得到如下三個方程組: (j0) (j1) (j2)將xi,yi的值代入得: 按照高斯消元法求解三階方程組得:A最后得到擬合后的經(jīng)驗公式為:y 最小二乘法多項式擬合的程序流程圖如圖3-12所示。圖中各符號說明如下:圖312 最小二乘法多項式擬合程

24、序流程圖x,y一維數(shù)組,分別存放試驗數(shù)據(jù)中的xi,yi 值, 共m個。m表格中(xi,yi)的點對數(shù),即結(jié)點數(shù)。n多項式系數(shù)(a0,a1,an)的個數(shù),為多項式的冪次加1。ann1二維數(shù)組,其中n1=n+1,即比n方陣多出一列,該列開始存放公式(6)中右邊的系數(shù)值,運算結(jié)束時存放多項式的系數(shù)值。其余n行n列存放公式(6)等式左邊各系數(shù)。 采用最小二乘法進行多項式擬合時,所采用的多項式的冪次不能太高,一般小于7,可先用較低的冪次,如果誤差較大再提高。另外有時一組數(shù)據(jù)或一條線圖不能用一個多項式表示其全部,可分段處理,分段大都發(fā)生在拐點或轉(zhuǎn)折之處。如想提高某區(qū)間的擬合精度,應在區(qū)間上采集更多的點。第

25、四節(jié) 數(shù)據(jù)文件化前面介紹的數(shù)據(jù)存取方法,是將數(shù)據(jù)以數(shù)組的形式直接存放在內(nèi)存中,然后被應用程序直接調(diào)用。這種方法的不足之處在于:數(shù)據(jù)占內(nèi)存容量大;數(shù)據(jù)在應用程序中,其它程序應用不方便;不便于修改等。因此它只適用于數(shù)據(jù)量小,變化小的情況。文件是數(shù)據(jù)管理的一種形式,它能獨立于應用程序單獨存在。數(shù)據(jù)文件化管理方法將數(shù)據(jù)存于外存儲器中,使用時調(diào)入內(nèi)存,實現(xiàn)數(shù)據(jù)在內(nèi)外存之間的交換。一、數(shù)據(jù)文件的組成 1數(shù)據(jù)項:一個數(shù)據(jù)稱為一個字段或數(shù)據(jù)項;2記錄:若干個相互關聯(lián)的數(shù)據(jù)項組成一個記錄;3文件:同類若干個記錄就組成了文件。二、數(shù)據(jù)文件的類型 數(shù)據(jù)文件按組織形式和管理方式可分為順序文件和隨機文件。1順序文件又稱

26、文本文件,文件中的各個記錄以其輸入的先后次序按順序存放。存取順序文件必須從頭至尾一個接一個地讀寫,因此效率不高。2隨機文件又稱記錄文件,它在寫入一個數(shù)據(jù)項的同時,還給這個數(shù)據(jù)項登記一個編號即記錄號,以后再使用時就可根據(jù)記錄號去查找記錄,故存取速度比順序文件要快得多。 三、數(shù)據(jù)文件的應用程序下面以平鍵數(shù)表為例說明用C語言編寫順序數(shù)據(jù)文件的建立與讀取程序。1順序文件的建立在用文件對平鍵數(shù)表進行處理時,每一個記錄的數(shù)據(jù)項個數(shù)是相同的。因此將軸徑d的選擇范圍定義成兩個數(shù)組pd19,pd29。源程序如下:/*=PjWrite.c=*/#include stdio.hmain() int i; FILE

27、*fp; float pd19=6.0,8.0,10.0,12.0,17.0,22.0,30.0,38.0,44.0; /*定義數(shù)組并初始化*/ float pd29=8.0,10.0,12.0,17.0,22.0,30.0,38.0,44.0,50.0; float pb9=2.0,3.0,4.0,5.0,6.0,8.0,10.0,12.0,14.0; float ph9=2.0,3.0,4.0,5.0,6.0,7.0,8.0,8.0,9.0; if (fp=fopen(pj.txt,w)=NULL) /*以“寫”方式打開“pj.txt”數(shù)據(jù)文件*/ printf(Cannot open t

28、his filen); exit(0); for(i=0;i=8;i+) fprintf(fp,%f,%f,%f,%fn,pd1i,pd2i,pbi,phi); /*向“pj.txt”寫入數(shù)據(jù)*/ fclose(fp); /*關閉文件*/程序經(jīng)編譯、連接運行后,生成數(shù)據(jù)文件pj.txt,具體內(nèi)容如下:6.000000,8.000000,2.000000,2.0000008.000000,10.000000,3.000000,3.00000010.000000,12.000000,4.000000,4.00000012.000000,17.000000,5.000000,5.00000017.0

29、00000,22.000000,6.000000,6.00000022.000000,30.000000,8.000000,7.00000030.000000,38.000000,10.000000,8.00000038.000000,44.000000,12.000000,8.00000044.000000,50.000000,14.000000,9.0000002順序文件的讀取源程序如下:/*=pjread.c=*/#include stdio.hmain() int i; float d; float pd19; /*定義數(shù)組*/ float pd29; float pb9; float

30、 ph9; FILE *fp; if(fp=fopen(pj.txt,r)=NULL) /*以“讀”方式打開“pj.txt”數(shù)據(jù)文件*/ printf(Cannot open this filen); exit(0); printf(n); printf(n); printf( * TURBO C *n); printf( Please Input d(mm):); /*輸入軸徑*/ scanf(%f,&d); printf( *n); for(i=0;ipd1i&d=pd2i) /*檢索數(shù)據(jù),并顯示檢索結(jié)果*/ printf(n); printf( *n); printf( d=%f b=%

31、f h=%fn,d,pbi,phi); printf( *n); printf( *The End*n); fclose(fp); /*關閉文件*/程序經(jīng)編譯連接后,運行結(jié)果如下:* TURBO C *Please Input d(mm):15*d=15.000000 b=5.000000 h=5.000000* 作業(yè):編寫“標準三角膠帶型號及斷面尺寸”數(shù)表的順序數(shù)據(jù)文件的建立及讀取程序。要求:交互式輸入三角膠帶型號,輸出斷面尺寸相關尺寸。第五節(jié) 數(shù)據(jù)庫技術(shù) 數(shù)據(jù)庫技術(shù)是在文件系統(tǒng)的基礎上發(fā)展起來的一種數(shù)據(jù)庫管理技術(shù)。數(shù)據(jù)庫:是若干文件的集合,建立數(shù)據(jù)庫的目的是對所有數(shù)據(jù)實行統(tǒng)一的、集中的、獨

32、立的管理。數(shù)據(jù)庫管理系統(tǒng)(DBMS):是數(shù)據(jù)庫管理軟件,它的功能是:維護數(shù)據(jù)庫;接受用戶提出的訪問(查詢)數(shù)據(jù)的請求;協(xié)助用戶建立和使用數(shù)據(jù)庫。數(shù)據(jù)庫技術(shù):是研究數(shù)據(jù)庫系統(tǒng)的技術(shù)。一、數(shù)據(jù)庫管理方式的特點 數(shù)據(jù)文件化是由文件管理系統(tǒng)來管理數(shù)據(jù),其管理方式如圖313所示。數(shù)據(jù)的文件化管理的特點:數(shù)據(jù)可以用統(tǒng)一的格式,以文件形式存于計算機外存儲器內(nèi),因而數(shù)據(jù)和程序之間有了相對獨立性;文件之間彼此孤立,文件內(nèi)部無結(jié)構(gòu)信息,數(shù)據(jù)共享范圍有限;文件管理系統(tǒng)缺乏對數(shù)據(jù)進行集中管理的能力;數(shù)據(jù)的操作離不開應用程序,即數(shù)據(jù)文件與應用圖313 數(shù)據(jù)文件化管理方式程序有依賴關系。數(shù)據(jù)庫管理方式克服了文件管理方式的

33、不足,其特點如下: 對數(shù)據(jù)實行統(tǒng)一、集中、獨立的管理; 應用程序與數(shù)據(jù)不相互依賴,即數(shù)據(jù)可獨立于應用程序存在,應用程序也不必隨著數(shù)據(jù)結(jié)構(gòu)的變化而修改; 建立檢索、增刪、修改等操作靈活而方便,具有全屏幕編輯功能等; 在描述數(shù)據(jù)的同時,也描述數(shù)據(jù)之間的聯(lián)系,即數(shù)據(jù)結(jié)構(gòu)化; 數(shù)據(jù)共享性好,冗余度低,具有安全性和完整性。圖314 數(shù)據(jù)庫管理方式數(shù)據(jù)庫管理方式如圖3-14所示。數(shù)據(jù)庫的以上特點是由數(shù)據(jù)庫管理系統(tǒng)DBMS保障的,因而DBMS是數(shù)據(jù)庫的核心。因此,數(shù)據(jù)庫是一個通用的、綜合性的、數(shù)據(jù)獨立性高、冗余度小且互相聯(lián)系的數(shù)據(jù)文件的集合,它按照信息的自然聯(lián)系來構(gòu)造數(shù)據(jù),用各種存取方法來對數(shù)據(jù)進行操作以滿

34、足實際需要。數(shù)表程序化、數(shù)據(jù)文件化和數(shù)據(jù)庫技術(shù)都是數(shù)據(jù)管理的方法,各有特點和應用場合。一般情況下:若管理的數(shù)據(jù)只需在系統(tǒng)內(nèi)和程序間共享,則可采用文件管理方式;若數(shù)據(jù)在系統(tǒng)間共享、交換,則需采用數(shù)據(jù)庫管理方式;若數(shù)據(jù)無需共享,數(shù)據(jù)量也不大,操作也不復雜,則用程序化管理方式。總之,要具體問題,具體分析。二、數(shù)據(jù)庫的數(shù)據(jù)模型 數(shù)據(jù)庫系統(tǒng)的一個核心問題就是如何表示和處理實體間的聯(lián)系。數(shù)據(jù)模型:表示實體及實體間聯(lián)系的模型。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎,每一種數(shù)據(jù)庫管理系統(tǒng)都是基于某種數(shù)據(jù)模型的。常用的數(shù)據(jù)模型有層次型、網(wǎng)絡型和關系型。(1)層次型 層次型模型是用樹型結(jié)構(gòu)來表示實體之間聯(lián)系的模型,如圖

35、3-15所示,它體現(xiàn)了記錄之間“一對多”的關系。層次型結(jié)構(gòu)的特點是:結(jié)構(gòu)簡單、清晰,適用于記錄之間本身就存在一種自然的層次關系,但它難于處理記錄之間的復雜聯(lián)系。圖315 層次型模型層次模型必須滿足兩個條件:一是只有一個根結(jié)點;二是根以外的其它結(jié)點有且僅有一個父結(jié)點。按照層次模型建立的數(shù)據(jù)庫系統(tǒng)稱為層次模型數(shù)據(jù)庫系統(tǒng)。(2)網(wǎng)絡型 指事物之間為網(wǎng)絡的組織結(jié)構(gòu),如圖3-16所示,它體現(xiàn)了事物之間“多對多”的關系。如果取消層次模型中的兩個限制條件,即可以有:一個以上的結(jié)點無父結(jié)點;至少有一個結(jié)點有多于一個的父結(jié)點,便形成了網(wǎng)絡模型。因此,層次型模型是網(wǎng)絡型模型的一種特例。網(wǎng)絡型模型能處理事物之間非常

36、復雜的聯(lián)系,但其模型結(jié)構(gòu)極其復雜。按照網(wǎng)絡型模型建立的數(shù)據(jù)庫系統(tǒng)稱為網(wǎng)狀模型數(shù)據(jù)庫系統(tǒng)。圖316 網(wǎng)絡型模型(3)關系型 它是以集合論中的“關系”的概念為理論基礎,把信息集合定義為一張二維表的組織結(jié)構(gòu),每一張二維表稱為一個關系,其中表中的每行為一個記錄,每列為數(shù)據(jù)項。表39所示為齒輪零件表數(shù)據(jù)庫。表3-9 齒輪零件表零件號材料牌號模數(shù)齒數(shù)外徑孔徑齒寬100420Cr32478.025.020.0108345338120.030.020.0200845248100.025.020.0202435Cr428120.030.025.0202545530160.035.030.0作為一個“關系型”的二

37、維數(shù)表,必須滿足如下條件:a. 表中每一列必須是基本數(shù)據(jù)項,而不應是組合項;b. 表中每一列必須具有相同的數(shù)據(jù)類型;c. 表中每一列必須有一個唯一的屬性名;d. 表中不應有內(nèi)容相同的行;e. 行與列的順序均不影響表中所表示的信息含義。關系型模型的特點:數(shù)據(jù)結(jié)構(gòu)簡單,數(shù)據(jù)獨立性高,操作算法成熟、完善?;陉P系模型建立的數(shù)據(jù)庫系統(tǒng)稱為關系數(shù)據(jù)庫系統(tǒng)。目前國內(nèi)普遍應用的FOXBASE、FOXPRO、ORACLE等都是關系型數(shù)據(jù)庫系統(tǒng)。近幾年來,隨著計算機輔助技術(shù)的發(fā)展,三種數(shù)據(jù)模型均不能充分、有效地描述工程數(shù)據(jù),許多研究機構(gòu)都在探討構(gòu)造新的數(shù)據(jù)模型,如面向?qū)ο髷?shù)據(jù)庫(object-Oriented

38、Data Base,OODB)提出的語義數(shù)據(jù)模型和對象關系模型等。相關技術(shù)正在研究和探討中。三、 數(shù)據(jù)庫管理軟件 常用的數(shù)據(jù)庫管理軟件很多,如dBASE、dBASE、FoxBASE、FoxPRO、Access、SQL-Server等。目前用的比較多的是FoxPRO、Access、SQL-Server等。具體到某個數(shù)據(jù)庫管理軟件的操作請參考相關參考書,限于篇幅所限,此處不再贅述。四、工程數(shù)據(jù)庫簡介數(shù)據(jù)庫最初只是用于管理商用事務中的數(shù)據(jù),而CAD所涉及的數(shù)據(jù)具有形式多樣、關系復雜、動態(tài)性強等特點。因此專門服務于工程應用的數(shù)據(jù)庫管理系統(tǒng)稱為工程數(shù)據(jù)庫管理系統(tǒng),簡稱EDBMS(Engineering DBMS)。(1)工程數(shù)據(jù)分析 在工業(yè)領域中,由于數(shù)據(jù)庫要支持從設計到生產(chǎn)制造的整個過程,因此工程數(shù)據(jù)是非常多樣和復雜的,一般可分為如下四類

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論