王歆瑶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

六、总结

  我以前没这样认真系统地完成过一个程序,所以这次作业对我来说难度比较大,我竭尽所能,绞尽脑汁,查阅多本资料,又请教同学终于完成,但功能实现的并不完全,这也让我对自己的能力有了新的认识,还有很多知识需要我去认真学习,我也需要多多练习多多实践。这次作业可能完成的不是很出色,希望下次作业我会有更大的进步。

原文地址:https://www.cnblogs.com/wxyao/p/11530793.html