github地址 https://github.com/bjfubjn
伙伴博客地址 不见风雨不见你
本人博客地址 https://www.cnblogs.com/yeyeah/
所属课程 软件工程基础
作业要求 结对编程

一、PSP

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

二、计算模块接口的设计与实现过程

这次作业超出我和同伴的个人能力之外,面向对象编程才学到一半,也没办法做到在一个星期内速成自学完,深感自己的无力,也只能怪之前积累不足。所以这个作业不是很完美,只是用了一些简单函数和文件的相关操作,学过c,也就对这些比较熟悉,困难的完成了此作业。希望之后深入学习,以后再来看看这个作业。所谓的接口封装也只能停留在主函数对副函数的调用。我就负责对函数的编码,同伴负责文件的操作。

部分解题思路,对字符的统计获取字符进行计数

ch = fgetc(x);
while (ch != EOF) {
n++;
ch = ch = fgetc(x);
}
行数统计:

ch = fgetc(x);
while (ch != EOF)
{
if (ch == '\n')
{
n++;
ch = fgetc(x);
}
else
{
ch = fgetc(x);
}
}
英文字母统计:

ch = fgetc(x);
while (ch != EOF)
{
if ((ch >= 'a'&&ch <= 'z') || (ch >= 'A'&&ch <= 'Z'))//同样采用的Ascii码进行相应的判断和上一个相比只是把数字去掉了,所以这里也只是去掉了相应的ASCII码
{
while ((ch >= 'a'&&ch <= 'z') || (ch >= 'A'&&ch <= 'Z'))
{
ch = fgetc(x);
}
n++;
ch = fgetc(x);
}
else
{
ch = fgetc(x);
}
}
​ 打包:

if ((strcmp(argv[1], "测试数据.txt") == 0))

{

charcount();

linecount();

wordcount();

Wwordcount();

}

代码规范在同伴的博客中。

三、性能测试

用vs2017自带的性能测试工具

四、代码复审

代码完成的时候出现了文件无法打开的问题,可是代码上是没有问题的,结果经过网络的帮助发现是预处理的定义出现了问题,就将预处理器做了如下调整

将预处理器定义改为了 _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)

五、历程与收获


编程讨论中

这次作业确实超过了我的能力范围,我和我的同伴都很头疼,但是结对编程是1+1>2的,说真的一个人做这项作业我是无法想象的,多亏和伙伴互帮互助才能把这个作业完成,虽然这个作业很粗糙,完成度也不高,这块硬骨头并没有啃完,希望之后自己学习更多的东西之后,再来重新做一次。这此作业也警示我,平时必须加强课外知识的学习。

posted on 2019-10-15 17:33  yeyeah  阅读(157)  评论(1编辑  收藏  举报