https://github.com/ITBuilting/mytestgithtml
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 30 |
· Estimate | · 估计这个任务须要多少时间 | 2400 | 2000 |
Development | 开发 | 800 | 600 |
· Analysis | · 需求分析 (包括学习新技术) | 180 | 150 |
· Design Spec | · 生成设计文档 | 60 | 60 |
· Design Review | · 设计复审 (和同事审核设计文档) | 50 | 60 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
· Design | · 具体设计 | 120 | 100 |
· Coding | · 具体编码 | 540 | 300 |
· Code Review | · 代码复审 | 120 | 120 |
· Test | · 测试(自我测试,修改代码,提交修改) | 240 | 200 |
Reporting | 报告 | 30 | 40 |
· Test Report | · 测试报告 | 30 | 60 |
· Size Measurement | · 计算工做量 | 30 | 40 |
· Postmortem & Process Improvement Plan | · 过后总结, 并提出过程改进计 | 30 | 60 |
合计 | 2320 | 1850 |
实现一个命令行程序,输入文件名以命令行参数传入。
则会统计input.txt中的如下几个指标
1.统计文件的字符数:
2.统计文件的单词总数,单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。
3.统计文件的有效行数:任何包含非空白字符的行,都须要统计。
4.统计文件中各单词的出现次数,最终只输出频率最高的10个。频率相同的单词,优先输出字典序靠前的单词
5.按照字典序输出到文件txt:
输出的格式为
characters: number
words: number
lines: number
图示:
使用语言:由于学习c/c++较多,选择使用C++语言编写程序
使用工具:vs2017
制定编码规范:
1.代码缩进:通用vs2017的代码缩进格式
2.注释:使用C/C++标准的代码或者文档注释,且每条代码后加上注释说明
3.命名规范:采用”驼峰式“命名规则,本身命名内部使用的变量+my
4.判断语句的条件不能复杂超过三个
5.bool类型判断使用is+形式定义git
从需求分析得出须要使用文件读取,通过反复考证,使用最简单的开发方式——使用库函数。
图示:
github
#include "pch.h" #include <fstream> #include <map> #include <string> using namespace std; bool isdigit(char ch) { return (ch >= ' '&&ch <= '9'); } int main(void) { map<string, int> words; //转int类型 ifstream fin("input.txt");//要统计的文件 ofstream fout("output.txt");//结果存放在output中 //------------ string str; int wordCount = 0; string d; int charCount = 0; //------------ if (!fin || !fout) { exit(1); } while (fin.good()) { fin >> str; words[str]++; } fin.close(); fin.open("input.txt"); while (getline(fin, d)) //以行为单位读入文件 charCount += d.size(); //累计字符数 fin.close(); for (map<string, int>::iterator mit = words.begin(); mit != words.end(); ++mit) { if (!isdigit((mit->first)[0])) { fout << "<" << mit->first << ">" << ": " << mit->second << endl; ++wordCount; } } fout << "wordTotal: " << wordCount << endl; // 文件输出单词个数 fout << "charTotal: " << charCount << endl; //文件输出字符个数 fout.close(); return 0; }
运行截图1:
运行截图2:
编程
运行截图3:
函数
测试截图:
回归测试截图:
工具
经过与伙伴的屡次交流改进,对代码进行了复审。对读入字符代码实现部分进行了改进:统一使用系统库的有关文件的函数,对代码量达到了控制,简便明了。
在改进后的代码性能方面获得了大大提高,减小使用指针带来的代码混乱和指向不明难以审查的困境,使用库函数,使性能有所提升,可是因为系统的差别不大,没法显示出较大差距的性能提升。
性能
图示:
如下是本人提交github的心路历程,因为第二次做业完成状况太差,致使不会使用git提交代码,本次与伙伴进行了深入的学习,提交上了,可是本次命名仍是未完成好。
学习
图示:
测试