版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 xx 航 空 工 業(yè) 學(xué) 院 課程設(shè)計學(xué) 號 班 級 姓 名 指導(dǎo)教師 2007年 7 月 19 日沈陽航空工業(yè)學(xué)院課程設(shè)計任務(wù)書機械與汽車學(xué)院 機械電子工程專業(yè) 5406108班 學(xué)號200504061269一、課程設(shè)計題目:文本信息處理二、課程設(shè)計工作自2007年7月9日起至2007年7月16日止三、課程設(shè)計內(nèi)容:用c語言編寫軟件完成以下任務(wù):(1) 復(fù)制文件(將一文本文件中的內(nèi)容拷貝到另一文本文件中)(2) 顯示文件信息內(nèi)容(并顯示行號)(3) 查找字符串(4) 插入字符串(5) 自己再加一項功能四、課程設(shè)計要求:程序質(zhì)量:l 采用模塊化程序設(shè)計方法,在程序里面,以菜單的形式調(diào)用各功能
2、函數(shù),程序可讀性強,界面友好,輸出形式盡量美觀。l 用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。l 用戶界面中的菜單至少應(yīng)包括“復(fù)制文件”“顯示”“查找”“插入”“退出”五項。l 代碼應(yīng)適當(dāng)縮進,并給出必要的注釋,以增強程序的可讀性。課程設(shè)計說明書:課程結(jié)束后,上交課程設(shè)計說明書(打印稿和電子稿),其內(nèi)容如下:l 封面l 課程設(shè)計任務(wù)書l 目錄l 需求分析(分析題目的要求)l 程序流程圖(總體流程圖和主要功能模塊流程圖)l 核心技術(shù)的實現(xiàn)說明及相應(yīng)程序段l 個人總結(jié)l 參考資料l 源程序及適當(dāng)?shù)淖⑨屩笇?dǎo)教師:_ 學(xué)生簽名:_目錄一、需求分析2二程序流程圖.3三、核心技術(shù)的實現(xiàn)方法
3、、程序段及注釋8四個人總結(jié).14五、參考文獻.14六、源程序14 一、需求分析 經(jīng)過對程序設(shè)計題目的分析可知,整個程序的設(shè)計實現(xiàn)大致分為四個模塊,其中每一個模塊對應(yīng)一個函數(shù),他們的功能分別是: 復(fù)制文件(將一文本文件中的內(nèi)容拷貝到另一文本文件中) 顯示文件信息內(nèi)容(并顯示行號) 查找字符串 插入字符串。在這些函數(shù)當(dāng)中,四個函數(shù)的實現(xiàn)嚴(yán)格按照題目的要求。1、復(fù)制文件函數(shù) 主要實現(xiàn)程序?qū)⒁粋€文件復(fù)制到另一個文件中 2、顯示文件信息內(nèi)容函數(shù) 實現(xiàn)的功能是將文件中的所有 內(nèi)容通過屏幕顯示出來;3、查找字符串函數(shù) 按照題目的具體要求找到所要查找的字符串;4、插入字符串函數(shù) 還可以插入所組要的字符串;除上
4、面介紹的功能之外,程序還具有退出功能,可以在程序的一次運行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。 二程序流程圖當(dāng)(1)真輸入值n=1?假復(fù)制文件copy()真n=2? 假顯示文件信息內(nèi)容display()真n=3?假查找字符串seek()n=4?真 假插入insert()退出1程序總體結(jié)構(gòu)圖:2.具體功能框圖: 1 輸入被復(fù)制的文件名 輸入復(fù)制的文件名復(fù)制的文件不存在真假新建立一個文件 刪除,重建 文件指針順序后移文件沒有結(jié)束真假 將讀取被復(fù)制文件中的 字符寫入到復(fù)制文件中關(guān)閉被復(fù)制文件 關(guān)閉復(fù)制文件 調(diào)用菜單函數(shù) 2 輸入顯示的文件名真文件不存在?假輸出文件不存在顯示第一行的行號
5、文件沒有結(jié)束順序讀取文件中的字符賦給變量t.在屏幕上輸出t.t=n?真假輸出i,i+ 關(guān)閉文件調(diào)用菜單函數(shù)3輸入要查找的文件名文件不存在?真假輸出文件不存在輸入要查找的字符串統(tǒng)計輸入字符串的字符個數(shù),并賦給n將文件指針定位文件開頭將n個字符賦給字符串變量到行末?真假i=i+1,將從文件中讀取的字符串中的字符順序與輸入的字符串對比真相同?假輸出i文件結(jié)束?真假指針定位到下一字節(jié)繼續(xù)讀取和判斷關(guān)閉文件調(diào)用菜單函數(shù) 4 輸入要插入的字符的文件名 打開文件 文件不存在? 真假輸出文件不存在輸入要插入的字符串統(tǒng)計輸入的字符串的長度并值賦給m顯示插入點選擇菜單輸入h值h2|hd寫入要插入的字符串讀取一個字
6、符賦給c,指針后移一位關(guān)閉文件將文件指針后移()位,調(diào)用菜單函數(shù)在當(dāng)前寫入c,再將指針后移一位將文件指針前移(m+2)位直到dq,將文件指針定位到文件開頭寫入要插入的字符串關(guān)閉文件調(diào)用菜單函數(shù)三、核心技術(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_(); /*聲明復(fù)制函數(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、復(fù)制函數(shù),前提是必須文件要存在,如果不,通過移動指針達到復(fù)制的目的,具體的程序段如下:void copy_() /*復(fù)制函數(shù)*/ file *in,*out; char infile20,outfile20; printf(enter the infile name=); scanf(%s,infile); /*輸入被復(fù)制的文件名*/ printf(enter the outfile name=); scanf(%s,outfile); /*輸入復(fù)制的文件名*/ if(in=fopen(infile,r)=null) /*打開被復(fù)制的文件,須已存在*/ printf(c
10、annot open infilen); exit(0); if(out=fopen(outfile,w)=null) /*打開復(fù)制的文件,若存在則刪除重建,若不存在則新建*/ printf(cannot open outfilen); exit(0); while(!feof(in) fputc(fgetc(in),out); /*文件指針順序后移,若文件未結(jié)束,則讀取被復(fù)制文件中的字符寫入復(fù)制文件中*/ fclose(in); /*關(guān)閉被復(fù)制文件*/ fclose(out); /*關(guān)閉復(fù)制函數(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); /*關(guān)閉文件*/ 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); /*獲取指針當(dāng)前位置并賦給q*/ for(d=0;d=q;d+) /*將以下語句執(zhí)行(q+1)次*/ c=fgetc(in); /*讀取一個字符賦給c,此時指針向后移一位*/ fseek(in,m-1,1); /*將文件指針后移(m-1)位*/ fputc(c,in); /*在當(dāng)前位置寫入c,此時指針向后移一位*/ fseek(in,-(m+2),1); /*將文件指針前移(m+2)位,若是第一次循環(huán),則位于原文件倒數(shù)第二個字符前*/ rewind(in); /*將
17、文件指針定位到文件開頭*/ fputs(r,in); /*寫入要插入的字符串*/ fclose(in); /*關(guān)閉文件*/ menu(); /*調(diào)用菜單函數(shù)*/ if(h=2) /*若h值為2,則執(zhí)行下面的語句*/ fseek(in,0l,2); /*定位文件指針到文件末*/ fputs(r,in); /*寫入要插入的字符串*/ fclose(in); /*關(guān)閉文件*/ menu(); /*調(diào)用菜單函數(shù)*/ 四個人總結(jié)通過這次課設(shè),讓我對以前所學(xué)的c語言知識有了更深刻的理解,還知道了程序的精密性,稍有一點錯誤,程序就不會運行,所以從中我明白了做事以及做人都要有這種一絲不茍的精神,還有計算機真的
18、是一門學(xué)問,很深的學(xué)問,想要弄懂它真的要下一份苦功才行啊,最后呢,課程設(shè)計還是我們以后走向崗位的基礎(chǔ)啊,所以我們一定要重視它??!五、參考文獻1 譚浩強c程序設(shè)計北京:清華大學(xué)出版社,20052 劉成等c語言程序設(shè)計實驗指導(dǎo)與習(xí)題集北京:中國鐵道出版社,2006 六、源程序#include stdio.h /*輸入輸出函數(shù)*/#include stdlib.h /*常用函數(shù)和符號常量*/#include string.h /*字符串函數(shù)*/void copy_(); /*聲明復(fù)制函數(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_() /*復(fù)制函數(shù)*/ file *in,*out; char infile20,ou
21、tfile20; printf(enter the infile name=); scanf(%s,infile); /*輸入被復(fù)制的文件名*/ printf(enter the outfile name=); scanf(%s,outfile); /*輸入復(fù)制的文件名*/ if(in=fopen(infile,r)=null) /*打開被復(fù)制的文件,須已存在*/ printf(cannot open infilen); exit(0); if(out=fopen(outfile,w)=null) /*打開復(fù)制的文件,若存在則刪除重建,若不存在則新建*/ printf(cannot open
22、outfilen); exit(0); while(!feof(in) fputc(fgetc(in),out); /*文件指針順序后移,若文件未結(jié)束,則讀取被復(fù)制文件中的字符寫入復(fù)制文件中*/ fclose(in); /*關(guān)閉被復(fù)制文件*/ fclose(out); /*關(guān)閉復(fù)制函數(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、/*關(guān)閉文件*/ 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)系上傳者。文件的所有權(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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東外語外貿(mào)大學(xué)南國商學(xué)院《環(huán)境生物化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東體育職業(yè)技術(shù)學(xué)院《建筑CAD》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東司法警官職業(yè)學(xué)院《商務(wù)數(shù)據(jù)挖掘與R應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東食品藥品職業(yè)學(xué)院《創(chuàng)意傳播管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東省外語藝術(shù)職業(yè)學(xué)院《創(chuàng)業(yè)基礎(chǔ)V》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東梅州職業(yè)技術(shù)學(xué)院《數(shù)據(jù)、模型與決策》2023-2024學(xué)年第一學(xué)期期末試卷
- 二年級數(shù)學(xué)計算題專項練習(xí)集錦
- 犯罪與文明(復(fù)旦大學(xué))學(xué)習(xí)通測試及答案
- 海洋與人類文明(浙江海洋大學(xué))學(xué)習(xí)通測試及答案
- 2025年人教版七年級數(shù)學(xué)寒假復(fù)習(xí) 專題04 整式的加減(5重點串講+16考點提升+過關(guān)檢測)
- XXX大中型公司報價管理辦法
- 四年級計算題大全(列豎式計算,可打印)
- 年會主持詞:企業(yè)年會主持詞
- LS 8010-2014植物油庫設(shè)計規(guī)范
- GB/T 9119-2000平面、突面板式平焊鋼制管法蘭
- 2020年《小學(xué)德育教育校本課程》版
- 辦公用品供貨項目實施方案
- 牛津譯林版(2019) 必修第三冊 Unit 4 Scientists Who Changed the World Extended reading 課件
- 銷售價格管理制度(5篇)
- 乙肝五項詳解
- 人教版七年級歷史上冊復(fù)習(xí)資料-考點重點-版
評論
0/150
提交評論