




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)字化X射線照相檢測系統(tǒng)(簡稱DR)調研報告 我廠近幾年射線檢測費用不斷增加,本著節(jié)約成本提高效率的原則,我們對數(shù)字化X射線照相檢測系統(tǒng)(簡稱DR)進行了調研,調研其在我廠使用的可行性,以下是調研結果. 數(shù)字化X射線照相檢測(Digital Radiography,簡稱DR):DR成像技術是狹義上的直接數(shù)字化照相,通常指采用電子成像板技術-平板檢測器技術(FPD Technique),平板X射線成像器技術是以非晶硅薄膜晶體管陣列為基礎發(fā)展起來的,X射線管發(fā)射的X射線光子穿過目標物體,沒有被物體吸收的X射線光子撞擊一次閃爍體材料,閃爍體材料將他們轉化成可見光光子,接著,這些光子撞擊光電二極管陣列
2、,光電二極管陣列將他們轉化成電子,這些電子可以激活非晶硅層的像素。這些激活的像素產生電子數(shù)據(jù),它們可以被計算機轉化成高質量的目標物體圖像,目標物體圖像在計算機顯示器顯示。 DR的裝置包括射線成像探測器及影像后處理和記錄部分(計算機、打印機和其他存儲介質)。我們邀請了國內四家DR設備供應商來我廠進行實地實驗,以檢驗其設備能否在我廠使用,其中包括蘭州三磊公司、丹東華日公司、丹東奧龍公司、煙臺華科公司,蘭州三磊、丹東奧龍和丹東華日使用的是美國鉑金艾爾默成像板,煙臺華科使用的是美國瓦里安成像板,四家的實驗均滿足我們的實際生產要求,以下是四家的實驗效果與膠片對比:表一 DR射線檢測與膠片射線檢測對比板厚
3、(mm)單壁單硬透照雙壁單硬透照電流(mA)電壓(KV)曝光時間(min)靈敏度電流(mA)電壓(KV)曝光時間(min)靈敏度膠片144200212827512111242001.51382751012三磊14417521382753121241651.81462752.512華日1441500.51382750.5131241400.41562750.413奧龍1441750.51382750.5111241650.451362750.411華科1441500.41382250.4131241350.21482150.313注:靈敏度是指我們通過底片能看到的標準像質計號數(shù),數(shù)值越大表明靈敏
4、度越高1、曝光量 我們在板厚14mm的產品上進行雙壁單影檢測試驗,DR檢測與使用底片進行射線檢測所需電壓、電流一樣,但是曝光時間卻大幅降低,為我們檢測節(jié)約了大量的時間,在進行單壁單影檢測時DR系統(tǒng)還可以大幅降低電壓,從而提高了射線檢測設備的使用壽命,從曝光量各個參數(shù)(電流、電壓、曝光時間)上來看,DR系統(tǒng)與膠片比較有較大優(yōu)勢。2、靈敏度 我們評定射線檢測靈敏度是根據(jù)JB/T 4730射線檢測要求使用標準像質計來衡量,根據(jù)底片上的顯示絲號多少來評定靈敏度高低,雙壁單影檢測靈敏度與膠片相當,如果參數(shù)合適靈敏度會繼續(xù)提高,單壁單影檢測靈敏度要比底片檢測高很多,從靈敏度上DR系統(tǒng)可滿足我廠檢測要求;3
5、、成像板的使用壽命DR系統(tǒng)的核心部件就是成像板,其好壞及使用壽命直接影響整個系統(tǒng)的運行,四家供應商均表示在正常使用情況下目前還沒用損壞報告;以上是根據(jù)實驗數(shù)據(jù)及跟廠家了解的情況進行的匯總,以下根據(jù)我廠的實際情況對DR系統(tǒng)在我廠的使用進行分析:1、DR設備在我廠的使用優(yōu)勢: (1)檢測效率極大提高,數(shù)字成像時間短,約為20秒左右一幅圖像,取消了裁片、裝片、拆片、洗片環(huán)節(jié),同時在檢測的過程中就可以發(fā)現(xiàn)焊接缺陷并對其評定,在缺陷部位做標記,返修人員可在檢測完成后馬上對 缺陷進行去除,其中節(jié)約的時間至少在兩小時以上,其效率提升不言而喻; (2)檢測質量提高,DR成像質量(靜態(tài)成像)通常要優(yōu)于膠片成像
6、(3)檢測成本降低,不再需要大量的膠片和藥水等耗材 (4)節(jié)能環(huán)保,降低了環(huán)境污染 2、DR系統(tǒng)目前在我廠使用函待解決的問題: (1)該技術在容器行業(yè)尚無規(guī)范性標準,雖然行業(yè)標準報批稿已上報,但是目前也存在爭議,如果使用則需報國家質量監(jiān)督局單獨審批,審批步驟難度大; (2)一次性投入大,我們目前得到的預報價一套DR系統(tǒng)就需150萬左右,同時需改動的地方比較多,曝光室需改動的地方比較多,板車需該為自動式,成像板需進行吊頂構造;(3)我廠目前的產品調度能力是否能跟上也是問題,如果跟不上反而會影響效率。目前我廠有三個曝光室,我們建議購買兩套系統(tǒng),改造兩個曝光室,如果僅使用一套系統(tǒng)的話,我們的曝光室功
7、能就太繁瑣,但是按照目前新技術發(fā)展的趨勢,我們認為DR系統(tǒng)最終會取代膠片,隨著產能的增加和膠片價格的不斷上漲,耗材消耗會不斷上升,采用DR平板數(shù)字成像檢測從長遠來看對我們是十分有利的。 壓力容器廠品???2012.05.20 DR系統(tǒng)拍攝試板成像圖同一位置膠片檢測圖像圖一、DR系統(tǒng)與膠片成像對比成像板成像板成像板正面成像板正面系統(tǒng)實時成像系統(tǒng)實時成像圖二、DR系統(tǒng)現(xiàn)場試驗圖片DR控制臺DR控制臺圖三 DR系統(tǒng)在工業(yè)上的應用附錄資料:不需要的可以自行刪除語言的常用庫函數(shù)函數(shù)1。absread()讀磁盤絕對扇區(qū)函數(shù)原形:int absread(int drive,int num,int sectn
8、um,void *buf)功能:從drive指定的驅動器磁盤上,sectnum指定的邏輯扇區(qū)號開始讀取(通過DOS中斷0 x25讀取)num個(最多64K個)扇區(qū)的內容,儲存于buf所指的緩沖區(qū)中。參數(shù):drive=0對應A盤,drive=1對應B盤。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)2。abswrite()寫磁盤絕對扇區(qū)函數(shù)原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驅動器)、1(B驅動器)、nsects=要寫的扇區(qū)數(shù)(最多64K個);lsect=起始邏輯扇區(qū)號;buffer=要
9、寫入數(shù)據(jù)的內存起始地址。功能:將指定內容寫入(調用DOS中斷0 x26)磁盤上的指定扇區(qū),即使寫入的地方是磁盤的邏輯結構、文件、FAT表和目錄結構所在的扇區(qū),也照常進行。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)3。atof()將字符串轉換成浮點數(shù)的函數(shù)原形:double atof(const char *s)功能:把s所指向的字符串轉換成double類型。s格式為:符號數(shù)字.數(shù)字E符號數(shù)字返回值:字符串的轉換值。頭文件:math.h、stdlib.h函數(shù)4。atoi()將字符串轉換成整型數(shù)的函數(shù)原形:int atoi(const char *s)功能:把s所指向的字符串轉換成int
10、類型。s格式為:符號數(shù)字返回值:字符串的轉換值。若出錯則返回0。頭文件:stdlib.h函數(shù)5。atol()將字符串轉換成長整型數(shù)的函數(shù)原形:long atol(const char *s)功能:把s所指向的字符串轉換成long int類型。s格式為:符號數(shù)字返回值:字符串的轉換值。若出錯則返回0。頭文件:stdlib.h函數(shù)6。bcd()把一個數(shù)轉換成對應的BCD碼的函數(shù)原形:bcd bcd(int x)bcd bcd(double x)bcd bcd(double x,int decimals)注意:BCD碼的精度可達17位。參數(shù)decimals是可選的,用來指定轉換后小數(shù)點后的位數(shù)。頭文
11、件:bcd.h函數(shù)7。bdos()原形int bdos(int fnum,unsigned dx,unsigned al)其中fnum是系統(tǒng)調用號;dx是傳給寄存器DX的值;al是傳給寄存器AL的值;功能DOS系統(tǒng)調用(INT21H)返回值AX中的值函數(shù)8。biosdisk()調用BIOS磁盤驅動程序函數(shù)原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)功能:使用中斷0 x13,直接調用BIOS進行磁盤操作參數(shù):(1)cmd:2-數(shù)據(jù)以每扇區(qū)512字節(jié)的格式讀入buf
12、fer,起始扇區(qū)由head、track和sector定,扇區(qū)數(shù)由nsects定。3-將buffer中的數(shù)據(jù)按每扇區(qū)512字節(jié)寫入磁盤。4-對扇區(qū)進行數(shù)據(jù)校驗。6-格式化一個磁盤并對化扇區(qū)設置化標志。8-返回當前驅動器參數(shù)在buffer的前4個字節(jié)中。10-長讀,每扇區(qū)讀入512字節(jié)加上額外的4個字節(jié)。11-長寫,每扇區(qū)寫入512字節(jié)加上額外的4個字節(jié)。(2)drive:0-第一個軟驅;1-第二個軟驅;0 x80-第一個硬驅(3)head:磁頭(4)track:磁道(5)sector:扇區(qū)(6)nsects:扇區(qū)數(shù)(7)buffer:數(shù)據(jù)緩沖區(qū),定義為unsigned char buffer;返
13、回值:0 x00-操作成功0 x01-錯誤命令0 x03-企圖寫具有寫保護的磁盤0 x07-驅動器參數(shù)設置錯誤0 x10-磁盤讀/CRC/ECC錯誤頭文件:bios.h注:對于硬盤主引導記錄扇區(qū)head=0,track=0,sector=1函數(shù)9。biosprint()調用BIOS打印機I/O接口的函數(shù)原形:int biosprint(int cmd,int abyte,int port)功能:通過BIOS中斷0 x17在由參數(shù)port指定的打印機上完成各種打印機功能。port=0(LPT1)=1(LPT2);cmd=0(打印字符abyte)1(初始化打印機端口)2(讀打印機狀態(tài));abyte
14、=0-255;返回值:打印機狀態(tài)位0(設備超時);位3(I/O出錯);位4(打印機已選擇);位5(沒紙);位6(打印機確認);位7(不忙)頭文件:bios.h函數(shù)10。calloc()分配內存函數(shù)原形:void *calloc(size_t nitems,size_t size)功能:在堆中分配一塊內存,將該內存的內容全部清。返回值:返回指向新分配內存的指針??臻g不夠則返回NULL。頭文件:stdlib.h、calloc.h函數(shù)11。ceil()原形double ceil(double num)功能求不小于num的最小雙精度整數(shù)頭文件math.h函數(shù)12。cgets()讀字符串函數(shù)原形:cha
15、r *cgets(char *str)功能:從控制臺讀入一個字符串,并將該字符串(和字符串長度)存入有str所指向的地址中。注意:在調用cgets之前,必須將要讀入的字符串最大長度存入str0中,返回時str1被設置為實際讀入的字符數(shù)。實際字符串內容從str2開始,以空字符(0)結尾。返回值:指向str2的指針。頭文件:conio.h函數(shù)13。chdir()改變當前目錄的函數(shù)原形:int chdir(const char *path)功能:把由path指定的目錄改為當前目錄。path參數(shù)中可以指定驅動器號,如a:ddd, 但只是改變該驅動器上的當前目錄,對當前活動驅動器上的當前目錄無影響。返回
16、值:0(成功);-1(失敗)頭文件:dir.h函數(shù)14。_chmod()改變文件存取權限的函數(shù)原形:int _chmod(const char *path,int func,int attrib)功能:讀取(func=0時)或設置(func=1時)DOS文件屬性。attrib=FA_RDONLY 只讀attrib=FA_HIDDEN 隱藏文件attrib=FA_SYSTEM 系統(tǒng)文件attrib=FA_LABLE 卷標attrib=FA_DIREC 目錄attrib=FA_ARCH 檔案 返回值:失敗時返回-1。成功時返回文件的屬性字節(jié),如果 返回值&FA_RDONLY 不等于0,則文件是只讀
17、文件;頭文件:io.h、dos.h函數(shù)15。chmod()改變文件存取權限的函數(shù)原形:int chmod(const char *path,int amode)功能:根據(jù)amode的值,設置由path所指文件的存取權限。amode的值存取權限S_IWRITE 允許寫S_IREAD允許讀(只讀)S_IREAD|S_IWRITE 可讀可寫 返回值:0(成功);-1(失敗)頭文件:io.h、sysstat.h函數(shù)16。clock()原形long clock(void)功能測得從程序開始到調用處處理機所用的時間頭文件time.h函數(shù)17。close()關閉文件函數(shù)原形:int close(int ha
18、ndle)功能:關閉由文件句柄所指向的文件,句柄是調用_creat、creat、creatnew、creattemp、dup、dup2、_open或open時得到的。該函數(shù)并不在文件末尾寫一個Ctrl-Z字符,如果想用該字符結束文件,必須顯式地給出該字符。返回值:0(成功);-1(失敗)頭文件:io.h函數(shù)18。closegraph()關閉圖形函數(shù)原形:void far closegraph(void)功能:釋放圖形系統(tǒng)分配的所有內存,將屏幕恢復到調用initgraph之前的模式。頭文件:graphics.h函數(shù)19。cos()原形double cos(double arg)功能計算arg(弧
19、度)的余弦值頭文件math.h函數(shù)20。ctrlbrk()設置ctrl-break處理程序的函數(shù)原形:void ctrlbrk(int(*handle)(void)功能:修改中斷向量0 x23,使用新的ctrl-break中斷處理函數(shù)。用法:ctrlbrk(函數(shù)名);先定義函數(shù):int 函數(shù)名(void).頭文件:dos.h函數(shù)21。delay()暫停函數(shù)原形:void delay(unsigned milliseconds)功能:暫停當前所執(zhí)行的程序milliseconds毫秒。頭文件:dos.h函數(shù)22。disable()屏蔽中斷的宏原形:void disble(void)功能:屏蔽中斷,
20、只允許從外部設備來的不可屏蔽中斷(NMI)。頭文件:dos.h函數(shù)23。enable()開硬件中斷的宏原形:void enable(void)功能:開放中斷,允許接受任何設備產生的中斷。頭文件:dos.h函數(shù)24。exec()加載并運行其它程序的函數(shù)族execl(),execle(),execlp(),execlpe(),execv(),execve(),execvp(),execvpe()原形 int execl(char *path,char *arg0,*arg1,.,*argn,NULL)int execle(char *path,char *arg0,*arg1,.,*argn,NU
21、LL,char *env)int execlp(char *path,char *arg0,*arg1,.,*argn,NULL)int execlpe(char *path,char *arg0,*arg1,.,*argn,NULL,char *env)int execv(char *path,char *argv)int execve(char *path,char *argv,char *env)int execvp(char *path,char *argv)int execvpe(char *path,char *argv,char *env)其中,path是調用的子程序的文件名,在
22、exec后面的后綴具有某種功能:p表示函數(shù)能夠在由DOS環(huán)境變量PATH的目錄中搜索子進程文件,如果path中未指明文件所在目錄,函數(shù)將首先在當前目錄中找,然后在DOS環(huán)境變量指定的目錄中找。l表示參數(shù)指針(arg0,.,argn)按單獨參數(shù)傳送。當預先知道要傳送的參數(shù)個數(shù)時,通常用帶后綴l的函數(shù)。v表示參數(shù)指針(arg0,.,argn)按指針數(shù)組傳送。當要傳送的參數(shù)可變時,使用帶后綴v的函數(shù)。e表示參數(shù)env可以傳送到子進程,該函數(shù)可用來修改子進程的環(huán)境。若無e后綴,子進程將繼承父進程的環(huán)境。注意:arg0+.+argn,或arg0+.+argn的總長度必需小于128字節(jié)。當調用exec函數(shù)
23、時,原先已經打開的文件在子進程中仍然是打開的。功能:加載并運行其它程序,調用時必須有足夠的內存空間用于加載和執(zhí)行子程序,子程序將覆蓋父程序。頭文件:process.h 函數(shù)25。farcalloc()從遠堆中分配內存的函數(shù)原形:void far *farcalloc(unsigned long nunits,unsigned long unitsz)功能:從遠堆中為包含nunits個元素的數(shù)組分配內存,每一區(qū)unitsz字節(jié)長。用法:fptr=farcalloc(數(shù)目,sizeof(char);先定義:char far *fptr;注意:所有可用RAM能被分配;大于64的塊能被分配;用遠指針存
24、取該塊。微模式不能用。返回值:返回指向新分配塊的指針,若內存不夠,則返回NULL。頭文件:alloc.h函數(shù)26。farfree()從遠堆中釋放一塊已分配內存的函數(shù)原形:void farfree(void far *block)頭文件:alloc.h函數(shù)27。farmalloc()從遠堆中分配內存的函數(shù)原形:void far *farmalloc(unsigned long nbytes)使用方式:fptr=farmalloc(字節(jié)數(shù));先定義char far *fptr;功能:從遠堆中分配長nbytes字節(jié)的內存。注意:所有可用RAM能被分配;大于64的塊能被分配;用遠指針存取該塊。微模式不
25、能用。返回值:返回指向新分配內存的指針,若內存不夠,則返回NULL。頭文件:alloc.h函數(shù)28。farrealloc()調整遠堆中已分配塊的函數(shù)原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)返回值:返回調整后的新內存地址。若不能重新分配,則返回NULL。頭文件:alloc.h函數(shù)29。fclose()關閉一個流函數(shù)原形:int fclose(FILE *stream)使用方式:fclose(文件指針名);其中文件指針名=fopen();功能:關閉指定的流,關閉前清除所有與stream相聯(lián)的緩沖區(qū),釋放系統(tǒng)分配
26、的緩沖區(qū),但由setbuf設置的緩沖區(qū)不能自動釋放。返回值:0(成功);EOF(失敗)頭文件:stdio.h函數(shù)30。fcloseall()關閉打開的流的函數(shù)原形:int fcloseall(void)功能:關閉所有打開的流,由stdin、stdout、stdprn、stderr和stdaux設置的流除外。返回值:關閉流的總數(shù)。如果發(fā)現(xiàn)錯誤則返回EOF。頭文件:stdio.h 函數(shù)31。feof()檢查文件是否結束的函數(shù)原形int feof(FILE *fp)返回值文件結束返回非0值,否則返回0。頭文件stdio.h函數(shù)32。fgets()從流中讀取一字符串的函數(shù)原形:char *fgets(
27、char s,int n,FILE *stream)使用格式:fgets(字符串指針,字符個數(shù),文件指針)功能:從輸入流stream中讀入字符存到s串中。當讀了n-1個字符或遇到換行符時,函數(shù)停止讀過程。fgets在s串尾保留換行字符。讀入的最后一個字符后面加一個空字符。返回值:成功時返回字符串參數(shù)s,出錯或遇到文件結束時,返回NULL。頭文件:stdio.h函數(shù)33。findfirst()函數(shù)和findnext()函數(shù)調用方式:整形數(shù)=findfirst(文件名,&結構變量名,屬性常數(shù)組合(如0 x26);其中定義struct ffblk 結構變量名;原形:int findfirst(pat
28、h,buffer,attr)和int findnext(buffer)char *path;/要檢索的文件名struct ffblkchar ff_reserved21;char ff_attrib;/被檢索的文件屬性unsigned ff_ftime;/最后修改的時間/(0-4位:秒數(shù)/2;5-10位:分數(shù);11-15位:小時數(shù))unsigned ff_fdate;/最后修改的日期/(0-4位:日;5-8位:月;9-15位:年減1980)long ff_fsize;/文件大小char ff_name13;/組名*buffer;int attr;/要檢索的文件屬性功能:檢索由path和attr
29、指定的文件,把結果返回到buffer。findfirst返回關于第一個指定文件的信息,findnext繼續(xù)檢索。返回值:0(檢索成功),-1(沒有找到指定的文件)屬性常數(shù):FA_NORMAL(0 x00)含意:Normal file, no attributes FA_RDONLY(0 x01)含意:只讀FA_HIDDEN(0 x02)含意:隱含文件FA_SYSTEM(0 x04)含意:系統(tǒng)文件FA_LABEL(0 x08) 含意:卷標FA_DIREC(0 x10) 含意:子目錄FA_ARCH(0 x20)含意:修改的文件Archive頭文件:dir.h(dos.h)函數(shù)34。floodfil
30、l()填充區(qū)域的函數(shù)原形:void far floodfill(int x,int y,int border)功能:在圖形設備上用顏色border圍起來的區(qū)域將用當前填充顏色填充。(x,y)是待填充區(qū)域的起點,若起點在封閉區(qū)域內,則區(qū)域內被填充;若起點在封閉區(qū)域外,則區(qū)域外被填充。頭文件:graphics.h函數(shù)35。floor()原形double floor(double num)功能求不大于num的最大雙精度整數(shù)頭文件math.h函數(shù)36。fnmerge()建立文件路徑函數(shù)原形:void fnmerge(char *path,const char *drive,const char *di
31、r, const char *name,const char *ext)功能:合成drive:dirname.ext,放在path頭文件:dir.h函數(shù)37。fnsplit()分解完整的路徑名函數(shù)原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)功能:把文件名路徑path分成4個部分存放。其中drive中有冒號;dir中有開始和結尾的反斜杠;ext包括開始圓點返回值:如果有擴展名,則返回值&EXTENSION!=0如果有文件名,則返回值&FILENAME!=0
32、如果有目錄名,則返回值&DIRECTORY!=0如果有驅動器號,則返回值&DIRVE!=0頭文件:dir.h 函數(shù)38。fopen()打開一個流函數(shù)原形:FILE *fopen(const char *filename,const char *mode)功能:打開用filename指定的文件,并使其與一個流相聯(lián)。使用方式:文件指針名fopen(文件名,處理方式)處理方式?。簉t打開一個文本文件,只能讀。wt生成一個文本文件,只能寫。若文件存在則被重寫。at打開一個文本文件,只能在文件尾部添加。rb打開一個二進制文件,只能讀。wb生成一個二進制文件,只能寫。ab打開一個二進制文件,只能在文件尾部
33、添加。rt+ 打開一個文本文件,可讀可寫。wt+ 生成一個文本文件,可讀可寫。at+ 打開一個文本文件,可讀可添加。rb+ 打開一個二進制文件,可讀可寫。wb+ 生成一個二進制文件,可讀可寫。ab+ 打開一個二進制文件,可讀可添加。返回值:指明流的指針(成功時)或NULL(失敗時)注:需先定義 FILE *文件指針名;文件名若用 argv1代替,則可使用命令行形式指定文件名函數(shù)39。FP_OFF()獲取遠地址偏移量的宏原形:unsigned FP_OFF(void far *p)功能:取得和設置遠指針*p的偏移量返回值:偏移量頭文件:dos.h 函數(shù)40。fprintf()傳送輸出到一個流中的
34、函數(shù)原形:int fprintf(FILE *stream,const char *format,argument,.)功能:向文件指針指向的文件輸出ASC代碼向顯示器輸出錯誤信息 使用形式:fprintf(文件指針,輸出格式,輸出項系列);fprintf(stderr,錯誤信息);使用實例:fprintf(stream,%d %c %f,i,c,f);其中定義FILE *stream;int i;char c;float f;返回值:成功則返回輸出的字節(jié)數(shù),錯誤則返回EOF。頭文件:stdio.h函數(shù)41。FP_SEG()獲取遠地址段值的宏原形:unsigned FP_SEG(void fa
35、r *p)功能:取得和設置遠指針*p段地址值返回值:段地址值頭文件:dos.hfree()釋放已分配內存的函數(shù)原形:void free(void *block)功能:釋放由calloc、malloc、realloc函數(shù)調用所分配的內存。頭文件:stdlib.h、alloc.h函數(shù)42。fscanf()格式化輸入函數(shù)原形:int fscanf(FILE *stream,const char *format,address,.)功能:從一個流中掃描輸入字段,一次掃描一個字符,每個輸入字段根據(jù)format所指格式指示符格式化后,把輸入字段存在format后面由地址參數(shù)給出的位置上。使用格式:fsca
36、nf(文件指針,輸入格式,輸入項系列);使用實例:fscanf(fp,%d,&b);從fp指向的文件中讀取十進制整數(shù) (ASC形式)賦予變量b注:當文件指針是stdin時,與scanf功能完全相同頭文件:stdio.h函數(shù)43。fseek()移動文件指針函數(shù)原形:int fseek(FILE *stream,long offset,int whence)作用:強制一個文件的位置指針指向某個特定的位置(甚至超出文件的尾部)。使用格式:fseek(*文件指針,偏移(長整型),起點)定義 FILE *文件指針名;起點取值:0或SEEK_SET(表示文件開頭)1或SEEK_CUR(表示當前位置)2或S
37、EEK_END(表示文件尾端)返回值:0表示成功,非0值表示失敗頭文件:stdio.h函數(shù)44。fwrite()把參數(shù)寫入流中的函數(shù)原形:size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)功能:附加n個數(shù)據(jù)項(每個數(shù)據(jù)項長度為size個字節(jié))到指定的輸出文件后,數(shù)據(jù)從ptr處開始添加。ptr是指向任意對象的指針。返回值:調用成功時返回實際寫的數(shù)據(jù)項數(shù),出錯時返回一短整形數(shù)值。頭文件:stdio.h例:fwrite(&s,sizeof(s),1,stream);其中s是一結構變量,stream=fopen();函數(shù)45
38、。gcvt()把雙精度數(shù)轉化成字符串的函數(shù)原形char*gcvt(value,ndigit,buf)其中double value是待轉化數(shù)int ndigit是轉化長度char *buf保存轉化后的地址頭文件stdlib.h函數(shù)46。geninterrupt()執(zhí)行中斷函數(shù)原形:void geninterrupt(int n)調用方式:geninterrupt(軟中斷號)功能:產生一個8086軟中斷注:需先向寄存器傳遞入口信息(用偽變量)例如偽變量=要賦的值(入口信息);調用geninterrupt()函數(shù)后得接受出口信息例如變量名=偽變量偽變量Turbo C 允許使用偽變量直接訪問相應的80
39、86寄存器。偽變量的類型有兩種。 unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH函數(shù)47。getc()從流中取字符的宏原形:int getc(FILE *stream)功能:返回輸入流stream中一個字符,移動文件指針使之指向下一個字符。使用格式:字符變量getc(文件指針)(正常情況下讀取到代碼值,讀到文件尾或出錯時返回EOF)注:需定義 char 字符變量;FILE *文件指針;頭文件
40、:stdio.h函數(shù)48。getch()從鍵盤無回顯地讀取一字符的函數(shù)功能:將鍵盤上輸入的單個字符的值(ASC 碼)立刻賦給字符型變量調用方式:字符形變量getch()注:需先定義 char 字符形變量;頭文件:conio.h函數(shù)49。getchar()從stdin流中讀取一個字符的函數(shù)功能:將鍵盤上輸入的單個字符的值(ASC 碼)回車后賦給字符型變量調用方式:字符型變量getchar()注:需先定義 char 字符型變量;頭文件:stdio.h函數(shù)50。getcurdir()讀取指定驅動器的當前目錄的函數(shù)原形:int getcurdir(int drive,char directory)dr
41、ive=0(缺省);1(A驅動器);.directory用來存放目錄名,不包括驅動器名,不以反斜杠開始。返回值:0(調用成功);1(出錯)頭文件:dir.h函數(shù)61。getcwd()讀取當前目錄的函數(shù)原形:char *getcwd(char *buf,int buflen)功能:讀取當前目錄的完整路徑名(包括驅動器名),最長為buflen個字節(jié),存放在buf中。如果buf為NULL,函數(shù)將分配一個buflen字節(jié)長的緩沖區(qū),以后可將本函數(shù)的返回值作為free函數(shù)的參數(shù)來釋放該緩沖區(qū)。返回值:若buf非空,調用成功返回buf,出錯返回NULL;若buf為NULL,返回指向已經分配的內存緩沖區(qū)地址
42、。頭文件:dir.h函數(shù)62。getdate()讀取系統(tǒng)日期函數(shù)原形:void getdate(pdate)struct dateint da_year;int da_day;int da_mon;struct date *pdate;頭文件:dos.h函數(shù)63。getdfree()讀取磁盤空閑空間的函數(shù)原形:void getdfree(drive,dtable)unsigned char drive;驅動器號(0-當前;1-A;2-B;.)struct dfreeunsigned df_avail;/可使用的簇數(shù)unsigned df_total;/每個驅動器的簇數(shù)unsigned df_b
43、sec;/每個扇區(qū)的字節(jié)數(shù)unsigned df_sclus;/每個簇的扇區(qū)數(shù)(出錯時返回0 xffff)*dtable;功能:把由drive指定的關于驅動器的信息返回到dtable函數(shù)64。getdisk()讀取當前磁盤驅動器號函數(shù)原形:int getdisk(void)功能:取得當前驅動器號(0=A;1=B;)頭文件:dir.h函數(shù)65。getenv()讀取環(huán)境變量的當前值的函數(shù)原形:char *getenv(const char *name)用法:s=getenv(環(huán)境變量名);需先定義char *s;功能:返回一給定的環(huán)境變量值,環(huán)境變量名可大寫或小寫。如果指定的變量在環(huán)境中未定義,則
44、返回一空串。 頭文件:stdlib.h函數(shù)66。getimage()將指定區(qū)域的位圖象存入內存的函數(shù)原形:void far getimage(int left,int top,int right,int bottom,void far *bitmap)功能:將圖像(矩形區(qū)域)從屏幕拷貝到內存,*bitmap指向內存中存放圖像的區(qū)域。該區(qū)域的前兩個字節(jié)用于存放矩形的高和寬。頭文件:graphics.h函數(shù)67。getmaxx()返回屏幕上最大的坐標值的函數(shù)原形:int far getmaxx(void)功能:返回當前圖形驅動程序和圖形模式下最大的X坐標值。頭文件:graphics.h函數(shù)68。g
45、etmaxy()返回屏幕上最大的Y坐標值的函數(shù)原形:int far getmaxy(void)功能:返回當前圖形驅動程序和圖形模式下最大的Y坐標值。頭文件:graphics.h函數(shù)69。getpixel()讀取像素顏色的函數(shù)原形:unsigned far getpixel(int x,int y)頭文件:graphics.h函數(shù)70。getpsp()原形unsigned getpsp(void)功能使用DOS系統(tǒng)調用0 x62,返回程序段前綴(PSP)的段地址頭文件dos.h函數(shù)71。gets()從標準輸入流stdio中讀取一字符串的函數(shù)功能:將鍵盤上輸入的字符串立刻賦予字符串變量并顯示出來調
46、用方式:gets(字符串變量名)注:需定義 char *字符串變量名;函數(shù)72。gettime()讀取系統(tǒng)時間的函數(shù)原形:void gettime(ptime)struct timeunsigned char ti_min;unsigned char ti_hour;unsigned char ti_hund;/百分之一秒unsigned char ti_sec;struct time *ptime;函數(shù)73。getvect()讀取中斷向量函數(shù)原形:void interrupt(*getvect(int interruptno)功能:讀入由interruptno(0-255之間)所指定的中斷向
47、量值,并把該中斷向量值作為中斷函數(shù)的遠指針返回。返回值:指定中斷向量的當前4字節(jié)值。頭文件:dos.h使用實例:oldfunc=getvect(5);先定義void interrupt(*oldfunc)();用后恢復setvect(5,oldfunc);函數(shù)74。getx()返回當前圖形方式下位置的X坐標值的函數(shù)原形:int far getx(void);頭文件:graphics.h函數(shù)75。gety()返回當前圖形方式下位置的Y坐標值的函數(shù)原形:int far gety(void);頭文件:graphics.h函數(shù)76。imagesize()返回保存圖像緩沖區(qū)大小的函數(shù)原形:unsigne
48、d far imagesize(int left,int top,int right,int bottom)功能:確定保存圖像所需的存儲區(qū)大小。返回值:返回存儲區(qū)的大小(字節(jié)),若所需內存大于等于64K-1字節(jié),則返回0 xffff(-1)。頭文件:graphics.h函數(shù)77。initgraph()顯示模式控制函數(shù)(初始化圖形系統(tǒng)函數(shù))功能:把圖形適配器設置為一種圖形模式,將選擇的圖形驅動程序(在BGI文件中)裝入到內存。調用方式:void far initgraph(int far *driver,int far *mode,char far*path)其中: *driver可以是數(shù)值(0
49、-10),也可是符號值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、 PC3270)。*mode參數(shù)從圖形系統(tǒng)為各種常用的圖形適配器設置的圖形模式中(CGAC0、.、IBM8514HI-見頭文件graphics.h)選取。常用的有:VGAMED或1(640350)(等效于BIOS的模式15)、EGAHI或1(640350)等。path指向的字符串為裝入驅動程序的路徑。如果缺省路徑,驅動程序在當前目錄。結束方法:void far closegraph()函數(shù)用于當程序還要繼續(xù)在字符模下運行時。它釋放由圖形函數(shù)所占用
50、的內存,同時把屏幕模式恢復為調用initgraph()之前的模式。void far restorecrtmode()函數(shù)用于結束運行。將圖形適配器設置到原來的模式。任何分配的內存都將自動釋放。頭文件:graphics.h函數(shù)78。inport()從端口中讀入一個字的函數(shù)原形:int inport(int portid)調用方式:整型變量=inport(0 x端口號);功能:從指定端口地址讀一個字。頭文件:dos.h函數(shù)79。inportb()從端口讀入一個字節(jié)的函數(shù)原形:unsigned char inportb(int portid)調用方式:字符變量=inportb(0 x端口號);功能:
51、從指定端口地址讀一個字節(jié)。頭文件:dos.h函數(shù)80。int86()執(zhí)行中斷函數(shù)(調用8086軟中斷函數(shù))原形:int int86(int intno,union REGS *inregs,union REGS *outregs)調用方式:int86(中斷號,&輸入指針名,&輸出指針名)返回值:中斷處理結束時的AX寄存器的值,錯誤時outregs-x.cflag!=0功能:函數(shù)int86() 用來執(zhí)行指定的8086軟中斷。首先把輸入指針所指的共用體中的內容拷貝到CPU 的寄存器中,隨即產生對應的中斷,返回后將CPU寄存器(AX)的內容拷貝到輸出指針指向的共用體中。在使用int86() 函數(shù)進行
52、BIOS接口的系統(tǒng)調用時,有的中斷調用設有若干選擇項,這些選擇項可以根據(jù)調用時AH寄存器中的值來進行訪問。注:1.需先定義 union REGS 輸入指針名,輸出指針名;2.向寄存器傳遞入口信息輸入指針名.x.寄存器名=要賦的值(入口信息);3.調用int86后得接受出口信息變量名=輸出指針名.x.寄存器名4.REGS的定義(在dos.h中):struct WORDREGSunsigned int ax, bx, cx, dx, si, di, cflag, flags;struct BYTEREGSunsigned char al, ah, bl, bh, cl, ch, dl, dh;un
53、ion REGSstruct WORDREGS x;struct BYTEREGS h;頭文件:dos.h函數(shù)81。int86x()執(zhí)行中斷函數(shù) (通用8086軟中斷接口函數(shù))頭文件:dos.h原形:int int86x(int intno,union REGS *inregs,union REGS *outregs,struct SREGS * segregs)調用方式:int86x(中斷號,&輸入指針名,&輸出指針名,&段寄存器指針名);注1:需先定義 union REGS 輸入指針名,輸出指針名;union REGS 示意圖 structstructWORDREGSBYTEREGS al
54、 1 byte ax 2 bytes ah bl bx bh cl cx ch dl dx dh union regs si di cflag flags x兩個結構變量h共享同一存儲域其中字段flags對應于標志寄存器。字段cflag僅對應于進位標志位,函數(shù)在調用時不用該字段,只在返回時設置這個字段,因為許多BIOS服務都是通過進位標置為0還是1來表示成功還是失敗。注2:需先定義 struct SREGS 段寄存器指針名;結構SREGS定義如下struct SREGS unsigned int es,cs,ss,ds函數(shù)只用了該結構中的段寄存器DS和ES。調用時根據(jù)它們的值設置DS和ES,同
55、時把DS和ES原來的值保存在這個結構中,返回時再恢復DS和ES為原來的值,這就允許程序使用遠指針或大數(shù)據(jù)編譯模式。該函數(shù)置全局變量_doserrno等于寄存器AX中的值,其返回值也等于AX中的值。注3:向寄存器傳遞入口信息輸入指針名.x.寄存器名=要賦的值(入口信息);注4:調用int86x后得接受出口信息變量名=輸出指針名.x.寄存器名函數(shù)82。intdos()通用dos中斷接口函數(shù)原形:int intdos(inregs,outregs)union REGS *inregs;/調用時的各寄存器的值union REGS *outregs;/返回寄存器的值功能:產生DOS軟中斷注意:如果需要功
56、能號,則裝入AH;如果需要子功能號,則裝入AL。頭文件:dos.h函數(shù)83。intdosx()通用dos中斷接口函數(shù)原形:int intdosx(inregs,outregs,segregs)union REGS *inregs;調用時的各寄存器的值union REGS *outregs;返回寄存器的值struct SREGS *seregs;調用時的段寄存器的值(還設置返回時的值)功能:產生DOS軟中斷頭文件:dos.h函數(shù)84。intr()執(zhí)行8086軟中斷函數(shù)(改變軟中斷接口函數(shù))原形:void intr(int intno,struct REGPACK *preg)調用方式:intr(
57、中斷號,&結構變量名)注1:結構REGPACK定義如下struct REGPACKunsigned r_ax,r_bx,r_cx,r_dx;unsigned r_bp,r_si,r_di,r_ds,r_es,r_flag;注2:使用時先定義一個結構變量struct REGPACK 結構變量名;注3:入口和出口用同一個結構變量來傳遞寄存器的值。結構變量名.r_ax=要賦的值; intr(中斷號,&結構變量名);某變量=結構變量名.r_ax;頭文件:dos.h函數(shù)85。itoa()把整形數(shù)轉換為字符串的函數(shù)原形:char *itoa(int value,char *string,int radix
58、) 功能:把value的值轉換為以NULL結束的字符串,并把結果存在string中。radix是轉換的基數(shù)值,在2到36之間。分配給string的空間必須可容納返回的所有字節(jié)(最多17字節(jié))。返回值:指向string的指針頭文件:stdlib.h函數(shù)86。kbhit()檢查當前按下的鍵的函數(shù)原形:int kbhit(void)功能:檢查按下的鍵是否有效,若有效則可用getch()或getche()讀取。返回值:如果按鍵有效,返回一非零值,否則返回0。頭文件:conio.h函數(shù)87。keep()駐留并退出函數(shù)原形:void keep(unsigned char status,unsigned s
59、ize)功能:用于安裝一個TSR程序(使用DOS功能調用0 x31)。出口狀態(tài)設置為在status中的值,程序占用存儲空間為size,并釋放內存的其余部分。頭文件:dos.h函數(shù)88。log()原形double log(double num)功能求num的自然對數(shù)值頭文件math.h函數(shù)89。log10()原形double log10(double num)功能求num以10為底的對數(shù)值頭文件math.h函數(shù)90。_lrotl()將一個無符號長整形數(shù)左循環(huán)移位的函數(shù)原形:unsigned long _lrotl(unsigned long value,int count)功能:將value向左
60、循環(huán)移動count位。返回值:將value向左循環(huán)移動count位后的值。頭文件:stdlib.h函數(shù)91。_lrotr()將一個無符號長整形數(shù)右循環(huán)移位的函數(shù)原形:unsigned long _lrotr(unsigned long value,int count)功能:將value向右循環(huán)移動count位。返回值:將value向右循環(huán)移動count位后的值。頭文件:stdlib.h函數(shù)92。lseek()移動文件指針函數(shù)原形:long lseek(int handle,long offset,int fromwhere)handle=open()函數(shù)的返回值(文件句柄);fromwhere
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年江蘇省東臺市第一中學高三上學期12月份階段測試歷史試卷
- 2025年安徽省安全員《B證》考試題庫
- 中山大學《DMAXD》2023-2024學年第二學期期末試卷
- 武漢晴川學院《工程經濟學》2023-2024學年第二學期期末試卷
- 內蒙古大學創(chuàng)業(yè)學院《產品設計與市場營銷》2023-2024學年第二學期期末試卷
- 泰山護理職業(yè)學院《行政學原理》2023-2024學年第二學期期末試卷
- 漢口學院《商業(yè)模式創(chuàng)新與設計》2023-2024學年第二學期期末試卷
- 貴州工商職業(yè)學院《建筑結構檢測與加固》2023-2024學年第二學期期末試卷
- 臺州學院《中醫(yī)學概論(Ⅱ)》2023-2024學年第二學期期末試卷
- 青海柴達木職業(yè)技術學院《蒙臺梭利教學研究》2023-2024學年第二學期期末試卷
- 2024年黑龍江省專升本考試生理學護理學專業(yè)測試題含解析
- 奧特康唑膠囊-臨床用藥解讀
- 《新能源發(fā)電技術第2版》 課件全套 朱永強 第1-10章 能源概述- 分布式發(fā)電與能源互補
- 認識統(tǒng)計年報基本概念與作用
- 2024年內蒙古化工職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 民盟入盟申請書(通用6篇)
- XX精神科醫(yī)生述職報告(四篇合集)
- 給家里人做一頓飯
- 《嬰兒撫觸》課件
- 第1課《化石的故事》課件
- 人教PEP版六年級下冊英語全冊課件(2024年2月修訂)
評論
0/150
提交評論