首页 > 技术文章 > 软件工程2017第二周作业-词频作业汇总

liusx0303 2017-09-18 23:35 原文

                                                                                             

         这篇博客主要写以下几点:

              1、关于功能一

               2、关于功能二

               3、“词频”PSP阶段表格

               4、本周例行报告

               5、git链接

一、关于功能一

       1、先把运行截图放上:

       

      2、重点难点:分割字符串,过滤标点符号; 词频排序,按出现的频率从高到低输出

      3、分割字符串,将字符串S中的返回的空值去掉,重要代码如下:

string[] S = word.Split(new char[] { ' ', ',', '.', '!', '?', ':', ';', '\'', '\"' }, StringSplitOptions.RemoveEmptyEntries);

     

       词频排序是把分隔出来的字符存到哈希表,然后对哈希表的值进行排序,重要代码如下:

            Hashtable ht = new Hashtable();//建立哈希表,键对值存储单词以及个数
            for (int i = 0; i < words.Length; i++)
            {
                if (ht.ContainsKey(words[i]))
                {
                    ht[words[i]] = (int)ht[words[i]] + 1;
                }
                else
                {
                    ht.Add(words[i], 1);
                }
            }

4、得意的地方:解决了单词总数多一个的问题和单词对齐的问题,虽然很快解决了,但是还是看到运行结果的时候很开心

二、关于功能二

     完成功能二之后就开始把两个项目整合了,第三个功能和第四个功能还没有实现。在做第二个功能读取文件的时候我用的是第一个功能代码中的读取文件代码,读的是每一行的,结果读取大文件的时候,只能读取第一句,进坑好久才发现然后解决了(功能二完整代码见链接:http://www.cnblogs.com/liusx0303/p/7528900.html

1、 难点:整合代码把两个功能合在一起;控制台命令输入问题;

2、重点:格式问题,比如功能一单词个数不用words;词频输出对齐问题;

3、控制台命令输入代码:

            if (args.Length > 0 && args[0] == "-s" && File.Exists(args[1]))//功能1
            {
                Program_f program_f = new Program_f();
                program_f.txtName = args[1];
                program_f.Count_f(program_f.txtName);
            }
            else if (args.Length > 0 && File.Exists(args[0] + ".txt"))//功能2
            {
                Program_f program_f = new Program_f();
                program_f.txtName = args[0] + ".txt";
                program_f.Count_f(program_f.txtName);
            }

4、功能一和功能二整合之后,在控制台命令行下运行截图如下

                   功能一命令行运行截图 1

           功能二命令行运行截图  2

 

、“词频”PSP阶段表格

  预计完成时间 实际完成时间 时间差 原因
功能一编代码以及测试 未预计 200min 因为是第一次接触c#编程,没有估计时间,功能一的每个小功能都是摸索着写的
功能一完善并测试 5+60=65 2+10=12 53min 编程的时候没有注意输出要求以及格式,导致频繁改动代码,然后测试
功能二编代码以及测试 40+10=50min 56+5=61min 11min 由于功能二是在功能一的基础上改动的,所以时间相差不大
功能二完善以及测试 10+5=15min 50min 45min 刚开始测试用的是test.txt的小文件运行成功了,后来用大文件the_dead_return测试之后发现输出不符合,开始以为是字符分割出错了,然后用正则表达式过滤符号,结果还是不对,后来才发现是输入文件的输入语句不对,小错误让我入坑好久,好在出来了
功能一和功能二整合以及测试 60min 158min 98min 原因是刚开始的题目要求就没有读懂,题目要求控制台命令行输入,然后得到输出,我开始写的程序比如type都是用直接用Console.WriteLine()输出的,后来才发现要用控制命令行输入
功能三 60min 0min   因为那个目录查询没有思路,就没有继续下去

  四、本周例行报告

1、

 

类型 任务 预计时间 开始时间 结束时间 中断时间 实际用时
c#视频 c#基础视频(安装环境,创建项目等)   2017-9-15 12:10 2017-9-15 14:01  0min  111min
 看书  看《c#程序设计教程》    2017-9-15 15:30  2017-9-15  17:47  休息30min  107min
 写代码  读取.txt文件并输出,运行    2017-9-15  20:20  2017-9-15 20:54  0min  34min
 写博文  写博客2017-9-15  30min  2017-9-15   22:05  2017-9-15 22:25  0min  20min
 看书,查阅  c#程序设计教程,百度    2017-9-16 18:30   2017-9-16 19:30  0min  60min
 写代码   实现功能一   未预计  2017-9-16 19:30 2017-9-16 23:50  洗衣服洗漱等40min  200min
 写博客  写博客2017-9-16随笔    2017-9-16 23:50  2017-9-16 23:59  0min  9min
 写代码  改进格式对齐  5min  2017-9-17 9:58  2017-9-17 10:00  0min  2min
 写代码  写功能二,不加测试  30min  2017-9-17 10:05  2017-9-17 11:03  喝水2min  56min
 写代码  解决单词个数多一的问题  60min  2017-9-17 15:30  2017-9-17 15:40    10min
 写代码  查阅书籍,百度,完善功能二,完整实现    2017-9-17 15:40  2017-9-17 19:40  上厕所喝水看手机消息60min  180min
 写博客  写博客2017-9-17随笔     2017-9-17 19:50  2017-9-17 20:04    14min
 写代码  整合功能一和功能二,包括测试功能   60min  2017-9-17 20:10  2017-9-18 0:47  回宿舍走路,洗漱,休息120min  158
版本控制 版本控制   2017-9-18 13:00

2017-9-18

15:00

和同学交流如何push30min 90min
写博客 第二周作业   2017-9-18 17:30

2017-9-18 19:30

  120min
版本控制 版本控制   2017-9-18 19:30 2017-9-18 21:00   90min
写博客 第二周作业   2017-9-18 22:00 2017-9-18 23:59   119min

 2、进度条

日期 代码行数 博文字数 知识点
本周 2200 173 c#知识,git版本控制

 

3、代码和博客字数折线图

 

 

 

 

4、psp饼状图

 

五、git链接地址:https://git.coding.net/liusx0303/CountWords.git

推荐阅读