C語言程序課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告(用一個(gè)字符數(shù)組保存一個(gè)英文句子)_第1頁
C語言程序課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告(用一個(gè)字符數(shù)組保存一個(gè)英文句子)_第2頁
C語言程序課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告(用一個(gè)字符數(shù)組保存一個(gè)英文句子)_第3頁
C語言程序課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告(用一個(gè)字符數(shù)組保存一個(gè)英文句子)_第4頁
C語言程序課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告(用一個(gè)字符數(shù)組保存一個(gè)英文句子)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、河南城建學(xué)院河南城建學(xué)院高級(jí)語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 設(shè)計(jì)題目: 用一個(gè)字符數(shù)組保存一個(gè)英文句子 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 設(shè)計(jì)人員: 指導(dǎo)教師: 計(jì)算機(jī)科學(xué)與工程學(xué)院2015年 06 月25日一、課程設(shè)計(jì)題目13. 用一個(gè)字符數(shù)組保存一個(gè)英文句子。二、設(shè)計(jì)要求1)刪除該英文句子中的前導(dǎo)空格,后導(dǎo)空格,并刪除句子中多余的空格(單詞之間只留一個(gè)空格);2)統(tǒng)計(jì)該句子中,單詞出現(xiàn)的頻率;3)查找并替換某個(gè)單詞。三、程序介紹1.去除字符組中間空格。void zhongjian(char a) int i,j,k; /*定義整形變量i,j,k。i,j作為函數(shù)內(nèi)循環(huán)的控制變量。定義k用于字符

2、組長(zhǎng)度存放。*/ k=strlen(a); /*將字符組a的長(zhǎng)度存放于k中。(字符組a即待處理的字符組)*/ for(i=0;i<k;) /*循環(huán)控制,從第一位循環(huán)到字符組結(jié)束。*/ if(ai!=' ' i+; /*條件控制,若當(dāng)前字符不為空格,跳到下一位再進(jìn)行循環(huán)。*/ else if(ai=' ') if(ai+1=' ') /*當(dāng)連續(xù)出現(xiàn)兩個(gè)空格,需要去除一個(gè)空格*/ k=k-1; /*字符串總長(zhǎng)度減一。*/ for(j=i;j<k;j+) aj=aj+1; /*從第一個(gè)空格開始,后續(xù)所有字符前提一位,即去除第一個(gè)空格。*/

3、ak='0' /*去除空格后字符組長(zhǎng)度減一,原字符組最后一位需要變?yōu)?。*/ continue; /*去除空格后,繼續(xù)從該位檢測(cè),直至不符合該循環(huán)條件。*/ else i+; /*若不是連續(xù)兩個(gè)空格,則跳到下個(gè)字符再進(jìn)行循環(huán)。*/ printf("%sn",a); /*輸出處理后的字符組。*/2.導(dǎo)入及導(dǎo)出函數(shù)void daoru() FILE *p; /*定義一個(gè)指針函數(shù),用于指向需要打開的文件。*/ char b30;/*定義一個(gè)字符型組,用于存放導(dǎo)入文件地址。*/ system("cls"); /*清屏,使界面更美觀。*/ prin

4、tf("n"); printf(" n"); printf(" 請(qǐng)輸入要打開的文件名 n"); printf(" n"); printf("n"); scanf("%s",b);/*得到導(dǎo)入文件名,存放在b里*/ p=fopen(b,"r");/*將導(dǎo)入文件以只讀方式打開*/ if(p=NULL) printf("n"); printf(" 文件不存在!請(qǐng)重新輸入文件名! n"); printf("n&qu

5、ot;); system("pause"); daoru(); /*若文件打開出錯(cuò),則提示打不開,然后重新運(yùn)行導(dǎo)入函數(shù)*/ else fgets(a,1000,p);/*在p所指向的文件(即導(dǎo)入文件)中讀入一個(gè)最長(zhǎng)為999字符的字符串,并在最后加一個(gè)0字符,然后存放于字符組a中*/void daochu() int b;/*定義整形變量b,用于選擇操作*/ FILE *p2; /*定義一個(gè)指向文件的指針變量*/ char c30; /*定義一個(gè)字符型組,用于存放導(dǎo)出文件地址*/ printf("n"); printf(" 請(qǐng)輸入要保存到哪個(gè)文件

6、? n"); printf("n"); scanf("%s",c); /*得到導(dǎo)出文件名,存放在c里*/ p2=fopen(c,"w+"); /*將導(dǎo)出文件以讀寫方式打開*/ fputs(a,p2); /*將a里的字符串存放在p2指向的地址里*/ fclose(p2); /*關(guān)閉文件,防止數(shù)據(jù)丟失*/ printf("導(dǎo)出成功!文件保存在%sn回到主界面(1)?退出程序(2)?n",buf); fflush(stdin); /*用于清除輸入緩存防止下次用scanf輸入時(shí)出現(xiàn)錯(cuò)誤*/ scanf("

7、;%d",&b); if(b=1) zhujiemian(); else if(b=2) tuichu(); /*根據(jù)用戶輸入進(jìn)行跳轉(zhuǎn)*/四、算法流程圖1.算法圖返回主菜單輸入文章導(dǎo)入文章去除文章中前后導(dǎo)及中間空格選擇進(jìn)行何種操作統(tǒng)計(jì)單詞替換單詞退出程序結(jié)束導(dǎo)出文章主界面2.算法說明此程序通過函數(shù)實(shí)現(xiàn)了對(duì)文章的處理,每個(gè)環(huán)節(jié)都可以用函數(shù)進(jìn)行實(shí)現(xiàn),使用者可以用函數(shù)實(shí)現(xiàn)對(duì)文章的輸入、導(dǎo)入以及去除空格,統(tǒng)計(jì),保存等各種操作的實(shí)現(xiàn)。五、程序設(shè)計(jì)過程中遇到的問題及解決過程1.函數(shù)比較長(zhǎng),經(jīng)常出現(xiàn)沒有定義就使用一個(gè)變量,比較容易發(fā)現(xiàn)及修改。2.問題解決不徹底,例如去空格,最開始能去除,可

8、是去除不完全,最后有重新整理想法,編寫程序。3.寫的快就會(huì)出現(xiàn)函數(shù)字符寫錯(cuò),例如printf寫成prntf,也很容易發(fā)現(xiàn)。4.系統(tǒng)庫里的函數(shù)理解不清晰,使用起來系統(tǒng)報(bào)錯(cuò)。最后熟悉了就沒有這樣的我問題了。5.最開始考慮問題不全面,就會(huì)出現(xiàn)子函數(shù)單獨(dú)運(yùn)行沒問題,放在一起就出問題,最后合在一起時(shí)一點(diǎn)點(diǎn)改動(dòng)。六、運(yùn)行截圖1.歡迎界面2.主界面3.輸入文章4.導(dǎo)入文章5.處理選擇界面6.統(tǒng)計(jì)界面7.替換界面8.導(dǎo)出文章9.退出程序七、參考文獻(xiàn) 【1】 譚浩強(qiáng),C語言程序設(shè)計(jì)(第四版)M,清華大學(xué)出版社,2008年八、源程序#include <stdio.h>#include <stdl

9、ib.h>#include <string.h>#include <windows.h>#include <unistd.h>void san();void er();void yi(); /*歡迎界面子函數(shù)*/void zhujiemian();/*主界面函數(shù)*/void shuru(); /*輸入文章函數(shù)*/void daoru(); /*導(dǎo)入文章函數(shù)*/void qiandao(char a); /*去除前導(dǎo)空格函數(shù)*/void houdao(char a); /*去除后導(dǎo)空格函數(shù)*/void zhongjian(char a); /*去除中間多

10、余空格函數(shù)*/void tongji(char a); /*統(tǒng)計(jì)單詞頻率函數(shù)*/void tihuan(char a); /*替換單詞函數(shù)*/void daochu(); /*導(dǎo)出函數(shù)*/void xuanze(); /*選擇及跳轉(zhuǎn)函數(shù)*/void tuichu(); /*退出界面函數(shù)*/char a999; /*用于文章存儲(chǔ)字符組*/char buf200; /*用于存儲(chǔ)文章導(dǎo)出路徑*/int main() int h; getcwd(buf,sizeof(buf); system("color 0a"); for(h=4;h>0;h-) system("

11、cls"); if(h=4) printf("nnnn"); printf("tt n"); printf("tt n"); printf("tt n"); printf("tt 歡 迎 使 用 n"); printf("tt n"); printf("tt n"); printf("tt n"); printf("tt n"); printf("tt 加載中.n"); Sleep(10

12、00); else if(h=3) san(); else if(h=2) er(); else yi(); Sleep(700); zhujiemian(); return 0;void san() system("cls"); printf("nnnnn"); printf("tttt3333333333n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt333

13、3333333n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt3333333333n");void er() system("cls"); printf("nnnnn"); printf("tttt3333333333n"); printf("tttt 33n"); printf("tttt 33n")

14、; printf("tttt 33n"); printf("tttt3333333333n"); printf("tttt33n"); printf("tttt33 n"); printf("tttt33 n"); printf("tttt3333333333n");void yi() system("cls"); printf("nnnnn"); printf("tttt 33n"); printf("t

15、ttt 3333n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt 33n"); printf("tttt 333333n");void zhujiemian() int b; system("cls"); printf(" 33333

16、3 333333n"); printf(" 3333333333 3333333333n"); printf(" 3333333333333 3333333333333n"); printf(" 33333333333333333333333333333n"); printf(" 3333333333計(jì)科3一班3333333333n"); printf(" 33333333333333333333333333333n"); printf(" 33333333333金3航333

17、3333333n"); printf(" 3333333張勇3樂樂333333n"); printf(" 3333333333333333333n"); printf(" 333333333333333n"); printf(" 33333333333n"); printf(" 3333333n"); printf(" 333n"); printf(" 3n"); printf(" n"); printf(" 1.輸

18、入文章 n"); printf(" 2.導(dǎo)入文章 n"); printf(" 3.退出程序 n"); printf(" n"); scanf("%d",&b); switch(b) case (1):shuru();qiandao(a);houdao(a);zhongjian(a);xuanze();break; case (2):daoru();qiandao(a);houdao(a);zhongjian(a);xuanze();break; case (3):tuichu(); void sh

19、uru() system("cls"); printf(" n"); printf(" n"); printf(" 請(qǐng)輸入文章: n"); printf(" n"); printf(" n"); fflush(stdin); gets(a);void xuanze() int x; system("cls"); printf(" n"); printf(" 處理后文章 n"); printf(" n&quo

20、t;); printf("n"); printf("%sn",a); printf("n"); printf("n"); printf(" 1.返回主菜單 n"); printf(" 2.統(tǒng)計(jì) n"); printf(" 3.替換 n"); printf(" 4.導(dǎo)出 n"); printf("n"); printf("請(qǐng)輸入您的選擇:"); scanf("%d",&x

21、); switch(x) case(1):a0='0'zhujiemian();break; case(2):tongji(a);break; case(3):tihuan(a);break; case(4):daochu(); void daoru() FILE *p; char b30; system("cls"); printf("n"); printf(" n"); printf(" 請(qǐng)輸入要打開的文件名 n"); printf(" n"); printf("n

22、"); scanf("%s",b); p=fopen(b,"r"); if(p=NULL) printf("n"); printf(" 文件不存在!請(qǐng)重新輸入文件名! n"); printf("n"); system("pause"); daoru(); else fgets(a,1000,p);void qiandao(char a) char c; int i,j,k=0,n; n=strlen(a); for(i=0;(c=ai)!='0'i+

23、) if(c=' ') k=k+1; else break; n=n-k; for(j=0,i=k;j<n;j+,i+) aj=ai; an='0'void houdao(char a) int j,k=0,n; n=strlen(a); for(j=n-1;aj!='0'j-) if(aj=' ') k=k+1; else break; n=n-k; an='0'void zhongjian(char a) int i,j,k; k=strlen(a); for(i=0;i<k;) if(ai!=&#

24、39; ') i+; else if(ai=' ') if(ai+1=' ') k=k-1; for(j=i;j<k;j+) aj=aj+1; ak='0' continue; else i+; printf("%sn",a);void tongji(char a) int i,j=0,k=0,x; char m; char y30,z30; printf("n"); printf(" 請(qǐng)輸入需要統(tǒng)計(jì)的單詞 n"); printf("n"); scanf

25、("%s",y); for(i=0;i<(strlen(a)+1);i+) if(ai!=' '&&ai!=','&&ai!='.'&&ai!='!'&&ai!='?'&&ai!=''&&ai!='0') zj=ai;zj+1='0'j+; else j=0; if(strcmp(y,z)=0) k=k+1; z0='0' prin

26、tf("%s這個(gè)單詞出現(xiàn)了%d次!n",y,k); system("pause"); xuanze();void tihuan(char a) int i,j=0,k=0,d,b,c; int x; char y30,z30,m30,x1999; printf("請(qǐng)輸入需要被替換的單詞n"); scanf("%s",y); printf("n"); printf("請(qǐng)輸入需要替換成什么單詞?n"); scanf("%s",m); for(i=0;i<

27、(strlen(a)+1);i+) if(ai!=' '&&ai!=','&&ai!='.'&&ai!='!'&&ai!='?'&&ai!=''&&ai!='0') zj=ai;zj+1='0'j+; else j=0; if(strcmp(y,z)=0) strcpy(x1,a); d=strlen(m)-strlen(y); for(b=0;b<999-i;b+) ai+d+b=x1i+b; for(c=0;c&l

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論