PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 120 |
· Estimate | · 估计这个任务需要多少时间 | 2400 | 2625 |
Development | 开发 | 300 | 200 |
· Analysis | · 需求分析 (包括学习新技术) | 100 | 100 |
· Design Spec | · 生成设计文档 | 30 | 30 |
· Design Review | · 设计复审 (和同事审核设计文档) | 80 | 80 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 40 | 30 |
· Design | · 具体设计 | 200 | 100 |
· Coding | · 具体编码 | 800 | 900 |
· Code Review | · 代码复审 | 100 | 200 |
· Test | · 测试(自我测试,修改代码,提交修改) | 100 | 50 |
Reporting | 报告 | 60 | 50 |
· Test Report | · 测试报告 | 60 | 40 |
· Size Measurement | · 计算工作量 | 30 | 45 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 40 | 50 |
合计 | 1900 | 1995 |
具体流程(我负责NumEssay和main函数)
实现过程
统计行数
int NumEssay::linenum() // 输出行数 { in.open(file_name, std::ios::in); int count = 0; if (in.is_open()) //检查文件是否打开 { while (!in.eof()) { if (in.good()) ///如果文件流对,就继续运行 { getline(in, buffer); if (buffer != "") ++count; } else { std::cout << "Error:读取的文件可能过大内存无法存储" << std::endl; } } } else { std::cout << "Open " << file_name << "failing!!!" << std::endl; } in.close(); return count; }
统计字符数
int NumEssay::charnum() { in.open(file_name, std::ios::in); int count = 0; if (in.is_open())//检查文件是否打开 { while (!in.eof()) { if (in.good())//如果文件流对,就继续运行 { getline(in, buffer); if (buffer != "") { count += buffer.size(); if (!in.eof()) count += 1; //加上换行符 } else if (!in.eof())//buffer为空,但是为换行符, { count += 1; } } else { std::cout << "Error:读取的文件有错误" << std::endl; } } } else { std::cout << "Open " << file_name << "failing!!!" << std::endl; } in.close(); return count; }
mian函数
main函数
#include"pch.h" #include"NumEssay.h" #include"myText.h" #include #include #include #include #include using namespace std; int flag[4] = { 0 }, sum=0; vector pd(4); int CheckArgs() { if(sum 4) { cout
感悟
这次结对伙伴虽然是第一次组队,但我们对对方能力都是肯定的,在结对过程中难免会遇到参数不符合要求的时候,但我们都能很快解决问题
除此之外,在编码的过程我再一次理解了 c++ 的文件操作,也从队友的代码中看到了不曾了解的操作,增加了知识,以后有空再把他们整理出来发表,主要是关于c++文件操作的换行符问题,也有一遍复习了相关工具与流程