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

下載本文檔

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

文檔簡介

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

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

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

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

5、后對所有給定的單詞替換為另外一個單詞,再存盤。首先實現(xiàn)程序比較簡單的功能,即:輸入要替換的單詞和給定單詞gets(keyWords); gets(copyWords) 。然后實現(xiàn)程序打開文件的功能。最后編寫最核心的替換功能,首先用關(guān)鍵字來匹配要查找的單詞,第一個單詞匹配上的話再判斷這個關(guān)鍵字在不在單詞的首字母上, 否則不匹配, 主要是要實現(xiàn)替換單詞的功能不替換其他單詞中的字符串。 然后匹配第二個字母, 這樣一次類推的判斷。不匹配的單詞直接放入 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)中取得一個字符strOnecountOne+ = fgets(fp); 這是從指定文章中取得一個字符串 */countOne-;/* 減去最后一個文件結(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.檢查單詞后的一個字符 */if (1 = flag)/* 若匹配 , 則進行拷貝 */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è)計題目:串的查找與替拗專

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

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

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

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

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

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

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論