个人项目作业
1.github代码地址:https://github.com/1018985954/wc
2.评估表
|
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
|
Planning |
计划 |
30 |
45 |
|
· Estimate |
· 估计这个任务需要多少时间 |
20 |
45 |
|
Development |
开发 |
30 |
40 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
60 |
120 |
|
· Design Spec |
· 生成设计文档 |
30 |
45 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 |
30 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
30 |
|
· Design |
· 具体设计 |
30 |
40 |
|
· Coding |
· 具体编码 |
500 |
720+ |
|
· Code Review |
· 代码复审 |
20 |
30 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
70 |
|
Reporting |
报告 |
20 |
30 |
|
· Test Report |
· 测试报告 |
30 |
50 |
|
· Size Measurement |
· 计算工作量 |
10 |
15 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
45 |
|
合计 |
|
|
|
3.解题思路描述:
拿到题目后,我首先看的是题目需求。但是发现看不懂题目需求,比如说支持-c,支持-w是什么意思。然后去问了一下同学,同学给我解释了这些题目有解释,扩展功能的那些需求又是什么。但是我发现我C语言文件之间的读写还不会,于是我就上CSDN,博客园里面找相应的代码分析,然后看了几下,并且自己去写。
4.代码设计过程:
首先按题目所需的功能,按功能划分函数,比如读取文件中的字符,则划为countw函数,划分好函数,再写主函数。在主函数中用scanf读入用户输入的字符以选择用哪个功能去查找哪个文件,并将结果反馈出来。
5.代码说明:
int countw(char *file)//返回文件词的数目
{ FILE *f; //创建一个文件指针
f=fopen(file,"r"); //打开指定的测试文件
char ch;
if(NULL==(f=fopen(file,"r")))
{
printf("file is NULL"); //没有找到指定的文件
}
else
while(!feof(f)) //直到文件结束,执行计数操作
{
ch=fgetc(f); //从文件中读取一个字符
if((ch >= 'a'&&ch <= 'z')||(ch>='A'&&ch<='Z')) //检测读取的字符是否是单词
aword=1;
else if (aword) //遇到非英文字母就让单词总数加1,开始判断新的单词开始
{
cword++;
aword=0;
}
}
fclose(f); printf("wordnum:%d ",cword);
}
int countc(char *file) //返回文件的字符数
{ FILE *f;
f = fopen(file, "r");
char a;
if(NULL==(f=fopen(file,"r")))
{
printf("file is NULL");
}
else
while (!feof(f))
{
a=fgetc(f);
if (a != ' '&&a != '\n'&&a != '\t') //判断从文件中读出的字符是否为“字符”
cchar++; //是则字符数加1
}
fclose(f);printf("charnum:%d ",cchar);//返回字符数
}
int countl(char *file) //返回文件的行数
{ FILE *f;
f = fopen(file, "r");
int cline = 0;
char a;
if(NULL==(f=fopen(file,"r")))
{printf("file is NULL");}
else while(!feof(f))
{
a=fgetc(f);
if(a=='\n'||a=='\t') //检测文件读出的下一个字符是否为换行字符
cline++; //如果是,则行数加1
}
fclose(f);printf("Linenum:%d ",cline); //返回行数的数目
return 1;
}
7.评估表
|
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
|
Planning |
计划 |
30 |
45 |
|
· Estimate |
· 估计这个任务需要多少时间 |
20 |
45 |
|
Development |
开发 |
30 |
40 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
60 |
120 |
|
· Design Spec |
· 生成设计文档 |
30 |
45 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 |
30 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
30 |
|
· Design |
· 具体设计 |
30 |
40 |
|
· Coding |
· 具体编码 |
500 |
720+ |
|
· Code Review |
· 代码复审 |
20 |
30 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
70 |
|
Reporting |
报告 |
20 |
30 |
|
· Test Report |
· 测试报告 |
30 |
50 |
|
· Size Measurement |
· 计算工作量 |
10 |
15 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
45 |
|
合计 |
|
|
|
8.项目小结:
1、总的来说,还是太懒了,没有多投入一点时间去学习编写代码
2、我实际用的时间比我预计的时间要多很多,确实是编程中出现了问题,比如说走神啊,磨洋工,还有半途而废这些原因。
3、代码能力不强,学习能力不足,要多加努力!
浙公网安备 33010602011771号