c語言 朗讀文章_第1頁
c語言 朗讀文章_第2頁
c語言 朗讀文章_第3頁
c語言 朗讀文章_第4頁
c語言 朗讀文章_第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、 序號(hào): 2 學(xué)號(hào): 10461202 課 程 設(shè) 計(jì)設(shè)計(jì)課程名稱: C語言程序設(shè)計(jì) 題 目: 朗讀文章 學(xué) 生 姓 名: 王利 學(xué) 院(系): 數(shù)理學(xué)院 專業(yè)班級(jí):電科102 指 導(dǎo) 教 師: 周天彤 專業(yè)技術(shù)職務(wù): 講師 設(shè)計(jì)時(shí)間:2011年6 月13 日 2011 年 6 月 25 日 2011.6內(nèi)容提要 本報(bào)告是有關(guān)朗讀文章的課程設(shè)計(jì),本報(bào)告包括系統(tǒng)的主要功能、任務(wù)書的基本要求與內(nèi)容,系統(tǒng)的功能結(jié)構(gòu)圖以及詳細(xì)的C語言程序代碼,最后是個(gè)人的心得體會(huì)。 目錄主要功能2基本要求與內(nèi)容3功能結(jié)構(gòu)圖4C語言程序代碼 5使用說明10心得體會(huì)11 系統(tǒng)的主要功能現(xiàn)代計(jì)算機(jī)技術(shù)中有一種叫做計(jì)算機(jī)朗讀

2、的技術(shù),能夠把段落文章朗讀出來,而不是簡(jiǎn)單的朗讀一個(gè)一個(gè)字母,計(jì)算機(jī)朗讀技術(shù)為人機(jī)交互開辟了新天地,某些閱讀困難的地方都可以使用它。微軟公司的Ms Speech SDK是一款兼具語音朗讀(TTS,Text To Speech)和語音識(shí)別(SR,Speech Recognition)的開發(fā)包。 程序需要實(shí)現(xiàn)以下功能:1 直接朗讀文章2 屏蔽詞處理3 朗讀整個(gè)目錄 內(nèi)容與基本要求內(nèi)容: 打開指定的文件,并依次將按照句子為單位從文件中讀出,每讀一行句子,就在屏幕上顯示,并使用TTS讀出,朗讀文章時(shí),如遇到括號(hào)則跳過括號(hào)內(nèi)的內(nèi)容,統(tǒng)計(jì)括號(hào)內(nèi)的字?jǐn)?shù),并以“此處省略XX字”形式讀出。其次要求能夠依據(jù)給出的

3、一組屏蔽詞,在朗讀文章時(shí),屏幕顯示將屏蔽詞用括號(hào)括起來,最后保存在新的文件里。最后給出一個(gè)目錄并依次朗讀該目錄下所有的文本文件(TxT文件)?;疽螅海?) 為各項(xiàng)操作功能設(shè)計(jì)一個(gè)菜單。應(yīng)用程序運(yùn)行后,先顯示這個(gè)菜單,然后用戶通過菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目;(2) 在第一個(gè)功能中,規(guī)定所有句子長(zhǎng)度不超過1024字節(jié)。在使用該功能時(shí),用戶需輸入所要朗讀的文章的文件名。(3) 在第二個(gè)功能中,所有屏蔽詞總數(shù)不超過1000個(gè),并保存在MaskWord.dat文件中。該文件是純文本文件,各個(gè)屏蔽詞以空格分開,并由課程設(shè)計(jì)者自行提供。該文件可VC+自帶文本編輯器創(chuàng)建和修改。也可由記事本創(chuàng)建強(qiáng)制修改后

4、綴名而來。在使用該功能時(shí),用戶需輸入所要朗讀文章的文件名和屏蔽處理后的文件名。(4) 在第三個(gè)功能中,不要求變更目錄,就直接讀取當(dāng)前目錄下的所有文件即可。但是需要依據(jù)功能二從當(dāng)前目錄下讀取maskword.dat文件做屏蔽詞處理。功能結(jié)構(gòu)框圖程序代碼#include#include#include#include#include#include#include#include#include #include int scanfSentence(FILE *fp,char sentence);int IgnoreRead(char sentence);int StringSearch(char

5、 AreaString,char ObjectString);void IgnorePrint(char sentence,char CharPointer50100,int num);void IgnoreStore(FILE *fp,char sentence,char CharPointer50100,int num);CComPtr pVoice;HRESULT hr;int InitVoice();void Speak(char *Txt);void ReleaseVoice();int OnlyRead();int SkipWords();int ReadFiles();int m

6、ain()if(!InitVoice()return 1;char ch;loop:printf(nnt請(qǐng)按任意鍵開始n);getch();system(cls);printf(*n);printf(* 1: 只讀文章 *n);printf(* 2: 屏蔽詞處理 *n);printf(* 3: 朗讀目錄 *n);printf(* 4: 退出 *n);printf(*n);printf( n);printf( n);printf(請(qǐng)選擇輸入選項(xiàng) 1 2 3 4 : );while(ch=getch()printf(n);switch(ch)case 1: OnlyRead();goto loop

7、;case 2: SkipWords();goto loop;case 3: ReadFiles();goto loop;case 4: ReleaseVoice();return 0;goto loop;int OnlyRead()FILE *fp;char sentence1024;char FileName50;printf(請(qǐng)輸入等待朗讀的文件的名稱(包括后綴)n);gets(FileName);if( (fp=fopen(FileName,r)=NULL)printf(文件打開失敗.);getch();return 1;while(scanfSentence(fp,sentence)

8、=0)printf(%s,sentence);IgnoreRead(sentence);return 0;int SkipWords()char sentence1024;int i;int num;char CharPointer50100;FILE *fp;FILE *fRp;FILE *fMp;char FileRead50;char FileResult50;printf(請(qǐng)輸入等待朗讀的文件的名稱(包括后綴)n);gets(FileRead);if( (fp=fopen(FileRead,r)=NULL)printf(文件打開失敗.);getch();return 1;printf(

9、請(qǐng)輸入保存屏蔽處理結(jié)果的文件的名稱(包括后綴)n);gets(FileResult);if( (fRp=fopen(FileResult,w)=NULL)printf(文件創(chuàng)建失敗.);getch();return 1;if( (fMp=fopen(MaskWord.dat,w)=NULL)printf(文件創(chuàng)建失敗.);getch();return 1;printf(請(qǐng)輸入需要屏蔽的詞的數(shù)目n);scanf(%d%*c,&num);for(i=0;inum;i+)gets(CharPointeri);fprintf(fMp,%dn,num);for(i=0;inum;i+)fprintf(f

10、Mp,%s,CharPointeri);if(inum-1)fprintf(fMp, );elsefprintf(fMp,n);fclose(fMp);while(scanfSentence(fp,sentence)=0)IgnorePrint(sentence,CharPointer,num);IgnoreStore(fRp,sentence,CharPointer,num);IgnoreRead(sentence);return 0;int ReadFiles()int i;char FileName50;char CharPointer50100;char sentence1024;ch

11、ar filesName50;int num;char ch;FILE *fMp;FILE *fp;struct _finddata_t c_file;long hFile;printf(請(qǐng)輸入文件夾名n);gets(filesName);if( (fMp=fopen(MaskWord.dat,r)=NULL)printf(文件打開失敗.);getch();return 1;fscanf(fMp,%d,&num);while(ch=fgetc(fMp)!=n);for(i=0;innn,c_);strcpy(FileName,c_);if( (fp=fope

12、n(FileName,r)=NULL)printf(文件打開失敗.);getch();return 1;while(scanfSentence(fp,sentence)=0)IgnorePrint(sentence,CharPointer,num);IgnoreRead(sentence);fclose(fp);while(_findnext(hFile,&c_file)=0)printf(nnn第%2d個(gè)文件t文件名:t%snn開始朗讀 nnn,i+,c_);strcpy(FileName,c_);if( (fp=fopen(FileName,r)=NUL

13、L)printf(文件打開失敗.);getch();return 1;while(scanfSentence(fp,sentence)=0)IgnorePrint(sentence,CharPointer,num);IgnoreRead(sentence);fclose(fp);_findclose(hFile);return 0;/ 以下為自定義公共函數(shù)/句子讀取函數(shù)int scanfSentence(FILE *fp,char sentence)int j;char GetAChar; / 獲取的字符int i=0; / 句子的字節(jié)序號(hào)for(j=0;j0)str+;amount+;if(

14、*str0)str+;amount+;if(*str0)str+;str+;amount+;str+;sprintf(IgnoreAmount,此處省略%d個(gè)字,amount);Speak(IgnoreAmount);IgnoreRead(str);while(*str+);if(found=0)Speak(sentence);return 0;/ 用于判斷 參數(shù) 1 是否 以 參數(shù) 2 為開頭,是返回 1,否返回 0int StringSearch(char AreaString,char ObjectString)int i;int len;len=strlen(ObjectString)

15、;for(i=0;ilen;i+)if(AreaStringi!=ObjectStringi)return 0;return 1;void IgnorePrint(char sentence,char CharPointer50100,int num)int i;int j=0;while(sentencej)for(i=0;inum;i+)if(StringSearch(sentence+j,CharPointeri)=1)printf(%s),CharPointeri);j+=(strlen(CharPointeri);break;printf(%c,sentencej);j+;void

16、IgnoreStore(FILE *fp,char sentence,char CharPointer50100,int num)int i;int j=0;while(sentencej)for(i=0;inum;i+)if(StringSearch(sentence+j,CharPointeri)=1)fprintf(fp,(%s),CharPointeri);j+=(strlen(CharPointeri);break;fprintf(fp,%c,sentencej);j+;/ 以下為語音相關(guān)函數(shù)定義/初始化語音閱讀工具int InitVoice()CComPtr pEnum;CComP

17、tr pVoiceToken;int i;:CoInitialize(NULL);if(FAILED(hr=SpEnumTokens(SPCAT_VOICES,LLanguage=804,NULL,&pEnum)return 0;for(i=0;iNext(1,&pVoiceToken,NULL);if(FAILED(hr=pVoice.CoCreateInstance(CLSID_SpVoice)return 0;if(FAILED(hr=pVoice-SetVoice(pVoiceToken)return 0;return 1;/語音讀字符串void Speak(char *Txt)CSpDynamicString s(Txt);pVoice-Speak(s,0,0);/釋放緩沖void Rel

溫馨提示

  • 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)論