一个基于C++的单词统计小程序

  1. 5月前

    由于最近学习英语,想找点英文原著来看,但是又不知道哪些原著合适,于是写了这么一个小程序。实现的功能是:
    1、读取txt格式书籍,统计其词汇量,并且去掉重复,统计词频。
    2、可选的情况下可以对比选定的词汇表,并且给出词频统计
    3、保存结果进文件

    所用开发工具:Qtcreator5.11.1实现窗口控件,VS2017实现算法细则

    由于本人非专业程序员(我是学物理的其实……),所以软件写得很差。而且只能依靠Qt creator创建窗口。所以我将软件源码发出来,有兴趣的同学可以帮我进行一下升级换代。部分升级建议如下:
    1、建议加入词典文件,类似于金山词霸、有道词典的文件,可以将单词的不同时态合并为同一个单词。
    2、建议美化用户界面
    3、建议升级为可以一次加载多个书籍、单词表的程序
    4、建议升级为保存结果文件名加上时间信息
    5、建议升级为可读入多种格式文件(doc、pdf等等)

    源码下载地址:
    链接:https://pan.baidu.com/s/1hqfdxXWQGtMtzJnTthydAA 密码:5td1

    软件界面:

    • wordcounter.png
  2. 我觉得这对于大神来说这实在很简单了。
    不过对于新手,这确实是个不错的练习。

  3. 几条意见:

    1. 代码分享用github。
    2. Qt开发的话,可以用VS,但是容易有比较不舒服的地方,比如.vcxproj里面会有绝对路径,单人开发问题不大,但是非常不方便协作开发。
    <Link>
          <AdditionalDependencies>D:\Qt\Qt5.11.1\5.11.1\msvc2017_static\lib\qtmaind.lib;………</AdditionalDependencies>
    </Link>

    比如这里就有绝对路径。

    1. Qt提供了QMessageBox和QFileDialog,不要用系统原生的。其他东西也一样,有Qt提供的就尽量不用原生的。
    2. 了解一下编码的问题。当然如果你没有以后搞计算机的意愿就算了。

    对于你的几个建议:

    1、【建议加入词典文件,类似于金山词霸、有道词典的文件,可以将单词的不同时态合并为同一个单词。】其实问题不大,难点是lay这种多词同形,解决起来比较复杂。
    2、【建议美化用户界面】没啥必要……
    3、【建议升级为可以一次加载多个书籍、单词表的程序】你把程序写得结构化一点,解一解耦,用一点面向对象自然就实现了。
    4、【建议升级为保存结果文件名加上时间信息】你顺手就做了吧。
    5、【建议升级为可读入多种格式文件(doc、pdf等等)】doc不太清楚,docx是有sdk的。这些文件里面提取有效文字又是一个麻烦事……

  4. 4月前

    @Gemini 几条意见:

    1. 代码分享用github。
    2. Qt开发的话,可以用VS,但是容易有比较不舒服的地方,比如.vcxproj里面会有绝对路径,单人开发问题不大,但是非常不方便协作开发。
    <Link>
          <AdditionalDependencies>D:\Qt\Qt5.11.1\5.11.1\msvc2017_static\lib\qtmaind.lib;………</AdditionalDependencies>
    </Link>

    比如这里就有绝对路径。

    1. Qt提供了QMessageBox和QFileDialog,不要用系统原生的。其他东西也一样,有Qt提供的就尽量不用原生的。
    2. 了解一下编码的问题。当然如果你没有以后搞计算机的意愿就算了。

    对于你的几个建议:

    1、【建议加入词典文件,类似于金山词霸、有道词典的文件,可以将单词的不同时态合并为同一个单词。】其实问题不大,难点是lay这种多词同形,解决起来比较复杂。
    2、【建议美化用户界面】没啥必要……
    3、【建议升级为可以一次加载多个书籍、单词表的程序】你把程序写得结构化一点,解一解耦,用一点面向对象自然就实现了。
    4、【建议升级为保存结果文件名加上时间信息】你顺手就做了吧。
    5、【建议升级为可读入多种格式文件(doc、pdf等等)】doc不太清楚,docx是有sdk的。这些文件里面提取有效文字又是一个麻烦事……

    我读的是物理,也还是第一次听说github,谢谢提醒啦。
    其实我觉得最需要改进的是第一点,因为英语单词时态变换太多,如果不处理好这个,统计的单词量很多水分。其实像一般的单词软件,搜索一个单词,软件都会列出它的复数、时态变化等等。最重要的是,就算断网查找单词,这个过程也没有影响。所以我认为它们的词典文件保存在本地,可是我一直找不到来用(就算能找到,开发人员也应该把它加密了)。
    至于你说的QMessageBox这些,因为我第一次接触Qt,也没想到它会提供得这么完善。
    另外一点是,Qt静态编译的release版本,要移到别的电脑上用,也需要三四个dll文件一起复制,好麻烦。所以我不得不用vs来编译……

  5. 4月前yzzh 删除了
 

后才能发言