




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆河北省張家口市高三上學(xué)期期末質(zhì)量檢測(cè)地理試題及答案
- 2025年度專業(yè)車庫租賃權(quán)轉(zhuǎn)讓合同
- 2025年度農(nóng)村土地承包經(jīng)營(yíng)權(quán)流轉(zhuǎn)與農(nóng)業(yè)文化遺產(chǎn)保護(hù)合同
- 2025年度中小企業(yè)流動(dòng)資金授信借款合同
- 2025年度城市河道治理房屋拆遷補(bǔ)償合同
- 2025年度人才共享與借用項(xiàng)目合作協(xié)議
- 2025年度協(xié)商解除勞動(dòng)合同與員工住房安置合同
- 2025年度公司銷售業(yè)務(wù)員協(xié)議書:人工智能賦能下的銷售代理合同
- 2025年度子女對(duì)父母贍養(yǎng)及社區(qū)互助保障協(xié)議
- 化妝品店裝修合同
- 污水處理廠TOT項(xiàng)目招標(biāo)文件模板
- 勞工及道德體系法律法規(guī)清單
- 倉(cāng)儲(chǔ)物流中心物業(yè)管理服務(wù)費(fèi)報(bào)價(jià)單
- 2024年哈爾濱科學(xué)技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫及答案解析
- 2024年北京市大興區(qū)清源街道招聘筆試沖刺題(帶答案解析)
- (2024年)污水處理設(shè)備培訓(xùn)方案
- 《生物質(zhì)熱電聯(lián)產(chǎn)工程設(shè)計(jì)規(guī)范》
- 中國(guó)十五冶招聘線上筆試測(cè)評(píng)題庫
- 中國(guó)結(jié)直腸癌診療規(guī)范(2023版)解讀
- 通用級(jí)聚苯乙烯簡(jiǎn)介介紹
- 《反竊電技術(shù)》課件
評(píng)論
0/150
提交評(píng)論