王歆瑶20180912-3 词频统计
此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/6583
一、功能需求:
1.输入小文件,证明程序能正常运行
2.命令行可以输入作品英文名
3.命令行输入作品名统计单词数
二、作业过程中,安装软件等操作很繁琐,参考这三个网址
https://gitforwindows.org/
https://www.cnblogs.com/cangxw/p/8258199.html
https://blog.csdn.net/fengyjch/article/details/78948258
三、老五在寝室吹牛他熟读过《鲁滨逊漂流记》,在女生面前吹牛热爱《呼啸山庄》《简爱》和《飘》,在你面前说通读了《战争与和平》。但是,他的四级至今没过。你们几个私下商量,这几本大作的单词量怎么可能低于四级,大家听说你学习《构建之法》,一致推举你写个程序名字叫wf,统计英文作品的单词量并给出每个单词出现的次数,准备用于打脸老五。
希望实现以下效果。以下效果中数字纯属编造。
功能1 小文件输入。 为表明程序能跑,结果真实而不是迫害老五,请他亲自键
盘在控制台下输入命令。
重难点:c语言忘了很多,数组已经掌握的很不熟练,编写大量代码很吃力,而且安装软件和上传代码花费了我大量时间。
突破:锻炼了解决问题的思维能力,以前很少这样练习过
代码:
void mysort(WORD a[], int n) { int i,j,k; WORD t; for(i = 0; i < n - 1; ++i) { k = i; for(j = i + 1; j < n; ++j) { if(a[k].size < a[j].size) k = j; } if(i != k) { t = a[i]; a[i] = a[k]; a[k] = t; } } }
截图:
功能2 支持命令行输入英文作品的文件名,请老五亲自录入。
>wf gone_with_the_wand
total 1234567 words
the 5023
a 4783
love 4572
fire 4322
run 3822
cheat 3023
girls 2783
girl 2572
slave 1322
buy 822
此功能完成后你的经验值+30. 输入文件最大不超过40MB. 如果你的程序中途崩
了,会被老五打脸,不增加经验值。
难点:添加文件花费了我很长时间,编写程序又请教了很多同学,花费了很多精力才大致实现功能。
突破:处处都是突破,以前从没有这样完成过一个功能。
代码片段:
int pickupword(char *statement, char words[][WORDSIZE]) { int i = 0,j,n = 0; while(statement[i]) { j = 0; while(!isalpha(statement[i]) && statement[i]) ++i; while(isalpha(statement[i]) && statement[i]) words[n][j++] = statement[i++]; if(j) { words[n][j] = 0; ++n; } } return n; }
截图:
功能三:支持命令行输入存储有英文作品文件的目录名,批量统计。
>dir folder
gone_with_the_wand
runbinson
janelove
>wf folder
gone_with_the_wand
total 1234567 words
the 5023
a 4783
love 4572
fire 4322
run 3822
cheat 3023
girls 2783
girl 2572
slave 1322
buy 822
----
runbinson
total 1234567 words
绞尽脑汁功能三仍然未实现
功能四:未实现
四、PSP
五、代码参见https://e.coding.net/secret/WXY2.git
六、总结
我以前没这样认真系统地完成过一个程序,所以这次作业对我来说难度比较大,我竭尽所能,绞尽脑汁,查阅多本资料,又请教同学终于完成,但功能实现的并不完全,这也让我对自己的能力有了新的认识,还有很多知识需要我去认真学习,我也需要多多练习多多实践。这次作业可能完成的不是很出色,希望下次作业我会有更大的进步。