日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

作业3词频统计

發布時間:2024/7/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 作业3词频统计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1). 實現一個控制臺程序,給定一段英文字符串,統計其中各個英文單詞(4字符以上含4字符)的出現頻率。

答:

?從文件讀取遍歷字符串大寫轉小寫將句子分隔成一個個單詞判斷是否為單詞計算單詞出現的頻率
預估時間10minutes10minutes20minutes40minutes1hours2hours
實際時間5minutes5minutes15minutes1hours2hours2hours

?? ? ? ? 在寫這次作業之前我認為只是一個簡單統計題,但是看了一眼老師的要求之后,就開始有點瘋了。一個要求一個要求的提出來,重疊在一起,我就發現無從下手了。又是大小寫不區分,又是單詞的要求長度不小于4,什么什么的。我發現就這么一個簡單的編程題能被老師改成這樣,老師真是煞費苦心啊。既然要求這么多,我就把每個要求一個一個拆開分析,然后再試著將他們組裝起來。

#include<iostream> #include<fstream> #include<cstring> using namespace std;struct Num{int num;char *s; };Num word[999];int Change(char str[999])//大寫轉小寫 {int a = 0;while (str[a] != '\0')//當str字符串未結束時將大寫字母轉小寫{if (str[a] >= 'A'&&str[a] <= 'Z')str[a] = str[a] + 32;//因為大寫字母與小寫字母的ascll碼值相差32,大寫轉小寫要加上32a++;}return 0; } int Judge(char w[])//判斷是否符合題意的單詞 {for (int e = 1; w[e] != '\0';){if(strlen(w)<4)//判斷單詞字長是否超過以及等于4return -1;if (w[e] >= 'a' && w[e] <= 'z')//判斷單詞的首字符是否是字母return -1;if (!((w[e] >= 'a' && w[e] <= 'z') || (w[e] >= '0' && w[e] <= '9')))//判斷單詞中是否有非字母數字return -1;elsee++;}return 0; } int Fre(char f[],int total ) //統計單詞出現過的頻率 {if (total>0)for (int i = 0; i <total; i++){if (!strcmp(f, word[i].s)) {word[i].num++; return -1;}}return 0; }int main() { char sentence[999];ifstream file("d://test.txt"); //讀取if (!file){cout << "Unable to open ";exit(1); }while (!file.eof()){file.getline(sentence,999);}file.close();const char *delim = ",“”.' '‘’!?"; //delim是用來定義分隔符的內容char *p= strtok(sentence, delim);//strtok函數根據分隔符分隔字符串int n=0;int c=0;while (p){Change(p);if (Judge(p) != -1){if (Fre(p, n)!=-1){word[n].s = p;n++;}}p = strtok(NULL, delim);}while (word[c].s) //輸出統計結果{cout << word[c].s<< ":" << word[c].num << '\n';c++;}return 0; }

  我按照我模塊的順序即 從文件中讀取——>大寫字母轉為小寫字母(為了不區分大小寫,函數為Change)——>把句子按照分隔符分割開來(運用strtok函數)——>判斷是否符合題意的單詞(函數為Judge)——>計算單詞出現的頻率(函數Fre)。

運行出的結果:

?

?

?

總結:在這次編寫過程中,我發現這個果然一點都不簡單。說起來一套一套的,但是真正實施起來還是很有難度的。除了一個讀取文件原先寫過之外其他的感覺都是第一次接觸。第一個大寫轉小寫在匯編里寫的很順溜,但是在C++中是第一次寫,課本中并沒有提及,所以只能借助百度來解決,百度還真有,所以第二個模塊解決了。分隔句子又是一個大難題,于是我再次借助百度大神來,但是百度上的答案都不一樣,所以我挑了一個我最能理解方式利用strtok(char s[],const char *delim)函數來寫。利用delim定義分隔符。第三個模塊完成。判斷單詞的條件,第一判斷字長不小于4,第二判斷首字母是否為字母,第三判斷字母中是否有非字母數字。這個是借助大神幫忙,才能夠寫出來,這個真的很難啊。花了我不少心血啊。第四個模塊完成。然后最重點的來了,計算詞頻。用指針訪問單詞在與下一個單詞比較,相同加一,知道訪問到字符串末尾在結束。

將他們組合起來更是花了好長時間。

希望以后老師在布置作業的時候,能夠將每一次的交作業時間用紅色標注一下,不要模棱兩可的給個時間!!

轉載于:https://www.cnblogs.com/wumin2/p/5284888.html

總結

以上是生活随笔為你收集整理的作业3词频统计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产偷亚洲偷欧美偷精品 | 蜜臀va| 国产又粗又猛又黄又爽 | 国产又爽又黄无码无遮挡在线观看 | 欧美经典一区二区三区 | 人人cao | 黄色性视频网站 | 女尊高h男高潮呻吟 | 在线观看三级网站 | 日韩成人福利视频 | 久草视频精品 | 制服av网| 一级片毛片 | 亚洲精品中文字幕乱码无线 | 欧美色插| 中国老太婆性做爰 | 伊人激情网 | 俺也去综合 | 婷婷久久伊人 | 亚洲成a人片77777kkkk | 污污免费视频 | 91小宝寻花一区二区三区 | av一区三区 | 动漫av在线免费观看 | 免费视频精品 | 男人操女人的免费视频 | av大全在线观看 | 国产18在线观看 | se在线观看 | av电影在线观看网址 | 国产一级黄色大片 | 日韩高清免费av | 日本不卡一区在线 | 欧美激情成人在线 | 手机在线看片日韩 | 久久99精品久久久久久园产越南 | www.麻豆av.com | 五月激情天 | 99久久99久久精品国产片果冰 | 精品视频一二三 | 欧美色v | 牛牛av国产一区二区 | 欧美综合亚洲图片综合区 | 欧洲中文字幕日韩精品成人 | 久久久久久在线观看 | 国产精品久久影院 | 日本视频黄色 | 中国一级免费毛片 | 国产精品88 | 色婷婷色丁香 | 大陆一级黄色片 | 免费看黄网站在线 | 国产熟女一区二区丰满 | 牛人盗摄一区二区三区视频 | 亚洲av人无码激艳猛片服务器 | 96人xxxxxxxxx69 | 黄色成人免费网站 | 激情男女视频 | 中文字幕在线观看视频一区 | 在线 日本 制服 中文 欧美 | 冲田杏梨一区二区三区 | 又黄又爽一区二区三区 | 2024国产精品视频 | 天天做天天看 | 国产91视频在线观看 | 伊人青青草视频 | 超碰激情在线 | 日韩欧美中文字幕精品 | 日韩熟妇一区二区三区 | 少妇又紧又爽视频 | 欧美一区在线看 | 日韩久久高清 | 日本黄色一级 | 中文字幕一区二区三区四区视频 | 亚洲手机看片 | 国产精品天堂 | av中文字幕在线免费观看 | 久久久国产精品久久久 | 欧美在线看片 | 亚洲AV无码精品自拍 | 欧美成人性生活片 | 午夜免费 | 日本免费高清一区二区 | 在线免费黄色片 | 国产乱码精品一区二区三区忘忧草 | 一区二区三区四区五区六区 | 亚洲免费一二三区 | 国产精品丝袜在线观看 | 成年在线观看视频 | 操欧美老逼 | 日本a在线免费观看 | 中国免费一级片 | 色二区| 四虎av| 午夜激情视频 | 免费高清视频在线观看 | 国产高清毛片 | 亚洲欧美日韩国产一区 | 日本乱大交xxxx公交车 |