GItHub地址

2.给出PSP表格。

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 40 180
· Estimate · 估计这个任务需要多少时间 600 700
Development 开发 100 200
· Analysis · 需求分析 (包括学习新技术) 10 30
· Design Spec · 生成设计文档 0 0
· Design Review · 设计复审 30 15
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 15 5
· Design · 具体设计 15 30
· Coding · 具体编码 100 100
· Code Review · 代码复审 40 5
· Test · 测试(自我测试,修改代码,提交修改) 5 5
Reporting 报告 30 40
· Test Repor · 测试报告 50 50
· Size Measurement · 计算工作量 5 8
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 30

 3.解题思路描述。即刚开始拿到题目后,如何思考,如何找资料的过程。

先输入一个文件,遍历所有的字符,计算包括二十六位字母以及空格等的数量。然后查看是否是规定的单词,再将它们变成小写。再将单词名称和单词数量放进一个结构体的数组,进行排序,找出前十的单词。

 4.设计实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?单元测试是怎么设计的?

打算设置三个函数,一个是为了计算字符的总数和计算前十的单词,还有一个函数,在以上函数中会用到,计算单词的个数。还有一个是为了计算行的数量并且。
int  words_count();计算单词数量
int characters_get();计算行的数量
void Topten();计算前十的单词

5.代码说明

主函数里包含计算字符数、单词数、行数以及前十的单词。

int  main()
{
	
	int lines,words,characters;
	characters=characters_get();
	cout<<"characters:"<<num<<endl;
	cout<<"lines:"<<linenum<<endl; 
	words=words_count();
	cout<<"words:"<<words<<endl;
	Topten();
 

设置一个结构体,用于对比排列

FILE *fp1,*fp2; 
int linenum  = 0;
int num = 0;
struct word{
    char letter[100];
    int num; 
    int id;
};
set<word,cpe>wordin;
set<word,cpenum>wordnum;
int wordID[10];
 

 一个个检查文件里的字符,若遇到换行就在计算行数的int里加一。

测试用例:

aaaa aaab bbbb dddd cccc

bbbb,123cccc,cccc123

efgh
eeee
hhhh
kkkkkkk
ddddd
ddddd1223
777123sgdnvmb
 
 
 

6. 结合在构建之法中学习到的相关内容与个人项目的实践经历,撰写解决项目的心路历程与收获。

在这次实验中,可以说比较失败,在作业的很多地方,我都没有看懂。不过我了解到写完代码并不是结束,很多都要考虑进去,比如性能,比如博客的质量。我会更多了解除代码外的其他东西,在综合方面更上一层楼。