串的查找與替換(word文檔良心出品)_第1頁(yè)
串的查找與替換(word文檔良心出品)_第2頁(yè)
串的查找與替換(word文檔良心出品)_第3頁(yè)
串的查找與替換(word文檔良心出品)_第4頁(yè)
串的查找與替換(word文檔良心出品)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、中北大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)說(shuō)明書學(xué)生姓名學(xué)號(hào):學(xué)院:專業(yè):題目:串的查找與替換指導(dǎo)教師尹四清2011年12月30日1. 設(shè)計(jì)目的數(shù)據(jù)結(jié)構(gòu) 課程主要介紹最常用的數(shù)據(jù)結(jié)構(gòu), 闡明各種數(shù)據(jù)結(jié)構(gòu)內(nèi)在的邏輯關(guān)系, 討論其在計(jì)算機(jī)中的存儲(chǔ)表示, 以及在其上進(jìn)行各種運(yùn)算時(shí)的實(shí)現(xiàn)算法,并對(duì)算法的效率進(jìn)行簡(jiǎn)單的分析和討論。進(jìn)行數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)要達(dá)到以下目的:了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法, 具備初步的獨(dú)立分析和設(shè)計(jì)能力;初步掌握軟件開發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),培養(yǎng)軟件工作

2、者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。2. 設(shè)計(jì)面內(nèi)容與要求設(shè)計(jì)內(nèi)容:打開一篇英文文章,在該文章中找出所有給定的單詞,然后對(duì)所有給定的單詞替換為另外一個(gè)單詞,再存盤。設(shè)計(jì)要求:(1) 符合課題要求,實(shí)現(xiàn)相應(yīng)功能;(2) 操作方便易行;(3) 注意程序的實(shí)用性、安全性;3. 本設(shè)計(jì)所采用的數(shù)據(jù)結(jié)構(gòu)3.1 數(shù)組數(shù)組在編程應(yīng)用時(shí)調(diào)用很方便隨意,但在更改數(shù)組時(shí)比較麻煩必須調(diào)用數(shù)組中的所有元素。char keyWordsSIZE;char copyWordsSIZE;char strOneMAXLEN;char strTwoMAXLEN;3.2 串的匹配if (keyWords0 = strOnei)if

3、(keyWordsj != strOnecountFlag+)4功能模塊詳細(xì)設(shè)計(jì)4.1 詳細(xì)設(shè)計(jì)思想a)需求分析打開一篇英文文章,在該文章中找出所有給定的單詞,然后對(duì)所有給定的單詞替換為另外一個(gè)單詞,再存盤。b)概要設(shè)計(jì)程序頭設(shè)計(jì)對(duì)程序作簡(jiǎn)單介紹以及輸出程序制作人的基本信息。main()printf("nnnttt數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)n");11printf("nttt 題目:串的查找與替換n");printf("nttt 專業(yè):機(jī)電一體化軟件開發(fā)與應(yīng)用 n");printf("nttt學(xué)號(hào):0921040836n")

4、;printf("nttt姓名:張勝東");printf("nt 程序作用:打開一篇英語(yǔ)作文,在該文章中找出所有給定的單詞,然后對(duì)nt 所有給定的單詞替換為另一個(gè)單詞再存盤。 ");printf("n*n");主函數(shù) void main()通過(guò) for 循環(huán)對(duì)字符串進(jìn)行匹配, 找到匹配的單詞然后將copy 的單詞字符放入 strTwo 數(shù)組中,不匹配的單詞也放入數(shù)組 strTwo 中完成替換,最后把strTwo 中的字符放回文件中完成操作。C)設(shè)計(jì)思想串的查找與替換要實(shí)現(xiàn)的功能是: 打開一篇英文文章, 在該文章中找出所有給定的單詞,然

5、后對(duì)所有給定的單詞替換為另外一個(gè)單詞,再存盤。首先實(shí)現(xiàn)程序比較簡(jiǎn)單的功能,即:輸入要替換的單詞和給定單詞gets(keyWords); gets(copyWords) 。然后實(shí)現(xiàn)程序打開文件的功能。最后編寫最核心的替換功能,首先用關(guān)鍵字來(lái)匹配要查找的單詞,第一個(gè)單詞匹配上的話再判斷這個(gè)關(guān)鍵字在不在單詞的首字母上, 否則不匹配, 主要是要實(shí)現(xiàn)替換單詞的功能不替換其他單詞中的字符串。 然后匹配第二個(gè)字母, 這樣一次類推的判斷。不匹配的單詞直接放入 strTwo 數(shù)組中,匹配的單詞先替換然后再放入 strTwo 數(shù)組中 。4.2 核心代碼打開文件if (fp = fopen("filena

6、me", "r") =NULL )printf(" 文件打開失敗!n");exit(0);查找和替換單詞while (!feof(fp)/* 讀文件 */strOnecountOne+ = fgetc(fp);/* 這是從指定穩(wěn)中取得一個(gè)字符strOnecountOne+ = fgets(fp); 這是從指定文章中取得一個(gè)字符串 */countOne-;/* 減去最后一個(gè)文件結(jié)束字符*/for (i=0; i<countOne; i+)if (keyWords0 = strOnei)if (' ' = strOnei-1)

7、 | ('n' = strOnei-1) |(0 = i)flag = 1;countFlag = i + 1;for (j=1; keyWordsj!='0' j+)if (keyWordsj != strOnecountFlag+)/* 是否匹配 */flag = 0;break;if (''= strOnecountFlag) |('n'=strOnecountFlag) | (EOF = strOnecountFlag)/* 2.檢查單詞后的一個(gè)字符 */if (1 = flag)/* 若匹配 , 則進(jìn)行拷貝 */i =

8、countFlag-1;for (j=0; copyWordsj!='0' j+) strTwocountTwo+ = copyWordsj;else/* 另外 */strTwocountTwo+ = strOnei;else/* 另外 */strTwocountTwo+ = strOnei;else/* 另外 */strTwocountTwo+ = strOnei;)4.3調(diào)試分析圖1程序開始的界面網(wǎng) XAa ppi -catiQnVMicros&ft Vkual Studi:QMyPrajectspfcS?HDebu33=eMe敝據(jù)結(jié)枸課程設(shè)計(jì)題目:串的查找與替拗專

9、此機(jī)電一體化軟件開發(fā)與應(yīng)用學(xué)號(hào).092104B83t姓名:張勝東程序作用:打開一篇英語(yǔ)作文.在談文宣中找出所有給定的單詞,然后對(duì) 所有給定的單詞替換為另一個(gè)單詞再存盤0諳輸人要皆我的單記:0 清新士硬杏神單旦后二are睛輸入要打開的文件名,.輸入要查找和替換的單詞3輸入要打開的文件名5.課程設(shè)計(jì)心得及存在問(wèn)題心得:通過(guò)這次做課程設(shè)計(jì),發(fā)現(xiàn)了學(xué)習(xí)中的很多問(wèn)題,平時(shí)學(xué)習(xí)的東西在 做起來(lái)時(shí)有很大的困難,獨(dú)立構(gòu)思一個(gè)程序很難,不像平時(shí)看程序一樣簡(jiǎn)單。想 出來(lái)程序結(jié)構(gòu)后,就一個(gè)簡(jiǎn)單的打開文件就費(fèi)了好大的勁, 運(yùn)行幾次都出現(xiàn)了異 常,最后找學(xué)長(zhǎng)請(qǐng)教才學(xué)會(huì)使用 exit ()命令。核心程序就更復(fù)雜了,做了很

10、 久都沒(méi)頭緒,最后在一位學(xué)長(zhǎng)的輔助下完成了核心程序。存在問(wèn)題:剛開始實(shí)現(xiàn)的功能是先輸入要查找和替換的單詞,再輸入要打開 的文件,做完程序后想把打開文件的程序放到前面,可換位置后就一直出錯(cuò)。如"C:AppIicMianMicrcsoft Visual挑群 MkDebtigl張脖樂(lè)qxe"匏據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目二串的查找與替檢專業(yè):機(jī)由一體化軟件開發(fā)與應(yīng)用學(xué)號(hào):0921046836程序作用二打開一藕巷艘東在該文宣中找出所有給定的單詞,然后對(duì) 第有給定的單詞替描為另一個(gè)單詞再存盤,* Ml M X * Hi X W Mil 請(qǐng)輸入要查找的單詞!/ 量輸入要替換的星調(diào);樣 請(qǐng)輜人要打

11、開的文件名:.5.源程序#include <stdio.h>#include <stdlib.h>#define SIZE 20/*查找單詞字符和輸入替換單詞少于20 */#define MAXLEN 10000 /*文章字符不大于 10000 */ void main()int i, j;int flag; /*int countFlag; /*int countOne = 0; /*int countTwo = 0; /*char keyWordsSIZE; /* char copyWordsSIZE;/* char strOneMAXLEN; /* char st

12、rTwoMAXLEN; /*用于標(biāo)記匹配單詞*/用于檢查匹配計(jì)數(shù)*/記錄未改文章字符個(gè)數(shù)*/記錄改后文章字符個(gè)數(shù)*/查找單詞*/替換單詞*/將未改文章的所有字符儲(chǔ)存在里面*/char filename20; /*輸入的文件名的字符個(gè)數(shù)*/printf("nnnttt數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)n");printf("nttt 題目:串的查找與替換n");printf("nttt 專業(yè):機(jī)電一體化軟件開發(fā)與應(yīng)用 n");printf("nttt學(xué)號(hào):0921040836n");printf("nttt姓名:張勝東&qu

13、ot;);printf("nt 程序作用:打開一篇英語(yǔ)作文,在該文章中找出所有給定的單詞,然后對(duì)nt所有給定的單詞替換為另一個(gè)單詞再存盤。 ");將改后文章的所有字符儲(chǔ)存在里面*/printf("n*n");FILE *fp;printf("請(qǐng)輸入要查找的單詞: ");gets(keyWords);printf("請(qǐng)輸入要替換的單詞: ");gets(copyWords);printf(" 請(qǐng)輸入要打開的文件名: ");scanf("%s",filename);if (fp

14、= fopen(filename, "r") =NULL )/*讀文件 , 前邊的就是輸入的文件名 , 后邊是指只讀read */printf(" 文件打開失敗!n");exit(0);while (!feof(fp)/* 讀文件 */strOnecountOne+ = fgetc(fp);/* 這是從指定穩(wěn)中取得一個(gè)字符strOnecountOne+ = fgets(fp); 這是從指定文章中取得一個(gè)字符串 */countOne-;/* 減去最后一個(gè)文件結(jié)束字符*/for (i=0; i<countOne; i+)if (keyWords0 =

15、strOnei)/*判斷查找單詞第一個(gè)字符是否匹配 */if (' ' = strOnei-1) | ('n'= strOnei-1) | (0 = i)/*1. 檢查單詞前的一個(gè)字符 */flag = 1;countFlag = i + 1;for (j=1; keyWordsj!='0' j+)if (keyWordsj != strOnecountFlag+)/* 是否匹配 */flag = 0;break;if (''= strOnecountFlag) |('n'=strOnecountFlag) | (EOF = strOnecountFlag)/* 2.檢查單詞后的一個(gè)字符 */if (1 = flag)/* 若匹配 , 則進(jìn)行拷貝 */i = countFlag-1;for (j=0; copyWordsj!='0' j+)strTwocountTwo+ = copyWordsj;else/* 另外 */strTwocountTwo+ = strOnei;else/* 另外 */strTw

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論