第一次个人项目进度(一)

  第一次个人项目为“文件内容统计”,我对作业要求进行了分析,并且设计了程序结构。

  完成了部分编码工作。

       作业需求分析

  1、基本功能:统计字符、单词、行数量,单词频率

   拓展功能:统计词组频率

  2、输入为文件名/文件夹名,输出为文本文件result.txt

  格式:

  characters: number

  words: number

  lines: number

  "word": number(word按照字典【ASCII】排列、且为文件中真实单词格式)

  3、可处理多个文件

  4、可以判断并遍历文件夹

 

  技术选型和架构设计

  语言使用C/C++,但由于面向对象方法不甚熟悉,且本次作业使用面向过程更容易思考,仍采用面向过程的编程思想。

  单词统计采用hash_map

  过程:

  1、输入文件名->根据文件名确定文件、判断文件类型。

  若为文件夹,判断是否为空,若为空,输出错误信息;若非空,递归遍历文件夹。

  遍历文件夹时,对源文件进行2中的统计,跳过非源文件。

  若为文件,判断是否为源文件,若是,则执行2;若否,输出错误信息。

  2、统计对应文件中的字符、单词、行数和单词频率

  3、在文件中输出统计结果(*字典排序)

 

  结构如下:

  void fileRead(string p);  //读取单个文件,并进行统计
  void folderTraverse(string p); //遍历文件夹
  bool isSourceFile(string p); //判断是否为源文件,在main的开头和folderTraverse中被调用
  long charaStat(string p); //字符统计
  long lineStat(string p); //行统计
  long wordStat(string p);//单词统计,使用hash_map,按照键排序即可得到字典顺序
  void resultPrint(long charanum, long wordnum, long linenum, long wordfrequency); //输入结果,缺省参数“文件名”为默认的“result.txt”,可以直接在函数中写出
  int main(); //主函数,实现用户交互、统领以上函数

 

  目前仍存在的难点

  1、文件夹的遍历和非源文件的跳过方法需要学习。

  2、词组频率统计仍然没有思路。

 

posted @ 2018-03-27 00:09  Ignoramus  阅读(128)  评论(1编辑  收藏  举报