第二次作业——个人项目实战
    在(00:12)终于改完了bug,我的结果也终于和同学的结果一致了。在此感谢
璟哥
源神。
这个453万的字符串我终于是跑对了。还是代码量太少了,前天璟哥跟我讲了一个小时,从头到尾,我听是听明白了,但是轮到自己写的时候,就开始各种迷茫,乱,先后顺序都很懵。但是学到了一个总体的框架,class类啊,.h文件,类功能的独立,这些倒是学到了。照着他的框架我自己敲了一边代码,璟哥是个很严格的人,不会给我代码,但是允许我去他的电脑上面看他写的代码,不懂可以问。但是他的核心算法我还是知其然,不知其所以然。没办法,我自己开始了自己的想法。
PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) | 
|---|---|---|---|
| Planning | 计划 | 10 | 20 | 
| • Estimate | • 估计这个任务需要多少时间 | 10 | 20 | 
| Development | 开发 | 380 | 640 | 
| • Analysis | • 需求分析 (包括学习新技术) | 50 | 100 | 
| • Design Spec | • 生成设计文档 | 10 | 10 | 
| • Design Review | • 设计复审 | 20 | 20 | 
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 10 | 
| • Design | • 具体设计 | 20 | 20 | 
| • Coding | • 具体编码 | 180 | 300 | 
| • Code Review | • 代码复审 | 60 | 120 | 
| • Test | • 测试(自我测试,修改代码,提交修改) | 30 | 60 | 
| Reporting | 报告 | 60 | 90 | 
| • Test Repor | • 测试报告 | 10 | 10 | 
| • Size Measurement | • 计算工作量 | 20 | 20 | 
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 60 | 
| 合计 | 450 | 750 | 
计算模块的接口与实现过程
    学习了璟哥的框架,写了一个工具类,里面的函数如下:
- static int count(map<string, int> mp)//计算单词总数;
- static int GetLines(string s)//计算行数;
- static string GetString(ifstream& in)//得到文本的字符串;
- static vector<pair<int,string> > getSort(map<string, int> mp)//排序;
- static map<string, int> countWord(string s)//得到单词映射表;
计算模块接口部分的性能改进
    性能改进我还没时间去考虑,熬了两天夜才把具体代码肝出来,目前只能想到cin,cout改成scanf,printf之类的小优化。
计算模块单元测试部分
    未完成。
遇到的问题
    我的思路是
    1、先逐个字符读进来,存在一个string里面,读的时候进行预处理,把大写的字母全部处理成小写的字母,其他的不变,得到一个字符串。
    2、判断是否为单词:
            a版本:先找到一个英文字母,然后找到离它最近的下一个非英文字母非数字的符号,然后把这段字符串截出来,先用.length()判断字符串长度是否大于等于4,不是的话,从刚刚找到的非英文字母非数字的符号继续遍历,再找到下一个英文字符。如果长度大于4,就判断他的前四位是不是英文字符,是的话,这就是一个单词。然而a版本有个致命性的错误,123abcd11,类似这种,abcd11就会被我提取出来,并当作单词。于是乎有了b版本。
            b版本:先找到一个英文或数字字符,后面的思路不变。这样子跑出来的结果就是和他们俩的结果一样了。因为我的处理是判断前四位是不是英文字母,并设有一个标志位。如果被判定为英文单词,就把单词放进map中。再利用vector,然后sort一下,结果就出来了(我还是偷懒了,哈哈哈哈哈)。还有一个致命的问题,我的行数统计答案应该还是错误的,理解璟哥的想法,然后自己写一遍,9万多行,到我这里就变成12万了。真的是太真实了。
flag
    买的Java编程思想已经到了,刚刚到的,可以开始看书,敲书上的代码了,在这里欠下的债,慢慢补回来。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号