《C語言程序設(shè)計方案設(shè)計方案》報告模板_第1頁
《C語言程序設(shè)計方案設(shè)計方案》報告模板_第2頁
《C語言程序設(shè)計方案設(shè)計方案》報告模板_第3頁
《C語言程序設(shè)計方案設(shè)計方案》報告模板_第4頁
《C語言程序設(shè)計方案設(shè)計方案》報告模板_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、層衣大孝C語言程序設(shè)計課程設(shè)計報告學(xué) 院:地球物理與石油資源學(xué)院班 級: 物探11101姓 名:李繼偉學(xué) 號: 201105968班內(nèi)編號:7指導(dǎo)教師:陳義群完成日期: 2013 年3月9日一、課程設(shè)計題目和要求題目:地震SEGY格式數(shù)據(jù)讀寫日期:2013年2月25日至2013年3月10日主要內(nèi)容:1、理解地震SEGY格式2、使用結(jié)構(gòu)體讀取卷頭和道頭3、高低字節(jié)序交換4、二維動態(tài)數(shù)組5、兩種浮點格式數(shù)據(jù)讀取6、將讀取的共炮記錄保存為 SURFER的GRD文本格式要求:1、運行結(jié)果以SURFER的圖片形式提交2、源代碼格式規(guī)范3、認真撰寫C語言程序設(shè)計課程設(shè)計報告4、獨立完成,嚴禁抄襲,逐一驗收

2、編譯器:Microsoft Visual C+ 6.0二、源代碼#include #include #include #includeSurfer.h#includeSwap.h#include float.h#includebinhead.h#includetracehead.hvoid main () Struct SeismicSegyBinHead a;/ 卷頭結(jié)構(gòu)體struct SeismicSegyTraceHead b;道頭結(jié)構(gòu)體unsigned int c;無符號變量FILE *fp;文件指針變量float k,*p; int m,n,x;fp=fopen(E:c 語言地震 S

3、EGY 格式數(shù)據(jù)讀寫數(shù)據(jù) float.sgy,rb); if (fp=NULL)printf(Cannot open file,press any key to exit!);exit(0);fseek(fp,3200,0);開始讀卷頭fread(&a,sizeof(a),1,fp);swap_n32(&(a.jobid);swap_n32(&(a.lino);swap_n32(&(a.reno);swap_n16(&(a.ntrpr);swap_n16(&(a.nart);swap_u16(&(a.hdt);swap_u16(&(a.dto);swap_u16(&(a.hns);swap_u

4、16(&(a.nso);swap_n16(&(a.format);swap_n16(&(a.fold);swap_n16(&(a.tsort);swap_n16(&(a.vscode);swap_n16(&(a.hsfs);swap_n16(&(a.hsfe);swap_n16(&(a.hsfe);swap_n16(&(a.hslen);swap_n16(&(a.hstyp);swap_n16(&(a.schn);swap_n16(&(a.hstas);swap_n16(&(a.hstae);swap_n16(&(a.htatyp);swap_n16(&(a.hcorr);swap_n16(&

5、(a.bgrcv);swap_n16(&(a.rcvm);swap_n16(&(a.mfeet);swap_n16(&(a.polyt);swap_n16(&(a.vpol);fread(&b,sizeof(b),1,fp);開始讀道頭swap_n32(&(b.tracl);swap_n32(&(b.tracr);swap_n32(&(b.fldr);swap_n32(&(b.tracf);swap_n32(&(b.ep);swap_n32(&(b.cdp);swap n32(&(b.cdpt);swap_n16(&(b.trid);swap_n16(&(b.nvs);swap_n16(&(b

6、.nhs);swap_n16(&(b.duse);swap_n32(&(b.offset);swap_n32(&(b.gelev);swap_n32(&(b.selev);swap_n32(&(b.sdepth);swap_n32(&(b.gdel);swap_n32(&(b.sdel);swap_n32(&(b.swdep);swap_n32(&(b.gwdep);swap_n16(&(b.scalel);swap_n16(&(b.scalco);swap_n32(&(b.sx);swap_n32(&(b.sy);swap_n32(&(b.gx);swap_n32(&(b.gy);swap_

7、n16(&(b.counit);swap_n16(&(b.wevel);swap_n16(&(b.sstat);swap_n16(&(b.gstat);swap_n16(&(b.tstat);swap_n16(&(b.laga);swap_n16(&(b.sut);swap_n16(&(b.gut);swap_n16(&(b.lagb);swap_n16(&(b.delrt);swap_n16(&(b.muts);swap_n16(&(b.mute);swap_u16(&(b.ns);swap_u16(&(b.dt);swap_n16(&(b.gain);swap_n16(&(b.igc);s

8、wap_n16(&(b.igi);swap_n16(&(b.corr);swap_n16(&(b.sfs);swap_n16(&(b.sfe);swap_n16(&(b.slen);swap_n16(&(b.styp);swap_n16(&(b.stas);swap_n16(&(b.stae);swap_n16(&(b.tatyp);swap n16(&(b.afilf);swap_n16(&(b.afils);swap_n16(&(b.nofilf);swap_n16(&(b.no巾ls);swap_n16(&(b.lcf);swap_n16(&(b.hcf);swap_n16(&(b.lc

9、s);swap_n16(&(b.hcs);swap_n16(&(b.year);swap_n16(&(b.day);swap_n16(&(b.hour);swap_n16(&(b.minute);swap_n16(&(b.sec);swap_n16(&(b.timbas);swap_n16(&(b.trwf);swap_n16(&(b.grnors);swap_n16(&(b.grnofr);swap_n16(&(b.grnlof);swap_n16(&(b.gaps);swap_n16(&(b.otrav);printf( hns=%dn format=%dn tracl=%dn tracr

10、=%dn,a.hns,a.format,b.tracl,b.tracr);printf(輸入第 n+1 炮:);scanf(%d,&x);fseek(fp,(3840+(a.hns)*4*264)*x+3840),0);p=(float *)malloc(sizeof(float *)*(a.hns);for(m=0;m (a.hns) ;m+)pm=(float *)malloc(sizeof(float)*264);文件定位,開始讀道頭數(shù)據(jù)。這里地方根據(jù)字節(jié)數(shù)可以讀任何一炮的數(shù)據(jù)。每一炮的字節(jié)數(shù)是 3840+7000*4*264 ,有264道,每道有7000個數(shù)據(jù),二維動態(tài)數(shù) 組。分配指針

11、數(shù)組。分配每個指針?biāo)赶虻臄?shù)組。for(n=0;n264;n+)fseek(fp,(3840+(a.hns)*4)*n+240*n),0);讀取每一道的數(shù)據(jù)文件定位。字節(jié)數(shù)等于3840+7000*4*n (每 個數(shù)據(jù)4個字節(jié),有7000個數(shù)據(jù))+240*n (道 頭有240個字節(jié),n道)for(m=0;m(a.hns);m+) 如果是iee格式fread(&c,4,1,fp);if(a.format)=5)union_x.val2=c;swap uint(&c);Pmn=union_x.val1; if(a.format)=1)如果是 ibm 格式 swap_uint(&c); k=ibm2i

12、eee(c); Pmn=k; writeSurferTextGrd (p,(a.hns) ,264);把道頭數(shù)據(jù)用 surfer格式保存。函數(shù)的調(diào)用。fclose(fp);for(m=0;m264;m+)/ 釋放 free(pm); free(p);三、運行結(jié)果.程序輸出結(jié)果:hns=?000format=1tracl=ltracr=l輸入第Ml炮:1Press any key to continue.原炮圖一第2炮:總結(jié)和體會(一)總結(jié):1,程序編程( 1 )要弄懂老師的課設(shè)要求是什么,弄清方向,整理資料,確定一個編程的方向。頭腦中的有一個清晰的認識或思路。 文檔來自于網(wǎng)絡(luò)搜索( 2 )在編

13、程的過程中我們要知道函數(shù)是什么。注意如何申明,調(diào)用等。如在程序中就對函數(shù)的定義,函數(shù)的調(diào)用使用的相當(dāng)?shù)亩?,尤其的高低字?jié)的轉(zhuǎn)換。 文檔來自于網(wǎng)絡(luò)搜索( 3 )結(jié)構(gòu)體的運用。什么是結(jié)構(gòu)體,結(jié)構(gòu)體的定義,結(jié)構(gòu)體變量的定義,以及結(jié)構(gòu)體變量內(nèi)元素的引用方法.如 struct SeismicSegyBinHead a 。當(dāng)結(jié)構(gòu)體成員為指針的時候,每當(dāng)給這個成員賦值之前必須先為這個結(jié)構(gòu)體成員分配一個內(nèi)存空間 文檔來自于網(wǎng)絡(luò)搜索( 4 )數(shù)組的運用。要知道什么是數(shù)組,數(shù)組的定義,數(shù)組的賦值,數(shù)組里面值怎么引用,包括一維數(shù)組和二維數(shù)組。如運用二維動態(tài)數(shù)組。 文檔來自于網(wǎng)絡(luò)搜索( 5 )位運算。這應(yīng)該是最重要的

14、。完成課設(shè)任務(wù)的必不可少的一部分。其中(a),文件指針變量fp及其定義形式FILE *fp ;(b),文件的定位fseek函數(shù)的運用,基本調(diào)用形式 fseek(fp,offset,origin);(c),文件的打開與關(guān)閉,運用 fopen 和 fclose 函數(shù)如 fp=fopen(c:float.sgy,rb)=NULL用fopen ()函數(shù)來實現(xiàn)打開文件,其中文件使用方式“r”為只讀,“w”為只寫形式;文檔來自于網(wǎng)絡(luò)搜索(d),二進制數(shù)據(jù)塊的輸入與輸出,運用 fwrite函數(shù)和fread函數(shù)。2操作時問題分析編好后進行運行時,有一些遺漏問題,如大括號的使用是否對起;語句的使用是否錯誤;對一

15、個變量是否定義;輸出是否有遺漏;數(shù)據(jù)的使用是否符合規(guī)定,定義是否正確等。對于調(diào)試,要看程序是否運行且達到預(yù)期效果,按照思路能夠正確的使用。 文檔來自于網(wǎng)絡(luò)搜索(二)心得體會:這次的課程設(shè)計實驗是對我們進入大學(xué)以來學(xué)習(xí) C 語言結(jié)果的一次大考驗。自己動手,發(fā)現(xiàn)問題和解決問題。并發(fā)現(xiàn)了許多自己的不足,平時沒掌握的知識在實踐中暴漏,經(jīng)過不斷的思考, 查閱書籍和上網(wǎng)查資料及上機運行, 解決了大部分問題, 還稍微有些小問題。但是, 我相信在今的學(xué)習(xí)中, 一定能把它解決好。 當(dāng)今計算機應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀的大學(xué)來說掌握程序開發(fā)技術(shù)是十分重要的,而C 語言又是最常見,功能最強大的一種高級語言,因此做好C 語言課程設(shè)計是十分必要的。 我不僅鞏固 C 語言程序設(shè)計 課程學(xué)習(xí)的內(nèi)容, 掌握設(shè)計的基本方法, 強化上機動手能力。 在編程中,特別是結(jié)構(gòu)體, 指針和位運算部分, 幾乎忘得差不多了。 不過經(jīng)過幾天的努力,大體上把課本上的知識點看了一遍,知識點也都基本是撐握了,所以下一步就是開始正式的編程序了。當(dāng)讀懂了 C 語言編程的基本過程和方法。 經(jīng)過一波三折, 終于開始正式編程。 有句話叫 “知之為知之,不知為不知,是知也” ,要懂得請教同學(xué)或老師,這是很重要的,靠自己獨立完成程序幾乎是不可能的事

溫馨提示

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

評論

0/150

提交評論