天天看點

讀取程式字元,行數,單詞的個人程式

一、需求分析:

統計程式中有的字元個數,行數以及單詞數量。

思路設計:

通過對題目要求個人了解和同學的讨論,我認為通過對行,字元和詞數分别用函數統計:

行數的統計我用了:int isrand(char c, int &randnum)。

對單詞的統計我用了這個函數:int isWord(char c, int &wordnum)。單個字母和由多個字母組成的預設為都是單詞。

對字元的統計運用了這個函數:int ischaracter(char c)。字元統計時兩個單詞之間的空格,括弧,等号等也算為一個字元了。

在主函數(main函數)中分别調用這三個函數可以簡單的實作對字元、行數和單詞的統計。

二、關鍵詞的解釋:

rand=0:初始化行數為零,rand含義為行數的統計。

word=0:初始化單詞為零,word含義為單詞的數量。

character=0:初始化字元數為零,character為字元的統計。

三、運作調試:

1.當輸入所有源程式時運作結果和系統統計結果一樣,行數為:63.單詞為:111.字元總數為:905.

讀取程式字元,行數,單詞的個人程式

2.用簡單的輸入檢測字元和單詞的統計是否正确。

輸入:c = getchar()

理論輸出結果:

行數:1

單詞輸出:2

字元輸出:13

運作截圖:

讀取程式字元,行數,單詞的個人程式

3.在進行其他的幾組資料的運作檢驗:

運作如圖:

讀取程式字元,行數,單詞的個人程式
讀取程式字元,行數,單詞的個人程式

四、個人心得體會:

  題目的基本要求不是太困難,就是對基礎知識的要求很高。一開始想着将要檢測的資料存儲在檔案裡,但是折騰了整整半天在vs2013環境下無法将檔案資料打開,但是在vc6.0中同樣的代碼可以運作,這要求我要積極去深入了解vs2013編譯環境,不明白的一些問題在網上也有一些解釋,需要自己去了解和消化。

  程式設計中每一次要将自己的代碼風格标準化,模仿别人的程式設計習慣,慢慢培養自己的習慣,要堅持。标準化自己函數的定義,既友善了自己将來的閱讀,又為别人讀懂自己的代碼做了必要的工作。每一次程式設計都是對自己的一次鍛煉。

源代碼:

#include <stdio.h>

#include<Windows.h>

int isrand(char c, int &randnum)//判斷是否換行

{

if (c == '\n')

{

randnum++;

if (randnum == 1)

return 1;

else

return 0;

}

else

if (randnum>0)

randnum = 0;

return 0;

}

int isWord(char c, int &wordnum)//判斷是否單詞

if ((c >= 'a'&&c <= 'z') || (c >= 'A'&&c <= 'Z'))

wordnum++;

if (wordnum == 1)

if (wordnum>0)

wordnum = 0;

int ischaracter(char c)//判斷是否字元

if ((c<'0' || c>'9') && c != '\n')

return 1;

}

int main()

system("color 9B");

int rand = 0, word = 0, character = 0;//初始化總行數 ,單詞數 ,字元數

int randnum = 0, wordnum = 0;//randnum為行數 ,wordnum為次數

char c;

printf("請輸入要檢測的程式\n");

while (randnum<2)//如果不是空行則循環

c = getchar();

rand += isrand(c, randnum);

word += isWord(c, wordnum);

character += ischaracter(c);

printf("總行數:%d\n", rand);

printf("單詞數:%d\n", word);

printf("字元數:%d", character);

system("pause");

return 0;