这篇博客主要写以下几点:
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饼状图