文章編輯的實習報告

2021-03-04 09:40:40 字數 3226 閱讀 4580

題目:輸入一頁文字,程式可以統計出文字、數字、空格的個數。

一需求分析:

1 本程式要求輸入一頁文章,每行做多不超過80個字元,共n行,分別統計出其中英文本母數和空格數及整篇文章總字數;

2統計某一字串在文章中出現的次數,並輸出該次數;刪除某一子串,並將後面的字元前移;

3 輸入結束時以ctrl + e結束;

4 在統計時均採用的是鍊錶的形式統計,刪除指定的字串等其它操作

5 測試資料見後

二、概要設計

1 抽象資料結構型別的定義如下:

adt aword

資料關係:

r1=基本操作p:

newword(&w,characters)

初始條件:characters為字串行。

操作結果:生成乙個其值為給定字串行的單詞。

destroyword(&w,characters)

初始條件:單詞w已存在。

操作結果:銷毀單詞w的結構,並釋放相應空間。

wordcmp(w1,w2)

初始條件:單詞w1,w2已存在。

操作結果:若w1w2,則返回1。

printword(w)

初始條件:單詞w已存在。

操作結果:在計算機終端上顯示單詞w。

}adt aword

adt textstring

資料關係r:d中字元被「換行符」分割成若干行,每一行的字元間滿足下列關係:

r1=基本操作:

initation (&f)

初始條件:檔案f已存在。

操作結果:開啟檔案f,設定檔案指標指向檔案中第一行第乙個字元。

getaword(f,&w)

初始條件:檔案f已開啟。

操作結果:從檔案指標所指字元起提取乙個單詞w。

extractwords (f,&l)

初始條件:檔案f已開啟,檔案指標指向檔案中第一行第乙個字元。

操作結果:提取該行中所有單詞,並構成單詞的有序表l;本操作結束時,檔案指標指向f中下一行的第乙個字元。

match(f,pat,&result)

初始條件:檔案f已開啟,檔案指標指向檔案中第乙個字元;pat為包含所有待查詢單詞的有序表。

操作結果:result為查詢結果。

}adt textstring

2 主程式:

void main()

3 其它的函式:

主要函式:

統計str在文章中出現的次數:

int findstring(line *&head,char *str)

統計字母數

int countletter(line *&head)while

}統計數字數

int countnumber(line *&head)while

}其它的函式模板與這以上時一樣的

三詳細分析:

1建立一鍊錶,同時向裡面輸入文字資料

typedef struct line

line;

2 統計str在文章中出現的次數

int findstring(line *&head,char *str)統計str在文章中出現的次數

}while((p=p->next)!=null);//遍歷鍊錶

return count;

}實現思想:

1)從字串s中尋找str第一次出現的位置*p=strstr(s,str)

2) len=strlen(s);i=len-strlen9p即前i項恰好不含要刪除的字串,將前i項複製到tmp中

3) j=i+strlen(str)即要刪除的字串在i+1和j之間,將j之後的字串複製到tmp中

4) 將tmp賦給串s,返回s

2 向建立的鍊錶中輸入資料:

void create(line *&head)

if(tmp[0]==5)

break;//如果發現輸入^e,則退出輸入

p=p->next=new line;

p->data=new char[strlen(tmp)+1];//為結點分配空間

strcpy(p->data,tmp);

if(tmp[strlen(tmp)-1]==5)

}p->next=null;//最後的乙個指標為空

head=head->next;

}3 統計文章的總字數

int countall(line *&head)

while((p=p->next)!=null);//遍歷鍊錶

return count;

}4 刪除指定的字串

void delstringword(char *s,char *str)

//*s為輸入的字串,*str為將要刪除的字元

四除錯分析:

1 再輸入文章時,計算機怎樣識別文章是否結束?輸出文章時,怎樣處理表示結束的字元?

通過除錯,找到了解決方案:輸入文章時,以ctrl+e(^e)為結尾,當tep[0]==5時,發現輸如^e則退出輸入。輸出文章時,如果tmp[strlen[(tmp)-1]==5即發現表示結束的字元^e,用p->data[strlen(tmp)-1]=\0除去最後乙個控制符^e

2 演算法改進:本程式的文章使用者輸入文章,只能做即時輸入統計,編譯,而不能對已有

的磁碟檔案中的文章進行統計,編譯,如果引進檔案流類,就可以開啟磁碟檔案。對其進行統計,編譯並儲存,還是有待提高改進的。

五測試結果:

1 輸入資料的測試:

2 刪除某一字串的資料:

六附錄:

#include

#include

#include //文字每行以字串形式儲存,行與行之間以鍊錶儲存

#include

typedef struct line

line建立一鍊錶,同時向裡面輸入文字資料

void create(line * &head)

if(tmp[0]==5)break如果發現輸入 ^e,則退出輸入

p=p->next=new line;

p->data=new char[strlen(tmp)+1為結點分配空間

strcpy(p->data,tmp);

if(tmp[strlen(tmp)-1]==5除去最後乙個控制符 ^e

p->data[strlen(tmp)-1]='\0';

break;

}}p->next=null最後的乙個指標為空

head=head->next;

}//統計字母數

編輯實習報告

精選范文 編輯實習報告范文 共2篇 前言實習是每個大學生必須有的一段經歷,它使我們在實踐中學到知識,開啟視野,為我們以後進一步走向社會打下堅實的基礎。我作為一名大二學生.在xx年年11月17號開始了為期六周的專業實習。通過實習以了解社會 了解新聞業的情況 提高從事技能 提高職業道德和職業素養。一 實...

網路編輯實習報告 網路編輯實習總結報告

三一文庫 實習報告 首先當然得有自己的興趣,興趣是的老師,也是做好事情的動力。可以說,所有的編輯都是懷著乙份對自己濃厚興趣而投入到這項非功利性的工作中來的。沒有興趣,誰也不會沒事找事地提出做網路編輯的申請。其次是堅持下去的耐力和責任感,僅僅有興趣是不夠的,做乙個網路編輯並沒有什麼經濟利益來驅動展開,...

有關文章的編輯要求

修改稿撰寫要求 1 量和單位 變數應使用單個字母表示,量符號必須使用斜體字母 對於向量和張量,應使用黑體字母 符號下標正斜體的規則是 凡量符號和代表變動性數字及座標軸的字母作下標,採用斜體 其他情況為正體。文中所有相同量符號及下標,均應統一 包括量符號和下標的字型 字型大小 大寫 小寫和正 斜體 並...