C語言課程設計報告文本信息處理_第1頁
C語言課程設計報告文本信息處理_第2頁
C語言課程設計報告文本信息處理_第3頁
C語言課程設計報告文本信息處理_第4頁
C語言課程設計報告文本信息處理_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 xx 航 空 工 業(yè) 學 院 課程設計學 號 班 級 姓 名 指導教師 2007年 7 月 19 日沈陽航空工業(yè)學院課程設計任務書機械與汽車學院 機械電子工程專業(yè) 5406108班 學號200504061269一、課程設計題目:文本信息處理二、課程設計工作自2007年7月9日起至2007年7月16日止三、課程設計內(nèi)容:用c語言編寫軟件完成以下任務:(1) 復制文件(將一文本文件中的內(nèi)容拷貝到另一文本文件中)(2) 顯示文件信息內(nèi)容(并顯示行號)(3) 查找字符串(4) 插入字符串(5) 自己再加一項功能四、課程設計要求:程序質(zhì)量:l 采用模塊化程序設計方法,在程序里面,以菜單的形式調(diào)用各功能

2、函數(shù),程序可讀性強,界面友好,輸出形式盡量美觀。l 用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。l 用戶界面中的菜單至少應包括“復制文件”“顯示”“查找”“插入”“退出”五項。l 代碼應適當縮進,并給出必要的注釋,以增強程序的可讀性。課程設計說明書:課程結(jié)束后,上交課程設計說明書(打印稿和電子稿),其內(nèi)容如下:l 封面l 課程設計任務書l 目錄l 需求分析(分析題目的要求)l 程序流程圖(總體流程圖和主要功能模塊流程圖)l 核心技術的實現(xiàn)說明及相應程序段l 個人總結(jié)l 參考資料l 源程序及適當?shù)淖⑨屩笇Ы處煟篲 學生簽名:_目錄一、需求分析2二程序流程圖.3三、核心技術的實現(xiàn)方法

3、、程序段及注釋8四個人總結(jié).14五、參考文獻.14六、源程序14 一、需求分析 經(jīng)過對程序設計題目的分析可知,整個程序的設計實現(xiàn)大致分為四個模塊,其中每一個模塊對應一個函數(shù),他們的功能分別是: 復制文件(將一文本文件中的內(nèi)容拷貝到另一文本文件中) 顯示文件信息內(nèi)容(并顯示行號) 查找字符串 插入字符串。在這些函數(shù)當中,四個函數(shù)的實現(xiàn)嚴格按照題目的要求。1、復制文件函數(shù) 主要實現(xiàn)程序?qū)⒁粋€文件復制到另一個文件中 2、顯示文件信息內(nèi)容函數(shù) 實現(xiàn)的功能是將文件中的所有 內(nèi)容通過屏幕顯示出來;3、查找字符串函數(shù) 按照題目的具體要求找到所要查找的字符串;4、插入字符串函數(shù) 還可以插入所組要的字符串;除上

4、面介紹的功能之外,程序還具有退出功能,可以在程序的一次運行當中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。 二程序流程圖當(1)真輸入值n=1?假復制文件copy()真n=2? 假顯示文件信息內(nèi)容display()真n=3?假查找字符串seek()n=4?真 假插入insert()退出1程序總體結(jié)構(gòu)圖:2.具體功能框圖: 1 輸入被復制的文件名 輸入復制的文件名復制的文件不存在真假新建立一個文件 刪除,重建 文件指針順序后移文件沒有結(jié)束真假 將讀取被復制文件中的 字符寫入到復制文件中關閉被復制文件 關閉復制文件 調(diào)用菜單函數(shù) 2 輸入顯示的文件名真文件不存在?假輸出文件不存在顯示第一行的行號

5、文件沒有結(jié)束順序讀取文件中的字符賦給變量t.在屏幕上輸出t.t=n?真假輸出i,i+ 關閉文件調(diào)用菜單函數(shù)3輸入要查找的文件名文件不存在?真假輸出文件不存在輸入要查找的字符串統(tǒng)計輸入字符串的字符個數(shù),并賦給n將文件指針定位文件開頭將n個字符賦給字符串變量到行末?真假i=i+1,將從文件中讀取的字符串中的字符順序與輸入的字符串對比真相同?假輸出i文件結(jié)束?真假指針定位到下一字節(jié)繼續(xù)讀取和判斷關閉文件調(diào)用菜單函數(shù) 4 輸入要插入的字符的文件名 打開文件 文件不存在? 真假輸出文件不存在輸入要插入的字符串統(tǒng)計輸入的字符串的長度并值賦給m顯示插入點選擇菜單輸入h值h2|hd寫入要插入的字符串讀取一個字

6、符賦給c,指針后移一位關閉文件將文件指針后移()位,調(diào)用菜單函數(shù)在當前寫入c,再將指針后移一位將文件指針前移(m+2)位直到dq,將文件指針定位到文件開頭寫入要插入的字符串關閉文件調(diào)用菜單函數(shù)三、核心技術的實現(xiàn)方法、程序段及注釋本程序主要由四個自定義函數(shù)和一個主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來實現(xiàn)要求的所有功能。下面分別進行說明1、所需要的頭文件:#include stdio.h /*輸入輸出函數(shù)*/#include stdlib.h /*常用函數(shù)和符號常量*/#include string.h /*字符串函數(shù)*/2、聲明函數(shù)void copy_(); /*聲明復制函數(shù)*/voi

7、d display_(); /*聲明顯示函數(shù)*/void seek_(); /*聲明查找函數(shù)*/void insert_(); /*聲明插入 */void menu(); /*聲明菜單函數(shù)*/3、主函數(shù)void main() /*主函數(shù)*/ menu(); /*調(diào)用菜單函數(shù)*/4、菜單函數(shù)void menu() /*菜單函數(shù)*/ int a; printf(n=text information handling=n); /*顯示菜單*/ printf(+*+n); printf(+*- 1= -*+n); printf(+*- 2= -*+n); printf(+*- 3= -*+n); pr

8、intf(+*- 4= -*+n); printf(+*- 5= -*+n); printf(+*+n); printf(=n); printf(please input(15),then press :); scanf(%d,&a); switch(a) case 1:copy_();break; case 2:display_();break; case 3:seek_();break; case 4:insert_();break; case 5:exit(0);break; default:printf( - erro -!n- back to =nn);menu(); /*輸入其他數(shù)

9、,回到菜單函數(shù)*/ 5、復制函數(shù),前提是必須文件要存在,如果不,通過移動指針達到復制的目的,具體的程序段如下:void copy_() /*復制函數(shù)*/ file *in,*out; char infile20,outfile20; printf(enter the infile name=); scanf(%s,infile); /*輸入被復制的文件名*/ printf(enter the outfile name=); scanf(%s,outfile); /*輸入復制的文件名*/ if(in=fopen(infile,r)=null) /*打開被復制的文件,須已存在*/ printf(c

10、annot open infilen); exit(0); if(out=fopen(outfile,w)=null) /*打開復制的文件,若存在則刪除重建,若不存在則新建*/ printf(cannot open outfilen); exit(0); while(!feof(in) fputc(fgetc(in),out); /*文件指針順序后移,若文件未結(jié)束,則讀取被復制文件中的字符寫入復制文件中*/ fclose(in); /*關閉被復制文件*/ fclose(out); /*關閉復制函數(shù)*/ menu(); /*調(diào)用菜單函數(shù)*/6、顯示函數(shù),打開存在的文件,在屏幕上輸出文件里的所有內(nèi)

11、容,并顯示出行號,具體的程序段如下:void display_() /*顯示函數(shù)*/ int i=2; /*表示行號的整型變量i,并賦初值2*/ char t; file *in; char infile20; printf(enter the infile name=); scanf(%s,infile); /*輸入要顯示的文件名*/ if(in=fopen(infile,r)=null) /*打開要顯示的文件,須已存在*/ printf(cannot open infilen); exit(0); printf(1 ); /*顯示第一行的行號*/ while(!feof(in) /*判斷文

12、件是否結(jié)束*/ t=fgetc(in); /*順序讀取文件中的字符賦給變量t*/ printf(%c,t); /*在顯示屏上輸出t*/ if(t=n) /*判斷t是否等于換行符n*/printf(%d ,i+); /*若相等則輸出整型變量i,并使i的值加1*/ printf(n); fclose(in); /*關閉文件*/ menu(); /*調(diào)用菜單函數(shù)*/ 7、查找函數(shù),在要查找的文件中,查找所要查找的字符串,可以同時顯示出字符個數(shù),若文件不完全一樣,還可以顯示出行號,具體的程序段如下:void seek_() /*查找函數(shù)*/ file *in; int n; int i=1,j; ch

13、ar infile20; char string20; char m20; printf(enter the infile name=); scanf(%s,infile); /*輸入要查找的文件名*/ if(in=fopen(infile,r)=null) /*打開要查找的文件*/ printf(cannot open infilen); exit(0); printf(input the string to seek for=); scanf(%s,string); /*輸入要查找的字符串*/ n=(strlen(string); /*統(tǒng)計輸入字符串的字符個數(shù),并賦給n*/ rewind(

14、in); /*將文件指針定位到文件開頭*/ star1: fread(&m,n,1,in); /*讀入n個字符賦給字符串變量m*/ if(m0=n)i+; /*判斷是否讀到行末,若讀到則表示行號的變量i的值加1*/ for(j=0;j); scanf(%s,infile); /*輸入要插入字符串的文件名*/ if(in=fopen(infile,rb+)=null) /*打開文件*/ printf(cannot open infilen); exit(0); printf(input the string you want to insert=); scanf(%s,r); /*輸入要插入的字

15、符串*/m=strlen(r); /*統(tǒng)計輸入的字符串的長度并將值賦給m*/star2: printf(n+choose the insert point+n); /*顯示插入點選擇菜單*/ printf(-1=-2=-n); printf(+n); printf(input the operation number youchoose=); scanf(%d,&h); /*輸入h值*/ if(h2|h1) printf( - erro -!n); printf(- choose again -!nn); goto star2; /*若h值不為1或2則重新選擇*/ if(h=1) /*若h值為

16、1,則執(zhí)行下面的語句*/ fseek(in,-1l,2); /*定位文件指針到文件中最后一個字符前*/ q=ftell(in); /*獲取指針當前位置并賦給q*/ for(d=0;d=q;d+) /*將以下語句執(zhí)行(q+1)次*/ c=fgetc(in); /*讀取一個字符賦給c,此時指針向后移一位*/ fseek(in,m-1,1); /*將文件指針后移(m-1)位*/ fputc(c,in); /*在當前位置寫入c,此時指針向后移一位*/ fseek(in,-(m+2),1); /*將文件指針前移(m+2)位,若是第一次循環(huán),則位于原文件倒數(shù)第二個字符前*/ rewind(in); /*將

17、文件指針定位到文件開頭*/ fputs(r,in); /*寫入要插入的字符串*/ fclose(in); /*關閉文件*/ menu(); /*調(diào)用菜單函數(shù)*/ if(h=2) /*若h值為2,則執(zhí)行下面的語句*/ fseek(in,0l,2); /*定位文件指針到文件末*/ fputs(r,in); /*寫入要插入的字符串*/ fclose(in); /*關閉文件*/ menu(); /*調(diào)用菜單函數(shù)*/ 四個人總結(jié)通過這次課設,讓我對以前所學的c語言知識有了更深刻的理解,還知道了程序的精密性,稍有一點錯誤,程序就不會運行,所以從中我明白了做事以及做人都要有這種一絲不茍的精神,還有計算機真的

18、是一門學問,很深的學問,想要弄懂它真的要下一份苦功才行啊,最后呢,課程設計還是我們以后走向崗位的基礎啊,所以我們一定要重視它??!五、參考文獻1 譚浩強c程序設計北京:清華大學出版社,20052 劉成等c語言程序設計實驗指導與習題集北京:中國鐵道出版社,2006 六、源程序#include stdio.h /*輸入輸出函數(shù)*/#include stdlib.h /*常用函數(shù)和符號常量*/#include string.h /*字符串函數(shù)*/void copy_(); /*聲明復制函數(shù)*/void display_(); /*聲明顯示函數(shù)*/void seek_(); /*聲明查找函數(shù)*/void

19、 insert_(); /*聲明插入 */void menu(); /*聲明菜單函數(shù)*/void main() /*主函數(shù)*/ menu(); /*調(diào)用菜單函數(shù)*/void menu() /*菜單函數(shù)*/ int a; printf(n=text information handling=n); /*顯示菜單*/ printf(+*+n); printf(+*- 1= -*+n); printf(+*- 2= -*+n); printf(+*- 3= -*+n); printf(+*- 4= -*+n); printf(+*- 5= -*+n); printf(+*+n); printf(=n

20、); printf(please input(15),then press :); scanf(%d,&a); switch(a) case 1:copy_();break; case 2:display_();break; case 3:seek_();break; case 4:insert_();break; case 5:exit(0);break; default:printf( - erro -!n- back to =nn);menu(); /*輸入其他數(shù),回到菜單函數(shù)*/ void copy_() /*復制函數(shù)*/ file *in,*out; char infile20,ou

21、tfile20; printf(enter the infile name=); scanf(%s,infile); /*輸入被復制的文件名*/ printf(enter the outfile name=); scanf(%s,outfile); /*輸入復制的文件名*/ if(in=fopen(infile,r)=null) /*打開被復制的文件,須已存在*/ printf(cannot open infilen); exit(0); if(out=fopen(outfile,w)=null) /*打開復制的文件,若存在則刪除重建,若不存在則新建*/ printf(cannot open

22、outfilen); exit(0); while(!feof(in) fputc(fgetc(in),out); /*文件指針順序后移,若文件未結(jié)束,則讀取被復制文件中的字符寫入復制文件中*/ fclose(in); /*關閉被復制文件*/ fclose(out); /*關閉復制函數(shù)*/ menu(); /*調(diào)用菜單函數(shù)*/void display_() /*顯示函數(shù)*/ int i=2; /*表示行號的整型變量i,并賦初值2*/ char t; file *in; char infile20; printf(enter the infile name=); scanf(%s,infile)

23、; /*輸入要顯示的文件名*/ if(in=fopen(infile,r)=null) /*打開要顯示的文件,須已存在*/ printf(cannot open infilen); exit(0); printf(1 ); /*顯示第一行的行號*/ while(!feof(in) /*判斷文件是否結(jié)束*/ t=fgetc(in); /*順序讀取文件中的字符賦給變量t*/ printf(%c,t); /*在顯示屏上輸出t*/ if(t=n) /*判斷t是否等于換行符n*/printf(%d ,i+); /*若相等則輸出整型變量i,并使i的值加1*/ printf(n); fclose(in);

24、/*關閉文件*/ menu(); /*調(diào)用菜單函數(shù)*/ void seek_() /*查找函數(shù)*/ file *in; int n; int i=1,j; char infile20; char string20; char m20; printf(enter the infile name=); scanf(%s,infile); /*輸入要查找的文件名*/ if(in=fopen(infile,r)=null) /*打開要查找的文件*/ printf(cannot open infilen); exit(0); printf(input the string to seek for=);

25、scanf(%s,string); /*輸入要查找的字符串*/ n=(strlen(string); /*統(tǒng)計輸入字符串的字符個數(shù),并賦給n*/ rewind(in); /*將文件指針定位到文件開頭*/ star1: fread(&m,n,1,in); /*讀入n個字符賦給字符串變量m*/ if(m0=n)i+; /*判斷是否讀到行末,若讀到則表示行號的變量i的值加1*/ for(j=0;j); scanf(%s,infile); /*輸入要插入字符串的文件名*/ if(in=fopen(infile,rb+)=null) /*打開文件*/ printf(cannot open infilen); exit(0); printf(input the string you want to

溫馨提示

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

最新文檔

評論

0/150

提交評論